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$* {
    *;
    }

  • 相关阅读:
    zookeeper使用和原理探究(一)
    Zookeeper基本原理
    论照顾小孩与项目管理
    perl启动后台进程
    Oracle数据库迁移
    C# 语言Pagerank两种实现
    没文化真可怕--Silverlight 列冻结
    oracle中使用SQL递归语句的例子
    Visual Studio 2010 智能跟踪文件目录
    oracle wm_concat函数的应用(多行合成一行)
  • 原文地址:https://www.cnblogs.com/CharlesGrant/p/4605166.html
Copyright © 2011-2022 走看看