前言
最近公司要用Android Studio打包release版本,发不出去肯定要混淆,看了Github和一些大神的总结,写篇文章自己总价一下。看Proguard Usage英文原版,我反正是放弃了,看了也不会用。英文水平实在有限。避免被混淆代码,除了特定一些app的某些东西,其他的基本一样,能多别少。Proguard语法总结
ProGuard默认会对第三方库也进行混淆的,而第三方库有的已经混淆过了,有的使用了Java反射技术,所以我们在进行代码混淆的时候要排除这些第三方库。
1、保护引用的第三方jar包 如:-libraryjars libs/baidumapapi_v3_2_0.jar #保护引用的第三方jar包不被混淆注意:在使用Eclipse+ADT时需要加入-libraryjars libs/...,如果你是使用Android Studio开发的项目则不需要加入libs包中的jar包,这是因为,通过Android Studio进行混淆代码时,默认已经将 lib目录中的 jar 都已经添加到打包脚本中,所以不需要再次手动添加,否则会出现“ java.io.IOException: The same input jar is specified twice” 错误。
2、混淆时保护第三方jar包中的类不被混淆
如:-keep class com.baidu.** { *; } #让ProGuard不要警告找不到com.baidu.**这个包里面的类的相关引用
-dontwarn com.baidu.** #保持com.baidu.**这个包里面的所有类和所有方法不被混淆。