Android(安卓)混淆
16lz
2021-01-26
Android项目开发的时候,我们使用混淆可以加密我们的App,增加我们App被破解的难度,同时也可以减小我们App的体积
混淆的用法
-keep [,modifier,...] class
不混淆某些类别-keepclassmembers [,modifier,...] class
不混淆类的成员-keepclasseswithmembers [,modifier,...] class
不混淆类及其成员-keepnames class
不混淆类及其成员名-keepclassmembernames class
不混淆类的成员名-keepclasseswithmembernames class
不混淆类及其成员名-dontwarn [class_filter]
不提示warnning
在 Android 开发中,不需要被混淆(就是需要添加混淆规则的)的有哪些呢?
下列内容不希望被混淆
反射用到的类
JNI方法
Parcelable的子类和Creator静态成员变量不混淆,否则会产生android.os.BadParcelableException异常
使用GSON、fastjson等框架时,所写的JSON对象类不混淆,否则无法将JSON解析成对应的对象
有用到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/
更多相关文章
- Android中常用的颜色
- android TextInputLayout
- android混淆(Obfuscate)
- ProGuard惯用法
- android 上传json串时,json key 被替换为 a b c 的问题
- android studio 混淆打包apk后volley无法访问网络
- Android(安卓)proguard.flags
- android 代码混淆proguard
- Android工程目录结构介绍