对于一些安全性要求比较高的应用,需要使用代码混淆,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 *;}

更多相关文章

  1. MediaScanner
  2. Android(安卓)SQLite数据存储
  3. ListView的item点击失效解决
  4. android 设置全屏代码
  5. android leds简单代码总结
  6. GridView 控件和Gallery 控件
  7. Android(安卓)耗时代码(ANR)的查找检测和分析解决 TraceView的使
  8. android style中出现自定义属性时的写法
  9. Android(安卓)各种功能代码收集

随机推荐

  1. linq to sql的一个问题
  2. MySQL5.7多源复制
  3. Spark SQL:如果是NULL处理。
  4. mysql index hint 在index不存在时的处理
  5. 数据库的认识+SQL
  6. MySQL5.7.10下载及安装及配置
  7. 使用不同的条件,在同一个表的一个SQL查询
  8. 下标越界: '[number: 0]'
  9. 如何将MDB (Access)文件转换为MySQL(或纯
  10. phthon 连接sql server数据库执行存储过