手游SDK打包核心流程

这里分三部分:游戏母包game.apk 、渠道资源包、自动化打包系统。

游戏母包:接入聚合SDK,对接统一化接口,走通整体SDK的登录、支付、数据上报交互逻辑的游戏包体。

渠道资源包:整合了中间层和业务层SDK。

打包系统:输入游戏母包和渠道资源包后,自动化解包、合并资源、封包,最终输出游戏_渠道包。

upload successful

整个过程由打包系统进行。

输入游戏母包和SDK(为了代码安全建议使用 ProGuard 工具对代码混淆)

  1. 使用apktools 对游戏母包进行反编译

     java -jar */apktool.jar d -o *.apk ./dir -f --only-main-classes
    
  2. 将SDK资源拷贝到反编译后的对应文件夹

  3. 合并manifest文件

upload successful

  1. 使用aapt工具编译资源生成R文件 并 打包成 jar

     生成R文件
     aapt p -f -m -J res目录 -I android.jar -M AndroidManifest.xml
    

       
       javac -source 1.7 -target 1.7 -encoding UTF-8 */R.java

    jar cvf */R.jar *
  1. 将SDK下所有的源码和引用的jar包转化成smali并拷贝到母包的smali目录

     jar 2 dex
     dx.jar --dex --output=./r.dex ./R.jar
     dex 2 smali
     java -jar baksmali.jar -o ./smali ./r.dex 
    
  2. 使用apktools回编译成apk文件

     java -jar apktool.jar b ./dir -o unsign.apk
    
  3. sign & zipalign

     jarsigner -verbose -keystore *.keystore -storepass 密码  -keypass 密码 -signedjar sign.apk unsign.apk 别名