Proguard.cfg 配置
2015-08-09 11:49
316 查看
Proguard.cfg 配置
-optimizationpasses 5 //代码混淆压缩比 默认为5 一般不需要改 -dontusemixedcaseclassnames //混淆后的类名为小写 如public class a -dontskipnonpubliclibraryclasses //混淆第三方 库 加上此句后 可再后面配置某些库不混淆 -dontpreverify
// 混淆前认证,可去掉加快混淆速度
-verbose //混淆的log 帮助排错
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* //代码混淆采用的算法,一般不改变,用谷歌推荐算即可
-keepattributes *Annotation* 假如项目中有用到注解
应用加入
引用外部的jar包 如果不是自己写的 最好不混淆它们,因为外部jar包有可能已经混淆过,根据实际情况来 不混淆某些外部jar
保持外部jar包不变的方法 -dontwarn android.support.v4.** //执行下面一行代码如果有警告也不用中止,因为此jar不是我们自己写的,有警告也不处理,故dontwarn -keep class android.support.v4.** //项目中用到此jar包,在打包时必须不混淆,否则用ViewPager时必crash,原因很简单,ViewPager是一个自定义view,在布局中用类的全名来 定义此布局,混淆后类名和包名改变,xml布局无法再通过类名打到此自定义view 如果你的项目中用到了webview的复杂操作 加入此两行代码
-keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView,java.lang.String,android.graphics.Bitmap); public boolean *(android.webkit.WebView,java.lang.String); } -keepclassmembers class * extends android.webkit.WebChromeClient { public void *(android.webkit.WebView,java.lang.String); } 经过实战检验,做腾讯QQ登录,如果引用他们提供的jar,若不加防止WebChromeClient混淆的代码,oauth认证无法回调,反编译基代码后可看到他们有用到WebChromeClient,加入此代码即可, 不过还是建议不要用他们提供的jar包做oauth认证,至于为啥,不解释 正常开发 系统默认的混淆再加上以上基本的混淆即可满足,更多需求还需要去阅文档 用到了anroid支持包加入 -libraryjars libs/android-support-v4.jar -dontwarn android.support.v4.** -keep class android.support.v4.** { *; } -keep interface android.support.v4.app.** { *; } -keep public class * extends android.support.v4.** -keep public class * extends android.app.Fragment
相关文章推荐
- 【Java多线程】之六:Synchronization and Thread Safety
- jQuery
- Tarena - 数字求和小游戏
- house robberII
- C/S与B/S的区别
- POJ 3368 Frequent values
- Android蓝牙开发
- HDU 1017
- Why c-lang for deep learning, scala for cluster machine learning ?
- 无法安装Apple mobile device support 导致ipad(iphone)无法连接itunes的解决办法
- iOS7之后如何获得APP唯一的身份标识
- Insertion Sort List
- sql作业启停服务器
- EL表达式
- UIImageView和UIImage
- Tomcat源码解析(一)下载源码与导入eclipse
- 重学java23种设计模式(15)解释器模式
- 单双列集合
- 诚信胜于生命
- CURL不使用文件存取COOKIE