android 聚合SDK打包,硬核SDK或其它渠道SDK打包工具

融合SDK

我们的SDK其实也可以称为聚合SDK,CP游戏方通过接入聚合SDK,然后通过打包工具将游戏分发到更多渠道上,例如小米,华为,oppo,应用宝等等渠道。

以下只是打包工具融合的逻辑,没有具体代码。

打包工具流程

1.使用apktool反编译游戏母包apk,SDK渠道包apk
2.复制SDK中的资源到游戏母包
copy_file_list = ['/res', '/assets', 'kotlin', 'original', 'unknown', '/lib']

可以把上面的文件夹内容直接复制到游戏母包中,其中res/values文件不用复制,因为里边的资源文件需要合并

# value文件下需要合并的文件名称
res_list = ['styles.xml', 'attrs.xml', 'colors.xml', 'dimens.xml', 'drawables.xml', 'integers.xml',
            'strings.xml',
            'arrays.xml', 'ids.xml', 'bools.xml']

可以写一个脚本将SDK中的资源合并进去,以母包的资源为主,例如

游戏母包:<string name="app_name">母包</string>

SDK包:<string name="app_name">sdk</string>

合并结果是<string name="app_name">母包</string>

以此类推,其它xml资源合并也是以母包为主。

3.合并smali文件
  1. 删除游戏母包中聚合sdk的文件,因为渠道SDK会重新复制进来,防止smali文件分包的时候没法覆盖掉旧的
  2. 把SDK文件中的smali文件复制到游戏母包,直接覆盖原文件
  3.  把smali文件进行分包操作,例如只有一个smali文件夹,扫描里边的方法数,如果方法数超过50000就新建一个smali_calss2文件夹放置超过的文件。然后循环扫描smali文件夹,超过方法数就新建,直至都不超过
4.合并public.xml文件,并逆向修改R文件的值
  1. 反编译后res/values/ 下会生成 public.xml文件,将sdk中的public.xml合并到母包中,具体合并规则,可以查看下面的连接,看里边的重新重新赋值的规则或者自行百度查看合并规则Android SDK 二次打包替换SDK 合并资源文件public.xml和Ids.xml的合并 并对合并的public.xml 重新进行id赋值_已经写好的安卓软件腾讯sdk怎么替换-CSDN博客
  2.  遍历所有的smali文件,逆向修改R文件的值

                 smali_file_name = f'R${res_type}.smali' 

        <public type="style" name="AppTheme" id="0x7f0c0164" />

                例如:res_type指的是style,string,layout等等。找到R文件的smali,把对应的AppTheme的值逆向修改为public.xml中的

5.合并AndroidManifest.xml

      

 6.修改app信息,名称,版本号等

        1.版本号和名称直接修改apktool.xml

7.特殊处理

        1.处理渠道的配置文件等等

        2.添加启动页面

8.对齐,签名出包

  • 24
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值