轉載請标明出處: http://blog.csdn.net/zeng_zhi_1991?viewmode=list
本文出自:【曾智的部落格】
分享一下我歸納的一些混淆,其中包含了大部分基本的混淆和其他一些用到的引用的混淆,再附上兩個連結資料應該能解決90%以上的問題了
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# 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 *;
#}
# # -----------------------------------------
# # ############### 其他混淆 ###############
# # -----------------------------------------
-dontwarn org.apache.**
-keep class org.apache.** { *;}
# # -------------------------------------------
# # ############### 基礎混淆 ###############
# # -------------------------------------------
#指定代碼的壓縮級别
-optimizationpasses
#混淆時不會産生形形色色的類名 ,是否使用大小寫混合
-dontusemixedcaseclassnames
#指定不去忽略非公共的庫類,是否混淆第三方jar
-dontskipnonpubliclibraryclasses
#指定不去忽略包可見的庫類的成員
-dontskipnonpubliclibraryclassmembers
#不預校驗
-dontpreverify
#混淆時是否記錄日志
-verbose
#不壓縮輸入的類檔案
-dontshrink
#不優化輸入的類檔案
-dontoptimize
#不混淆輸入的類檔案
-dontobfuscate
#下面這行代碼是 忽略警告,避免打包時某些警告出現
-ignorewarnings
#混淆時所采用的算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#哪些類不進行混淆保持原樣,保持哪些類不被混淆
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Fragment
-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
#保護指定的類和類的成員的名稱,如果所有指定的類成員出席,在壓縮步驟之後,保持 native 方法不被混淆
-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);
}
#保持枚舉 enum 類不被混淆
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
#保護指定的類檔案和類的成員,保持 Parcelable 不被混淆
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#所有方法不進行混淆
-keep public abstract interface com.asqw.android.Listener{
public protected <methods>;
}
#對該方法不進行混淆
-keep public class com.asqw.android{
public void Start(java.lang.String);
}
# # -------------------------------------------------------
# # ############### android-support-v4混淆 ###############
# # -------------------------------------------------------
-libraryjars libs/android-support-v4.jar
-dontwarn android.support.**
-keep class android.support.v4.** { *; }
-keep public class * extends android.support.v4.**
############### gson ###############
-keep class com.google.gson.stream.** { *; }
-keep class com.google.gson.examples.android.model.** { *; }
# # --------------------------------------------
# # ############### 百度 ###############
# # --------------------------------------------
-dontwarn com.baidu.**
-keep class com.baidu.** { *;}
-keepattributes *Annotation*
-keepattributes *JavascriptInterface*
############### 訊飛雲xf_yun ###############
-keep class com.iflytek.**{*;}
############### wx_pay ###############
-keep class com.tencent.mm.sdk.** {
*;
}
# # ------------------------------------------------
# # ############### 網銀線上支付混淆 ###############
# # ------------------------------------------------
-dontwarn com.unionpay.**
-keep class com.unionpay.** { *;}
-keep public class com.unionpay.uppay.net.HttpConnection {
public <methods>;
}
-keep public class com.unionpay.uppay.net.HttpParameters {
public <methods>;
}
-keep public class com.unionpay.uppay.model.BankCardInfo {
public <methods>;
}
-keep public class com.unionpay.uppay.model.PAAInfo {
public <methods>;
}
-keep public class com.unionpay.uppay.model.ResponseInfo {
public <methods>;
}
-keep public class com.unionpay.uppay.model.PurchaseInfo {
public <methods>;
}
-keep public class com.unionpay.uppay.util.DeviceInfo {
public <methods>;
}
-keep public class java.util.HashMap {
public <methods>;
}
-keep public class java.lang.String {
public <methods>;
}
-keep public class java.util.List {
public <methods>;
}
-keep public class com.unionpay.uppay.util.PayEngine {
public <methods>;
native <methods>;
}
# # ------------------------------------------------
# # ############### Umeng ###############
# # ------------------------------------------------
-dontshrink
-dontoptimize
-dontwarn com.google.android.maps.**
-dontwarn android.webkit.WebView
-dontwarn com.umeng.**
-dontwarn com.tencent.weibo.sdk.**
-dontwarn com.facebook.**
-keep enum com.facebook.**
-keepattributes Exceptions,InnerClasses,Signature
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public interface com.facebook.**
-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.facebook.**
-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{*;}
-keep public class [com.zztests].R$*{
public static final int *;
}
-keepclassmembers class * {
public <init>(org.json.JSONObject);
}
-keep public class com.umeng.fb.ui.ThreadView {
}
# 以下類過濾不混淆
-keep public class * extends com.umeng.**
# 以下包不進行過濾
-keep class com.umeng.** { *; }
-keep class com.umeng.analytics.** { *; }
-keep class com.umeng.common.** { *; }
-keep class com.umeng.newxp.** { *; }
Android 混淆代碼總結
android 代碼混淆