android 常用第三方包的代码混淆

时间:2023-03-08 17:42:57

首先在:project.properties 文件下,启动代码混淆

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 将这行注释取消。

修改proguard-project.txt 代码混淆文件。

//1)注意忽视警告

-ignorewarnings
-dontwarn

//2)注意的是,使用到反射的类,需要keep

-keepattributes Signature
-keepattributes *Annotation*

//3)libs 下jar,全部用-libraryjars libs/添加进文件

//4)armeabi、armeabi-v7a下的so,通过-libraryjars libs/armeabi/,-libraryjars libs/armeabi-v7a/ 添加进文件

## ----------------------------------
## ########## 个推混淆 ##########
## ----------------------------------

-dontwarn com.igexin.**
-keep class com.igexin.** {*;}

## ----------------------------------
## ########## Gson混淆 ##########
## ----------------------------------
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.examples.android.model.** { *; }

## ----------------------------------
## sharesdk
## ----------------------------------

-keepattributes InnerClasses,LineNumberTable
-keep class android.net.http.SslError
-keep class android.webkit.**{*;}
-keep class cn.sharesdk.**{*;}
-keep class cn.smssdk.**{*;}
-keep class com.mob.**{*;}

# # -------------------------------------------
# # ############### volley混淆 ###############
# # -------------------------------------------
-keep class com.android.volley.** {*;}
-keep class com.android.volley.toolbox.** {*;}
-keep class com.android.volley.Response$* { *; }
-keep class com.android.volley.Request$* { *; }
-keep class com.android.volley.RequestQueue$* { *; }
-keep class com.android.volley.toolbox.HurlStack$* { *; }
-keep class com.android.volley.toolbox.ImageLoader$* { *; }

# # -------------------------------------------
# # ############### slidingmenu混淆 ############### 
# # -------------------------------------------

-dontwarn com.jeremyfeinstein.slidingmenu.lib.**
-keep class com.jeremyfeinstein.slidingmenu.lib.**{*;}

# # -------------------------------------------
# # ############### baidu混淆 ############### 
# # -------------------------------------------

-keep class com.baidu.mapapi.** {*; }
-keep class com.baidu.platform.** {*; }
-keep class com.baidu.location.** {*; }
-keep class com.baidu.vi.** {*; }
-keep class vi.com.gdi.bgl.android.** {*; }

# universal-image-loader 混淆

-dontwarn com.nostra13.universalimageloader.**
-keep class com.nostra13.universalimageloader.** { *; }

-libraryjars libs/android-support-v4.jar
# # -------------------------------------------
# # ############### android-support-v4混淆 ############### 
# # -------------------------------------------
-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

# # -------------------------------------------
# # ############### androidannotations混淆 ############### 
# # -------------------------------------------

-dontwarn org.springframework.**

# # -------------------------------------------
# # ############### 系统api等常规混淆 ############### 
# # -------------------------------------------

-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.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference

-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();
}

-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 *;
}

-keep class * implements android.os.Serializable {
*;
}

-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
}

-keep class **.R$* {
*;
}