AndroidStudio下的混淆编译
2016-06-16 16:03
381 查看
Android Studio实现代码混淆
时间:2015-07-22 13:04:29 阅读:33013 评论:0 收藏:0[点我收藏+]
标签:android-studio
1,在build.grandle添加,其中规则写在proguard-rules.pro中,也可以自定义一个文件,将其代替,比如eclipse常用的 proguard-project.txt
buildTypes { release { signingConfig signingConfigs.release minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘ } }
2,在proguard-rules.pro中加入以下代码,基本可以涵盖所有
-optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontpreverify # 混淆时是否做预校验 -verbose # 混淆时是否记录日志 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法 -keep public class * extends android.app.Activity # 保持哪些类不被混淆 -keep public class * extends android.app.Application # 保持哪些类不被混淆 -keep public class * extends android.app.Service # 保持哪些类不被混淆 -keep public class * extends android.content.BroadcastReceiver # 保持哪些类不被混淆 -keep public class * extends android.content.ContentProvider # 保持哪些类不被混淆 -keep public class * extends android.app.backup.BackupAgentHelper # 保持哪些类不被混淆 -keep public class * extends android.preference.Preference # 保持哪些类不被混淆 -keep public class com.android.vending.licensing.ILicensingService # 保持哪些类不被混淆 -keepclasseswithmembernames class * { # 保持 native 方法不被混淆 native <methods>; } -keepclasseswithmembers class * { # 保持自定义控件类不被混淆 public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * {# 保持自定义控件类不被混淆 public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * extends android.app.Activity { # 保持自定义控件类不被混淆 public void *(android.view.View); } -keepclassmembers enum * { # 保持枚举 enum 类不被混淆 public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆 public static final android.os.Parcelable$Creator *; }
3,通过 Android Studio进行 混淆代码时,默认已经将 lib目录中的 jar 都已经添加到打包脚本中,所以不需要再次手动添加,否则会出现“ java.io.IOException: The same input jar is specified twice” 错误。
相关文章推荐
- android源码使用proguard混淆编译及错误总结
- Android 混淆打包编译
- AndroidApk混淆编译时,报告java.io.IOException: The same input jar[xxx/xxx.jar]is specified twice.
- Android 代码混淆在AS的实践
- AndroidApk混淆编译时,报告java.io.IOException...错误解决办法
- androd 横竖屏切换 activity生命周期加载
- android中图片的放大缩小拖动
- Android自定义类似支付宝密码输入的控件
- Android Dex 热补丁更新
- 转: android编译过程(流程图)
- android studio 导入 annotations 注解框架
- 从java内存分配角度分析android内存泄漏问题
- Android开发环境搭建之Eclipes (Mars)
- Android NDK *** could not be resolved
- android之存储篇_SQLite数据库_让你彻底学会SQLite的使用
- 使用Kotlin进行Android开发
- Android中Cursor类的概念和用法
- Android数据请求之Volley框架
- Android省市县三级联动 真实项目抽出 调用只需3行代码 源码免积分下载
- Android文摘学习2016.6.15