Android studio使用コード混同

2314 ワード

いくつかのセキュリティ要件の高いアプリケーションでは、コード混同を使用する必要があります.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 *;
}