开发环境:android studio
混淆的配置文件 开启混淆 就是没有配置在proguard_rule文件中都文件都会被混淆 ,android studio的lib下的库不说明也不会被混淆,因为在android studio 进行 混淆代码是默认已经将lib下的库文件添加到打包脚本中,所以不需要再次添加,否则会出现“java.io.IOException:the same input jar is specified twice”错误
#指定代码的压缩级别 -optimizationpasses 5 #包明不混合大小写 -dontusemixedcaseclassnames #不去忽略非公共的库类 -dontskipnonpubliclibraryclasses #优化 不优化输入的类文件 -dontoptimize #预校验 -dontpreverify #混淆时是否记录日志 -verbose # 混淆时所采用的算法 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # keep住源文件以及行号 混淆后日志用,不加崩溃时会返回unknown source -keepattributes SourceFile,LineNumberTable #保护注解 #-libraryjars libs/android-async-http-1.4.6.jar #-libraryjars libs/core.jar #-libraryjars libs/gson-2.2.3.jar #-libraryjars libs/jpush-sdk-release1.8.0.jar #-libraryjars libs/nineoldandroids-2.4.0.jar #-libraryjars libs/umeng-analytics-v5.4.2.jar #-libraryjars libs/umeng-update-v2.6.0.1.jar #-libraryjars libs/universal-image-loader-1.8.5-with-sources.jar -keepattributes *Annotation* # 保持哪些类不被混淆 -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.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 #女娲热更新 -keep class cn.jiajixin.nuwa.** { *; } -keep class com.umeng.**{*;} -keep class cn.jpush.** {*;} -keep class umeng_sdk.**{*;} -keep class cn.sharesdk.**{*;} -keep class com.umeng.**{*;} -keep class android.support.v4.**{*;} -keep public interface com.tencent.** -keep public interface com.umeng.socialize.** -keep public interface com.umeng.socialize.sensor.** -keep public interface com.umeng.scrshot.** -keep public class com.umeng.socialize.* {*;} -keep public class javax.** -keep public class android.webkit.** -keep class com.umeng.scrshot.** -keep public class com.tencent.** {*;} -keep class com.umeng.socialize.sensor.** -keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;} -keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;} -keep class im.yixin.sdk.api.YXMessage {*;} -keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;} #以下为tusdk -keepattributes InnerClasses -keep class **.R -keep class **.R$* { <fields>; } -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } -dontwarn android.support.** -dontwarn org.apache.commons.** -keep class android.support.**{ *; } -keep class org.apache.commons.**{ *; } -keep class com.nostra13.universalimageloader.**{ *; } -keep class it.sephiroth.android.library.exif2.**{ *; } -keep class org.lasque.tusdk.**{public *; protected *; } -keep class org.lasque.tusdk.core.utils.image.GifHelper{ *; } #以上为tusdk #招行支付 -keep class cmb.pb.**{*;} -keepclasseswithmembers class cmb.pb.util.CMBKeyboardFunc { public <init>(android.app.Activity); public boolean HandleUrlCall(android.webkit.WebView,java.lang.String); public void callKeyBoardActivity(); } #OkHttp -keepattributes Signature -keepattributes *Annotation* -keep class com.squareup.okhttp.** { *; } -keep interface com.squareup.okhttp.** { *; } -dontwarn com.squareup.okhttp.** #OkHttp3 -keep class com.squareup.okhttp3.** { *; } -keep interface com.squareup.okhttp3.** { *; } -dontwarn com.squareup.okhttp3.** #Okio -keep class sun.misc.Unsafe { *; } -dontwarn java.nio.file.* -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -dontwarn okio.** -keep class easyder.kkshop.wxapi.**{*;} #eventbus -keep class de.greenrobot.event.**{*;} #百度地图 -keep class com.baidu.** { *; } -keep class vi.com.gdi.bgl.android.**{*;} # async-http -keep class com.loopj.android.http.** { *; } -keep class cz.msebera.** { *; } #gson -keep class com.google.gson.** { *; } -keep class com.kuaike.kkshop.model.BaseJson{*;} -keep class com.kuaike.kkshop.util.DiskCacheUtils{*;} -keep class com.kuaike.kkshop.util.DiskLruCache{*;} -keep class android.content.Context{*;} -keep class com.kuaike.kkshop.model.param.** { *; } #参数 -keep class com.kuaike.kkshop.model.**{*;} -keepclasseswithmembernames class * { 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); } #evenbus -keepclassmembers class ** { public void onEvent*(**); } #友盟 -keepclassmembers class * { public <init>(org.json.JSONObject); } -keep public class com.easyder.kkshop.R$*{ public static final int *; } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆 public static final android.os.Parcelable$Creator *; } #如果有引用v4包可以添加下面这行 -keep public class * extends android.support.v4.app.Fragment #忽略警告 -ignorewarning #####################记录生成的日志数据,gradle build时在本项目根目录输出################ #apk 包内所有 class 的内部结构 #-dump build/outputs/mapping/class_files.txt #未混淆的类和成员 #-printseeds build/outputs/mapping/seeds.txt #列出从 apk 中删除的代码 #-printusage build/outputs/mapping/unused.txt #混淆前后的映射 #-printmapping mapping.txt #-printmapping build/outputs/mapping/mapping.txt