Android代码混淆

代码混淆步骤:

1,project.properties中打开代码混淆功能proguard.config=proguard.cfg

2,编辑proguard.cfg文件,内容如下

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-ignorewarnings
-libraryjars libs/android-support-v4.jar

-dontwarn android.support.v4.**    
-keep class android.support.v4.** { *; }  
-keep interface android.support.v4.app.** { *; }  
-keep public class * extends android.support.v4.**  
-keep public class * extends android.app.Fragment

-libraryjars libs/asmack.jar
-libraryjars libs/aws-android-sdk-1.7.1.1-core.jar
-libraryjars libs/aws-android-sdk-1.7.1.1-s3.jar
-libraryjars libs/LibFrameWidget.jar
-libraryjars libs/LibFramework.jar
-libraryjars libs/locSDK_4.0.jar
-libraryjars libs/umeng_sdk.jar
-libraryjars libs/zxing-core.jar
-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 ;
}

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

-keepclasseswithmembernames class * {
    public (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 *;
}

应该注意的地方如下:

1,android-support-v4.jar报错的话,要加上下面的代码

-ignorewarnings

-dontwarn android.support.v4.**    
-keep class android.support.v4.** { *; }  
-keep interface android.support.v4.app.** { *; }  
-keep public class * extends android.support.v4.**  
-keep public class * extends android.app.Fragment

2,所有的*.jar包都要加上

-libraryjars libs/*.jar

3,混淆代码除了可以更安全还有一个好处是:你的APK文件变得更小,大概为混淆之前的1/2吧。

你可能感兴趣的:(Android)