123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- # Add project specific ProGuard rules here.
- # You can control the set of applied configuration files using the
- # proguardFiles setting in build.gradle.
- #
- # For more details, see
- # http://developer.android.com/guide/developing/tools/proguard.html
- # If your project uses WebView with JS, uncomment the following
- # and specify the fully qualified class name to the JavaScript interface
- # class:
- #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
- # public *;
- #}
- # Uncomment this to preserve the line number information for
- # debugging stack traces.
- #-keepattributes SourceFile,LineNumberTable
- # If you keep the line number information, uncomment this to
- # hide the original source file name.
- #-renamesourcefileattribute SourceFile
- #------------------------基本不用动区域-----------------
- #------------------------基本指令区---------------------
- -dontwarn
- -ignorewarnings
- -optimizationpasses 5
- -dontusemixedcaseclassnames
- -dontskipnonpubliclibraryclasses
- -dontskipnonpubliclibraryclassmembers
- -dontpreverify
- -verbose
- -printmapping proguardMapping.txt
- -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
- -keepattributes *Annotation*,InnerClasses
- -keepattributes Signature
- -keepattributes SourceFile,LineNumberTable
- #=====================================================
- #----------------------------默认保留区------------------------
- -keep public class * extends android.app.backup.BackupAgentHelper
- -keep public class * extends android.view.View
- -keep public class com.android.vending.licensing.ILicensingService
- -keep class android.support.** {*;}
- -keep public class * extends android.app.Fragment
- -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.preference.Preference
- -keep public class * extends android.content.ContentProvider
- -keep public class * extends android.support.v4.**
- -keep public class * extends android.support.annotation.**
- -keep public class * extends android.support.v7.**
- # natvie 方法不混淆
- -keepclasseswithmembernames class * {
- native <methods>;
- }
- # 这个主要是在layout 中写的onclick方法android:onclick="onClick",不进行混淆
- -keepclassmembers class * extends android.app.Activity{
- public void *(android.view.View);
- }
- # 枚举类不能被混淆
- -keepclassmembers enum * {
- public static **[] values();
- public static ** valueOf(java.lang.String);
- }
- # 所有View的子类及其子类的get、set方法都不进行混淆
- -keep public class * extends android.view.View{
- *** get*();
- void set*(***);
- public <init>(android.content.Context);
- public <init>(android.content.Context, android.util.AttributeSet);
- public <init>(android.content.Context, android.util.AttributeSet, int);
- }
- -keepclasseswithmembers class * {
- public <init>(android.content.Context, android.util.AttributeSet);
- public <init>(android.content.Context, android.util.AttributeSet, int);
- }
- # 保持 Parcelable 不被混淆
- -keep class * implements android.os.Parcelable {
- public static final android.os.Parcelable$Creator *;
- }
- #不混淆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();
- }
- # 不混淆R类里及其所有内部static类中的所有static变量字段,$是用来分割内嵌类与其母体的标志
- -keep class **.R$* {
- *;
- }
- # 对于带有回调函数onXXEvent的,不能被混淆
- -keepclassmembers class * {
- void *(**On*Event);
- }
- #(可选)避免Log打印输出
- -assumenosideeffects class android.util.Log {
- public static *** v(...);
- public static *** d(...);
- public static *** i(...);
- public static *** w(...);
- }
- #============================================================
- #-------------------------------webView----------------------------
- -keepclassmembers class fqcn.of.javascript.interface.for.Webview {
- public *;
- }
- -keepclassmembers class * extends android.webkit.WebViewClient {
- public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
- public boolean *(android.webkit.WebView, java.lang.String);
- }
- -keepclassmembers class * extends android.webkit.WebViewClient {
- public void *(android.webkit.WebView, jav.lang.String);
- }
- -keep class com.mylove.** {*;}
- -keep class * extends java.lang.annotation.Annotation { *; }
- -keep interface * extends java.lang.annotation.Annotation { *; }
|