前言
对于游戏多渠道出包,不可能每个都单独接入sdk重新出包。业内多数都是先出一个母包
,然后将母包解包后,然后根据渠道将所需的jar/aar
或其文件放入包体中,然后重新打包为渠道包
并重新签名。
apk的构成
1 2 3 4 5
| assets/ -- 静态资源文件 res/ lib/ -- 依赖库 classes.dex -- 编译后的代码文件 AndroidManifest.xml -- AndroidManifest
|
下载地址
【github】
【官网】
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| # 解包 origin.apk # 生成文件夹 `origin`,文件夹中内容就是解包后的内容,自行根据需要进行处理。 java -jar apktool_2.7.0.jar d origin.apk
# 重新打包 # 将`origin`文件夹重新build为未签名的apk java -jar apktool_2.7.0.jar b D:\...\origin -o unsign.apk
# 对齐 # TargetSDK 30+ 要求apk必须进行4字节对齐,否则无法安装 # zipalign 在 {AndroidSDK}\build-tools\xx.0.0 目录下 zipalign.exe -v -p 4 unsign.apk D:\...\align.apk (win) zipalign -v -p 4 unsign.apk ~/.../align.apk (mac)
#对齐验证 zipalign.exe -c -v 4 D:\...\align.apk (win) zipalign -c -v 4 ~/.../align.apk (mac)
# 重签名 # apksigner.jar 在 {AndroidSDK}\build-tools\xx.0.0\lib 目录下 java -jar apksigner.jar sign --ks S-Project.keystore --ks-key-alias S-Project.keystore --ks-pass pass:xxxxxxxxx --ks-pass pass:xxxxxxxxx --out D:\...\signed.apk D:\...\align.apk
|
如何创建keystore?
Android-生成keystore密钥