android学习笔记2-打包混淆配置

来源:互联网 发布:开送货单软件 编辑:程序博客网 时间:2024/05/17 07:06

在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 <methods>;}-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 *;}#混淆butterknife-keep class butterknife.** { *; }-dontwarn butterknife.internal.**-keep class **$$ViewBinder { *; }-keepclasseswithmembernames class * {    @butterknife.* <fields>;}-keepclasseswithmembernames class * {    @butterknife.* <methods>;}#混淆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 <methods>;}#不混淆 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 {    <init>(java.lang.Throwable);}#不混淆EventBus-keep class com.puyuntech.sixcontry.mode.* { *;}#mode类不混淆-keep public class com.tencent.bugly.**{*;}#


可根据项目需求增删混淆文件代码


0 0
原创粉丝点击