ps:如果是小白,建议请先看这篇文章:http://blog.csdn.net/androideveloper/article/details/10045889
note:
不混淆某类的构造方法, 指定构造函数的参数类型,有实现 implements android.os.Parcelable
或 继承extends android.app.Activity
1 2 3 |
-keepclassmembers class * {
public <init>(org.json.JSONObject);
}
|
不混淆指定包class
或接口interface
,指定类把**
换成类名
1 |
-keep class android.support.v4.app.** { *; }
|
不混淆指定方法,同理可以添加继承和实现,*
可以换成指定的方法或类名
1 2 3 |
-keepclassmembers class * {
public void *(android.view.View);
}
|
混淆的基本元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
-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 * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
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 * {
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
1 2 3 4 5 6 |
-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
|
2) Gson
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
|
百度地图
1 2 |
-libraryjars libs/baidumapapi.jar
-keep class com.baidu.mapapi.* {*; }
|
友盟混淆
1 2 3 4 5 6 |
-keep public class [package name].R$*{
public static final int *;
}
//双向反馈功能
-keep public class com.feedback.ui.ThreadView {
}
|
支付宝
1 2 3 4 |
-libraryjars libs/alipay_msp.jar
-keep public class * extends android.os.IInterface
-dontwarn com.alipay.android.app.**
-keep class com.alipay.android.** {*; }
|
来自农民伯伯
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
-libraryjars libs/android-support-v13.jar
-libraryjars libs/umeng_sdk.jar
-libraryjars libs/ormlite-android-4.42-SNAPSHOT.jar
-libraryjars libs/ormlite-core-4.42-SNAPSHOT.jar
-libraryjars libs/signpost-core-1.2.1.1.jar
-libraryjars libs/tencent_openapi.jar
-libraryjars libs/weibo.sdk.android.sso.jar
-dontwarn android.support.**
-dontwarn android.**
-dontwarn sina.**
-dontwarn weibo.**
-dontwarn oauth.**
-dontwarn com.google.**
-dontwarn com.j256.**
-dontwarn com.umeng.**
-dontwarn com.tencent.**
-keep class android.support.**{*;}
-keep class android.** { *; }
-keep class sina.** { *; }
-keep class weibo.** { *; }
-keep class oauth.** { *; }
-keep class com.google.** { *; }
-keep class com.j256.** { *; }
-keep class com.umeng.**{*;}
-keep class com.tencent.**{*;}
-keep class org.apache.**{*;}
|