天天看點

android混淆檔案,分享一下我的混淆檔案和一些參考資料

轉載請标明出處: 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 代碼混淆