Skip to content

Android proguard混淆的一些理解

Mr.wu edited this page May 9, 2017 · 1 revision
  1.  ProGuard是一个开源的Java代码混淆器。它可以混淆Android项目里面的java代码,对的,你没看错,仅仅是java代码。它是无法混淆Native代码,资源文件drawable、xml等。

  2. ProGuard作用 压缩: 移除无效的类、属性、方法等 优化: 优化字节码,并删除未使用的结构 混淆: 将类名、属性名、方法名混淆为难以读懂的字母,比如a,b,c

  3. 混淆注意事项

  1. 不能混淆

在AndroidManifest中配置的类,比如四大组件 JNI调用的方法 反射用到的类 WebView中JavaScript调用的方法 Layout文件引用到的自定义View 一些引入的第三方库(一般都会有混淆说明的) 这里推荐两个开源项目,里面收集了一些第三方库的混淆规则

在Module下的build.gradle文件中将minifyEnabled false改为minifyEnabled true。

buildTypes {  
        release {  
            minifyEnabled true  
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
        }  
    } 

其中:proguardFiles getDefaultProguardFile('proguard-android.txt')表示获取SDK下'proguard-android.txt‘文件中的默认混淆规则。 'proguard-rules.pro'表示使用项目根目录下的 'proguard-rules.pro'文件中的混淆规则。

参考:https://segmentfault.com/a/1190000004461614

Home

Android 开发录

-深入理解LayoutInflater.inflate()的参数

计算机网络原理

数据库

Java 垃圾回收机制

Java 开发录

面试

搭建翻墙shadowsocks 教程

其他

Clone this wiki locally