android 常用第三方包的代码混淆
2015-06-28 10:21
537 查看
首先在: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$* {
*;
}
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$* {
*;
}
相关文章推荐
- Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效
- android 自定义自定义圆角dialog,消除黑色window背景
- Android快速开发系列 10个常用工具类
- Android - 错: java.lang.IllegalStateException: Already attached
- Android之Notification的多种用法(转)
- Android 使用过的开源项目
- android--理解和使用自定义权限
- @+id/android:list"和"@android:id/list"的区别
- 【Android】读取sdcard上的图片
- Android 动画学习笔记
- android解析xml文件的方式(其二)
- android解析xml文件的方式(其一)
- android之XmlResourceParser类使用实例
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
- android背景选择器selector用法汇总
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android中View绘制流程以及invalidate()等相关方法分析
- Android点击—20150628【附带讲解IOS和娜姐界面】
- Android Studio导入第三方类库的方法