android学习笔记2-打包混淆配置
16lz
2021-01-23
在Android Studio项目中的混淆打包配置项:
项目目录下增加:proguard-rules.pro,如图:
配置文件具体类容如下:
# Add project specific ProGuard rules here.# By default, the flags in this file are appended to flags specified# in E:\Android\adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\sdk/tools/proguard/proguard-android.txt# You can edit the include path and order by changing the proguardFiles# directive in build.gradle.## For more details, see# http://developer.android.com/guide/developing/tools/proguard.html# Add any project specific keep options here:# 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 *;#}-optimizationpasses 7 # 指定代码的压缩级别-dontusemixedcaseclassnames # 是否使用大小写混合-dontpreverify # 混淆时是否做预校验-verbose # 混淆时是否记录日志-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法-keep public class * extends android.app.Activity # 保持哪些类不被混淆-keep public class * extends android.app.Activity # 保持哪些类不被混淆-keep public class * extends android.app.FragmentActivity # 保持哪些类不被混淆-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 *;}#混淆butterknife-keep class butterknife.** { *; }-dontwarn butterknife.internal.**-keep class **$$ViewBinder { *; }-keepclasseswithmembernames class * { @butterknife.*; }-keepclasseswithmembernames class * { @butterknife.*; }#混淆butterknife#不混淆sharesdk-keep class cn.sharesdk.**{*;}-keep class com.sina.**{*;}-keep class **.R$* {*;}-keep class **.R{*;}-keep class com.mob.**{*;}-dontwarn com.mob.**-dontwarn cn.sharesdk.**-dontwarn **.R$*#不混淆sharesdk#不混淆alipay-keep class com.alipay.android.app.IAlixPay{*;}-keep class com.alipay.android.app.IAlixPay$Stub{*;}-keep class com.alipay.android.app.IRemoteServiceCallback{*;}-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}-keep class com.alipay.sdk.app.PayTask{ public *;}-keep class com.alipay.sdk.app.AuthTask{ public *;}-keep class com.alipay.mobilesecuritysdk.*-keep class com.alipay.apmobilesecuritysdk.*-dontwarn com.alipay.apmobilesecuritysdk.**-keep class com.ut.*#不混淆alipay#不混淆demo-dontwarn demo.**-keep class demo.** { *;}#不混淆demo#不混淆百度-keep class com.baidu.** {*;}-keep class vi.com.** {*;}-dontwarn com.baidu.**#不混淆百度#不混淆 com.squareup.picasso-keepattributes SourceFile,LineNumberTable-keep class com.parse.*{ *; }-dontwarn com.parse.**-dontwarn com.squareup.picasso.**-keepclasseswithmembernames class * { native; }#不混淆 com.squareup.picasso#不混淆okio-dontwarn com.squareup.okhttp.**-keep class com.squareup.okhttp.** { *;}-dontwarn okio.**#不混淆okio#不混淆jackson-dontwarn org.codehaus.jackson.**-keep class org.codehaus.jackson.** {*; }-keep interface org.codehaus.jackson.** { *; }-keep public class * extends org.codehaus.jackson.**-keep class com.fasterxml.jackson.** { *; }-dontwarn com.fasterxml.jackson.databind.**#Warning:com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry#不混淆jackson#不混淆EventBus#-keepclassmembers class ** {# public void onEvent*(**);#}-keep class de.greenrobot.event.** {*;}-keepclassmembers class ** { public void onEvent*(**);}-keepclassmembers class ** { void onEvent*(**);}-keepclassmembers class ** { public void onEvent(int); #【对该方法不进行混淆】}# Only required if you use AsyncExecutor-keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent {(java.lang.Throwable); }#不混淆EventBus-keep class com.puyuntech.sixcontry.mode.* { *;}#mode类不混淆-keep public class com.tencent.bugly.**{*;}#
可根据项目需求增删混淆文件代码
更多相关文章
- Android ui 控件之仿苹果SWITCH
- android代码实现免提功能
- CentOS 下载 Android 源代码。
- 使 Android 项目支持 Java 8 lambdas 表达式
- Android 常用的控件
- Android代码总结,Sdcard和图片相关