#添加依賴
#-libraryjars libs/AMap3DMap_7.9.1_AMapSearch_7.9.0_AMapLocation_5.3.1_20210414.jar# 不使用大小寫混合類名,混淆后的類名為小寫
-dontusemixedcaseclassnames
# 混淆第三方庫
-dontskipnonpubliclibraryclasses
# 混淆時記錄日志,有助于排查錯誤
-verbose
# 代碼混淆使用的算法.
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
# 跳過預檢驗
-dontpreverify# 代碼混淆壓縮比,值在0-7之間,默認為5.
-optimizationpasses 5# 優(yōu)化時允許訪問并修改有修飾符的類和類的成員
-allowaccessmodification# 保護代碼中的Annotation不被混淆
-keepattributes *Annotation*# 避免混淆泛型, 這在JSON實體映射時非常重要
# -keepattributes Signature
# 拋出異常時保留代碼行號
-keepattributes SourceFile,LineNumberTable################################不需要混淆的######################## 這些類不混淆(混淆時默認保留,可不進行配置)
-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.BackupAgent
#-keep public class * extends android.preference.Preference
#-keep public class * extends android.support.v4.app.Fragment
#-keep public class * extends android.support.v4.app.DialogFragment
##-keep public class * extends com.actionbarsherlock.app.SherlockListFragment
##-keep public class * extends com.actionbarsherlock.app.SherlockFragment
##-keep public class * extends com.actionbarsherlock.app.SherlockFragmentActivity
#-keep public class * extends android.app.Fragment
#-keep public class com.android.vending.licensing.ILicensingService# 不混淆,最后這兩個類我們基本也用不上,是接入Google原生的一些服務時使用的。
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService# Native方法不混淆 ni方法不可混淆,因為這個方法需要和native方法保持一致;
-keepclasseswithmembernames class * {native <methods>;
}# 枚舉類型不混淆 因為enum類的特殊性,以下兩個方法會被反射調用
-keepclassmembers enum * {public static **[] values();public static ** valueOf(java.lang.String);
}# 保留Parcelable序列化類不被混淆
# Parcelable的子類和Creator靜態(tài)成員變量不混淆,否則會產(chǎn)生Android.os.BadParcelableException異常;
-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;
}-keepclassmembers class **.R$* {public static <fields>;
}# We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {public void *(android.view.View);
}# keep setters in Views so that animations can still work.
# see http://proguard.sourceforge.net/manual/examples.html#beans
-keepclassmembers public class * extends android.view.View {void set*(***);*** get*();
}# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
# 打包時忽略警告
-dontwarn android.support.**# Understand the @Keep support annotation.
-keep class android.support.annotation.Keep-keep @android.support.annotation.Keep class * {*;}-keepclasseswithmembers class * {@android.support.annotation.Keep <methods>;
}-keepclasseswithmembers class * {@android.support.annotation.Keep <fields>;
}-keepclasseswithmembers class * {@android.support.annotation.Keep <init>(...);
}# 保留第三方庫android.support.v4不被混淆
#-keep class android.support.v4.app.** { *; }
#-keep interface android.support.v4.app.** { *; }#使用反射的類
-keep class android.app.AivityThread {*;}
-keep interface android.content.pm.IPackageManager {*;}
-keep class com.customer.plugins.appupdate.PackageManagerHook {*;}########################高德地圖混淆處理,不混淆高德地圖中已經(jīng)混淆的類##############################
-dontwarn com.amap.api.**
# -dontwarn com.a.a.**
-dontwarn com.autonavi.**-keep class com.amap.api.** {*;}
-keep class com.autonavi.** {*;}
#-keep class com.a.a.** {*;}########################不混淆corodva相關,Cordova plugin 初始化時無法進行初始化#############################
-keep class org.apache.cordova.** { *; }
#-keep class cordova.** {*;}
#-keep class com.customer.plugins.** {*;}
-keep class * extends org.apache.cordova.CordovaPlugin