Android系统中的类加载方法、装置、设备和存储介质制造方法及图纸

技术编号:23238727 阅读:26 留言:0更新日期:2020-02-04 18:15
本发明专利技术实施例公开了一种Android系统中的类加载方法、装置、设备和存储介质。方法包括:在应用程序的运行状态与预设元注解器中的注解器生命周期参数一致时,监测加载触发条件;确定加载类的目标加载模式标识,并依据加载类、类加载标识和加载模式标识之间的映射关系,确定目标加载类的目标类加载标识;基于目标类加载标识,调用系统Class类中的类对象加载函数和类对象实例化函数,生成目标加载类的目标类对象;基于目标类加载标识和目标加载模式标识,调用预设键值对集合的元素存储函数,将目标类对象存储至预设键值对集合中。通过上述技术方案,实现了Android系统中不同性质的类的加载,提高类加载的便捷性和管理效率。

Class loading methods, devices, devices and storage media in Android system

【技术实现步骤摘要】
Android系统中的类加载方法、装置、设备和存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种Android系统中的类加载方法、装置、设备和存储介质。
技术介绍
对于基于Android系统的应用程序而言,其运行过程中涉及诸多相应功能的类Class,那么必然存在大量的类加载过程。现有技术中的类通常是通过系统类加载进行加载的,例如通过new关键字进行类加载,或者通过反射的方式来进行加载。该加载过程不区分类对应的加载模式,例如全局具有唯一对象的单例对象加载模式、与活动窗口的生命周期同步的活动窗口同步加载模式、以及与直播间的生命周期同步的直播间同步加载模式等。但是,上述类加载方式存在如下问题:(1)两种方式都只是将待加载的类加载到内存中,所生成的加载类的类对象均有系统管理,后续使用便捷性不高;(2)待加载的类所在的功能模块之间需要有较强的耦合性,否则会导致类加载失败,应用程序运行错误;(3)不同模式的类的加载及后续维护过程均需要程序人员手动编码维护,容易出现错误,降低代码可维护性和稳健性。
技术实现思路
本专利技术实施例提供一种Android系统中的类加载方法、装置、设备和存储介质,以实现Android系统中不同加载模式的类的自动加载与维护,提高类加载的便捷性和管理效率。第一方面,本专利技术实施例提供了一种Android系统中的类加载方法,包括:在应用程序的运行状态与预设元注解器中的注解器生命周期参数一致时,监测加载类的加载触发条件;当监测到所述加载触发条件时,确定加载类的目标加载模式标识,并依据所述目标加载模式标识,以及加载类、类加载标识和加载模式标识之间的映射关系,确定目标加载类的目标类加载标识;基于所述目标类加载标识,调用系统Class类中的类对象加载函数和类对象实例化函数,加载并实例化所述目标加载类,生成所述目标加载类的目标类对象;基于所述目标类加载标识和所述目标加载模式标识,调用预设键值对集合的元素存储函数,将所述目标类对象存储至所述预设键值对集合中。第二方面,本专利技术实施例还提供了一种Android系统中的类加载装置,该装置包括:加载触发条件监测模块,用于在应用程序的运行状态与预设元注解器中的注解器生命周期参数一致时,监测加载类的加载触发条件;目标类加载标识确定模块,用于当监测到所述加载触发条件时,确定加载类的目标加载模式标识,并依据所述目标加载模式标识,以及加载类、类加载标识和加载模式标识之间的映射关系,确定目标加载类的目标类加载标识;目标类对象生成模块,用于基于所述目标类加载标识,调用系统Class类中的类对象加载函数和类对象实例化函数,加载并实例化所述目标加载类,生成所述目标加载类的目标类对象;目标类对象存储模块,用于基于所述目标类加载标识和所述目标加载模式标识,调用预设键值对集合的元素存储函数,将所述目标类对象存储至所述预设键值对集合中。第三方面,本专利技术实施例还提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例所提供的Android系统中的类加载方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本专利技术任意实施例所提供的Android系统中的类加载方法。本专利技术实施例通过预设元注解器的设置来为应用程序中不同加载模式的类进行相应类加载模式的注解设置,为后续不同模式的类的加载提供基础。通过当监测到加载触发条件时,确定加载类的目标加载模式标识,并依据目标加载模式标识,以及加载类、类加载标识和加载模式标识之间的映射关系,确定目标加载类的目标类加载标识;基于目标类加载标识,调用系统Class类中的类对象加载函数和类对象实例化函数,加载并实例化目标加载类,生成目标加载类的目标类对象。实现了在监测到加载触发条件时自动触发类的加载操作,减少开发人员的手动编码触发操作,提高了代码可维护性和稳健性;且仅依据目标类加载标识来触发目标加载类的类加载操作,避免了传统加载方式中不同功能模块之间的代码高耦合问题,提高了类加载的便捷性。通过基于目标类加载标识和目标加载模式标识,调用预设键值对集合的元素存储函数,将目标类对象存储至预设键值对集合中。实现了目标类对象的集中管理,提高了类加载的管理效率,也提高了目标类对象后续使用的便捷性。附图说明图1是本专利技术实施例一中的一种Android系统中的类加载方法的流程图;图2是本专利技术实施例二中的一种Android系统中的类加载方法的流程图;图3是本专利技术实施例三中的一种Android系统中的类加载方法的流程图图4是本专利技术实施例四中的一种Android系统中的类加载装置的结构示意图;图5是本专利技术实施例五中的一种电子设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一本实施例提供的Android系统中的类加载方法可适用于基于Android系统开发的应用程序中不同加载模式的类的自动加载与管理。该方法可以由Android系统中的类加载装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在搭载Android系统的电子设备中,例如手机、平板电脑或台式电脑等。参见图1,本实施例的方法包括:S110、在应用程序的运行状态与预设元注解器中的注解器生命周期参数一致时,监测加载类的加载触发条件。其中,预设元注解器是预先设计的加载器的元注解器,其规范了注解器所支持的模式(例如文档模式)、生命周期参数(即注解器生命周期参数,用于声明注解器的有效性的作用域)、作用范围参数(即注解器范围参数,用于声明注解器的作用对象)以及属性类型(即注解属性类型)等内容。加载触发条件是指触发类加载的条件,例如可以是程序启动、第一次使用类或者与类相关的类对象的使用操作等。为了实现加载器的自动触发和类自动加载,本专利技术实施例中对所有需要被加载的类(简称加载类)均设置了预设元注解器对应的注解,这些注解会被注解编译器解析,以获得元注解器中的各项参数值,例如注解器生命周期参数。当应用程序被触发后,判断应用程序的运行状态,并在运行状态与注解器生命周期参数一致时,启动被注解了上述注解的加载类的加载触发条件的自动监控。例如注解器生命周期参数为“编译时”,则当应用程序的代码处于编译阶段时,便触发加载触发条件的监测。如果注解器生命周期参数为“运行时”,那么当应用程序编译完成且处于运行时状态时,再开始进行加载触发条件的监控。示例性地,预设元注解器的注解器生命周期参数、注解器范围参数和注解属性类型分别为运行时参数、Class类本文档来自技高网...

