Android Studio代码混淆,开启Proguard,稍微总结一下

一.首先看一下大佬的博客

https://blog.csdn.net/willba/article/details/79278092

https://www.jianshu.com/p/b5b2a5dfaaf4

https://blog.csdn.net/ccpat/article/details/52059344

做个纪念

https://blog.csdn.net/hnlgzb/article/details/103101455

二.追根溯源

1.proguard官网

https://www.guardsquare.com/zh-hans/%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D/proguard

2.Proguard使用文档

里面很详细

file:///D:/assdk/androidsdk/tools/proguard/docs/index.html

三.总结一下这次的混淆

1.Proguard的四个作用

ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. 

忘记哪里看到的,preverifier对于安卓应用是不需要的。

那就剩下三个了,而optimizer对于安卓应用仅仅是可选项了。

Android Studio代码混淆,开启Proguard,稍微总结一下

也有可能是:

Android Studio代码混淆,开启Proguard,稍微总结一下

proguard-android-optimize.txt和proguard-android.txt相比就多了一个optimizer功能(看自己配置了,也可能是部分的optimizer功能)

2.来看下两者的差别

首先我们在D:\assdk\androidsdk\tools\proguard这个路径下可以找到这两个文件

Android Studio代码混淆,开启Proguard,稍微总结一下

对比了下两者的差别,其实相差不大,就下面的一点差别,差别就在这个字段 -dontoptimize

Android Studio代码混淆,开启Proguard,稍微总结一下

 

3.这两个文件作用的“或”的关系,所以才叫files.

Android Studio代码混淆,开启Proguard,稍微总结一下

 

4.其实也看到有的同事直接把proguard-android-optimize.txt里面的copy到proguard-rules.pro里面,就用一个文件就好。

Android Studio代码混淆,开启Proguard,稍微总结一下

Android Studio代码混淆,开启Proguard,稍微总结一下

 

5.这次经常出错的问题是下面这个:

 找了挺久,最终的原因是:你的应用里面是不是多了一个framework.jar

Android Studio代码混淆,开启Proguard,稍微总结一下