CN112486517B - 应用程序的安装方法、系统、电子设备及存储介质 - Google Patents
应用程序的安装方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112486517B CN112486517B CN202011383301.9A CN202011383301A CN112486517B CN 112486517 B CN112486517 B CN 112486517B CN 202011383301 A CN202011383301 A CN 202011383301A CN 112486517 B CN112486517 B CN 112486517B
- Authority
- CN
- China
- Prior art keywords
- path
- library
- application program
- library set
- installation
- 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.)
- Active
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用于安卓终端的应用程序的安装方法、系统、电子设备及存储介质。其中,安装方法包括:判断应用程序是否列入预设名单,预设名单根据安卓终端的CPU类型确定;若列入,则按照ABI目录优先级从高到低的顺序,依次判断应用程序的数据目录所包括的ABI目录下是否存在so库集合;若存在,则返回当前ABI目录下的so库集合;根据返回的so库集合完成应用程序的安装。本发明在用户毫无感知的情况下,基于根据安卓终端的CPU类型确定的预设名单,来选择应用程序中与该安卓终端最优适配的so库集合,so库集合的确定灵活且不僵化,提高了应用程序在该安卓终端上安装运行的成功率,有利于应用程序在该安卓终端上的运行。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种应用程序的安装方法、系统、电子设备及存储介质。
背景技术
Android(安卓)终端的应用市场所提供的大部分应用都是基于ARM(一种处理器)ABI(Application Binary Interface,应用程序二进制接口)开发的,并且大多数应用程序的厂商所发布的应用程序都无法支持x86(一种处理器)指令集。对于那些同时存在ARM库和x86库的应用程序,按照默认的安装流程将其安装到x86设备上时会优先使用x86库,但是,很多第三方发布的应用程序中,对x86 lib(静态库)的支持不够完善,存在缺库的情况,如此,应用程序就会因为找不到库而安装运行失败。
因此,当前适用于安卓终端的大部分应用程序由于无法适配所有CPU架构,兼容性较差并且运行环境受到限制,例如,在x86设备上高概率地运行失败。对此,通常的解决方式在于,联系应用程序的开发者使之重新打包发布能够适配当前CPU架构的应用程序,但是,该种解决方式存在着开发者的联系方式不易获取,兼容所有CPU架构不利于应用程序的精简,运行失败的问题短时间内无法解决等缺陷,也就难以解决上述缺陷。
发明内容
本发明要解决的技术问题是为了克服现有技术中安卓终端的大部分应用程序无法适配所有CPU架构的缺陷,提供一种应用程序的安装方法、系统、电子设备及存储介质。
本发明是通过下述技术方案来解决上述技术问题:
一种应用程序的安装方法,所述安装方法应用于安卓终端,所述安装方法包括:
判断所述应用程序是否列入预设名单,所述预设名单根据所述安卓终端的CPU类型确定;
若列入,则按照ABI目录优先级从高到低的顺序,依次判断所述应用程序的数据目录所包括的ABI目录下是否存在so(shared object,共享对象)库集合;
若存在,则返回当前ABI目录下的so库集合;
根据返回的so库集合完成所述应用程序的安装。
较佳地,在所述应用程序未列入所述预设名单时还包括:
判断所述数据目录所包括的第一路径下的so库集合与第二路径下的so库集合是否相同;
若是,则返回所述第二路径下的so库集合,并执行所述根据返回的so库集合完成所述应用程序的安装的步骤;
其中,所述第二路径与所述安卓终端的CPU类型对应,所述第一路径与除所述安卓终端的CPU类型之外的其他CPU类型对应。
较佳地,在所述第一路径下的so库集合与所述第二路径下的so库集合不相同时还包括:
判断所述第一路径与所述第二路径下的so库集合是否均包括在预设第三方so库文件中;
若均包括,则判断所述第二路径下的so库集合所包括的so库的数量是否大于所述第一路径下的so库集合所包括的so库的数量;
若大于,则返回所述第二路径下的so库集合,并执行所述根据返回的so库集合完成所述应用程序的安装的步骤;
若不大于,则返回所述第一路径下的so库集合,并执行所述根据返回的so库集合完成所述应用程序的安装的步骤;
和/或,
所述第一路径对应ARM架构的CPU,所述第二路径对应x86架构的CPU。
较佳地,所述安装方法还包括:
在所述数据目录中创建与返回的so库集合对应的目标文件;
在所述判断所述应用程序是否列入预设名单的步骤之前还包括:
判断所述数据目录中是否包括所述目标文件;
若是,则返回与所述目标文件对应的so库集合,并执行所述根据返回的so库集合完成所述应用程序的安装的步骤;
若否,则执行所述判断所述应用程序是否列入预设名单的步骤。
较佳地,所述目标文件是隐藏文件;
和/或,
所述预设名单包括白名单和/或黑名单。
一种应用程序的安装系统,所述安装系统应用于安卓终端,所述安装系统包括:
第一判断模块,用于判断所述应用程序是否列入预设名单,所述预设名单根据所述安卓终端的CPU类型确定;
第二判断模块,用于在所述第一判断模块判断为是时,按照ABI目录优先级从高到低的顺序,依次判断所述应用程序的数据目录所包括的ABI目录下是否存在so库集合;
第一返回模块,用于在所述第二判断模块判断为是时,返回当前ABI目录下的so库集合;
安装模块,用于根据返回的so库集合完成所述应用程序的安装。
较佳地,所述安装系统还包括:
第三判断模块,用于在所述第一判断模块判断为否时,判断所述数据目录所包括的第一路径下的so库集合与第二路径下的so库集合是否相同;
第二返回模块,用于在所述第三判断模块判断为是时,返回所述第二路径下的so库集合,并调用所述安装模块;
其中,所述第二路径与所述安卓终端的CPU类型对应,所述第一路径与除所述安卓终端的CPU类型之外的其他CPU类型对应。
较佳地,所述安装系统还包括:
第四判断模块,用于在所述第三判断模块判断为否时,判断所述第一路径与所述第二路径下的so库集合是否均包括在预设第三方so库文件中;
第五判断模块,用于在所述第四判断模块判断为是时,判断所述第二路径下的so库集合所包括的so库的数量是否大于所述第一路径下的so库集合所包括的so库的数量;
第三返回模块,用于在所述第五判断模块判断为是时,返回所述第二路径下的so库集合,并调用所述安装模块;
第四返回模块,用于在所述第五判断模块判断为否时,返回所述第一路径下的so库集合,并调用所述安装模块;
和/或,
所述第一路径对应ARM架构的CPU,所述第二路径对应x86架构的CPU。
较佳地,所述安装系统还包括:
创建模块,用于在所述数据目录中创建与返回的so库集合对应的目标文件;
第六判断模块,用于判断所述数据目录中是否包括所述目标文件;
第五返回模块,用于在所述第六判断模块判断为是时,返回与所述目标文件对应的so库集合,并调用所述安装模块;
所述第一判断模块具体用于在所述第六判断模块判断为否时,判断所述应用程序是否列入预设名单。
较佳地,所述目标文件是隐藏文件;
和/或,
所述预设名单包括白名单和/或黑名单。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种应用程序的安装方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种应用程序的安装方法的步骤。
本发明的积极进步效果在于:本发明在用户毫无感知的情况下,基于根据安卓终端的CPU类型确定的预设名单,来选择应用程序中与该安卓终端最优适配的so库集合,so库集合的确定方式灵活且不僵化,提高了应用程序在该安卓终端上安装运行的成功率,有利于应用程序在该安卓终端上的运行。
附图说明
图1为根据本发明实施例1的应用程序的安装方法的流程图。
图2为根据本发明实施例2的应用程序的安装系统的模块示意图。
图3为根据本发明实施例3的电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种应用于安卓终端的应用程序的安装方法,参照图1,本实施例的安装方法包括:
S101、判断应用程序是否列入预设名单;
若是,则执行步骤S102;若否,则执行步骤S105;
S102、按照ABI目录优先级从高到低的顺序,依次判断应用程序的数据目录所包括的ABI目录下是否存在so库集合;
若是,则执行步骤S103;
S103、返回当前ABI目录下的so库集合,并执行步骤S104;
S104、根据返回的so库集合完成应用程序的安装;
S105、判断数据目录所包括的第一路径下的so库集合与第二路径下的so库集合是否相同;
若是,则执行步骤S106;若否,则执行步骤S107;
S106、返回第二路径下的so库集合,并执行步骤S104;
S107、判断第一路径与第二路径下的so库集合是否均包括在预设第三方so库文件中;
若是,则执行步骤S108;
S108、判断第二路径下的so库集合所包括的so库的数量是否大于第一路径下的so库集合所包括的so库的数量;
若是,则执行步骤S109;若否,则执行步骤S110;
S109、返回第二路径下的so库集合,并执行步骤S104;
S110、返回第一路径下的so库集合,并执行步骤S104。
在本实施例中,预设名单优选根据安卓终端的CPU类型确定,进一步地,预设名单优选包括白名单与黑名单,其中,白名单中记载了能够与该安卓终端的CPU类型完美适配的应用程序,黑名单中记载了不能与该安卓终端的CPU类型完美适配的应用程序。
具体地,当应用程序列入了安卓终端对应的白名单时,可以根据该安卓终端的ro.product.cpu.abilist属性值,来确定该安卓终端所支持的ABI类型,继而确定该应用程序的数据目录中,该安卓设备所支持的优先级最高并且存在so库集合的ABI目录,并返回符合条件的ABI目录下的so库集合,以作为该应用程序中与该安卓终端最优适配的so库集合。
当应用程序列入了安卓终端对应的黑名单时,例如,该安卓终端的CPU采用了x86架构,而该应用程序能够与ARM架构的CPU适配,那么可以对支持ARM的ABI目录,按照armeabi-v7a、armeabi、arm64-v8a的优先级顺序,来确定其中优先级最高并且存在so库集合的ABI目录,并返回符合条件的ABI目录下的so库集合,以作为该应用程序中与该安卓终端最优适配的so库集合。
在本实施例中,so库集合包括若干so库,相应地,so库集合的相同,既需要so库集合所包括的so库的数量的相同,还需要so库集合所包括的so库的文件名称的相同。此外,在本实施例中,第二路径与安卓终端的CPU类型对应,第一路径与除安卓终端的CPU类型之外的其他CPU类型对应。
例如,安卓终端的CPU采用x86架构时,第二路径则对应x86架构并且可以将第二路径记作x86路径,第一路径例如可以对应ARM架构并且可以将第一路径记作ARM路径,步骤S105则需要判断,数据目录所包括的x86路径与ARM路径下的so库集合,在so库的数量与文件名称上是否均相同,并在判断为是时返回x86路径下的so库集合,在判断为否时返回ARM路径下的so库集合,以作为该应用程序中与该安卓终端最优适配的so库集合。
在本实施例中,预设第三方so库文件可以根据实际应用自定义设置。在上述第一路径记作ARM路径,第二路径记作x86路径的示例中,步骤S108则需判断预设第三方so库文件中,是否同时包括与x86路径以及ARM路径下的so库集合所包括的so库文件名称一致的so库,并在包括的情况下,进一步判断x86路径下的so库集合中是否存在不为ARM路径下的so库集合所包括的so库,并在判断为是时返回x86路径下的so库集合,在判断为否时返回ARM路径下的so库集合,以作为该应用程序中与该安卓终端最优适配的so库集合。而在预设第三方so库文件不同时包括与x86路径以及ARM路径下的so库集合所包括的so库文件名称一致的so库时,则按照现有的默认处理方式来选择so库集合。
参照图1,本实施例在步骤S110之后还包括:
S111、在数据目录中创建与返回的so库集合对应的目标文件。
在步骤S101之前还包括:
S100a、判断数据目录中是否包括目标文件;
若是,则执行步骤S100b;若否,则执行步骤S101;
S100b、返回与目标文件对应的so库集合,并执行步骤S104。
具体地,在本实施例中,目标文件的文件名称优选根据其对应的so库集合的文件名称确定,并且,目标文件优选采用隐藏文件,以提高应用程序的安全性。进一步地,本实施例中目标文件的创建,使得应用程序在该安卓终端上的第二次、第三次等后续安装时,能够快速返回与该安卓终端最优适配的so库集合,提高应用程序的后续安装效率,并实现用户体验感的提升。此外,在其他实施例中,步骤S111可以在步骤S110之前执行,本实施例并不旨在对步骤S111执行的先后顺序进行限定。
本实施例在用户毫无感知的情况下,基于根据安卓终端的CPU类型确定的预设名单,来选择应用程序中与该安卓终端最优适配的so库集合,so库集合的确定方式灵活且不僵化,提高了应用程序在该安卓终端上安装运行的成功率,有利于应用程序在该安卓终端上的运行。
实施例2
本实施例提供一种应用于安卓终端的应用程序的安装系统,参照图2,本实施例的安装系统包括:
第一判断模块101,用于判断应用程序是否列入预设名单;
第二判断模块102,用于在第一判断模块101判断为是时按照ABI目录优先级从高到低的顺序,依次判断应用程序的数据目录所包括的ABI目录下是否存在so库集合;
第一返回模块103,用于在第二判断模块102判断为是时,返回当前ABI目录下的so库集合,并调用安装模块104;
安装模块104,用于根据返回的so库集合完成应用程序的安装;
第三判断模块105,用于在第一判断模块101判断为否时,判断数据目录所包括的第一路径下的so库集合与第二路径下的so库集合是否相同;
第二返回模块106,用于在第三判断模块105判断为是时,返回第二路径下的so库集合,并调用安装模块104;
第四判断模块107,用于在第三判断模块105判断为否时,判断第一路径与第二路径下的so库集合是否均包括在预设第三方so库文件中;
第五判断模块108,用于在第四判断模块107判断为是时,判断第二路径下的so库集合所包括的so库的数量是否大于第一路径下的so库集合所包括的so库的数量;
第三返回模块109,用于在第五判断模块108判断为是时,返回第二路径下的so库集合,并调用安装模块104;
第四返回模块110,用于在第五判断模块108判断为否时,返回第一路径下的so库集合,并调用安装模块。
在本实施例中,预设名单优选根据安卓终端的CPU类型确定,进一步地,预设名单优选包括白名单与黑名单,其中,白名单中记载了能够与该安卓终端的CPU类型完美适配的应用程序,黑名单中记载了不能与该安卓终端的CPU类型完美适配的应用程序。
具体地,当应用程序列入了安卓终端对应的白名单时,可以根据该安卓终端的ro.product.cpu.abilist属性值,来确定该安卓终端所支持的ABI类型,继而确定该应用程序的数据目录中,该安卓设备所支持的优先级最高并且存在so库集合的ABI目录,并返回符合条件的ABI目录下的so库集合,以作为该应用程序中与该安卓终端最优适配的so库集合。
当应用程序列入了安卓终端对应的黑名单时,例如,该安卓终端的CPU采用了x86架构,而该应用程序能够与ARM架构的CPU适配,那么可以对支持ARM的ABI目录,按照armeabi-v7a、armeabi、arm64-v8a的优先级顺序,来确定其中优先级最高并且存在so库集合的ABI目录,并返回符合条件的ABI目录下的so库集合,以作为该应用程序中与该安卓终端最优适配的so库集合。
在本实施例中,so库集合包括若干so库,相应地,so库集合的相同,既需要so库集合所包括的so库的数量的相同,还需要so库集合所包括的so库的文件名称的相同。此外,在本实施例中,第二路径与安卓终端的CPU类型对应,第一路径与除安卓终端的CPU类型之外的其他CPU类型对应。
例如,安卓终端的CPU采用x86架构时,第二路径则对应x86架构并且可以将第二路径记作x86路径,第一路径例如可以对应ARM架构并且可以将第一路径记作ARM路径,第三判断模块105则需要判断,数据目录所包括的x86路径与ARM路径下的so库集合,在so库的数量与文件名称上是否均相同,并在判断为是时返回x86路径下的so库集合,在判断为否时返回ARM路径下的so库集合,以作为该应用程序中与该安卓终端最优适配的so库集合。
在本实施例中,预设第三方so库文件可以根据实际应用自定义设置。在上述第一路径记作ARM路径,第二路径记作x86路径的示例中,第五判断模块108则需判断预设第三方so库文件中,是否同时包括与x86路径以及ARM路径下的so库集合所包括的so库文件名称一致的so库,并在包括的情况下,进一步判断x86路径下的so库集合中是否存在不为ARM路径下的so库集合所包括的so库,并在判断为是时返回x86路径下的so库集合,在判断为否时返回ARM路径下的so库集合,以作为该应用程序中与该安卓终端最优适配的so库集合。而在预设第三方so库文件不同时包括与x86路径以及ARM路径下的so库集合所包括的so库文件名称一致的so库时,则按照现有的默认处理方式来选择so库集合。
参照图2,本实施例的安装系统还包括:
创建模块111,用于在数据目录中创建与返回的so库集合对应的目标文件。
第六判断模块100a,用于判断数据目录中是否包括目标文件;
第五返回模块100b,用于在第六判断模块判断为是时,返回与目标文件对应的so库集合,并调用安装模块104;
第一判断模块101相应地具体用于在第六判断模块100a判断为否时,判断应用程序是否列入预设名单。
具体地,在本实施例中,目标文件的文件名称优选根据其对应的so库集合的文件名称确定,并且,目标文件优选采用隐藏文件,以提高应用程序的安全性。进一步地,本实施例中目标文件的创建,使得应用程序在该安卓终端上的第二次、第三次等后续安装时,能够快速返回与该安卓终端最优适配的so库集合,提高应用程序的后续安装效率,并实现用户体验感的提升。
本实施例在用户毫无感知的情况下,基于根据安卓终端的CPU类型确定的预设名单,来选择应用程序中与该安卓终端最优适配的so库集合,so库集合的确定方式灵活且不僵化,提高了应用程序在该安卓终端上安装运行的成功率,有利于应用程序在该安卓终端上的运行。
实施例3
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例1提供的应用程序的安装方法。
图3示出了本实施例的硬件结构示意图,如图3所示,电子设备9具体包括:
至少一个处理器91、至少一个存储器92以及用于连接不同系统组件(包括处理器91和存储器92)的总线93,其中:
总线93包括数据总线、地址总线和控制总线。
存储器92包括易失性存储器,例如随机存取存储器(RAM)921和/或高速缓存存储器922,还可以进一步包括只读存储器(ROM)923。
存储器92还包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的应用程序的安装方法。
电子设备9进一步可以与一个或多个外部设备94(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口95进行。并且,电子设备9还可以通过网络适配器96与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器96通过总线93与电子设备9的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备9使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例4
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1所提供的应用程序的安装方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1所述的应用程序的安装方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种应用程序的安装方法,其特征在于,所述安装方法应用于安卓终端,所述安装方法包括:
判断所述应用程序是否列入预设名单,所述预设名单根据所述安卓终端的CPU类型确定;
若列入,则按照ABI目录优先级从高到低的顺序,依次判断所述应用程序的数据目录所包括的ABI目录下是否存在so库集合;
若存在,则返回当前ABI目录下的so库集合;
根据返回的so库集合完成所述应用程序的安装;
在所述应用程序未列入所述预设名单时还包括:
判断所述数据目录所包括的第一路径下的so库集合与第二路径下的so库集合是否相同;
若是,则返回所述第二路径下的so库集合,并执行所述根据返回的so库集合完成所述应用程序的安装的步骤;
其中,所述第二路径与所述安卓终端的CPU类型对应,所述第一路径与除所述安卓终端的CPU类型之外的其他CPU类型对应。
2.如权利要求1所述的应用程序的安装方法,其特征在于,在所述第一路径下的so库集合与所述第二路径下的so库集合不相同时还包括:
判断所述第一路径与所述第二路径下的so库集合是否均包括在预设第三方so库文件中;
若均包括,则判断所述第二路径下的so库集合所包括的so库的数量是否大于所述第一路径下的so库集合所包括的so库的数量;
若大于,则返回所述第二路径下的so库集合,并执行所述根据返回的so库集合完成所述应用程序的安装的步骤;
若不大于,则返回所述第一路径下的so库集合,并执行所述根据返回的so库集合完成所述应用程序的安装的步骤;
和/或,
所述第一路径对应ARM架构的CPU,所述第二路径对应x86架构的CPU。
3.如权利要求1所述的应用程序的安装方法,其特征在于,所述安装方法还包括:
在所述数据目录中创建与返回的so库集合对应的目标文件;
在所述判断所述应用程序是否列入预设名单的步骤之前还包括:
判断所述数据目录中是否包括所述目标文件;
若是,则返回与所述目标文件对应的so库集合,并执行所述根据返回的so库集合完成所述应用程序的安装的步骤;
若否,则执行所述判断所述应用程序是否列入预设名单的步骤。
4.如权利要求3所述的应用程序的安装方法,其特征在于,所述目标文件是隐藏文件;
和/或,
所述预设名单包括白名单和/或黑名单。
5.一种应用程序的安装系统,其特征在于,所述安装系统应用于安卓终端,所述安装系统包括:
第一判断模块,用于判断所述应用程序是否列入预设名单,所述预设名单根据所述安卓终端的CPU类型确定;
第二判断模块,用于在所述第一判断模块判断为是时,按照ABI目录优先级从高到低的顺序,依次判断所述应用程序的数据目录所包括的ABI目录下是否存在so库集合;
第一返回模块,用于在所述第二判断模块判断为是时,返回当前ABI目录下的so库集合;
安装模块,用于根据返回的so库集合完成所述应用程序的安装;
所述安装系统还包括:
第三判断模块,用于在所述第一判断模块判断为否时,判断所述数据目录所包括的第一路径下的so库集合与第二路径下的so库集合是否相同;
第二返回模块,用于在所述第三判断模块判断为是时,返回所述第二路径下的so库集合,并调用所述安装模块;
其中,所述第二路径与所述安卓终端的CPU类型对应,所述第一路径与除所述安卓终端的CPU类型之外的其他CPU类型对应。
6.如权利要求5所述的应用程序的安装系统,其特征在于,所述安装系统还包括:
第四判断模块,用于在所述第三判断模块判断为否时,判断所述第一路径与所述第二路径下的so库集合是否均包括在预设第三方so库文件中;
第五判断模块,用于在所述第四判断模块判断为是时,判断所述第二路径下的so库集合所包括的so库的数量是否大于所述第一路径下的so库集合所包括的so库的数量;
第三返回模块,用于在所述第五判断模块判断为是时,返回所述第二路径下的so库集合,并调用所述安装模块;
第四返回模块,用于在所述第五判断模块判断为否时,返回所述第一路径下的so库集合,并调用所述安装模块;
和/或,
所述第一路径对应ARM架构的CPU,所述第二路径对应x86架构的CPU。
7.如权利要求5所述的应用程序的安装系统,其特征在于,所述安装系统还包括:
创建模块,用于在所述数据目录中创建与返回的so库集合对应的目标文件;
第六判断模块,用于判断所述数据目录中是否包括所述目标文件;
第五返回模块,用于在所述第六判断模块判断为是时,返回与所述目标文件对应的so库集合,并调用所述安装模块;
所述第一判断模块具体用于在所述第六判断模块判断为否时,判断所述应用程序是否列入预设名单。
8.如权利要求7所述的应用程序的安装系统,其特征在于,所述目标文件是隐藏文件;
和/或,
所述预设名单包括白名单和/或黑名单。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的应用程序的安装方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的应用程序的安装方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011383301.9A CN112486517B (zh) | 2020-11-30 | 2020-11-30 | 应用程序的安装方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011383301.9A CN112486517B (zh) | 2020-11-30 | 2020-11-30 | 应用程序的安装方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112486517A CN112486517A (zh) | 2021-03-12 |
CN112486517B true CN112486517B (zh) | 2023-03-24 |
Family
ID=74937962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011383301.9A Active CN112486517B (zh) | 2020-11-30 | 2020-11-30 | 应用程序的安装方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486517B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849200B (zh) * | 2021-12-01 | 2022-03-29 | 北京麟卓信息科技有限公司 | 一种安卓应用在安卓兼容环境中的安装优化方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334028A (zh) * | 2019-07-08 | 2019-10-15 | 北京智游网安科技有限公司 | 一种安卓模拟器检测方法、计算机设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105700936A (zh) * | 2016-01-14 | 2016-06-22 | 福州靠谱网络有限公司 | 一种安卓模拟器应用程序运行方法和装置 |
CN106055375B (zh) * | 2016-07-13 | 2020-02-28 | 青岛海信移动通信技术股份有限公司 | 应用程序安装方法及装置 |
CN106406945A (zh) * | 2016-09-09 | 2017-02-15 | 武汉斗鱼网络科技有限公司 | 一种安卓系统so文件的加载方法及电子设备 |
CN106503546A (zh) * | 2016-09-22 | 2017-03-15 | 山东浪潮商用系统有限公司 | 一种安卓应用程序的检测筛选方法 |
-
2020
- 2020-11-30 CN CN202011383301.9A patent/CN112486517B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334028A (zh) * | 2019-07-08 | 2019-10-15 | 北京智游网安科技有限公司 | 一种安卓模拟器检测方法、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112486517A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8073673B2 (en) | Emulated memory management | |
CN110515647B (zh) | 一种静态资源管理方法、装置、设备和存储介质 | |
CN111124288B (zh) | 一种vpd存储管理方法、装置、设备及可读存储介质 | |
CN110716845A (zh) | 一种Android系统的日志信息读取的方法 | |
US20230259358A1 (en) | Documentation enforcement during compilation | |
CN112631621A (zh) | 一种依赖包管理方法、装置、服务器及存储介质 | |
CN113760306A (zh) | 安装软件的方法、装置、电子设备及存储介质 | |
CN112486517B (zh) | 应用程序的安装方法、系统、电子设备及存储介质 | |
CN111857797B (zh) | 一种镜像构建方法、系统及相关装置 | |
CN118069745A (zh) | 基于事务日志的SQL Server增量获取方法、存储介质及设备 | |
CN111694684A (zh) | 存储设备的异常构造方法、装置、电子设备及存储介质 | |
CN112256277A (zh) | 软件编译的方法、系统、电子设备及存储介质 | |
CN115454827B (zh) | 兼容性检测方法、系统、设备和介质 | |
US8819494B2 (en) | Automatically changing parts in response to tests | |
CN115080114B (zh) | 应用程序的移植处理方法、装置和介质 | |
CN113835625B (zh) | 一种基于子路径的数据存储方法、装置、设备及存储介质 | |
CN111596997B (zh) | Ui信息的请求方法、装置、终端和存储介质 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 | |
CN114116030A (zh) | 操作系统的运行方法、装置、电子设备、存储介质 | |
CN109634636B (zh) | 应用处理方法、装置、设备和介质 | |
CN113986385A (zh) | 项目字体库加载方法、装置、电子设备及存储介质 | |
CN112114811A (zh) | 一种编译方法、装置和设备 | |
CN113110846A (zh) | 一种环境变量的获取方法及装置 | |
CN108769246B (zh) | 一种nfs共享最大化的测试方法和系统 | |
CN112083939A (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 |