【技术保护点】
1.一种Android系统中的类加载方法,其特征在于,包括:/n在应用程序的运行状态与预设元注解器中的注解器生命周期参数一致时,监测加载类的加载触发条件;/n当监测到所述加载触发条件时,确定加载类的目标加载模式标识,并依据所述目标加载模式标识,以及加载类、类加载标识和加载模式标识之间的映射关系,确定目标加载类的目标类加载标识;/n基于所述目标类加载标识,调用系统Class类中的类对象加载函数和类对象实例化函数,加载并实例化所述目标加载类,生成所述目标加载类的目标类对象;/n基于所述目标类加载标识和所述目标加载模式标识,调用预设键值对集合的元素存储函数,将所述目标类对象存储至所述预设键值对集合中。/n

【技术特征摘要】
1.一种Android系统中的类加载方法,其特征在于,包括:
在应用程序的运行状态与预设元注解器中的注解器生命周期参数一致时,监测加载类的加载触发条件;
当监测到所述加载触发条件时,确定加载类的目标加载模式标识,并依据所述目标加载模式标识,以及加载类、类加载标识和加载模式标识之间的映射关系,确定目标加载类的目标类加载标识;
基于所述目标类加载标识,调用系统Class类中的类对象加载函数和类对象实例化函数,加载并实例化所述目标加载类,生成所述目标加载类的目标类对象;
基于所述目标类加载标识和所述目标加载模式标识,调用预设键值对集合的元素存储函数,将所述目标类对象存储至所述预设键值对集合中。


2.根据权利要求1所述的方法,其特征在于,所述预设元注解器的注解器生命周期参数、注解器范围参数和注解属性类型分别为运行时参数、Class类以及预设枚举类型,其中,所述预设枚举类型的元素包含单例对象加载模式标识、活动窗口同步加载模式标识和直播间同步加载模式标识。


3.根据权利要求2所述的方法,其特征在于,当监测到所述加载触发条件时,确定加载类的目标加载模式标识包括:
当监测到系统应用程序类的生命周期启动函数的调用指令,或者所述目标加载类的调用指令时,确定所述目标加载模式标识为所述单例对象加载模式标识。


4.根据权利要求3所述的方法,其特征在于,在监测加载类的加载触发条件之前,还包括:
以所述预设元注解器中的注解属性类型为输入参数,调用程序元素获取函数,生成待加载类对象集合;
在依据所述目标加载模式标识,以及加载类、类加载标识和加载模式标识之间的映射关系,确定目标加载类的目标类加载标识之后,还包括:
以所述单例对象加载模式标识为输入参数,调用所述预设键值对集合的值信息获取函数,获得与所述单例对象加载模式对应的单例键值对对象;
以所述目标类加载标识为输入参数,调用所述待加载类对象集合的元素获取函数,获得与所述目标类加载标识对应的目标类标识;
以所述目标类标识为输入参数,调用所述单例键值对对象的值信息获取函数,获得单例目标类对象,并判断所述单例目标类对象是否为空对象;
若否,则将所述单例目标类对象作为所述目标加载类的目标类对象。


5.根据权利要求2所述的方法,其特征在于,当监测到所述加载触发条件时,确定加载类的目标加载模式标识包括:
当监听到活动窗口对象的生命周期启动函数的调用指令时,确定所述目标加载模式标识为所述活动窗口同步加载模式标识。


6.根据权利要求2所述的方法...

【专利技术属性】
技术研发人员:张磊
申请(专利权)人:武汉斗鱼鱼乐网络科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1