gradle之构建速度优化(混淆proguard 填坑之路)

https://www.jb51.net/article/149128.htm

http://ask.android-studio.org/?/question/899-----混淆打包遇到的问题

1:在 主moudel工程下的 gradle.build文件中,放开混淆和 移除无用资源

  https://blog.csdn.net/u010248147/article/details/87358853

proguard提供了一种比较先进的安全组件来保证android APK和SDK被静态代码分析,所以其最主要的功能就是对我们的代码进行混淆,不让一些黑客可以通过一些静态代码的分析来攻击我们的应用。但是其实proguard还提供了一些其他的功能,那我们先来看下到底做了哪些事情。

功能和流程:

功能:shrinker(压缩),optimizer(优化),obfuscator(混淆),preverifier(预校验)

shrink: 检测并移除没有用到的类,变量,方法和属性;

optimize: 优化代码,非入口节点类会加上private/static/final,没有用到的参数会被删除,一些方法可能会变成内联代码。

obfuscate: 使用短又没有语义的名字重命名非入口类的类名,变量名,方法名。入口类的名字保持不变。

preverify: 预校验代码是否符合Java1.6或者更高的规范(唯一一个与入口类不相关的步骤)

流程:

shrink-->optimize-->obfuscate-->preverify

proguard-rules.pro:们自定义的混淆规则,这份文件就位于app目录下,也是我们在项目中一眼可以看到的混淆文件。方便我们看到,也是为了方便我们操作。(这个文件是 android sdk提供的一个默认的produard的默认配置项存放在{ANDROID_SDK_ROOT}/tools/proguard/)
proguard-android.txt:系统提供的默认的混淆规则,这份文件你在项目中就是把电脑戳烂也找不到,既然系统提供的默认混淆规则,一般也不需要我们动。它的路径在sdk/tools/proguard/下。但是其实在下面这个目录也会存在

android-optimize.txt : 

此文件主要配置的是一些默认的proguard配置,而和‘proguard-android’的最大区别在与‘proguard-android-optimize.txt’中开启了Proguard optimize的选项(optimize是Proguard的一项功能) ,它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。(所以一般release版本应该开启android-optimize.txt : 优化规则 )

填坑1:

   需要在 proguard-android.txt 中 设置 -dontwarn 文件

填坑2 :

   

猜你喜欢

转载自blog.csdn.net/u013620306/article/details/107692352