zoukankan      html  css  js  c++  java
  • android 常用第三方包的代码混淆

    首先在:project.properties 文件下,启动代码混淆

    proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 将这行注释取消。

    修改proguard-project.txt 代码混淆文件。

    //1)注意忽视警告

    -ignorewarnings
    -dontwarn

    //2)注意的是,使用到反射的类,需要keep

    -keepattributes Signature
    -keepattributes *Annotation*

    //3)libs 下jar,全部用-libraryjars libs/添加进文件

    //4)armeabi、armeabi-v7a下的so,通过-libraryjars libs/armeabi/,-libraryjars libs/armeabi-v7a/ 添加进文件

    ## ----------------------------------
    ## ########## 个推混淆 ##########
    ## ----------------------------------

    -dontwarn com.igexin.**
    -keep class com.igexin.** {*;}

    ## ----------------------------------
    ## ########## Gson混淆 ##########
    ## ----------------------------------
    -keep class sun.misc.Unsafe { *; }
    -keep class com.google.gson.examples.android.model.** { *; }

    ## ----------------------------------
    ## sharesdk
    ## ----------------------------------

    -keepattributes InnerClasses,LineNumberTable
    -keep class android.net.http.SslError
    -keep class android.webkit.**{*;}
    -keep class cn.sharesdk.**{*;}
    -keep class cn.smssdk.**{*;}
    -keep class com.mob.**{*;}

    # # -------------------------------------------
    # # ############### volley混淆 ###############
    # # -------------------------------------------
    -keep class com.android.volley.** {*;}
    -keep class com.android.volley.toolbox.** {*;}
    -keep class com.android.volley.Response$* { *; }
    -keep class com.android.volley.Request$* { *; }
    -keep class com.android.volley.RequestQueue$* { *; }
    -keep class com.android.volley.toolbox.HurlStack$* { *; }
    -keep class com.android.volley.toolbox.ImageLoader$* { *; }

    # # -------------------------------------------
    # # ############### slidingmenu混淆 ############### 
    # # -------------------------------------------

    -dontwarn com.jeremyfeinstein.slidingmenu.lib.**
    -keep class com.jeremyfeinstein.slidingmenu.lib.**{*;}

    # # -------------------------------------------
    # # ############### baidu混淆 ############### 
    # # -------------------------------------------

    -keep class com.baidu.mapapi.** {*; }
    -keep class com.baidu.platform.** {*; }
    -keep class com.baidu.location.** {*; }
    -keep class com.baidu.vi.** {*; }
    -keep class vi.com.gdi.bgl.android.** {*; }

    # universal-image-loader 混淆

    -dontwarn com.nostra13.universalimageloader.**
    -keep class com.nostra13.universalimageloader.** { *; }

    -libraryjars libs/android-support-v4.jar
    # # -------------------------------------------
    # # ############### android-support-v4混淆 ############### 
    # # -------------------------------------------
    -dontwarn android.support.v4.**
    -keep class android.support.v4.** { *; }
    -keep interface android.support.v4.app.** { *; }
    -keep public class * extends android.support.v4.**
    -keep public class * extends android.app.Fragment

    # # -------------------------------------------
    # # ############### androidannotations混淆 ############### 
    # # -------------------------------------------

    -dontwarn org.springframework.**

    # # -------------------------------------------
    # # ############### 系统api等常规混淆 ############### 
    # # -------------------------------------------

    -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.preference.Preference
    -keep public class com.android.vending.licensing.ILicensingService
    -keep public class * extends android.app.backup.BackupAgentHelper
    -keep public class * extends android.preference.Preference

    -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();
    }

    -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);
    }

    -keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
    }

    -keep class * implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
    }

    -keep class * implements android.os.Serializable {
    *;
    }

    -keepclassmembers class fqcn.of.javascript.interface.for.webview {
    public *;
    }

    -keep class **.R$* {
    *;
    }

  • 相关阅读:
    storm中的Scheduler
    开启flume的远程调试功能
    修改flume源码,使其HTTPSource具备访问路径功能
    非功能测试——效率测试
    python100例
    awk命令
    shell正则表达式
    python的垃圾回收机制
    冯-诺伊曼体系结构
    jmeter读取文件内容做变量
  • 原文地址:https://www.cnblogs.com/CharlesGrant/p/4605166.html
Copyright © 2011-2022 走看看