首先混淆原理
http://www.jianshu.com/p/7436a1a32891

混淆的一些经验之谈
http://www.jianshu.com/p/158aa484da13
以下结合实际

21,25行,defaultProguard默认不进行,也就是不预校验优化,这样可以加速编译过程.
19行,经验上5次就够了,上限99次,会拖慢编译过程.压缩到不能压缩也会跳出压缩,没必要设置太高.

谷歌建议35~37keep 住整个class
30显然没必要.

40~43没研究.
55,58我主要是在model里要keep住.因为

77行的原因.
Gson解析的model,要keep住,不然找不到.
原因


以上是混淆的经验.使用混淆后,app size从9.01Mb->7.31Mb
后来又keep了几个,最终是在7.7Mb,混淆后精简了1.3Mb,体积减少了14%
谈下andResGuard
这个库是腾讯出品
链接有点长.
微信Android资源混淆打包工具
http://mp.weixin.qq.com/s/ox4WFLMZG63wuoD6_-rCyQ
大概就是以下内容:
无用代码,冗余重复的代码,代码混淆,asset能少就少,能jpg就不png,能web就web传,删除不要的xml,压缩aapt压缩asset文件,signedJarbuilder对工程压缩,用7z工具提高deflate压缩极限
手把手的教程
1 http://www.jianshu.com/p/4cc3a4206ecc
2 http://www.jianshu.com/p/fe988af9c663
底层原理放了四哥的链接.
讲下工具tool如何用
看到build_apk.sh

主要是首先config文件要配置,签名要配置
也可以直接java –jar AndResGuard-cli-1...jar运行jar包,源码在github上有,
这个tool目的是只输入一个apk,得到一个混淆后的apk
https://github.com/shwenzhang/AndResGuard/blob/master/doc/how_to_work.zh-cn.md

网友评论