本发明专利技术公开一种安卓应用插件化的实现方法、装置、设备及存储介质,属于计算机技术领域,安卓应用包括宿主工程和插件工程,方法包括:在对宿主工程编译生成宿主应用的APK文件后,编译插件工程;在编译插件工程的过程中,修改插件工程的代码文件中的资源ID;若插件工程的依赖文件同时被宿主工程依赖,则删除插件工程的依赖文件,并在编译结束后生成插件APK文件;修改插件APK文件的资源文件中的资源ID,并在判定插件APK文件中插件工程引用的资源ID对应的资源因删除依赖文件不存在时,使用宿主工程中对应资源的资源ID替换插件工程引用的资源ID,生成最终的插件APK文件并发布。本发明专利技术实施例在实现安卓应用插件化时能够即时研发、即时发布。
A plug-in implementation method, device, device and storage medium for Android Application
【技术实现步骤摘要】
一种安卓应用插件化的实现方法、装置、设备及存储介质
本专利技术涉及计算机
,尤其涉及一种安卓应用插件化的实现方法、装置、设备及存储介质。
技术介绍
目前,智能终端已成为多数用户日常生活中必备的电子设备。随着智能终端技术的快速发展,智能终端中的功能也越来越完善,能够安装各种各样的应用程序,可满足用户多样的使用需求。现有技术中,安卓应用程序通常需要经过编译Android工程及打包等操作来生成应用程序安装包,并将应用程序安装包发布至安卓应用商店,待用户从安卓应用商店下载应用程序安装包并安装之后,才能使用应用功能。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:1、如果Android工程过大,编译缓慢,严重影响开发效率;2、所有功能统一发布,发布周期长,不能及时满足市场需求;3、用户需要下载应用程序安装包并需要安装,耗时较长。
技术实现思路
为了解决上述
技术介绍
中提到的至少一个问题,本专利技术提供了一种安卓应用插件化的实现方法、装置、设备及存储介质。本专利技术实施例提供的具体技术方案如下:第一方面,提供了一种安卓应用插件化的实现方法,所述安卓应用包括宿主工程和插件工程,所述方法包括:在对所述宿主工程编译生成宿主应用的APK文件后,编译所述插件工程;在编译所述插件工程的过程中,将所述插件工程的代码文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型;以及若所述插件工程的依赖文件同时被所述宿主工程依赖,则删除所述插件工程的依赖文件,并在编译结束后生成插件APK文件;将所述插件APK文件的资源文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型;以及在所述插件APK文件中,判断所述插件工程引用的资源ID对应的资源是否因删除所述依赖文件而不存在,若是,则使用所述宿主工程中对应所述资源的资源ID以替换的方式进行修改所述插件工程引用的资源ID,生成最终的插件APK文件;发布所述最终的插件APK文件,以供所述宿主应用加载所述最终的插件APK文件。进一步地,所述在编译所述插件工程的过程中,将所述插件工程的代码文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型,包括:根据预设的修改规则,修改所述插件工程的代码文件中所述资源ID的package字段,以使得修改后的所述资源ID为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型。进一步地,所述将所述插件APK文件的资源文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型,包括:确定出所述插件APK文件中包含有资源ID的资源文件;根据预设的修改规则,修改所述插件APK文件的资源文件中所述资源ID的package字段,以使得修改后的所述资源ID为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型。进一步地,所述发布所述最终的插件APK文件,以供所述宿主应用加载所述插件APK文件之后,所述方法还包括:在运行所述宿主应用时,若用户在所述宿主应用上的当前操作触发的目标功能所对应的资源处于所述插件APK文件中,则在所述宿主应用的APK文件中加载所述最终的插件APK文件以运行所述目标功能。第二方面,提供了一种安卓应用插件化的实现方法,所述安卓应用包括宿主工程和插件工程,所述方法包括:在对所述宿主工程编译生成宿主应用的APK文件后,编译所述插件工程;在编译所述插件工程的过程中,若所述插件工程的依赖文件同时被所述宿主工程依赖,则删除所述插件工程的依赖文件,并在编译结束后生成插件APK文件;在所述插件APK文件中,判断所述插件工程引用的资源ID对应的资源是否因删除所述依赖文件而不存在,若是,则使用所述宿主工程中对应所述资源的资源ID以替换的方式进行修改所述插件工程引用的资源ID,生成最终的插件APK文件;发布所述最终的插件APK文件,以供所述宿主应用加载所述最终的插件APK文件。进一步地,所述方法还包括:在运行宿主应用时,若用户在宿主应用上的当前操作触发的目标功能所对应的资源处于插件APK文件中,则在宿主应用中加载最终的插件APK文件以运行目标功能。第三方面,提供了一种安卓应用插件化的实现装置,所述安卓应用包括宿主工程和插件工程,所述装置包括:编译模块,用于在对所述宿主工程编译生成宿主应用的APK文件后,编译所述插件工程;第一修改模块,用于在编译所述插件工程的过程中,将所述插件工程的代码文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型;文件删除模块,还用于若所述插件工程的依赖文件同时被所述宿主工程依赖,则删除所述插件工程的依赖文件;第一生成模块,用于在编译结束后生成插件APK文件;第二修改模块,用于将所述插件APK文件的资源文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型;所述第二修改模块,还用于在所述插件APK文件中,判断所述插件工程引用的资源ID对应的资源是否因删除所述依赖文件而不存在,若是,则使用所述宿主工程中对应所述资源的资源ID以替换的方式进行修改所述插件工程引用的资源ID;第二生成模块,用于生成最终的插件APK文件;插件发布模块,用于发布所述最终的插件APK文件,以供所述宿主应用加载所述最终的插件APK文件。进一步地,所述第一修改模块具体用于:根据预设的修改规则,修改所述插件工程的代码文件中所述资源ID的package字段,以使得修改后的所述资源ID为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型。进一步地,所述第二修改模块具体用于:确定出所述插件APK文件中包含有资源ID的资源文件;根据预设的修改规则,修改所述插件APK文件的资源文件中所述资源ID的package字段,以使得修改后的所述资源ID为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型。进一步地,所述装置还包括:运行模块,用于在运行所述宿主应用时,若用户在所述宿主应用上的当前操作触发的目标功能所对应的资源处于所述插件APK文件中,则在所述宿主应用的APK文件中加载所述最终的插件APK文件以运行所述目标功能。第四方面,提供了一种安卓应用插件化的实现装置,所述安卓应用包括宿主工程和插件工程,所述装置包括:编译模块,用于在对所述宿主工程编译生成宿主应用的APK文件后,编译所述插件工程;文件删除模块,用于在编译所述插件工程的过程中,若所述插件工程的依赖文件同时被所述宿主工程依赖,则删除所述插件工程的依赖文件;第一生成模块,用于在编译结束后生成插件APK文件;第二生成模块,用于在所述插件APK文件中,判断所述插件工程引用的资本文档来自技高网...
【技术保护点】
1.一种安卓应用插件化的实现方法,其特征在于,所述安卓应用包括宿主工程和插件工程,所述方法包括:/n在对所述宿主工程编译生成宿主应用的APK文件后,编译所述插件工程;/n在编译所述插件工程的过程中,将所述插件工程的代码文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型;以及/n若所述插件工程的依赖文件同时被所述宿主工程依赖,则删除所述插件工程的依赖文件,并在编译结束后生成插件APK文件;/n将所述插件APK文件的资源文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型;以及/n在所述插件APK文件中,判断所述插件工程引用的资源ID对应的资源是否因删除所述依赖文件而不存在,若是,则使用所述宿主工程中对应所述资源的资源ID以替换的方式进行修改所述插件工程引用的资源ID,生成最终的插件APK文件;/n发布所述最终的插件APK文件,以供所述宿主应用加载所述最终的插件APK文件。/n
【技术特征摘要】
1.一种安卓应用插件化的实现方法,其特征在于,所述安卓应用包括宿主工程和插件工程,所述方法包括:
在对所述宿主工程编译生成宿主应用的APK文件后,编译所述插件工程;
在编译所述插件工程的过程中,将所述插件工程的代码文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型;以及
若所述插件工程的依赖文件同时被所述宿主工程依赖,则删除所述插件工程的依赖文件,并在编译结束后生成插件APK文件;
将所述插件APK文件的资源文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型;以及
在所述插件APK文件中,判断所述插件工程引用的资源ID对应的资源是否因删除所述依赖文件而不存在,若是,则使用所述宿主工程中对应所述资源的资源ID以替换的方式进行修改所述插件工程引用的资源ID,生成最终的插件APK文件;
发布所述最终的插件APK文件,以供所述宿主应用加载所述最终的插件APK文件。
2.根据权利要求1所述的方法,其特征在于,所述在编译所述插件工程的过程中,将所述插件工程的代码文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型,包括:
根据预设的修改规则,修改所述插件工程的代码文件中所述资源ID的package字段,以使得修改后的所述资源ID为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型。
3.根据权利要求1所述的方法,其特征在于,所述将所述插件APK文件的资源文件中的资源ID修改为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型,包括:
确定出所述插件APK文件中包含有资源ID的资源文件;
根据预设的修改规则,修改所述插件APK文件的资源文件中所述资源ID的package字段,以使得修改后的所述资源ID为属于非系统资源ID类型以及非应用资源ID类型的合法资源ID类型。
4.根据权利要求1至3任一所述的方法,其特征在于,所述发布所述最终的插件APK文件,以供所述宿主应用加载所述插件APK文件之后,所述方法还包括:
在运行所述宿主应用时,若用户在所述宿主应用上的当前操作触发的目标功能所对应的资源处于所述插件APK文件中,则在所述宿主应用的APK文件中加载所述最终的插件APK文件以运行所述目标功能。
5.一种安卓应用插件化的实现方法,其特征在于,所述安卓应用包括宿主工程和插件工程,所述方法包括:
在对所述宿主工程编译生成宿主应用的APK文件后,编译所述插件工程;
在编译所述插件工程的过程中,若所述插件工程的依赖文件同时被所述宿主工程依赖,则删除所述插件工程的依赖文件,并在编译结束后生成插件APK文件;
在所述插件APK文件中,判断所述插件工程引用的资源ID对应的资源是否因删除所述依赖文件而不存在,若是,则使用所述宿主工程中对应所述资源的资源ID以替换的方...
【专利技术属性】
技术研发人员:李呈武,
申请(专利权)人:苏宁云计算有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。