组件间传递事件的方法和装置制造方法及图纸

技术编号:23470454 阅读:26 留言:0更新日期:2020-03-06 12:36
本申请实施例公开了组件间传递事件的方法和装置。该方法的一具体实施方式包括:获取组件的源码中有目标注解的方法的关联信息,得到关联信息集合,关联信息包括方法名、参数信息、所在类的全名,参数信息包括参数类型和参数顺序;针对关联信息集合中的关联信息,生成以该关联信息为执行条件的事件处理方法;在源码的运行过程中,针对对应的方法为非静态方法的关联信息,构建该关联信息对应的方法所在类的对象与该关联信息的第一对应关系;在获取到待传递事件时,根据构建的第一对应关系查找与待传递事件的参数信息对应的关联信息和对象,查找以查找到的关联信息为执行条件的事件处理方法并由确定的对象执行。该实施方式实现了组件间的事件传递。

Methods and devices for passing events between components

【技术实现步骤摘要】
组件间传递事件的方法和装置
本申请实施例涉及计算机
,具体涉及组件间传递事件的方法和装置。
技术介绍
随着开发安卓应用的需求越来越复杂,安卓应用的代码量也越来越多。所有代码强耦合在一起会导致后续难修改、编译和调试整个安卓应用,影响安卓应用的开发效率,也会增加后期的维护成本。组件化开发的思想是将安卓应用分成多个模块,每个模块可以看作是一个组件。在安卓应用的开发过程中,可以单独开发和调试各组件,最后可以将各组件统一合并为一个安卓应用。现有的组件化开发安卓应用的解决方案一般是调整安卓应用的开发架构,按照功能业务将安卓应用拆分为多个组件。但是现有的解决方案中各组件之间并不是完全的代码隔离,仍具有一定程度的代码依赖。
技术实现思路
本申请实施例提出了组件间传递事件的方法和装置。第一方面,本申请实施例提供了一种组件间传递事件的方法,该方法包括:获取组件的源码;分析源码,获取源码中有目标注解的方法的关联信息,得到关联信息集合,其中,关联信息包括方法名、参数信息、所在类的全名,全名包括包名和类名,参数信息包括参数类型和参数顺序;针对得到的关联信息集合中的、对应的方法为非静态方法的关联信息,生成以该关联信息为执行条件的事件处理方法,其中,事件处理方法用于接收待传递事件并执行该关联信息对应的方法;在源码的运行过程中,针对关联信息集合中的、对应的方法为非静态方法的关联信息,构建该关联信息对应的方法所在类的对象与该关联信息的第一对应关系;响应于获取到待传递事件,确定待传递事件的参数信息;根据构建的第一对应关系查找与待传递事件的参数信息对应的关联信息和对象,查找以查找到的关联信息为执行条件的事件处理方法并由确定的对象执行。在一些实施例中,在源码的运行过程中,针对关联信息集合中的、对应的方法为静态方法的关联信息,构建静态事件类与该关联信息的第二对应关系,其中,在静态事件类中包括以有目标注解的静态方法的关联信息为执行条件的事件处理方法;根据构建的第二对应关系查找与待传递事件的参数信息对应的关联信息和静态事件类,查找以查找到的关联信息为执行条件的事件处理方法并由确定的静态事件类执行。第二方面,本申请实施例提供了一种组件间传递事件的装置,该装置包括:获取单元,被配置成获取组件的源码;分析单元,被配置成分析源码,获取源码中有目标注解的方法的关联信息,得到关联信息集合,其中,关联信息包括方法名、参数信息、所在类的全名,全名包括包名和类名,参数信息包括参数类型和参数顺序;事件处理方法生成单元,被配置成针对得到的关联信息集合中的、对应的方法为非静态方法的关联信息,生成以该关联信息为执行条件的事件处理方法,其中,事件处理方法用于接收待传递事件并执行该关联信息对应的方法;对应关系构建单元,被配置成在源码的运行过程中,针对关联信息集合中的、对应的方法为非静态方法的关联信息,构建该关联信息对应的方法所在类的对象与该关联信息的第一对应关系;参数信息确定单元,被配置成响应于获取到待传递事件,确定待传递事件的参数信息;执行单元,被配置成根据构建的第一对应关系查找与待传递事件的参数信息对应的关联信息和对象,查找以查找到的关联信息为执行条件的事件处理方法并由确定的对象执行。在一些实施例中,上述对应关系构建单元,进一步被配置成在源码的运行过程中,针对关联信息集合中的、对应的方法为静态方法的关联信息,构建静态事件类与该关联信息的第二对应关系,其中,在静态事件类中包括以有目标注解的静态方法的关联信息为执行条件的事件处理方法;执行单元,进一步被配置成根据构建的第二对应关系查找与待传递事件的参数信息对应的关联信息和静态事件类,查找以查找到的关联信息为执行条件的事件处理方法并由确定的静态事件类执行。第三方面,本申请实施例提供了一种支持组件化开发安卓应用的软件开发工具包,该安卓应用的组件间不添加依赖,该软件开发工具包包括:事件处理模块,被配置成通过如权利要求1或2描述的方法实现安卓应用的组件间的事件传递。在一些实施例中,安卓应用中存在多个进程;以及上述软件开发工具包还包括:多进程处理模块,被配置成采用安卓接口定义语言AIDL实现进程间的数据通信。在一些实施例中,软件开发工具包还包括打包模块,打包模块被配置成:获取待打包的组件;解析待打包的组件的配置文件,确定待打包的组件的打包形式;根据确定的待打包的组件的打包形式对待打包的组件进行打包。在一些实施例中,软件开发工具包还包括:异常处理模块,被配置成按照预设的降级策略来实现异常处理。第四方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。第五方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。本申请实施例提供的组件间传递事件的方法和装置,通过分析源码获取其中有目标注解的方法的关联信息,以得到关联信息集合,关联信息包括方法名、参数信息、所在类的全名,全名包括包名和类名,参数信息包括参数类型和参数顺序,针对每个关联信息,生成以该关联信息为执行条件的事件处理方法,事件处理方法用于接收待传递事件并执行该关联信息对应的方法,在源码的运行过程中,针对有注解的、非静态方法的关联信息,构建该关联信息对应的方法所在类的对象与该关联信息的第一对应关系,在获取到待传递事件时,在上述第一对应关系中查找与待传递事件的参数信息对应的关联信息和对象,然后查找以查找到的关联信息为执行条件的事件处理方法并由确定的对象执行,从而实现组件间的事件传递。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请的一个实施例可以应用于其中的示例性系统架构图;图2是根据本申请的组件间传递事件的方法的一个实施例的流程图;图3是根据本申请的组件间传递事件的方法的又一个实施例的流程图;图4是根据本申请的支持组件化开发安卓应用的软件开发工具包的一个实施例的功能结构示意图;图5是本申请的支持组件化开发安卓应用的软件工具包支持的、组件化开发的安卓应用的一个示例性系统架构图;图6是根据本申请的组件间传递事件的装置的一个实施例的结构示意图;图7是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1示出了可以应用本申请的组件间传递事件的方法或组件间传递事件的装置的本文档来自技高网...

