Apk打包-zip文件格式和apk多渠道打包探讨

参考:http://blog.youkuaiyun.com/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中添加一个使用渠道号命名的空文件即可。

 

转载于:https://www.cnblogs.com/wjw334/p/7687328.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值