zoukankan      html  css  js  c++  java
  • android 代码混淆示例

    参考其它资料为项目代码做了一下混淆

    项目中使用了 slidingmenu   actionbarsherlock   fastjson  volley   httpclient 等第三方库,

    并使用了  webview + js ,  有微信和微博分享功能。 

    # 指定代码的压缩级别
    -optimizationpasses 5                                                          
    -dontusemixedcaseclassnames    
    # 是否混淆第三方jar                                                  
    -dontskipnonpubliclibraryclasses                                               
    -dontpreverify                                                                  
    -keepattributes SourceFile,LineNumberTable                                         
    -verbose                                                                        
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*        
    
    -libraryjars libs/httpmime-4.1.3.jar
    -libraryjars libs/libammsdk.jar
    -libraryjars libs/fastjson-1.1.34.android.jar
    -libraryjars libs/commons-lang.jar
    -libraryjars libs/weibosdkcore.jar
    
    # webview + js
    # keep 使用 webview 的类
    -keepclassmembers class com.goldnet.mobile.activity.InfoDetailActivity {
       public *;
    }
    # keep 使用 webview 的类的所有的内部类
    -keepclassmembers   class com.goldnet.mobile.activity.InfoDetailActivity$*{
        *;
    }
    
    # 保持哪些类不被混淆
    -keep class android.** {*; }
    -keep public class * extends android.view  
    -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.pm                                
    -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             
    
    #ACRA specifics
    # we need line numbers in our stack traces otherwise they are pretty useless
    -renamesourcefileattribute SourceFile
    -keepattributes SourceFile,LineNumberTable
    
    # ACRA needs "annotations" so add this... 
    -keepattributes *Annotation*
    
    # 保持 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);     
    }
    
    -keepclasseswithmembers class * {
        void onClick*(...);
    }
    -keepclasseswithmembers class * {
        *** *Callback(...);
    }
    
    # keep setters in Views so that animations can still work.
    # see http://proguard.sourceforge.net/manual/examples.html#beans
    -keepclassmembers public class * extends android.view.View {
       void set*(***);
       *** get*();
    }
    
    # 保持自定义控件类不被混淆
    -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 *;
    }
    
    -keepclassmembers class **.R$* {
        public static <fields>;
    }
    
    # http client
    -keep class org.apache.http.** {*; }
    
    # 微信
    -keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*;}
    -keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*;}
     
    # fastjson
    -keep class com.alibaba.fastjson.**{*;}
    # keep 所有的 javabean
    -keep class com.goldnet.mobile.entity.**{*;}   
    # keep 泛型
    -keepattributes Signature
      
    #-keep public class * implements java.io.Serializable {  
    #    public *;  
    #}  
      
    #-keepclassmembers class * implements java.io.Serializable {  
    #    static final long serialVersionUID;  
    #    private static final java.io.ObjectStreamField[] serialPersistentFields;  
    #    private void writeObject(java.io.ObjectOutputStream);  
    #    private void readObject(java.io.ObjectInputStream);  
    #    java.lang.Object writeReplace();  
    #    java.lang.Object readResolve();  
    #} 
    
    -keep class org.apache.commons.lang.**{*;}
    
    # 新浪微博
    -keep class com.sina.**{*;}
    
    #######
    # 其它第三方库
    #######
    -dontwarn org.bouncycastle.**
    -keep class org.bouncycastle.**{*;}
    
    -dontwarn android-async-http-1.4.4.jar.**
    -keep class android-async-http-1.4.4.jar.**{*;}
    
    -dontwarn Decoder.**
    -keep class Decoder.**{*;}
    
    # volley
    -dontwarn com.android.volley.jar.**
    -keep class com.android.volley.**{*;}
     
    # actionbarsherlock
    -dontwarn com.actionbarsherlock.**
    -keep class com.actionbarsherlock.**{*;}
    
    # slidingmenu
    -dontwarn com.jeremyfeinstein.slidingmenu.lib.**
    -keep class com.jeremyfeinstein.slidingmenu.lib.**{*;}
    
    -dontwarn com.cairh.app.sjkh.**
    -keep class com.cairh.app.sjkh.**{*;}
  • 相关阅读:
    redis可编译
    不要用Serverzoo 提供的CloudLinux 的五大原因 Linode 強大VPS 資源為你解密
    linux加载指定目录的so文件
    超级rtmp服务器和屌丝wowza
    标准IO: 文件的打开与关闭函数 fopen & fclose
    《gdb调试之基础篇》
    linux信号Linux下Signal信号太详细了,终于找到了
    【干货】Chrome插件(扩展)开发全攻略
    斯坦福开源无Bug的随机计算图Certigrad
    心跳包:告诉别人,我还活着
  • 原文地址:https://www.cnblogs.com/lesliefang/p/3819259.html
Copyright © 2011-2022 走看看