CN113849200A - 一种安卓应用在安卓兼容环境中的安装优化方法及系统 - Google Patents
一种安卓应用在安卓兼容环境中的安装优化方法及系统 Download PDFInfo
- Publication number
- CN113849200A CN113849200A CN202111448902.8A CN202111448902A CN113849200A CN 113849200 A CN113849200 A CN 113849200A CN 202111448902 A CN202111448902 A CN 202111448902A CN 113849200 A CN113849200 A CN 113849200A
- Authority
- CN
- China
- Prior art keywords
- version
- installation
- library file
- priority
- installation package
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种安卓应用在安卓兼容环境中的安装优化方法及系统,针对安卓兼容环境采用的处理器的不同生成安卓应用各版本安装的安装优先级,再依据安装优先级依次安装和运行不同版本的安装包,以能够正确运行的版本作为参考修复第一优先级版本,从而实现安卓应用的优化安装,能够在保证高安卓应用兼容性的同时有效提高安卓应用的运行效率,从而提升用户在桌面系统中使用安卓应用的体验。
Description
技术领域
本发明属于在桌面操作系统上安装移动应用的开发技术领域,具体涉及一种安卓应用在安卓兼容环境中的安装优化方法及系统。
背景技术
Linux操作系统安卓兼容环境(下文简称安卓兼容环境)是一种在Linux操作系统上运行安卓应用(App)的技术,对丰富Linux操作系统应用生态有着重要的意义。安卓兼容环境一般由Host端和Guest端组成,Host端运行于Linux系统上,主要包括安卓容器和用户交互窗口,安卓容器的作用是从Linux系统中隔离出部分内核资源来支撑Guest端运行,Guest端主要包括特殊定制的安卓应用框架和安卓运行时库等,安卓应用都运行在Guest端。
用户在安卓兼容环境中使用安卓应用时,首先需要安装安卓应用。安卓应用的安装包(Android Package ,APK)通常是针对安卓系统开发的,由于安卓系统安装机制与Linux系统的不同,所以安卓应用安装包与Linux系统应用软件的安装包(.rpm文件)的目录结构一般也各不相同。安卓应用安装包的目录中通常包括assert、lib、META-INF、res等目录,其中lib子目录中往往包含该应用所需依赖的库文件的各类常用版本,但一般不包含各库文件间的依赖关系;而Linux系统的应用程序则不同,安装包中会带有该应用程序安装时所需依赖包的信息,这些依赖包通常未被包含在安装包中,而是在应用程序安装的过程中由Linux的包管理器自动下载并安装。安卓兼容环境运行于Linux操作系统之上,安卓兼容环境所采用的处理器为Linux操作系统的处理器,由于该处理器通常与安卓系统所采用的处理器不同,所以采用现有的安装方式在安卓兼容环境中安装安卓应用就可能面临因安卓应用的依赖的库文件的版本与处理器的版本不一致所导致的安卓应用无法安装的问题。
发明内容
有鉴于此,本发明提供了一种安卓应用在安卓兼容环境中的安装优化方法及系统,使安卓应用能够在采用不同处理器的安卓兼容环境中完成优化安装,同时形成安卓应用最优的安装包。
本发明提供的一种安卓应用在安卓兼容环境中的安装优化方法,包括以下步骤:
确定安卓应用中各安装包的版本信息,根据安卓兼容环境所采用的本地处理器的版本,确定所述安卓应用中各安装包的安装优先级;
根据所述安装优先级依次在所述安卓兼容环境中安装并运行所述安卓应用的各安装包,若第一优先级安装包安装并运行成功,则所述安卓应用的安装优化完成,结束本流程;否则,以安装并运行成功的安装包作为参考版本;
在所述安卓兼容环境中安装并运行第一优先级安装包,监测第一优先级安装包的运行过程,根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包直至第一优先级安装包安装运行成功,完成所述安卓应用的安装优化。
进一步地,所述安装优先级的确定方式为:首先优先选择与本地处理器具有相同指令集的版本,其次优先选择具有相同运算位数的版本,最后优先选择新发布的版本。
进一步地,所述根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包的过程中,当所述问题的原因为缺少库文件时修改第一优先级安装包的方式为:首先确定缺少的库文件的名称,再根据所述参考版本中相应库文件的信息确定缺少的库文件的版本信息,根据得到的库文件的名称及版本信息,查找具有与本地处理器相同指令集的且版本一致的库文件,将查找到的库文件补充到第一优先级安装包中。
进一步地,所述根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包的过程中,当所述问题的原因为库文件针对的指令集与本地处理器的指令集不匹配时修改第一优先级安装包的方式为:根据所述参考版本中相应库文件的信息确定错误库文件的版本信息,使用库文件的名称及得到的版本信息,查找具有与本地处理器相同指令集的且版本一致的库文件,将查找到的库文件替换到第一优先级安装包中。
进一步地,所述根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包的过程中,当所述问题的原因为库文件的版本与参考版本中同名库文件的版本不同时修改第一优先级安装包的方式为:根据参考版本中相应库文件的信息确定错误库文件的版本信息,使用库文件的名称及得到的版本信息,查找具有与本地处理器相同指令集的且版本一致的库文件,将查找到的库文件替换到第一优先级安装包中。
进一步地,所述根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包的过程中,当所述问题的原因为库文件缺少符号时修改第一优先级安装包的方式为:确定错误库文件的名称及缺少的符号名称,根据库文件的名称及符号名称查找到同名库文件的多个版本,再从这些版本中选出包含缺少的符号的形成待测试版本集合;迭代选择所述待测试版本集合中的未被选择过的库文件替换第一优先级安装包中同名的库文件,运行安卓应用,直至安卓应用运行成功,则第一优先级安装包修改完成。
进一步地,所述迭代选择所述待测试版本集合中的未被选择过的库文件的方式为:在所述待测试版本集合中选择发布时间早于安卓应用安装包的发布时间且与安卓应用安装包的发布时间最接近的库文件作为起点,按照时间向前的顺序迭代选择库文件。
进一步地,所述监测第一优先级安装包的运行过程采用如下方式实现:修改安卓兼容环境的Linker、修改安卓兼容环境的ART库加载接口或修改安卓兼容环境中Dalvik虚拟机的库加载接口。
本发明提供的一种安卓应用在安卓兼容环境中的安装优化系统,包括:安装优先级生成模块、预安装模块、安装运行优化模块、运行监测模块、错误解析模块及错误处理模块;
其中,所述安装优先级生成模块,用于提取安卓应用的安装包内库文件的版本信息,并根据安卓兼容环境所采用的本地处理器的版本生成所述安卓应用的安装优先级;
所述预安装模块,用于根据所述安装优先级生成模块生成的所述安装优先级,从第一优先级安装包顺序安装运行各安装包直至安卓应用运行成功;若第一优先级安装包安装运行成功,则将第一优先级安装包作为安卓应用的安装包,完成安卓应用的安装优化;若安装运行成功的不是第一优先级安装包,则将成功安装运行的安装包作为参考版本发送至所述安装运行优化模块,同时卸载成功安装运行的安装包;
所述安装运行优化模块,用于根据所述预安装模块输出的参考版本安装运行第一优先级安装包,通知所述运行监测模块监测安卓应用的运行过程,若运行正常,则保存当前的安装包作为安卓应用的安装包,完成安卓应用的安装优化;若运行失败,则终止安卓应用的运行,并将参考版本发送到所述错误解析模块;
所述运行监测模块,用于在安卓兼容环境中监测安卓应用的运行过程,当安卓应用运行出现错误时形成监测信息;
所述错误解析模块,用于当接收到所述安装运行优化模块发送的参考版本时获取所述运行监测模块生成的监测信息,根据监测信息判断安卓应用运行错误的原因,若错误原因为缺少库文件,则解析监测信息确定缺少的库文件的名称,再解析参考版本获取缺少的库文件的版本信息,将缺少的库文件的名称和版本信息发送到所述错误处理模块;若错误原因为库文件采用的指令集与本地处理器不匹配,则解析参考版本获取不匹配的库文件的版本信息,将库文件的名称及版本信息发送到所述错误处理模块;若错误原因为库文件的版本与参考版本中同名库文件的版本不同,则解析参考版本获取该库文件的版本信息,将库文件的名称及版本信息发送到所述错误处理模块;若错误原因为库文件缺少符号,则将库文件的名称发送到所述错误处理模块;
所述错误处理模块,用于当接收到的所述错误解析模块发送的信息为库文件的名称及版本信息时,则根据这些信息查找库文件,再将查找到的库文件补充或替换到安卓应用的第一优先级安装包中,最后通知所述安装运行优化模块重新运行安卓应用;当接收到的信息仅为库文件的名称时,则查找到同名库文件的多个版本,再从这些版本中选出包含缺少的符号的版本形成待测试版本集合,在所述待测试版本集合选择库文件替换第一优先级版本的安装包中同名的库文件,重新运行安卓应用,直到找到能使安卓应用运行成功的库文件,将当前安装包作为最终安装包,完成安卓应用的安装优化。
进一步地,所述错误处理模块在所述待测试版本集合选择库文件替换第一优先级版本的安装包中同名的库文件的方式为:在所述待测试版本集合中选择发布时间早于安卓应用安装包的发布时间且与安卓应用安装包的发布时间最接近的库文件作为起点,按照时间向前的顺序迭代选择库文件。
有益效果:
本发明针对安卓兼容环境采用的处理器的不同生成安卓应用各版本安装的安装优先级,再依据安装优先级依次安装和运行不同版本的安装包,以能够正确运行的版本作为参考修复第一优先级版本,从而实现安卓应用的优化安装,能够在保证高安卓应用兼容性的同时有效提高安卓应用的运行效率,从而提升用户在桌面系统中使用安卓应用的体验。
附图说明
图1为本发明提供的一种安卓应用在安卓兼容环境中的安装优化方法的流程图。
图2为本发明提供的一种安卓应用在安卓兼容环境中的安装优化系统的结构图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
现有安卓兼容环境往往采用安卓系统安装安卓应用的方式实现安卓应用的安装,然而现有安装方式中并没有为用户提供自主选择库文件版本的接口,因此,当出现安卓兼容环境采用的处理器与安卓应用安装包所带依赖的库文件的版本不一致的情况时,往往会直接导致出现安卓应用无法安装的问题。安卓兼容环境采用的处理器一般就是当前宿主机所在的物理机器的处理器,因此本发明中将安卓兼容环境采用的处理器称为本地处理器。
针对这一问题,本发明提供了一种安卓应用在安卓兼容环境中的安装优化方法及系统,其核心思想是,通过在安卓兼容环境中增加对安卓应用安装及运行过程的监测功能,发现并定位安卓应用运行过程中出现的问题,根据问题调整安装策略,最终完成安卓应用在安卓兼容环境中的优化安装。
本发明提供的一种安卓应用在安卓兼容环境中的安装优化方法,流程如图1所示,具体包括以下步骤:
步骤1、当用户在安卓兼容环境中启动待安装安卓应用的安装时,安卓兼容环境提取待安装安卓应用的安装包的版本信息,并根据安卓兼容环境所采用的本地处理器的版本,确定待安装安卓应用中各版安装包的安装优先级。
安装优先级,描述了待安装安卓应用在安卓兼容环境中安装时可选用的库文件版本的优先顺序。优先顺序可以根据用户需要自定义确定。
进一步地,为了提高后续处理的效率,本发明还提出了确定待安装安卓应用的安装优先级的原则,主要是:首先优先选择与本地处理器具有相同指令集的版本,其次优先选择具有相同运算位数的版本,最后优先选择新发布的版本。即,当两个版本针对的是相同的指令集时,则优先选择具有相同运算位数的版本;如果两个版本的指令集和运算位数均相同,则在发布时间早于待安装安卓应用的发布时间的版本中优先选择发布时间与待安装安卓应用的发布时间最接近的版本。本发明中,运算位数是指处理器的运算位数,以及安装包内库文件所针对处理器的运算位数。
例如,对于某个安卓应用,其安装包中包含了x86、ARMv7、ARM(32位)和ARMv8等版本的库文件,当本地处理器为x64(即64位的x86)架构时,该安卓应用的安装优先级从高到低为x86> ARMv8> ARMv7(32位)> ARM(32位),即安装该安卓应用时首选选择安装x86版本的库文件,如果安装失败则安装ARMv8版本的库文件,如果ARMv8版本的库文件也安装失败,则安装ARMv7(32位)版本的库文件,如果ARMv7(32位)版本安装失败则安装ARM(32位)版本的库文件。
步骤2、从步骤1得到的安装优先级中从第一优先级的版本开始进行安装运行,若当前版本安装运行失败,则按照安装优先级顺序选择下一个版本进行安装运行,直至安装运行成功,记录安装运行成功的待安装安卓应用安装包的版本信息作为成功版本。若成功版本为第一优先级版本,则完成待安装安卓应用的优化安装,退出本流程;否则,卸载已安装的成功版本,以成功版本作为参考版本,执行步骤3。
步骤3、选择第一优先级版本执行安装,安装完成后运行待安装安卓应用,同时在安卓兼容环境中监测安卓应用的运行过程,根据运行过程中出现的问题修改第一优先级版本直至第一优先级版本能够安装运行成功,由安装运行成功的第一优先级版本形成适配于本地处理器的待安装安卓应用的安装包,从而完成待安装安卓应用安装的优化过程。
对于与本地处理器的版本不一致的成功版本来说,虽然当前的成功版本解决了安卓应用的可安装及可用问题,但是由于其与处理器版本不同可能会导致该安卓应用在后续使用过程中出现效率不高及适配不佳等其他问题,从而影响用户的体验。为此,本发明提出基于成功版本对与本地处理器版本相同的安装包进行修复的方式,构建与本地处理器更加匹配的安装包,以实现对安卓应用安装过程的优化。
本发明在安卓兼容环境中监测安卓应用的安装和运行过程以检测安卓应用安装包的加载和运行错误确定错误原因的过程,可采用以下方式之一实现:修改安卓兼容环境的linker、修改安卓兼容环境的ART库加载接口、修改安卓兼容环境中Dalvik虚拟机的库加载接口等。
目前安卓应用的安装过程一般包括:首先将安卓应用APK安装包复制到data/app目录下,然后解压并扫描安装包,再把dex文件(Dalvik字节码)保存到dalvik-cache目录,最后在data/data目录下创建对应的应用数据目录。由此可见安卓应用在安卓兼容环境中的安装过程实质上是安装包的解压及复制过程,因此安卓应用在安卓兼容环境中的安装过程往往不会发现错误,因此能够检验安卓应用的安装包是否适用于安卓兼容环境的方式则是检测安卓应用能否在安卓兼容环境中正确地运行。
安卓应用在安卓兼容环境中运行时出现错误的原因主要包括:安卓应用缺少库文件、依赖的库文件的指令集不匹配、依赖的库文件的版本不匹配、依赖的库文件缺少必要的符号等。针对这些问题,本发明给出了根据监测结果修改第一优先级版本直至第一优先级版本能够安装运行成功的具体的实例,包括以下步骤:
步骤3.1、安装待安装安卓应用的第一优先级版本。
步骤3.2、运行已安装的安卓应用,当运行错误时,终止当前安卓应用的运行,执行步骤3.3;若运行正常,则执行步骤3.5。
步骤3.3、若运行错误的原因为缺少库文件,则首先确定缺少的库文件的名称,再根据参考版本中该库文件的版本信息,查找能够与本地处理器适配且版本一致的库文件,将查找到的库文件补充到第一优先级版本的安装包中以更新第一优先级版本,执行步骤3.2;
若运行错误的原因为库文件针对的指令集与本地处理器的指令集不匹配,则根据参考版本中该库文件的版本信息,查找具有与本地处理器相同指令集的库文件,使用查找到的库文件替换第一优先级版本的安装包中具有相同名称的库文件,执行步骤3.2;
若运行错误的原因为库文件的版本与参考版本中同名库文件的版本不同,则根据参考版本中该库文件的版本信息,查找能够与本地处理器适配且版本一致的库文件,使用查找到的库文件替换第一优先级版本的安装包中具有相同名称的库文件,执行步骤3.2;
若运行错误的原因为库文件缺少符号,由于参考版本中的同名库文件缺少版本标识,因此需要根据库文件的名称查找到同名库文件的多个版本,再从这些版本中选出包含上述缺少的符号的版本形成待测试版本集合,执行步骤3.4。
步骤3.4、选择待测试版本集合中的未被选择过的库文件替换第一优先级版本的安装包中具有相同名称的库文件,运行安卓应用,若运行成功,则执行步骤3.5;若运行失败,则执行步骤3.4。
其中,选择待测试版本集合中的未被选择过的版本的方式,可以是随机从待测试版本集合中任选一个库文件版本,也可以是顺序从待测试版本集合中选择库文件版本,还可以采用二分法依次从待测试版本集合中选择库文件版本,还可以在待测试版本集合中以发布时间同时满足早于安卓应用安装包的发布时间且与安卓应用安装包的发布时间最接近这两个条件的库文件版本为基础按照时间向前依次选择库文件版本。
步骤3.5、保存当前的安装包作为待安装安卓应用的安装包,结束当前优化过程。
本发明中库文件的查找方式通常为从Linux的官方软件源或镜像软件源中进行查找,此外,为了提高优化安装的效率,本发明还提供了存在本地的库文件数据库,库文件数据库用于存储安卓应用所依赖的各个版本的库文件。
基于本发明提供的一种安卓应用在安卓兼容环境中的安装优化方法,本发明提供了一种安卓应用在安卓兼容环境中的安装优化系统,结构图如图2所示,包括运行于安卓兼容环境中的安装优先级生成模块、预安装模块、安装运行优化模块、运行监测模块、错误解析模块及错误处理模块。
其中,安装优先级生成模块,用于提取待安装安卓应用的安装包内库文件的相关信息,并根据安卓兼容环境所采用的本地处理器的版本生成待安装安卓应用的安装优先级。生成待安装安卓应用的安装优先级的方式为:首先优先选择与本地处理器具有相同指令集的版本,其次优先选择具有相同运算位数的版本,最后优先选择新发布的版本。
预安装模块,用于根据安装优先级生成模块生成的安装优先级,从第一优先级的版本开始顺序安装直至安装成功;若安装成功的版本为第一优先级版本,则保存当前的安装包作为待安装安卓应用的安装包,并通知用户已完成安装;若安装成功的版本不是第一优先级版本,则将成功版本作为参考版本发送至安装运行优化模块,同时卸载成功版本。
安装运行优化模块,用根据参考版本安装和运行第一优先级版本。具体过程如下:当接收到安装模块发送的参考版本后或接收到错误处理模块的信息后启动安装第一优先级版本,安装成功后,运行已安装的第一优先级版本,同时通知运行监测模块监测安卓应用的运行过程,若运行正常,则保存当前的安装包作为待安装安卓应用的安装包,并通知用户已完成安装;若运行失败,则终止安卓应用的运行,并将参考版本及从运行监测模块接收到的监测信息发送到错误解析模块。
运行监测模块,用于在安卓兼容环境中监测安卓应用的运行过程,当安卓应用运行出现错误时将监测信息发送到安装运行优化模块。运行监测模块的功能可采用以下方式之一实现:修改安卓兼容环境的Linker、修改安卓兼容环境的ART库加载接口、修改安卓兼容环境中Dalvik虚拟机的库加载接口等。
错误解析模块,用于根据安装运行优化模块发送的监测结果判断安卓应用运行错误的原因,若错误原因为缺少库文件,则通过解析监测结果确定缺少的库文件的名称,再解析参考版本获取缺少的库文件的版本信息,将缺少的库文件的名称和版本信息发送到错误处理模块;若错误原因为库文件采用的指令集与本地处理器不匹配,则解析参考版本获取不匹配的库文件的版本信息,将库文件的名称及版本信息发送到错误处理模块;若错误原因为库文件的版本与参考版本中同名库文件的版本不同,则解析参考版本获取该库文件的版本信息,将库文件的名称及版本信息发送到错误处理模块;若错误原因为库文件缺少符号,则将库文件的名称发送到错误处理模块。
错误处理模块,用于处理安卓应用运行过程中产生的错误,具体方式为:当从错误解析模块接收到的信息为库文件的名称及版本信息时,则根据这些信息查找需要的库文件,再将查找到的库文件补充或替换到待安装安卓应用的第一优先级版本的安装包中,最后通知安装运行优化模块重新运行安卓应用;当从错误解析模块接收到的信息仅为库文件的名称时,则查找到同名库文件的多个版本,再从这些版本中选出包含缺少的符号的版本形成待测试版本集合,遍历选择待测试版本集合中的库文件替换第一优先级版本的安装包中具有相同名称的库文件,重新运行安卓应用,直到找到能使安卓应用运行成功的库文件,将当前安装包作为最终安装包,并通知用户已完成安装。
其中,选择待测试版本集合中的未被选择过的版本的方式,可以是随机从待测试版本集合中任选一个库文件版本,也可以是顺序从待测试版本集合中选择库文件版本,还可以采用二分法依次从待测试版本集合中选择库文件版本,还可以在待测试版本集合中以发布时间同时满足早于安卓应用安装包的发布时间且与安卓应用安装包的发布时间最接近这两个条件的库文件版本为基础按照时间向前依次选择库文件版本。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种安卓应用在安卓兼容环境中的安装优化方法,其特征在于,包括以下步骤:
确定安卓应用中各安装包的版本信息,根据安卓兼容环境所采用的本地处理器的版本,确定所述安卓应用中各安装包的安装优先级;
根据所述安装优先级依次在所述安卓兼容环境中安装并运行所述安卓应用的各安装包,若第一优先级安装包安装并运行成功,则所述安卓应用的安装优化完成,结束本流程;否则,以安装并运行成功的安装包作为参考版本;
在所述安卓兼容环境中安装并运行第一优先级安装包,监测第一优先级安装包的运行过程,根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包直至第一优先级安装包安装运行成功,完成所述安卓应用的安装优化。
2.根据权利要求1所述的安装优化方法,其特征在于,所述安装优先级的确定方式为:首先优先选择与本地处理器具有相同指令集的版本,其次优先选择具有相同运算位数的版本,最后优先选择新发布的版本。
3.根据权利要求1所述的安装优化方法,其特征在于,所述根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包的过程中,当所述问题的原因为缺少库文件时修改第一优先级安装包的方式为:首先确定缺少的库文件的名称,再根据所述参考版本中相应库文件的信息确定缺少的库文件的版本信息,根据得到的库文件的名称及版本信息,查找具有与本地处理器相同指令集的且版本一致的库文件,将查找到的库文件补充到第一优先级安装包中。
4.根据权利要求1所述的安装优化方法,其特征在于,所述根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包的过程中,当所述问题的原因为库文件针对的指令集与本地处理器的指令集不匹配时修改第一优先级安装包的方式为:根据所述参考版本中相应库文件的信息确定错误库文件的版本信息,使用库文件的名称及得到的版本信息,查找具有与本地处理器相同指令集的且版本一致的库文件,将查找到的库文件替换到第一优先级安装包中。
5.根据权利要求1所述的安装优化方法,其特征在于,所述根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包的过程中,当所述问题的原因为库文件的版本与参考版本中同名库文件的版本不同时修改第一优先级安装包的方式为:根据参考版本中相应库文件的信息确定错误库文件的版本信息,使用库文件的名称及得到的版本信息,查找具有与本地处理器相同指令集的且版本一致的库文件,将查找到的库文件替换到第一优先级安装包中。
6.根据权利要求1所述的安装优化方法,其特征在于,所述根据所述参考版本针对运行过程中出现的问题迭代修改第一优先级安装包的过程中,当所述问题的原因为库文件缺少符号时修改第一优先级安装包的方式为:确定错误库文件的名称及缺少的符号名称,根据库文件的名称及符号名称查找到同名库文件的多个版本,再从这些版本中选出包含缺少的符号的形成待测试版本集合;迭代选择所述待测试版本集合中的未被选择过的库文件替换第一优先级安装包中同名的库文件,运行安卓应用,直至安卓应用运行成功,则第一优先级安装包修改完成。
7.根据权利要求6所述的安装优化方法,其特征在于,所述迭代选择所述待测试版本集合中的未被选择过的库文件的方式为:在所述待测试版本集合中选择发布时间早于安卓应用安装包的发布时间且与安卓应用安装包的发布时间最接近的库文件作为起点,按照时间向前的顺序迭代选择库文件。
8.根据权利要求1所述的安装优化方法,其特征在于,所述监测第一优先级安装包的运行过程采用如下方式实现:修改安卓兼容环境的Linker、修改安卓兼容环境的ART库加载接口或修改安卓兼容环境中Dalvik虚拟机的库加载接口。
9.一种安卓应用在安卓兼容环境中的安装优化系统,其特征在于,包括:安装优先级生成模块、预安装模块、安装运行优化模块、运行监测模块、错误解析模块及错误处理模块;
其中,所述安装优先级生成模块,用于提取安卓应用的安装包内库文件的版本信息,并根据安卓兼容环境所采用的本地处理器的版本生成所述安卓应用的安装优先级;
所述预安装模块,用于根据所述安装优先级生成模块生成的所述安装优先级,从第一优先级安装包顺序安装运行各安装包直至安卓应用运行成功;若第一优先级安装包安装运行成功,则将第一优先级安装包作为安卓应用的安装包,完成安卓应用的安装优化;若安装运行成功的不是第一优先级安装包,则将成功安装运行的安装包作为参考版本发送至所述安装运行优化模块,同时卸载成功安装运行的安装包;
所述安装运行优化模块,用于根据所述预安装模块输出的参考版本安装运行第一优先级安装包,通知所述运行监测模块监测安卓应用的运行过程,若运行正常,则保存当前的安装包作为安卓应用的安装包,完成安卓应用的安装优化;若运行失败,则终止安卓应用的运行,并将参考版本发送到所述错误解析模块;
所述运行监测模块,用于在安卓兼容环境中监测安卓应用的运行过程,当安卓应用运行出现错误时形成监测信息;
所述错误解析模块,用于当接收到所述安装运行优化模块发送的参考版本时获取所述运行监测模块生成的监测信息,根据监测信息判断安卓应用运行错误的原因,若错误原因为缺少库文件,则解析监测信息确定缺少的库文件的名称,再解析参考版本获取缺少的库文件的版本信息,将缺少的库文件的名称和版本信息发送到所述错误处理模块;若错误原因为库文件采用的指令集与本地处理器不匹配,则解析参考版本获取不匹配的库文件的版本信息,将库文件的名称及版本信息发送到所述错误处理模块;若错误原因为库文件的版本与参考版本中同名库文件的版本不同,则解析参考版本获取该库文件的版本信息,将库文件的名称及版本信息发送到所述错误处理模块;若错误原因为库文件缺少符号,则将库文件的名称发送到所述错误处理模块;
所述错误处理模块,用于当接收到的所述错误解析模块发送的信息为库文件的名称及版本信息时,则根据这些信息查找库文件,再将查找到的库文件补充或替换到安卓应用的第一优先级安装包中,最后通知所述安装运行优化模块重新运行安卓应用;当接收到的信息仅为库文件的名称时,则查找到同名库文件的多个版本,再从这些版本中选出包含缺少的符号的版本形成待测试版本集合,在所述待测试版本集合选择库文件替换第一优先级版本的安装包中同名的库文件,重新运行安卓应用,直到找到能使安卓应用运行成功的库文件,将当前安装包作为最终安装包,完成安卓应用的安装优化。
10.根据权利要求9所述的安装优化系统,其特征在于,所述错误处理模块在所述待测试版本集合选择库文件替换第一优先级版本的安装包中同名的库文件的方式为:在所述待测试版本集合中选择发布时间早于安卓应用安装包的发布时间且与安卓应用安装包的发布时间最接近的库文件作为起点,按照时间向前的顺序迭代选择库文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111448902.8A CN113849200B (zh) | 2021-12-01 | 2021-12-01 | 一种安卓应用在安卓兼容环境中的安装优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111448902.8A CN113849200B (zh) | 2021-12-01 | 2021-12-01 | 一种安卓应用在安卓兼容环境中的安装优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113849200A true CN113849200A (zh) | 2021-12-28 |
CN113849200B CN113849200B (zh) | 2022-03-29 |
Family
ID=78982598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111448902.8A Active CN113849200B (zh) | 2021-12-01 | 2021-12-01 | 一种安卓应用在安卓兼容环境中的安装优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113849200B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860327A (zh) * | 2022-07-07 | 2022-08-05 | 北京麟卓信息科技有限公司 | 一种安卓兼容环境中安卓应用的快速启动方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294506A (zh) * | 2013-05-07 | 2013-09-11 | 北京卓易讯畅科技有限公司 | 确定目标应用的多个版本应用所对应优先级的方法与设备 |
US20180189082A1 (en) * | 2015-07-06 | 2018-07-05 | Zhaoqi Zhang | Application program management method for multiple hardware platforms |
CN112363734A (zh) * | 2020-11-03 | 2021-02-12 | 北京麟卓信息科技有限公司 | 一种Android应用安装时采用本地库的方法和装置 |
CN112486517A (zh) * | 2020-11-30 | 2021-03-12 | 展讯半导体(南京)有限公司 | 应用程序的安装方法、系统、电子设备及存储介质 |
CN112947947A (zh) * | 2019-12-11 | 2021-06-11 | 华为终端有限公司 | 安装包的下载方法、分发方法、终端设备、服务器及系统 |
-
2021
- 2021-12-01 CN CN202111448902.8A patent/CN113849200B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294506A (zh) * | 2013-05-07 | 2013-09-11 | 北京卓易讯畅科技有限公司 | 确定目标应用的多个版本应用所对应优先级的方法与设备 |
US20180189082A1 (en) * | 2015-07-06 | 2018-07-05 | Zhaoqi Zhang | Application program management method for multiple hardware platforms |
CN112947947A (zh) * | 2019-12-11 | 2021-06-11 | 华为终端有限公司 | 安装包的下载方法、分发方法、终端设备、服务器及系统 |
CN112363734A (zh) * | 2020-11-03 | 2021-02-12 | 北京麟卓信息科技有限公司 | 一种Android应用安装时采用本地库的方法和装置 |
CN112486517A (zh) * | 2020-11-30 | 2021-03-12 | 展讯半导体(南京)有限公司 | 应用程序的安装方法、系统、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860327A (zh) * | 2022-07-07 | 2022-08-05 | 北京麟卓信息科技有限公司 | 一种安卓兼容环境中安卓应用的快速启动方法 |
CN114860327B (zh) * | 2022-07-07 | 2022-09-23 | 北京麟卓信息科技有限公司 | 一种安卓兼容环境中安卓应用的快速启动方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113849200B (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6353928B1 (en) | First run installer | |
US7237238B2 (en) | Method and apparatus for automated operating systems upgrade | |
US9329959B2 (en) | Device and method for performing regression testing on bios boot information | |
US9606791B2 (en) | Controlled method and apparatus to securely install and update software | |
RU2580065C2 (ru) | Способ и система обновления программного обеспечения | |
US9928059B1 (en) | Automated deployment of a multi-version application in a network-based computing environment | |
US20110320882A1 (en) | Accelerated virtual environments deployment troubleshooting based on two level file system signature | |
JP2021002317A (ja) | アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体 | |
US20080282229A1 (en) | Apparatus and method of detecting errors in embedded software | |
CN111562934B (zh) | 一种基于热补丁的软件系统升级方法、终端及存储介质 | |
US10579513B2 (en) | Test run control method and apparatus | |
CN107220074B (zh) | 对支撑层软件功能的访问、升级方法及装置 | |
CN110597544A (zh) | 一种软件系统升级方法及装置 | |
US9141385B2 (en) | Managing operating system components | |
CN110780942A (zh) | 系统启动方法、装置、节点设备及计算机可读存储介质 | |
CN113849200B (zh) | 一种安卓应用在安卓兼容环境中的安装优化方法及系统 | |
CN111698558A (zh) | 电视软件升级方法、电视终端及计算机可读存储介质 | |
CN114860291A (zh) | 一种引导及应用程序灵活储存与升级的方法 | |
CN113900693A (zh) | 一种固件升级方法、装置、系统、电子设备及存储介质 | |
CN116880877A (zh) | 虚拟机增强工具升级方法、装置、计算机设备和存储介质 | |
CN102087607B (zh) | 补丁包的安装方法及装置 | |
US20070174294A1 (en) | Automated downloading from mainframe to local area network | |
CN111782236A (zh) | 系统软件升级方法、装置、存储介质及一体机设备 | |
CN113220279A (zh) | 一种代码索引管理方法、装置、设备及介质 | |
CN103823693A (zh) | 补丁包安装方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |