zoukankan      html  css  js  c++  java
  • android studio 代码混淆

    1.配置build.gradle脚本中buildTypes节点

    buildTypes {

    debug {
    debuggable true
    signingConfig signingConfigs.config
    }

    release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    signingConfig signingConfigs.config
    }
    }

    2.编辑moudle中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 *;
    }


  • 相关阅读:
    Ajax服务端框架的综合示例
    《Microsoft Sql server 2008 Internals》读书笔记目录索引
    Pro ASP.NET MVC 3 Framework
    C#客户端的异步操作
    在.net中读写config文件的各种方法
    KMP算法分析
    asp.net 4.0 + 模板引擎(NVelocity)CMS
    mvc3
    开源 Asp.net mvc 用户中心开发计划
    JqueryCMS
  • 原文地址:https://www.cnblogs.com/x-bing/p/5464824.html
Copyright © 2011-2022 走看看