Apk打包-zip文件格式和apk多渠道打包探讨
2017-10-18 16:22
183 查看
参考:http://blog.csdn.net/a200710716/article/details/51644421
zip文件格式:
[文件头+文件数据+数据描述符]{此处可重复n次}+核心目录+目录结束标识
当压缩包中有多个文件时,就会有多个[文件头+文件数据+数据描述符]
记录着压缩的所有文件的内容信息,每个压缩文件都由local file header 、file data、data descriptor三部分组成,在这个数据区中每一个压缩的源文件/目录都是一条记录。
主要看这个结构的注释。
即:
1.zip注释可随意修改(最大长度2个字节即256长度)
2.如何寻找注释内容?找标记头位移20位
如:看某个apk注释
此apk的注释内容为:
是个json数据:{"pn":"MFW","sf":0} 其中 末尾的13 是\r回车 00 是空字符
apk多渠道探讨:
1.由此可见此注释内容可以写,apk渠道信息。
2.在安装到手机号找到对应apk获取此注释内容存本地。
美团模式:
参考:https://tech.meituan.com/mt-apk-packaging.html
每打一个渠道包只需复制一个apk,在
zip文件格式:
[文件头+文件数据+数据描述符]{此处可重复n次}+核心目录+目录结束标识
当压缩包中有多个文件时,就会有多个[文件头+文件数据+数据描述符]
压缩源文件数据区
[local file header + file data + data descriptor]记录着压缩的所有文件的内容信息,每个压缩文件都由local file header 、file data、data descriptor三部分组成,在这个数据区中每一个压缩的源文件/目录都是一条记录。
local file header 文件头
用于标识该文件的开始,记录了该压缩文件的信息。文件头标识,值固定(0x04034b50)Central directory 核心目录
记录了压缩文件的目录信息,在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据。文件标示,值固定(0x02014b50)目录结束标识
目录结束标识存在于整个归档包的结尾,用于标记压缩的目录数据的结束。每个压缩文件必须有且只有一个EOCD记录。标记头(0x06054b50)主要看这个结构的注释。
Offset | Bytes | Description | 译 |
---|---|---|---|
0 | 4 | End of central directory signature = 0x06054b50 | 核心目录结束标记(0x06054b50) |
4 | 2 | Number of this disk | 当前磁盘编号 |
6 | 2 | number of the disk with the start of the central directory | 核心目录开始位置的磁盘编号 |
8 | 2 | total number of entries in the central directory on this disk | 该磁盘上所记录的核心目录数量 |
10 | 2 | total number of entries in the central directory | 核心目录结构总数 |
12 | 2 | Size of central directory (bytes) | 核心目录的大小 |
16 | 4 | offset of start of central directory with respect to the starting disk number | 核心目录开始位置相对于archive开始的位移 |
20 | 2 | .ZIP file comment length(n) | 注释长度 |
22 | n | .ZIP Comment | 注释内容 |
1.zip注释可随意修改(最大长度2个字节即256长度)
2.如何寻找注释内容?找标记头位移20位
如:看某个apk注释
此apk的注释内容为:
是个json数据:{"pn":"MFW","sf":0} 其中 末尾的13 是\r回车 00 是空字符
apk多渠道探讨:
1.由此可见此注释内容可以写,apk渠道信息。
2.在安装到手机号找到对应apk获取此注释内容存本地。
美团模式:
参考:https://tech.meituan.com/mt-apk-packaging.html
每打一个渠道包只需复制一个apk,在
META-INF中添加一个使用渠道号命名的空文件即可。
相关文章推荐
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- Android 自动编译、打包生成apk文件 4 - 多渠道批量打包
- 实现对给定文件,目录的打包(格式zip)
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- Studio多渠道打包并生成自定义apk文件名字
- Android Studio创建签名文件,打包apk,多渠道打包
- Android 自动编译、打包生成apk文件 4 - 多渠道批量打包
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- Android 自动编译、打包生成apk文件 4 - 多渠道批量打包
- maven assembly 打包zip,gz等格式文件
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- ndk开发打包.so文件到apk包的方法
- 使用Python多渠道打包apk
- 转(zip文件格式说明)
- ANDROID开发:将数据库文件与项目包一起打包成APK文件
- Android studio 通过build.gradle 配置打包签名文件,生成 xxx.apk