Android项目开发的时候,我们使用混淆可以加密我们的App,增加我们App被破解的难度,同时也可以减小我们App的体积

混淆的用法

  • -keep [,modifier,...] class 不混淆某些类别

  • -keepclassmembers [,modifier,...] class 不混淆类的成员

  • -keepclasseswithmembers [,modifier,...] class 不混淆类及其成员

  • -keepnames class 不混淆类及其成员名

  • -keepclassmembernames class 不混淆类的成员名

  • -keepclasseswithmembernames class 不混淆类及其成员名

  • -dontwarn [class_filter] 不提示warnning

在 Android 开发中,不需要被混淆(就是需要添加混淆规则的)的有哪些呢?

下列内容不希望被混淆

  1. 反射用到的类

  2. JNI方法

  3. Parcelable的子类和Creator静态成员变量不混淆,否则会产生android.os.BadParcelableException异常

  4. 使用GSON、fastjson等框架时,所写的JSON对象类不混淆,否则无法将JSON解析成对应的对象

  5. 有用到WEBView的JS调用也需要保证写的接口方法不混淆

Example

Webview调用js通讯

-keep @interface android.webkit.JavascriptInterface-keep class android.webkit.JavascriptInterface {*;}-keepattributes *JavascriptInterface*-keepclassmembers class [your Class name]$[yourJavaScriptInterface]{   ;}

第三方类库

-keep class butterknife.** { *; } -dontwarn butterknife.internal.**-keep class **$$ViewBinder { *; } 不混淆以ViewBinder结尾的类

参考文档:

SDK\tools\proguard\(本地SDK路径)

http://proguard.sourceforge.net/index.html#manual/usage.html

http://malinkang.com/blog/2015/09/21/android-proguard/

更多相关文章

  1. Android中常用的颜色
  2. android TextInputLayout
  3. android混淆(Obfuscate)
  4. ProGuard惯用法
  5. android 上传json串时,json key 被替换为 a b c 的问题
  6. android studio 混淆打包apk后volley无法访问网络
  7. Android(安卓)proguard.flags
  8. android 代码混淆proguard
  9. Android工程目录结构介绍

随机推荐

  1. 如何在5天内学会Vue?聊聊我的学习方法!
  2. 【JavaWeb基础】客户关系管理系统(修订版
  3. PHP和Python哪个更适合Web开发?Python学
  4. 我用起来顺手的数据库设计工具,这次推荐给
  5. C语言中的数据类型及其转换详解
  6. 什么是单点登录(SSO)
  7. 感动,感谢,感恩 PMP 考后感
  8. 对SATA硬盘的理解
  9. MongoDB快速入门,掌握这些刚刚好!
  10. 【JavaWeb基础】图书管理系统总结(修订版