[发明专利]一种用于模块间通信的路由方法和路由装置有效
申请号: | 201810744060.2 | 申请日: | 2018-07-09 |
公开(公告)号: | CN108897588B | 公开(公告)日: | 2021-08-13 |
发明(设计)人: | 陈祝界;夏鹏;金昊 | 申请(专利权)人: | 广州市千钧网络科技有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F8/53;G06F8/41;G06F8/75 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 510665 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 模块 通信 路由 方法 装置 | ||
本申请提供一种用于模块间通信的路由方法和路由装置,包括扫描并解压APP的APK文件,获取APK文件中的AndroidManifest文件;从AndroidManifest文件中获取Activity的完整类名或Servic的完整类名;遍历dex文件,根据Activity或Service的完整类名反编译得到类的信息;遍历获得的所有类,提取出public static或public static final的方法;将所有方法创建成java文件;将java文件编译成class文件;将class文件编译成jar文件;将jar文件存储至业务模块中,使得业务模块使用provided的引用方式引用jar文件。
技术领域
本申请涉及通信技术领域,尤其涉及一种用于模块间通信的路由方法和路由装置。
背景技术
一款APP(Application,应用程序)达到一定体量的时候,业务就会膨胀得比较严重,开发团队的规模也会越来越大,这时一般都会提出组件化的概念。组件化是指将APP按照一定的功能和业务拆分成多个业务模块,不同的业务模块由不同的开发小组来负责,这样就可以解决大型APP开发过程中的开发与协作的问题。
进行组件化开发后,各业务模块间相互独立,无法进行通信,但在实际应用时,各业务模块间一般都是存在信息交互的,比如直播间模块需要调用登录模块,由此进一步提出了,采用路由工具实现业务模块间的通信。
现有的路由工具包括阿里巴巴的ARouter,但是ARouter存在以下缺点:学习和使用成本高;侵入性比较强,完全破坏了Android原有的开发习惯;运行时消耗了设备性能,如手机性能。
发明内容
有鉴于此,本申请提供一种用于模块间通信的路由方法和路由装置。技术方案如下:
基于本申请的一方面,本申请提供一种用于模块间通信的路由方法,包括:
扫描并解压应用程序APP的安卓安装包APK文件,获取所述APK文件中的AndroidManifest文件;
从所述AndroidManifest文件中获取Activity的完整类名或Servic的完整类名;
遍历dex文件,根据所述Activity的完整类名或Service的完整类名反编译得到类的信息;
遍历获得的所有类,提取出public static或public static final的方法;
将提取出的所有方法创建成java文件;
将所述java文件编译成class文件;
将所述class文件编译成jar文件;
将所述jar文件存储至业务模块中,以使得所述业务模块使用provided的引用方式引用所述jar文件。
可选地,所述路由方法还包括:
在所述业务模块生成aar文件的过程中,比较编译后的路径分别与所述jar文件中各个类的类名是否一致;
将所述jar文件中类名与编译后的路径一致的类,确定为发生冲突的索引类;
删除所述jar文件中发生冲突的索引类。
可选地,所述路由方法还包括:
在所述业务模块生成aar文件的过程中,生成索引jar的jar格式的映射文件jarMapping;
获取存在映射关系的java文件的md5值,判断所述md5值是否存在于java格式的映射文件javaMapping中;
如果存在,则继续获取下一存在映射关系的java文件的md5值,并继续判断该md5值是否存在于所述javaMapping中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州市千钧网络科技有限公司,未经广州市千钧网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810744060.2/2.html,转载请声明来源钻瓜专利网。