android代碼混淆 – Android移動開發技術文章_手機開發 Android移動開發教學課程

android 代碼混淆
1 proguard.cfg,這就是混淆所需的proguard腳本啊。
 
其代碼如下:
 
 
view plain
-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-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 com.android.vending.licensing.ILicensingService 
-keepclasseswithmembernames class * { 
    native <methods>; 

-keepclasseswithmembernames class * { 
    public <init>(android.content.Context, android.util.AttributeSet); 

-keepclasseswithmembernames class * { 
    public <init>(android.content.Context, android.util.AttributeSet, int); 

-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 

-keep class * implements android.os.Parcelable { 
  public static final android.os.Parcelable$Creator *; 

 
 
從腳本中可以看到,混淆中保留瞭繼承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本組件。
並保留瞭所有的Native變量名及類名,所有類中部分以設定瞭固定參數格式的構造函數,枚舉等等。(詳細信息請參考<proguard_path>/examples中的例子及註釋。)
2 在工程的"default.properties"中添加這樣一句話“proguard.config=proguard.cfg”
 
 
打包簽名後的.apk就是混淆的,其實我們隻要做一步就可以瞭就是在"default.properties"中添加這樣一句話“proguard.config=proguard.cfg”就可以瞭。

作者“liangoogle”
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *