android 混淆 gson

很多种做法


我的做法是:

项目中有,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的类也不能混淆,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章