【技术保护点】
1.一种组件间传递事件的方法,包括:/n获取组件的源码;/n分析所述源码,获取所述源码中有目标注解的方法的关联信息,得到关联信息集合,其中,所述关联信息包括方法名、参数信息、所在类的全名,所述全名包括包名和类名,所述参数信息包括参数类型和参数顺序;/n针对得到的关联信息集合中的、对应的方法为非静态方法的关联信息,生成以该关联信息为执行条件的事件处理方法,其中,所述事件处理方法用于接收待传递事件并执行该关联信息对应的方法;/n在所述源码的运行过程中,针对所述关联信息集合中的、对应的方法为非静态方法的关联信息,构建该关联信息对应的方法所在类的对象与该关联信息的第一对应关系;/n响应于获取到待传递事件,确定所述待传递事件的参数信息;根据构建的第一对应关系查找与待传递事件的参数信息对应的关联信息和对象,查找以查找到的关联信息为执行条件的事件处理方法并由确定的对象执行。/n

【技术特征摘要】
1.一种组件间传递事件的方法,包括:
获取组件的源码;
分析所述源码,获取所述源码中有目标注解的方法的关联信息,得到关联信息集合,其中,所述关联信息包括方法名、参数信息、所在类的全名,所述全名包括包名和类名,所述参数信息包括参数类型和参数顺序;
针对得到的关联信息集合中的、对应的方法为非静态方法的关联信息,生成以该关联信息为执行条件的事件处理方法,其中,所述事件处理方法用于接收待传递事件并执行该关联信息对应的方法;
在所述源码的运行过程中,针对所述关联信息集合中的、对应的方法为非静态方法的关联信息,构建该关联信息对应的方法所在类的对象与该关联信息的第一对应关系;
响应于获取到待传递事件,确定所述待传递事件的参数信息;根据构建的第一对应关系查找与待传递事件的参数信息对应的关联信息和对象,查找以查找到的关联信息为执行条件的事件处理方法并由确定的对象执行。


2.根据权利要求1所述的方法,其中,所述方法还包括:
在所述源码的运行过程中,针对所述关联信息集合中的、对应的方法为静态方法的关联信息,构建静态事件类与该关联信息的第二对应关系,其中,在所述静态事件类中包括以有目标注解的静态方法的关联信息为执行条件的事件处理方法;
响应于获取到待传递事件,确定所述待传递事件的参数信息;根据构建的第二对应关系查找与待传递事件的参数信息对应的关联信息和静态事件类,查找以查找到的关联信息为执行条件的事件处理方法并由确定的静态事件类执行。


3.一种组件间传递事件的装置,包括:
获取单元,被配置成获取组件的源码;
分析单元,被配置成分析所述源码,获取所述源码中有目标注解的方法的关联信息,得到关联信息集合,其中,所述关联信息包括方法名、参数信息、所在类的全名,所述全名包括包名和类名,所述参数信息包括参数类型和参数顺序;
事件处理方法生成单元,被配置成针对得到的关联信息集合中的、对应的方法为非静态方法的关联信息,生成以该关联信息为执行条件的事件处理方法,其中,所述事件处理方法用于接收待传递事件并执行该关联信息对应的方法;
对应关系构建单元,被配置成在所述源码的运行过程中,针对所述关联信息集合中的、对应的方法为非静态方法的关联信息,构建该关联信息对应的方法所在类的对象与该关联信息的第一对应...

【专利技术属性】
技术研发人员:张溪梦叶玎玎
申请(专利权)人:北京高绎信息技术有限公司
类型:发明
国别省市:北京;11

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

1