gradle下的文件配置minifyEnabled 设置为true在'proguard-rules.pro'文件下进行文件代码的是否加混淆
buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }}-dontskipnonpubliclibraryclasses # 不忽略非公共的库类 -optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontpreverify # 混淆时是否做预校验 -verbose # 混淆时是否记录日志 -keepattributes *Annotation* # 保持注解 -ignorewarning # 忽略警告 -dontoptimize # 优化不优化输入的类文件 -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 #生成日志数据,gradle build时在本项目根目录输出 -dump class_files.txt #apk包内所有class的内部结构 -printseeds seeds.txt #未混淆的类和成员 -printusage unused.txt #打印未被使用的代码 -printmapping mapping.txt #混淆前后的映射 -keep public class * extends android.support.** #如果有引用v4或者v7包,需添加 -keepattributes Signature #不混淆泛型 -keepnames class * implements java.io.Serializable #不混淆Serializable -keepclasseswithmembernames class * { # 保持 native 方法不被混淆 native <methods>; } -keepclassmembers class **.R$* { public static <fields>; } -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 * { # 保持枚举 enum 类不被混淆 public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆 public static final android.os.Parcelable$Creator *; }
关于在android studio下的代码混淆
最新推荐文章于 2022-09-13 15:56:57 发布