混淆减少app 安装包体积

首先混淆原理

http://www.jianshu.com/p/7436a1a32891

image

混淆的一些经验之谈

http://www.jianshu.com/p/158aa484da13

以下结合实际

image

21,25行,defaultProguard默认不进行,也就是不预校验优化,这样可以加速编译过程.

19行,经验上5次就够了,上限99次,会拖慢编译过程.压缩到不能压缩也会跳出压缩,没必要设置太高.

image

谷歌建议35~37keep 住整个class

30显然没必要.

image

40~43没研究.

55,58我主要是在model里要keep住.因为

image

77行的原因.

Gson解析的model,要keep住,不然找不到.

原因

image
image

以上是混淆的经验.使用混淆后,app size从9.01Mb->7.31Mb

后来又keep了几个,最终是在7.7Mb,混淆后精简了1.3Mb,体积减少了14%

谈下andResGuard

这个库是腾讯出品

https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f&scene=0&key=2877d24f51fa53840b9428bf2c29a570966c97f04f9c3ff478a78c2a3bd62a3600d16e18c0c8d27fb1446159fdb4fd1d&ascene=0&uin=MjQwMDgwNDM1&devicetype=iMac+MacBookPro12%2C1+OSX+OSX+10.11+build(15A284)&version=11020201&nettype=WIFI&pass_ticket=23aEFA9EDfiCKtxUaVaqR8e9%2FqwyoyUB3N3G2dKbmh0%3D

链接有点长.

微信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

image

主要是首先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

image

你可能感兴趣的:(混淆减少app 安装包体积)