[发明专利]动态APK的加载方法、装置、系统以及介质在审
申请号: | 202110256480.8 | 申请日: | 2021-03-09 |
公开(公告)号: | CN113076146A | 公开(公告)日: | 2021-07-06 |
发明(设计)人: | 刘子樋;贾睿 | 申请(专利权)人: | 北京一亩田新农网络科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F8/41;G06F8/71 |
代理公司: | 北京奉思知识产权代理有限公司 11464 | 代理人: | 邹轶鲛;石红艳 |
地址: | 100080 北京市海淀区西小口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 apk 加载 方法 装置 系统 以及 介质 | ||
本发明提供了一种动态APK的加载方法、装置、系统以及介质。所述方法包括:获取APK主工程和动态APK工程;通过对引用了核心工程的可运行工程进行打包编译,生成引用了核心工程的aar文件和jar文件;将aar文件提供给APK主工程,并且将jar文件提供给动态APK工程,其中,基于生成的jar文件,经aar文件引入到APK主工程的核心工程的资源ID与经jar文件引入到动态APK工程的核心工程的资源ID一致;将动态APK工程加载到APK主工程上。本发明的上述方法能够解决主工程和动态APK工程的资源无法对齐的问题。
技术领域
本发明涉及一种动态APK的加载方法、装置、系统以及介质。
背景技术
在App版本快速迭代的场景下,通常使用APK动态加载方案来进行版本的快速变更。在该应用场景下,有核心工程、主工程和动态APK工程,其中,核心工程提供基础调度服务,主工程是可以直接安装在安卓android设备的APK,而动态APK工程是无法直接安装在android设备上但可以通过主工程动态加载而间接加载在android设备上的APK。
主工程需要核心工程提供的基础调度服务,动态APK工程也需要核心工程提供的基础调度服务,即,主工程和动态APK工程都会依赖于核心工程,但是依赖的方式不同,主程序直接以aar包(aar(Android Archive)包是一个安卓Android库项目的二进制归档文件,其本身是一个修改了文件后缀的zip文件,包含了例如AndroidManifest.xml(配置文件)、classes.jar(全部.java类生成)、res(存储资源信息)、jni(存储so库)等一系列文件,aar提供一些程序的基础调度)的形式依赖,而动态APK工程是以jar包(由工程内.java文件组成的集合)的形式依赖,相当于动态APK使用的是编译过程中的中间产物,而核心工程是非可运行工程,依赖到可运行工程(即主工程)会改变一次资源识别号(ID),这样会造成主工程和动态APK工程引用的核心工程里使用到的资源ID无法对齐,从而造成程序运行的异常。如果通过改造系统来实现,则成本太高,需要适配不同版本。
此外,在现有技术中通常不支持主工程和动态APK资源的引用。例如,在中大型APP项目中,通常具有一些通用资源,如果不支持主工程和动态APK资源的引用,会造成相同资源在一个整体App中存在多份,从而导致最终打包的App包体积增大。同时,APP启动时会有拷贝动态APK的流程,同时动态APK体积的增大,对App启动时长造成一定影响,从而一定程度下造成用户的流失。
发明内容
针对以上问题,本发明提供动态APK的加载方法、装置、系统以及介质,能够解决主工程和动态APK工程的资源无法对齐的问题,从而能够有效地加载动态APK,实现App版本的快速变更。
根据本发明的一方面,提供一种动态APK的加载方法,包括:
获取APK主工程和动态APK工程;
通过对引用了核心工程的可运行工程进行打包编译,生成引用了所述核心工程的aar文件和jar文件;
将所述aar文件提供给所述APK主工程,并且将所述jar文件提供给所述动态APK工程,其中,基于生成的所述jar文件,经所述aar文件引入到所述APK主工程的所述核心工程的资源ID与经所述jar文件引入到所述动态APK工程的所述核心工程的资源ID一致;
将所述动态APK工程加载到所述APK主工程上。
优选地,通过打包编译所述可运行工程,在所述核心工程和所述可运行工程中均生成R.java文件,并且
在生成所述jar文件时,将所述可运行工程的R.java文件替换成所述核心工程的R.java文件。
优选地,所述核心工程的R.java文件中的资源ID以变量表示,并且所述可运行工程的R.java文件中的资源ID以常量表示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京一亩田新农网络科技有限公司,未经北京一亩田新农网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110256480.8/2.html,转载请声明来源钻瓜专利网。