CN107992311A - 一种快速批量打包生成apk文件的方法 - Google Patents
一种快速批量打包生成apk文件的方法 Download PDFInfo
- Publication number
- CN107992311A CN107992311A CN201711440191.3A CN201711440191A CN107992311A CN 107992311 A CN107992311 A CN 107992311A CN 201711440191 A CN201711440191 A CN 201711440191A CN 107992311 A CN107992311 A CN 107992311A
- Authority
- CN
- China
- Prior art keywords
- apk file
- file
- channel information
- rapid batch
- new
- 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.)
- Pending
Links
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种快速批量打包生成APK文件的方法,包括如下步骤:(1)设定配置文件及工具路径;(2)调用Android平台的系统打包工具,进行单个APK文件打包,得到单个APK文件;(3)读取渠道信息列表文件,获取渠道信息;(4)对单个APK文件进行复制,在指定目录写入渠道信息,得到新APK文件;(5)去除新APK文件的签名信息;(6)对新APK文件重新签名;(7)对新APK文件进行Zipalign对齐优化;(8)对新APK文件进行重命名操作;(9)重复步骤4到步骤8,对下一个渠道信息进行处理。本发明,基于Groovy语言以及Gradle构建工具,可以快速批量打包,提高了多渠道打包生成APK文件的效率,便于使用,加快了app发布工作的进度。
Description
技术领域
本发明涉及快速生成APK文件技术领域,具体说是一种快速批量打包生成APK文件的方法。所述APK是AndroidPackage的缩写,APK文件即Android平台软件安装包。
背景技术
Android平台有很多个市场渠道,每个市场渠道,都需要生成相应的APK文件才能进行app的发布。
在app开发完毕后,打包生成APK文件并发布到各市场渠道是很重要的一步,由于市场渠道的繁多,在app发布时,需要统计各市场渠道活跃数据及用户行为日志,还需要回收各市场渠道崩溃日志。这需要区分活跃数据和日志来自于哪一个市场渠道,区分需要使用到渠道信息。即:app发布时,需要在APK文件中加入渠道信息。
所谓“渠道信息”,可以理解成每一个市场渠道发布的相同软件都有唯一不同的识别字符串信息,识别字符串信息用于辨识市场渠道。例如:
腾讯应用宝市场渠道对应的渠道信息为qqmarket。
包含渠道信息的APK文件称为渠道包,在APK文件的清单文件中,某个meta-data标签下,配置的value为对应于市场渠道的识别字符串信息。由于这一差异,因此多个市场渠道需要多次打包生成APK文件的过程。
在Android系统中,已经提供了一个批量打包生成APK文件的方法,但是该批量打包方法只支持循环单个完整打包任务,效率低下不便扩展维护。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种快速批量打包生成APK文件的方法,基于Groovy语言以及Gradle构建工具,可以快速批量打包,提高了多渠道打包生成APK文件的效率,便于使用,加快了app发布工作的进度。
为达到以上目的,本发明采取的技术方案是:
一种快速批量打包生成APK文件的方法,其特征在于,包括如下步骤:
步骤1,设定配置文件及工具路径,至少设定以下内容;
设定渠道信息列表文件,用于记录渠道信息;
设定本地环境APK文件签名工具的路径;
设定本地环境APK文件Zipalign对齐优化工具的路径;
步骤2,调用Android平台的系统打包工具,进行单个APK文件打包,得到单个APK文件;
步骤3,读取渠道信息列表文件,获取渠道信息;
步骤4,对单个APK文件进行复制,在指定目录写入渠道信息,得到新APK文件;
步骤5,去除新APK文件的签名信息;
步骤6,对新APK文件重新签名;
步骤7,对新APK文件进行Zipalign对齐优化;
步骤8,对新APK文件进行重命名操作;
步骤9,重复步骤4到步骤8,对下一个渠道信息进行处理。
在上述技术方案的基础上,步骤4到步骤8通过自定义的Gradle插件中的函数实现。
在上述技术方案的基础上,所述渠道信息列表文件,每一行表示一个渠道信息。
在上述技术方案的基础上,步骤4中,指定目录为assert,单条渠道信息以txt文件的形式写入assert目录。
在上述技术方案的基础上,步骤5中,去除签名信息指删除/META-INF/下的原有签名信息。
在上述技术方案的基础上,步骤8中,进行重命名操作时,将渠道信息作为文件名的内容之一。
本发明所述的快速批量打包生成APK文件的方法,基于Groovy语言以及Gradle构建工具,可以快速批量打包,提高了多渠道打包生成APK文件的效率,便于使用,加快了app发布工作的进度。
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。
附图说明
本发明有如下附图:
图1本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的快速批量打包生成APK文件的方法,包括如下步骤:
步骤1,设定配置文件及工具路径,至少设定以下内容;
设定渠道信息列表文件,用于记录渠道信息;
设定本地环境APK文件签名工具的路径;
设定本地环境APK文件Zipalign对齐优化工具的路径;
步骤2,调用Android平台的系统打包工具,进行单个APK文件打包,得到单个APK文件;
步骤3,读取渠道信息列表文件,获取渠道信息;
步骤4,对单个APK文件进行复制,在指定目录写入渠道信息,得到新APK文件;
步骤5,去除新APK文件的签名信息;
步骤6,对新APK文件重新签名;
步骤7,对新APK文件进行Zipalign对齐优化;
步骤8,对新APK文件进行重命名操作;
步骤9,重复步骤4到步骤8,对下一个渠道信息进行处理。即:每执行一次步骤4到步骤8,完成对渠道信息列表文件中的一个渠道信息的处理,直至渠道信息列表文件中的全部渠道信息均处理完毕。
在上述技术方案的基础上,步骤4到步骤8通过自定义的Gradle插件中的函数实现。
在上述技术方案的基础上,所述渠道信息列表文件,每一行表示一个渠道信息。
在上述技术方案的基础上,所述APK文件签名工具,通过申请Google签名证书,对APK文件形成身份识别代码。
在上述技术方案的基础上,所述Zipalign对齐优化工具,用于优化资源文件,使其通过内存映射对齐到4字节边界,使访问资源文件的代码是有效率的。
未优化时,读取资源文件的代码将会比较缓慢且会花费额外的内存。
在上述技术方案的基础上,步骤4中,指定目录为assert,单条渠道信息以txt文件的形式写入assert目录。
在上述技术方案的基础上,步骤5中,去除签名信息指删除/META-INF/下的原有签名信息。
因为APK文件的反编译保护机制,在指定目录写入渠道信息的操作,导致修改了APK文件中的文件,故原有签名信息会失效。
在上述技术方案的基础上,步骤8中,进行重命名操作时,将渠道信息作为文件名的内容之一。
这样便于运营人员上架对应市场渠道。
更进一步,版本号也可以作为文件名的内容之一。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (6)
1.一种快速批量打包生成APK文件的方法,其特征在于,包括如下步骤:
步骤1,设定配置文件及工具路径,至少设定以下内容;
设定渠道信息列表文件,用于记录渠道信息;
设定本地环境APK文件签名工具的路径;
设定本地环境APK文件Zipalign对齐优化工具的路径;
步骤2,调用Android平台的系统打包工具,进行单个APK文件打包,得到单个APK文件;
步骤3,读取渠道信息列表文件,获取渠道信息;
步骤4,对单个APK文件进行复制,在指定目录写入渠道信息,得到新APK文件;
步骤5,去除新APK文件的签名信息;
步骤6,对新APK文件重新签名;
步骤7,对新APK文件进行Zipalign对齐优化;
步骤8,对新APK文件进行重命名操作;
步骤9,重复步骤4到步骤8,对下一个渠道信息进行处理。
2.如权利要求1所述的快速批量打包生成APK文件的方法,其特征在于:步骤4到步骤8通过自定义的Gradle插件中的函数实现。
3.如权利要求1所述的快速批量打包生成APK文件的方法,其特征在于:所述渠道信息列表文件,每一行表示一个渠道信息。
4.如权利要求1所述的快速批量打包生成APK文件的方法,其特征在于:步骤4中,指定目录为assert,单条渠道信息以txt文件的形式写入assert目录。
5.如权利要求1所述的快速批量打包生成APK文件的方法,其特征在于:步骤5中,去除签名信息指删除/META-INF/下的原有签名信息。
6.如权利要求1所述的快速批量打包生成APK文件的方法,其特征在于:步骤8中,进行重命名操作时,将渠道信息作为文件名的内容之一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711440191.3A CN107992311A (zh) | 2017-12-27 | 2017-12-27 | 一种快速批量打包生成apk文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711440191.3A CN107992311A (zh) | 2017-12-27 | 2017-12-27 | 一种快速批量打包生成apk文件的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107992311A true CN107992311A (zh) | 2018-05-04 |
Family
ID=62042837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711440191.3A Pending CN107992311A (zh) | 2017-12-27 | 2017-12-27 | 一种快速批量打包生成apk文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107992311A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090422A (zh) * | 2019-10-23 | 2020-05-01 | 贝壳技术有限公司 | 一种基于Flutter的资源打包方法、装置和存储介质 |
CN111209001A (zh) * | 2019-12-19 | 2020-05-29 | 福建升腾资讯有限公司 | 批量生成安卓各渠道apk的方法、系统、设备和介质 |
CN111399858A (zh) * | 2020-02-28 | 2020-07-10 | 平安科技(深圳)有限公司 | 安卓应用程序包打包方法、设备、存储介质及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2889813A1 (en) * | 2013-12-27 | 2015-07-01 | Buongiorno S.P.A. | Method and system for implementing in-app software development kits |
CN106126205A (zh) * | 2016-06-14 | 2016-11-16 | 武汉斗鱼网络科技有限公司 | 一种安卓程序安装包的快速批量生成方法及系统 |
CN106843939A (zh) * | 2016-12-30 | 2017-06-13 | 百度在线网络技术(北京)有限公司 | 应用的渠道包的生成方法及装置 |
CN106897049A (zh) * | 2015-12-21 | 2017-06-27 | 五八同城信息技术有限公司 | 一种安装包的打包方法和装置 |
-
2017
- 2017-12-27 CN CN201711440191.3A patent/CN107992311A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2889813A1 (en) * | 2013-12-27 | 2015-07-01 | Buongiorno S.P.A. | Method and system for implementing in-app software development kits |
CN106897049A (zh) * | 2015-12-21 | 2017-06-27 | 五八同城信息技术有限公司 | 一种安装包的打包方法和装置 |
CN106126205A (zh) * | 2016-06-14 | 2016-11-16 | 武汉斗鱼网络科技有限公司 | 一种安卓程序安装包的快速批量生成方法及系统 |
CN106843939A (zh) * | 2016-12-30 | 2017-06-13 | 百度在线网络技术(北京)有限公司 | 应用的渠道包的生成方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090422A (zh) * | 2019-10-23 | 2020-05-01 | 贝壳技术有限公司 | 一种基于Flutter的资源打包方法、装置和存储介质 |
CN111209001A (zh) * | 2019-12-19 | 2020-05-29 | 福建升腾资讯有限公司 | 批量生成安卓各渠道apk的方法、系统、设备和介质 |
CN111399858A (zh) * | 2020-02-28 | 2020-07-10 | 平安科技(深圳)有限公司 | 安卓应用程序包打包方法、设备、存储介质及装置 |
CN111399858B (zh) * | 2020-02-28 | 2024-04-02 | 平安科技(深圳)有限公司 | 安卓应用程序包打包方法、设备、存储介质及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506219A (zh) | 一种基于Android系统的通用版本升级方法 | |
TW389873B (en) | Software installation and testing for a build-to-order computer system | |
CN106126205A (zh) | 一种安卓程序安装包的快速批量生成方法及系统 | |
RU2004128233A (ru) | Способ и система для распространения и установки программного обеспечения | |
CN104267978B (zh) | 一种生成差分包的方法及装置 | |
CN107992311A (zh) | 一种快速批量打包生成apk文件的方法 | |
CN107678750A (zh) | 一种sdk打包方法、计算设备及sdk打包系统 | |
US20130185484A1 (en) | File programming method and associated device for nand flash | |
CN104881611A (zh) | 保护软件产品中的敏感数据的方法和装置 | |
CN107632828A (zh) | 多dts文件支持方法、编译装置及嵌入式设备 | |
CN112558980A (zh) | 多软件包管理方法及装置 | |
CN108595187A (zh) | 安卓安装包集成软件开发工具包的法、装置及存储介质 | |
CN110825363A (zh) | 智能合约获取方法、装置、电子设备及存储介质 | |
CN103761095B (zh) | 一种生成通用的升级文件头部数据信息的方法 | |
CN103823703B (zh) | 一种同一固件兼容不同设备的方法及装置 | |
CN101882094A (zh) | 嵌入式系统制作补丁的方法和系统 | |
CN106775824A (zh) | 一种带有渠道信息的应用文件打包系统及方法 | |
CN114706533A (zh) | 一种基于gpt分区表的多文件多级启动加载方法及装置 | |
CN111367890A (zh) | 一种数据迁移的方法、装置、计算机设备及可读存储介质 | |
JP4477531B2 (ja) | データインポート方法およびデータインポート装置 | |
CN104133743A (zh) | 一种将文件烧录到emmc芯片的方法及装置 | |
CN106506178A (zh) | 一种用于为主播精准引流的方法和系统 | |
CN109977675A (zh) | 一种开源软件识别方法及装置 | |
EP3067795A1 (en) | A method for generating an embedded system derivable into a plurality of personalized embedded system | |
WO2019024392A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180504 |
|
RJ01 | Rejection of invention patent application after publication |