- - optimizationpasses 5#指定代码的压缩级别 - dontusemixedcaseclassnames#是否使用大小写混合 - dontskipnonpubliclibraryclasses#是否混淆第三方jar - dontpreverify#混淆时是否做预校验 - verbose#混淆时是否记录日志 - optimizations ! code / simplification / arithmetic,
- !field
- /*,!class/merging/* # 混淆时所采用的算法 -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.BackupAgentHelper # 保持哪些类不被混淆 -keep public class * extends android.preference.Preference # 保持哪些类不被混淆 -keep public class com.android.vending.licensing.ILicensingService # 保持哪些类不被混淆 -keepclasseswithmembernames class * { # 保持 native 方法不被混淆 native ; } -keepclasseswithmembers class * { # 保持自定义控件类不被混淆 public (android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public (android.content.Context, android.util.AttributeSet, int); # 保持自定义控件类不被混淆 } -keepclassmembers class * extends android.app.Activity { # 保持自定义控件类不被混淆 public void *(android.view.View); } -keepclassmembers enum * { # 保持枚举 enum 类不被混淆 public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆 public static final android.os.Parcelable$Creator *; } -keep class MyClass; # 保持自己定义的类不被混淆 */
我自己项目下的第三方混淆
- - keepparameternames - renamesourcefileattribute SourceFile - keepattributes Exceptions,
- InnerClasses,
- Signature,
- Deprecated,
- SourceFile,
- LineNumberTable,
- EnclosingMethod - optimizations ! code / simplification / arithmetic - keep public class * extends android.app.Activity - keep public class * extends android.app.Application - keep public class * extends android.content.ContentProvider - keepclassmembers class * {
- void * (android.view.View); * ***Click(...); * ***Event(...);
- } - keep public class * {
- public protected * ;
- } - keepclasseswithmembernames class * {
- native;
- } - keepclassmembers class * implements java.io.Serializable {
- static final long serialVersionUID;
- 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 * extends android.view.View {
- public(android.content.Context);
- public(android.content.Context, android.util.AttributeSet);
- public(android.content.Context, android.util.AttributeSet, int);
- public void set * (...);
- } - keepclasseswithmembers class * {
- public(android.content.Context, android.util.AttributeSet);
- } - keepclasseswithmembers class * {
- public(android.content.Context, android.util.AttributeSet, int);
- } - keepclassmembers class * extends android.content.Context {
- public void * (android.view.View);
- public void * (android.view.MenuItem);
- } - keepclassmembers class * implements android.os.Parcelable {
- static android.os.Parcelable$Creator CREATOR;
- } - keepclassmembers class * *.R$ * {
- public static;
- } - keepclassmembers class * {@android.webkit.JavascriptInterface;
- } - keep public interface com.android.vending.licensing.ILicensingService - dontnote com.android.vending.licensing.ILicensingService - dontpreverify - repackageclasses '' - allowaccessmodification - dontwarn android. * *-keep interface android. * *{ * ;
- } - keep class android. * *{ * ;
- } - keep public class * extends android. * *-keepclassmembers class * extends java.lang.Enum {
- public static * *[] values();
- public static * *valueOf(java.lang.String);
- } - keep class com.fanglin.fenhong.microbuyer.base.model. * *{ * ;
- }#---------------BEGIN: Gson防混淆-----------keepattributes * Annotation * -keep class sun.misc.Unsafe { * ;
- } - keep class com.idea.fifaalarmclock.entity. * **# - keep class com.google.gson.stream. * *{ * ;
- } - keep class com.google.gson. * *{ * ;
- }#---------------END-----------dontwarn com.daimajia. * *-keep class com.daimajia. * *{ * ;
- }#---------------BEGIN: 信鸽防混淆-----------keep public class * extends android.app.Service - keep public class * extends android.content.BroadcastReceiver - keep class com.tencent.android.tpush. * *{ * ;
- } - keep class com.tencent.mid. * *{ * ;
- }#---------------END----------#---------------BEGIN: SafeWebViewBridge-----------keepclassmembers class cn.pedant.SafeWebViewBridge.sample.HostJsScope$RetJavaObj { * ;
- } - keepclassmembers class cn.pedant.SafeWebViewBridge.sample.HostJsScope { * ;
- }#---------------END----------#-----友盟--------------------keepclassmembers class * {
- public(org.json.JSONObject);
- } - keep public class com.fanglin.fenhong.microbuyer.R$ * {
- public static final int * ;
- }#---------------END----------
最后在 Builde.gradle 中设置
- buildTypes {
- release { // 不显示Log buildConfigField "boolean", "LOG_DEBUG", "false" minifyEnabled true // 开启混淆 zipAlignEnabled true // 对齐zip shrinkResources false // 删除无用资源 debuggable false // 是否debug versionNameSuffix "_release" // 版本命名后缀 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 混淆文件 } debug { zipAlignEnabled false shrinkResources false minifyEnabled false versionNameSuffix "_debug" signingConfig signingConfigs.debug proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: