需求背景
作为游戏的发行平台,在游戏客户端对接SDK后需要进行不同渠道的分发。(一些小发行没有自己的渠道,靠自己的经验选择一些第三方的渠道进行推送,如媒介通过软文链接、xx渠道合作等)那这个时候发行需要收集一些渠道相关的数据信息,给推广提供数据依据。为了区分不同渠道,发行拿到游戏 apk 后,需要针对各个不同的渠道给apk进行标记,标记apk 就涉及到动态修改apk
【这里记录下参考的两篇文章及实现思路原理】
实现方案
技术点前提:
- 理解apk 本质上是一个 zip 的归档文件
技术要点:
- 修改apk后,apk文件格式不能损坏、且能正常的被Android安装、文件验证通过
这篇文章中可借鉴二种方案
- 1、使用 apk-tool 解压apk 修改 AndroidMainfest.xml 的 meta-data
- 2、直接修改过apk 在 META-INF 添加空文件,已文件名作为渠道标记
参考2:一种动态为apk写入信息的方案
方案参考:
- 3、理解zip 的归档文件组织的规则,并利用zip 的 comment 区域加入自定义的struct 用来标记自己想要的信息
对比上面的