您的位置:首页 > 其它

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]

记录着压缩的所有文件的内容信息,每个压缩文件都由local file header 、file data、data descriptor三部分组成,在这个数据区中每一个压缩的源文件/目录都是一条记录。

local file header 文件头

用于标识该文件的开始,记录了该压缩文件的信息。文件头标识,值固定(0x04034b50)



Central directory 核心目录

记录了压缩文件的目录信息,在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据。文件标示,值固定(0x02014b50)



目录结束标识

目录结束标识存在于整个归档包的结尾,用于标记压缩的目录数据的结束。每个压缩文件必须有且只有一个EOCD记录。标记头(0x06054b50)

主要看这个结构的注释。

OffsetBytesDescription
04End of central directory signature = 0x06054b50核心目录结束标记(0x06054b50)
42Number of this disk当前磁盘编号
62number of the disk with the start of the central directory核心目录开始位置的磁盘编号
82total number of entries in the central directory on this disk该磁盘上所记录的核心目录数量
102total number of entries in the central directory核心目录结构总数
122Size of central directory (bytes)核心目录的大小
164offset of start of central directory with respect to the starting disk number核心目录开始位置相对于archive开始的位移
202.ZIP file comment length(n)注释长度
22n.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
中添加一个使用渠道号命名的空文件即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