本发明专利技术涉及Android插件技术领域,尤其涉及一种Android插件的处理方法、装置、设备及介质,所述方法具体包括:基于Gradle配置文件,自动化实现将第一插件apk文件和宿主apk文件集成打包运行,生成应用程序,所述第一插件apk文件位于所述宿主apk文件打包前的指定目录下;在每次所述应用程序启动时,根据插件特性信息,将所述指定目录下的第一插件apk文件、所述应用程序的插件目录下的第二插件apk文件以及所述应用程序的私有目录下的预定加载插件中的任一作为目标加载插件,所述插件特性信息包括md5值和插件版本。本发明专利技术一键自动化实现Android插件打包、处理与使用的全流程,在用户无感知的情况下完成新插件的加载更新。
【技术实现步骤摘要】
本专利技术涉及android插件,尤其涉及一种android插件的处理方法、装置、设备及介质。
技术介绍
1、利用android插件化技术,把app或sdk划分为宿主和插件两部分,可以实现app或sdk的热更新功能,但在热更新之前,必须确保插件能成功加载,否则就无法实现热更新功能。在加载插件时,若存在插件未完全下载、插件被损坏、插件被第三方篡改、插件存在版本问题等任何因素,都可能导致插件加载的失败。同时,在生成app或sdk之前,如果要将宿主和插件集成打包运行,需要经过一系列繁琐的手动操作过程,费时费力,从而导致开发效率低下。
技术实现思路
1、本专利技术的目的在于提供一种android插件的处理方法、装置、设备及介质,一键自动化实现android插件打包、处理与使用的全流程,在用户无感知的情况下完成新插件的加载更新,以解决上述现有技术问题的至少之一。
2、第一方面,本专利技术提供了一种android插件的处理方法,所述方法具体包括:
3、基于gradle配置文件,自动化实现将第一插件apk文件和宿主apk文件集成打包运行,生成应用程序,所述第一插件apk文件位于所述宿主apk文件打包前的指定目录下;
4、在每次所述应用程序启动时,根据插件特性信息,将所述指定目录下的第一插件apk文件、所述应用程序的插件目录下的第二插件apk文件以及所述应用程序的私有目录下的预定加载插件中的任一作为目标加载插件,所述插件特性信息包括md5值和插件版本;
<
p>5、从插件下载接口获取第三插件apk文件的信息,根据所述插件特性信息比较所述第三插件apk文件和所述目标加载插件,确定将所述第三插件apk文件下载至所述插件目录并设置为新的第二插件apk文件,或者,确定使当前的第二插件apk文件保持不变。6、进一步地,所述基于gradle配置文件,自动化实现将第一插件apk文件和宿主apk文件集成打包运行,生成应用程序,所述第一插件apk文件位于所述宿主apk文件打包前的指定目录下,具体包括:
7、创建宿主模块、插件模块和插件处理模块;
8、在所述宿主模块中设置第一gradle配置文件,所述第一gradle配置文件用于设置在构建、打包所述插件模块后再运行所述宿主模块的gradle命令;
9、在所述插件模块中设置第二gradle配置文件,所述第二gradle配置文件用于设置将所述插件模块打包成的第一插件apk文件复制到所述宿主模块的指定目录下的gradle命令;
10、在所述插件处理模块中设置插件处理单元和第三gradle配置文件,所述插件处理单元用于处理所述第一插件apk文件的打包流程,所述第三gradle配置文件用于设置处理所述第一插件apk文件的gradle命令;
11、获取编译运行命令后,自动化根据所述插件处理模块将所述插件模块打包成所述第一插件apk文件并复制到所述宿主模块的指定目录下,然后将所述宿主模块打包成宿主apk文件并运行生成应用程序。
12、进一步地,所述将所述插件模块打包成所述第一插件apk文件并复制到所述宿主模块的指定目录下之前,还包括:
13、将所述插件模块打包成第四插件apk文件并复制到所述插件处理模块;
14、在所述插件处理模块中将所述第四插件apk文件反编译为反编译插件模块,并对所述反编译插件模块的插件内容问题进行处理,所述插件内容问题包括资源id冲突问题、资源文件命名问题、manifest文件的声明问题、版本兼容性问题;
15、将所述反编译插件模块回编译为所述第一插件apk文件。
16、进一步地,所述根据插件特性信息,将所述指定目录下的第一插件apk文件、所述应用程序的插件目录下的第二插件apk文件以及所述应用程序的私有目录下的预定加载插件中的任一作为目标加载插件,具体包括:
17、判断所述应用程序的插件目录下是否含有第二插件apk文件,且所述第二插件apk文件的md5值是否通过校验;
18、当所述应用程序的插件目录下不含有第二插件apk文件,或者,所述应用程序的插件目录下含有第二插件apk文件但所述第二插件apk文件的md5值没通过校验,则将所述第一插件apk文件或所述应用程序的私有目录下的预定加载插件作为目标加载插件;
19、当所述应用程序的插件目录下含有第二插件apk文件且所述第二插件apk文件的md5值通过校验,则将所述第二apk文件作为目标加载插件。
20、进一步地,所述第二插件apk文件的md5值是否通过校验,具体包括:
21、判断所述应用程序的sharedpreferences存储区域是否含有插件md5值,所述插件md5值为最近一次从插件下载接口获得并下载加载成功后的插件apk的插件md5值;
22、如所述应用程序的sharedpreferences存储区域含有插件md5值,则校验所述第二插件apk文件的md5值是否与所述插件md5值一致,否则将所述第一插件apk文件或所述应用程序的私有目录下的预定加载插件作为目标加载插件。
23、进一步地,所述将所述第一插件apk文件或所述应用程序的私有目录下的预定加载插件作为目标加载插件,具体包括:
24、判定所述应用程序的私有目录下含有预定加载插件,且所述预定加载插件的插件版本大于所述第一插件apk文件的插件版本,将所述预定加载插件作为目标加载插件;
25、或者,判定所述应用程序的私有目录下不含有预定加载插件,将所述第一插件apk文件作为目标加载插件;
26、或者,判定所述应用程序的私有目录下含有预定加载插件,且所述预定加载插件的插件版本小于所述第一插件apk文件的插件版本,将所述第一插件apk文件作为目标加载文件。
27、进一步地,所述从插件下载接口获取第三插件apk文件的信息,根据所述插件特性信息比较所述第三插件apk文件和所述目标加载插件,确定将所述第三插件apk文件下载至所述插件目录并设置为新的第二插件apk文件,或者,确定使当前的第二插件apk文件保持不变,具体包括:
28、判定插件下载接口是否含有第三插件apk文件,且所述第三插件apk文件的md5值与所述目标加载插件的md5值不一致,以及所述第三插件apk文件的插件版本大于所述目标加载插件的插件版本,将所述第三插件apk文件下载至所述插件目录并设置为新的第二插件apk文件,同时将所述第三插件apk文件的md5值存储至所述sharedpreferences存储区域作为所述插件md5值;
29、或者,判定插件下载接口含有第三插件apk文件,且所述第三插件apk文件的md5值与所述目标加载插件的md5值不一致,以及所述第三插件apk文件的插件版本小于所述目标加载插件的插件版本,使当前的第二插件apk文件保持不变;
30、或者,判定插件下载接口含有第三插件apk文件,且所本文档来自技高网
...
【技术保护点】
1.一种Android插件的处理方法,其特征在于,所述方法具体包括:
2.根据权利要求1所述的方法,其特征在于,所述基于Gradle配置文件,自动化实现将第一插件apk文件和宿主apk文件集成打包运行,生成应用程序,所述第一插件apk文件位于所述宿主apk文件打包前的指定目录下,具体包括:
3.根据权利要求2所述的方法,其特征在于,所述将所述插件模块打包成所述第一插件apk文件并复制到所述宿主模块的指定目录下之前,还包括:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据插件特性信息,将所述指定目录下的第一插件apk文件、所述应用程序的插件目录下的第二插件apk文件以及所述应用程序的私有目录下的预定加载插件中的任一作为目标加载插件,具体包括:
5.根据权利要求4所述的方法,其特征在于,所述第二插件apk文件的md5值是否通过校验,具体包括:
6.根据权利要求5中所述的方法,其特征在于,所述将所述第一插件apk文件或所述应用程序的私有目录下的预定加载插件作为目标加载插件,具体包括:
7.根据权利要求6中所述的方法,其特征在于,所述从插件下载接口获取第三插件apk文件的信息,根据所述插件特性信息比较所述第三插件apk文件和所述目标加载插件,确定将所述第三插件apk文件下载至所述插件目录并设置为新的第二插件apk文件,或者,确定使当前的第二插件apk文件保持不变,具体包括:
8.一种Android插件的处理装置,其特征在于,所述装置具体包括:
9.一种计算机设备,其特征在于,包括:存储器和处理器及存储在存储器上的计算机程序,当所述计算机程序在处理器上被执行时,实现如权利要求1至7中任一项所述的Android插件的处理方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器运行时,实现如权利要求1至7中任一项所述的Android插件的处理方法。
...
【技术特征摘要】
1.一种android插件的处理方法,其特征在于,所述方法具体包括:
2.根据权利要求1所述的方法,其特征在于,所述基于gradle配置文件,自动化实现将第一插件apk文件和宿主apk文件集成打包运行,生成应用程序,所述第一插件apk文件位于所述宿主apk文件打包前的指定目录下,具体包括:
3.根据权利要求2所述的方法,其特征在于,所述将所述插件模块打包成所述第一插件apk文件并复制到所述宿主模块的指定目录下之前,还包括:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据插件特性信息,将所述指定目录下的第一插件apk文件、所述应用程序的插件目录下的第二插件apk文件以及所述应用程序的私有目录下的预定加载插件中的任一作为目标加载插件,具体包括:
5.根据权利要求4所述的方法,其特征在于,所述第二插件apk文件的md5值是否通过校验,具体包括:
6.根据权利要求5中所述的方法,其特...
【专利技术属性】
技术研发人员:赵鹏,唐湘良,赖玮,
申请(专利权)人:广州三七极梦网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。