CN112052028A - 一种安卓应用程序包的生成方法、终端及存储介质 - Google Patents
一种安卓应用程序包的生成方法、终端及存储介质 Download PDFInfo
- Publication number
- CN112052028A CN112052028A CN202010841480.XA CN202010841480A CN112052028A CN 112052028 A CN112052028 A CN 112052028A CN 202010841480 A CN202010841480 A CN 202010841480A CN 112052028 A CN112052028 A CN 112052028A
- Authority
- CN
- China
- Prior art keywords
- preset
- file
- android application
- package
- resource
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000006870 function Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000006837 decompression Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种安卓应用程序包的生成方法、终端以及存储介质。所述方法包括:对标准安卓应用程序包中的预设资源文件进行提取,得到第一安卓应用程序包;通过预设地址存储所述预设资源文件;获取所述第一安卓应用程序包中的预设文件,并在所述预设文件中***预设代码,生成第二安卓应用程序包;所述预设代码用于从所述预设地址加载所述预设资源文件。本发明通过将安卓应用程序包中的部分资源文件存储在预设地址,并在安卓应用程序包中***用于从所述预设地址加载资源文件的功能代码,以实现安卓应用程序包按需动态加载资源文件。
Description
技术领域
本发明涉及移动技术领域,尤其涉及的是一种安卓应用程序包的生成方法、终端及存储介质。
背景技术
随着移动技术发展,安卓应用程序包体积也越做越大,甚至将有些用户根本用不到的资源一次性打包在安卓应用程序包里,无法做到应用资源按需动态加载。
因此,现有技术还有待改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种一种安卓应用程序包的生成方法、终端及存储介质,旨在解决现有技术中的安卓应用程序包无法做到应用资源按需动态加载的问题。
本发明解决问题所采用的技术方案如下:
第一方面,本发明实施例提供一种安卓应用程序包的生成方法,其中,所述方法包括:
对标准安卓应用程序包中的预设资源文件进行提取,得到第一安卓应用程序包;
通过预设地址存储所述预设资源文件;
获取所述第一安卓应用程序包中的预设文件,并在所述预设文件中***预设代码,生成第二安卓应用程序包;所述预设代码用于从所述预设地址加载所述预设资源文件。
在一种实施方式中,所述预设资源文件为所述标准安卓应用程序包中使用频率大于等于预设阈值的资源文件。
在一种实施方式中,所述对标准安卓应用程序包中的预设资源文件进行提取,得到第一安卓应用程序包包括:
对所述标准安卓应用程序包进行解压,得到第一文件包;
对所述第一文件包中的所述预设资源文件进行提取,得到第一安卓应用程序包。
在一种实施方式中,所述通过预设地址存储所述预设资源文件包括:
将所述预设资源文件提取至预设资源文件包;
对所述预设资源文件包进行压缩处理,得到预设压缩文件包;
通过所述预设地址存储所述预设压缩文件包。
在一种实施方式中,所述获取所述第一安卓应用程序包中的预设文件,并在所述预设文件中***预设代码,生成第二安卓应用程序包;所述预设代码用于从所述预设地址加载所述预设资源文件包括:
获取所述第一安卓应用程序包中的预设文件;
对所述预设文件进行反编译处理,得到第一源程序;
在所述第一源程序中***所述预设代码,得到第二源程序;所述预设代码用于从所述预设地址加载所述预设资源文件;
对所述第二源程序进行回编处理,得到所述第二文件包;
对所述第二文件包进行压缩处理得到所述第二安卓应用程序包。
在一种实施方式中,所述预设文件为classes.dex文件。
在一种实施方式中,所述在所述第一源程序中***所述预设代码,得到第二源程序;所述预设代码用于从所述预设地址加载所述预设资源文件包括:
识别所述第一源程序中的安卓程序入口对应的源代码;
在所述安卓程序入口对应的源代码处***所述预设代码,得到所述第二源程序。
在一种实施方式中,所述获取所述第一安卓应用程序包中的预设文件,并在所述预设文件中***预设代码,生成第二安卓应用程序包;所述预设代码用于从所述预设地址加载所述预设资源文件还包括:
当安卓应用程序运行时,通过所述预设代码将安卓***运行时的资源类替换为预设资源类,以实现所述预设代码用于从所述预设地址加载所述预设资源文件的功能;所述资源类用于获取资源调用请求,并指定所述标准安卓应用程序包对应的资源存放路径;所述预设资源类指定的资源存放路径包含所述预设地址。
第二方面,本发明实施例还提供一种安卓应用程序包的生成装置,其中,所述装置包括:所述装置包括:获取模块,所述获取模块用于获取标准安卓应用程序包中的预设资源文件;存储模块,所述存储模块用于存储所述预设资源文件;处理模块,所述处理模块用于对预设文件进行***预设代码处理;生成模块,所述生成模块包括第一生成单元以及第二生成单元;所述第一生成单元,用于生成第一安卓应用程序包;所述第二生成单元,用于生成第二安卓应用程序包。
第三方面,本发明实施例还提供一种终端,所述终端包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如上述任意一项所述的方法。
第四方面,本发明实施例还提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述任意一项所述的方法。
本发明的有益效果:本发明实施例通过将安卓应用程序包中的部分资源文件存储在预设地址,并在安卓应用程序包中***用于从所述预设地址加载资源文件的功能代码,以实现安卓应用程序包按需动态加载资源文件。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的安卓应用程序包的生成方法的流程示意图。
图2是本发明实施例提供的获取第一安卓应用程序包的流程示意图。
图3是本发明实施例提供的将预设资源文件存储在预设地址的流程示意图。
图4是本发明实施例提供的生成第二安卓应用程序包的流程示意图。
图5是本发明实施例提供的获取第二源程序的流程示意图。
图6是本发明实施例提供的安卓应用程序包的生成装置的内部组件的连接示意图。
图7是本发明实施例提供的终端的原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
安卓应用程序包是安卓操作***使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。一个安卓应用程序的代码想要在安卓设备上运行,必须先进行编译,然后被打包成为一个被安卓***所能识别的文件才可以被运行,而这种能被安卓***识别并运行的文件格式便是安卓应用程序包。通常,安卓应用程序包是ZIP文件格式,解压后可以看到安卓应用程序包文件内包含被编译的代码文件(.dex文件),文件资源(resources),原生资源文件(assets),证书(certificates),和清单文件(manifest file)等。随着移动技术发展,安卓应用程序包的体积也越做越大,常用不常用,甚至有些用户根本用不到的资源文件也会打包在安卓应用程序包里。如何做到应用资源按需动态加载,从而减小安卓应用程序包的体积成为难题。
针对现有技术的上述缺陷,本发明提供了一种安卓应用程序包的生成方法,通过将标准安卓应用程序包中的部分资源文件上传到服务器,当需要相应的资源文件时,再按需从服务器动态加载所需资源,从而解决现有技术中无法做到应用资源按需动态加载,从而减小安卓应用程序包的问题。
如图1所示,本实施例提供一种安卓应用程序包的生成方法,所述方法包括如下步骤:
步骤S100、对标准安卓应用程序包中的预设资源文件进行提取,得到第一安卓应用程序包。
具体地,开发者可以自行设定所述预设资源文件具体为所述标准安卓应用程序包中的何种文件,例如开发者可以自行选定标准安卓应用程序包中的代码文件(.dex文件),文件资源(resources),原生资源文件(assets),证书(certificates),和清单文件(manifest file)的一种或者多种作为所述预设资源文件。开发者设定完毕所述预设资源文件后,***即提取出所述标准安卓应用程序包中的所述预设资源文件,并根据所述标准安卓应用程序包中除所述预设资源文件之外的其他资源文件得到第一安卓应用程序包。在一种实现方式中,所述预设资源文件为所述标准安卓应用程序包中使用频率大于等于预设阈值的资源文件。即开发者可以根据使用频率来设定所述预设资源文件,由于使用频率越小的文件,***对其的读取频率也就相应地越小,因此方便起见,开发者可以选择将使用频率较小的资源文件设置为所述预设资源文件,从而将使用频率较大的资源文件继续保留在安卓应用程序包中,以方便***读取。
在一种实现方式中,如图2所示,所述步骤S100具体包括如下步骤:
步骤S110、对所述标准安卓应用程序包进行解压,得到第一文件包。
步骤S120、对所述第一文件包中的所述预设资源文件进行提取,得到第一安卓应用程序包。
具体地,由于所述标准安卓应用程序包通常为ZIP格式,因此为了实现获取所述标准安卓应用程序包中的所述预设资源文件,需要先对所述标准安卓应用程序包进行解压处理,得到所述第一文件包。然后提取出所述第一文件包中的所述预设资源文件,并根据所述标准安卓应用程序包中除所述预设资源文件之外的其他资源文件得到第一安卓应用程序包。
提取出的所述预设资源文件以后,需要对所述预设资源文件进行存储,因此如图1所示,所述方法还包括如下步骤:
步骤S200、通过预设地址存储所述预设资源文件。
简言之,本实施例通过将所述标准安卓应用程序包中的所述预设资源文件提取出来,并存储在预设地址,当***需要所述预设资源文件时,即可从所述预设地址查询并获取所述预设资源文件。从而实现有效减少所述标准安卓应用程序包中的资源文件的数量。
在一种实现方式中,如图3所示,所述步骤S200具体包括如下步骤:
步骤S210、将所述预设资源文件提取至预设资源文件包。
步骤S220、对所述预设资源文件包进行压缩处理,得到预设压缩文件包。
步骤S230、通过所述预设地址存储所述预设压缩文件包。
具体地,将所述预设资源文件从所述标准安卓应用程序包中提取出来后,即存储在所述预设资源文件包中。在一种实现方式中,当所述预设资源文件包含多种资源文件时,所述预设资源文件包也可以分为多个文件包,开发者可以根据自己的需求将所述预设资源文件中的资源文件分别存储在不同的文件包中,例如当开发者选择将标准安卓应用程序包中的lib文件、assets文件设置为预设资源文件,则将lib文件、assets文件从标准安卓应用程序包中提取出来后,可以选择将lib文件、assets文件存储在两个不同的文件包中。为了减小所述预设资源文件包所需要的存储空间,可以对所述预设资源文件包进行压缩处理,得到所述预设压缩文件包,所述预设压缩文件包中即包含所述预设资源文件。然后将所述预设压缩文件包存储在所述预设地址,例如可以将所述预设压缩文件包存储在服务器。当需要获取所述预设资源文件时,通过所述预设地址即可下载所述预设压缩文件包,解压后即可获取所述预设资源文件包,打开所述预设资源文件包即可获得所述预设资源文件。
当完成将所述预设资源文件存储在所述预设地址以后,为了实现所述预设地址加载所述预设资源文件,如图1所示,所述方法还包括如下步骤:
步骤S300、获取所述第一安卓应用程序包中的预设文件,并在所述预设文件中***预设代码,生成第二安卓应用程序包;所述预设代码用于从所述预设地址加载所述预设资源文件。
简单来说,由于将所述预设资源文件存储在了所述预设地址,因此所述第一安卓应用程序包仅用于存储除所述预设资源文件以外的其他资源文件,从而可以解决安卓应用程序包体积臃肿的问题。为了实现***在运行所述第一安卓应用程序包时可以从所述预设地址加载所述预设资源文件,需要在所述第一安卓应用程序包中添加可以实现访问所述预设地址的功能代码,即所述预设代码。具体地,获取所述第一安卓应用程序包中的预设文件,并在所述预设文件中***预设代码,生成第二安卓应用程序包。当应用程序运行时,***即可通过所述第二安卓应用程序包中的预设代码实现从所述预设地址加载所述预设资源文件。
在一种实现方式中,如图4所示,所述步骤S300具体包括如下步骤:
步骤S310、获取所述第一安卓应用程序包中的预设文件。
步骤S320、对所述预设文件进行反编译处理,得到第一源程序。
步骤S330、在所述第一源程序中***所述预设代码,得到第二源程序。所述预设代码用于从所述预设地址加载所述预设资源文件。
步骤S340、对所述第二源程序进行回编处理,得到所述第二文件包。
步骤S350、对所述第二文件包进行压缩处理得到所述第二安卓应用程序包。
具体地,首先获取所述第一安卓应用程序包中的预设文件。在一种实现方式中,所述预设文件为classes.dex文件。Classes.dex文件为标准安卓应用程序包中必备的资源文件,可以通过修改所述classes.dex文件来实现修改其对应的安卓应用程序的运行参数。由于不可以对所述预设文件直接进行编译,因此获取所述预设文件后,需要首先对所述预设文件进行反编译处理,使之转变为第一源程序,所述第一源程序可直接进行编译。在所述第一源程序中***所述预设代码,得到第二源程序。相应地,所述预设代码的格式也应该与所述预设文件进行反编译处理后的格式相适配,例如,当所述预设文件进行反编译处理后的格式为smali文件时,则所述预设代码的格式应该为smali代码格式。然后对所述第二源程序进行回编处理,使其重新被编译并转换成新的预设文件。将所述第一安卓应用程序包中的所述预设文件修改为新的预设文件后,即得到所述第二文件包。由于标准安卓应用程序包通常为ZIP格式,因此需要对所述第二文件包进行压缩处理,得到所述第二安卓应用程序包。所述第二安卓应用程序包与所述标准安卓应用程序包相比不仅体积小,还可以实现按需从所述预设地址获取所述预设资源文件。
在一种实现方式中,如图5所示,所述步骤S330具体包括以下步骤:
步骤S331、识别所述第一源程序中的安卓程序入口对应的源代码。
步骤S332、在所述安卓程序入口对应的源代码处***所述预设代码,得到所述第二源程序。
在实际操作中,当安卓应用程序运行时,***需要根据其对应的安卓应用程序包获取相应的资源文件以后,方才能使安卓应用程序执行其对应的功能。由于所述预设代码的功能与安卓应用程序的资源获取过程密切相关,因此所述预设代码的功能需要在安卓应用程序启动的同时被触发。为了实现当安卓应用程序运行时,即触发所述预设代码的功能,在一种实现方式中,当获取所述第一源程序之后,首先识别所述第一源程序中的安卓程序入口对应的源代码,然后将所述预设代码***所述安卓程序入口对应的源代码处,即得到所述第二源程序。由于所述预设代码***的位置为所述安卓程序入口,因此当***调用所述安卓程序入口的同时,即可触发所述预设代码,进而在后续的资源获取过程中实现访问所述预设地址获取所述预设资源文件。
具体地,当安卓应用程序运行时,所述预设代码会将安卓***运行时的资源类替换为预设资源类,当所述安卓应用程序需要获取所预设资源文件时,则通过所述预设资源类将资源请求发送到所述预设地址,所述资源请求中包含需要获取的资源文件的资源名称。所述预设地址获取所述资源请求后,根据其中的资源名称,将对应的压缩文件包返回给移动终端。当获取所述压缩文件包后,通过所述预设代码将所述压缩包解压并根据请求的资源名称对相应的资源文件进行加载,即完成从所述预设地址加载所述预设资源文件。
当所述安卓应用程序需要获取资源文件为所述第二安卓应用包中的资源文件时,则通过所述预设资源类将资源请求发送到本地资源包,本地资源包获取所述资源请求后,根据其中的资源名称,将对应的资源文件返回给***。
基于上述实施例,本发明还提供了一种安卓应用程序包的生成装置,如图6所示,所述装置包括:获取模块1,所述获取模块1用于获取标准安卓应用程序包中的预设资源文件;存储模块2,所述存储模块2用于存储所述预设资源文件;处理模块3,所述处理模块3用于对预设文件进行***预设代码处理;生成模块4,所述生成模块4包括第一生成单元5以及第二生成单元6;所述第一生成单元5,用于生成第一安卓应用程序包;所述第二生成单元6,用于生成第二安卓应用程序包。
基于上述实施例,本发明还提供了一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质上存储有数据存储程序,所述数据存储程序被处理器执行时实现如上所述的安卓应用程序包的生成方法的各个步骤。需要说明的是,非临时性计算机可读存储介质可设置在数据存储设备中。本发明非临时性计算机可读存储介质具体实施方式与上述安卓应用程序包的生成方法各实施例基本相同,在此不再赘述。
本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
基于上述实施例,本发明还提供了一种终端,所述终端包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如上述任意一项所述的安卓应用程序包的生成方法。所述终端的原理框图可以如图7所示。该终端包括通过***总线连接的处理器、存储器、网络接口。其中,该终端的处理器用于提供计算和控制能力。该终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种安卓应用程序包的生成方法。
本领域技术人员可以理解,图7中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。此外,实现上述任意一项所述的安卓应用程序包的生成方法,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明公开了一种安卓应用程序包的生成方法、终端以及存储介质。通过将安卓应用程序包中的部分资源文件存储在预设地址,并在安卓应用程序包中***用于从所述预设地址加载资源文件的功能代码,以实现安卓应用程序包按需动态加载资源文件。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种安卓应用程序包的生成方法,其特征在于,所述方法包括:
对标准安卓应用程序包中的预设资源文件进行提取,得到第一安卓应用程序包;
通过预设地址存储所述预设资源文件;
获取所述第一安卓应用程序包中的预设文件,并在所述预设文件中***预设代码,生成第二安卓应用程序包;所述预设代码用于从所述预设地址加载所述预设资源文件。
2.根据权利要求1所述的安卓应用程序包的生成方法,其特征在于,所述预设资源文件为所述标准安卓应用程序包中使用频率大于等于预设阈值的资源文件。
3.根据权利要求1所述的安卓应用程序包的生成方法,其特征在于,所述对标准安卓应用程序包中的预设资源文件进行提取,得到第一安卓应用程序包包括:
对所述标准安卓应用程序包进行解压,得到第一文件包;
对所述第一文件包中的所述预设资源文件进行提取,得到第一安卓应用程序包。
4.根据权利要求1所述的安卓应用程序包的生成方法,其特征在于,所述通过预设地址存储所述预设资源文件包括:
将所述预设资源文件提取至预设资源文件包;
对所述预设资源文件包进行压缩处理,得到预设压缩文件包;
通过所述预设地址存储所述预设压缩文件包。
5.根据权利要求1所述的安卓应用程序包的生成方法,其特征在于,所述获取所述第一安卓应用程序包中的预设文件,并在所述预设文件中***预设代码,生成第二安卓应用程序包;所述预设代码用于从所述预设地址加载所述预设资源文件包括:
获取所述第一安卓应用程序包中的预设文件;
对所述预设文件进行反编译处理,得到第一源程序;
在所述第一源程序中***所述预设代码,得到第二源程序;所述预设代码用于从所述预设地址加载所述预设资源文件;
对所述第二源程序进行回编处理,得到所述第二文件包;
对所述第二文件包进行压缩处理得到所述第二安卓应用程序包。
6.根据权利要求5所述的安卓应用程序包的生成方法,其特征在于,所述预设文件为classes.dex文件。
7.根据权利要求5所述的安卓应用程序包的生成方法,其特征在于,所述在所述第一源程序中***所述预设代码,得到第二源程序;所述预设代码用于从所述预设地址加载所述预设资源文件包括:
识别所述第一源程序中的安卓程序入口对应的源代码;
在所述安卓程序入口对应的源代码处***所述预设代码,得到所述第二源程序。
8.根据权利要求1所述的安卓应用程序包的生成方法,其特征在于,所述获取所述第一安卓应用程序包中的预设文件,并在所述预设文件中***预设代码,生成第二安卓应用程序包;所述预设代码用于从所述预设地址加载所述预设资源文件还包括:
当安卓应用程序运行时,通过所述预设代码将安卓***运行时的资源类替换为预设资源类,以实现所述预设代码用于从所述预设地址加载所述预设资源文件的功能;所述资源类用于获取资源调用请求,并指定所述标准安卓应用程序包对应的资源存放路径;所述预设资源类指定的资源存放路径包含所述预设地址。
9.一种终端,所述终端包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如权利要求1-8中任意一项所述的方法。
10.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-8中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010841480.XA CN112052028B (zh) | 2020-08-20 | 2020-08-20 | 一种安卓应用程序包的生成方法、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010841480.XA CN112052028B (zh) | 2020-08-20 | 2020-08-20 | 一种安卓应用程序包的生成方法、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052028A true CN112052028A (zh) | 2020-12-08 |
CN112052028B CN112052028B (zh) | 2024-05-14 |
Family
ID=73599794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010841480.XA Active CN112052028B (zh) | 2020-08-20 | 2020-08-20 | 一种安卓应用程序包的生成方法、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052028B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596821A (zh) * | 2021-01-24 | 2021-04-02 | 南京金盾公共安全技术研究院有限公司 | 一种安卓应用中动态加载算法的方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360884A (zh) * | 2014-11-18 | 2015-02-18 | 久邦计算机技术(广州)有限公司 | 一种基于安卓***的插件资源包加载方法 |
CN104850440A (zh) * | 2015-05-25 | 2015-08-19 | 广州市久邦数码科技有限公司 | 一种基于安卓***的资源加载方法及其*** |
CN107786630A (zh) * | 2017-09-06 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种web应用包处理方法、装置及设备 |
KR20180048518A (ko) * | 2018-04-27 | 2018-05-10 | 라인 가부시키가이샤 | 패키지 파일에 대한 기능 확장 방법 및 시스템 |
CN109522020A (zh) * | 2018-09-29 | 2019-03-26 | 中国平安人寿保险股份有限公司 | 安卓***安装包瘦身方法、装置、终端及存储介质 |
CN110554876A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 用于编译安卓工程的方法和装置 |
CN111124470A (zh) * | 2019-12-17 | 2020-05-08 | 口碑(上海)信息技术有限公司 | 基于云平台的程序包自动优化方法及装置 |
CN111124480A (zh) * | 2019-12-19 | 2020-05-08 | 北京奇艺世纪科技有限公司 | 应用程序包的生成方法、装置、电子设备及存储介质 |
CN111258587A (zh) * | 2020-01-17 | 2020-06-09 | 苏宁云计算有限公司 | 一种安卓应用插件化的实现方法、装置、设备及存储介质 |
CN111309391A (zh) * | 2020-01-20 | 2020-06-19 | 北京无限光场科技有限公司 | 应用程序启动方法、装置、设备及介质 |
-
2020
- 2020-08-20 CN CN202010841480.XA patent/CN112052028B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360884A (zh) * | 2014-11-18 | 2015-02-18 | 久邦计算机技术(广州)有限公司 | 一种基于安卓***的插件资源包加载方法 |
CN104850440A (zh) * | 2015-05-25 | 2015-08-19 | 广州市久邦数码科技有限公司 | 一种基于安卓***的资源加载方法及其*** |
CN107786630A (zh) * | 2017-09-06 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种web应用包处理方法、装置及设备 |
KR20180048518A (ko) * | 2018-04-27 | 2018-05-10 | 라인 가부시키가이샤 | 패키지 파일에 대한 기능 확장 방법 및 시스템 |
CN110554876A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 用于编译安卓工程的方法和装置 |
CN109522020A (zh) * | 2018-09-29 | 2019-03-26 | 中国平安人寿保险股份有限公司 | 安卓***安装包瘦身方法、装置、终端及存储介质 |
CN111124470A (zh) * | 2019-12-17 | 2020-05-08 | 口碑(上海)信息技术有限公司 | 基于云平台的程序包自动优化方法及装置 |
CN111124480A (zh) * | 2019-12-19 | 2020-05-08 | 北京奇艺世纪科技有限公司 | 应用程序包的生成方法、装置、电子设备及存储介质 |
CN111258587A (zh) * | 2020-01-17 | 2020-06-09 | 苏宁云计算有限公司 | 一种安卓应用插件化的实现方法、装置、设备及存储介质 |
CN111309391A (zh) * | 2020-01-20 | 2020-06-19 | 北京无限光场科技有限公司 | 应用程序启动方法、装置、设备及介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596821A (zh) * | 2021-01-24 | 2021-04-02 | 南京金盾公共安全技术研究院有限公司 | 一种安卓应用中动态加载算法的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112052028B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460527B (zh) | 产品数据配置方法、装置、计算机设备和存储介质 | |
CN104111827A (zh) | 应用程序匹配方法及装置 | |
CN111209122B (zh) | 接口调用方法、装置、电子设备及存储介质 | |
CN110968331B (zh) | 应用程序运行的方法和装置 | |
CN110362356B (zh) | 函数数据处理方法、装置、计算机设备和存储介质 | |
CN112306503A (zh) | 前端资源打包方法、装置、计算机设备及存储介质 | |
CN112114808A (zh) | 页面渲染方法、装置、电子设备 | |
CN110457013B (zh) | 程序组件配置装置及方法 | |
CN107577506B (zh) | 一种数据预加载的方法和*** | |
CN110851151B (zh) | 预装应用的方法、装置、终端、服务器和存储介质 | |
CN112231379A (zh) | 基于微服务架构的api审计方法、装置、设备及存储介质 | |
CN112052028A (zh) | 一种安卓应用程序包的生成方法、终端及存储介质 | |
CN111026988A (zh) | 一种页面加载的方法、装置、***及计算机设备 | |
CN113094077B (zh) | 一种***差分升级方法、装置、智能终端及存储介质 | |
CN110795197A (zh) | 枚举类的国际化方法、装置、计算机设备及存储介质 | |
CN110209973A (zh) | 一种网页游戏加载方法及装置 | |
WO2022099913A1 (zh) | 界面配置方法、装置、设备及介质 | |
US20190364134A1 (en) | Data processing method and apparatus for client | |
CN115374083A (zh) | 数据源的切换方法、装置、电子设备及存储介质 | |
CN112330816B (zh) | Ar识别的处理方法、装置和电子装置 | |
CN114567507A (zh) | 限流方法、***、设备及存储介质 | |
CN114077458A (zh) | 应用程序内业务模块启动方法、装置、设备和存储介质 | |
CN111177624B (zh) | 网站前后端通讯方法、装置、计算机设备和存储介质 | |
CN116048600A (zh) | 小程序功能开发方法、装置、计算机设备和存储介质 | |
CN112463836A (zh) | 基于Django框架的数据查询方法、装置、计算机设备和介质 |
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 |