很多種做法
我的做法是:
項目中有,proguard.cfg和project.properties文件
在project.properties文件中加入一句,proguard.config=proguard.cfg
意思爲混淆規則指向proguard.cfg這個文件,然後再這個文件下添加一些規則
對於第三方的jar文件
例:
-libraryjars libs/android-support-v4.jar
## support-v4
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
其他的jar包類似操作,
GSon的處理:
## gson
-dontwarn com.google.gson.**
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.** { *; }
-keep class com.google.gson.JsonObject { *; }
-keep class com.google.gson.examples.android.model.** { *; }
要加入這一句
-keepattributes Signature
我是用gson解析的所以相對應的數據類的屬性名字就不能混淆了
我是implements Serializable
然後再添加:
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keep public class * implements java.io.Serializable {*;}
一些用到JNI的類也不能混淆,