在上一篇文章关于游戏SDK ,public.xml 合并的那些事,收到了反馈
问题总结如下
1.没有处理styleable
2.没有处理写死在smali文件的Id值
3.代码不能实现拷贝就直接使用
之所以会有上述问题,归根结底是因为上一篇文章,我分享的是只适用于我这边的环境下的打包脚本的部分代码。更多人需要的是开箱即用的方法,因为最近需求不算多,所以我用java写了一版,希望能减少大家因为ID的问题所浪费的时间(并没有在linux下使用过,不过应该是没问题的)。
使用方法
java -jar FranAmendApk.jar -w G:\Java\public\app
java -jar FranAmendApk.jar -w G:\Java\public\app -p com.fran.test -s -a
命令解释
-w workPath 工作路径,指apktool解压后的路径
-p packageName 包名,使用改包名路径下的R文件来修正 samli文件下写死的id值
-s saveFiles 是否保存工作过程目录, -s指保存,默认生成在workPath下的workSpace
-a changeOtherFiles 修改所有的smali文件的id,默认指修改R$开头的文件,使用该参数强制修改所以smali文件
原理
通过apk的public.xml 来修改smali下的id,可能有部分同学已经发现了,其实用到的就是上一篇文章结尾所说的方式。必须明确的一点是,修正是目前仅包含我所考虑到情况,若修正失败,欢迎联系我,大家一起努力。
题外话
由于本人不太喜欢打命令,所以一直使用的自己封装的工具来完成工作。
工具在这里
在window下使用步骤如下:
1.下载tool.zip
2.解压到自己喜欢的位置
3.将解压的位置添加到环境变量path
4.双击需要的.reg
5.已经可以正常使用了