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

时间: 2024-10-05 21:54:14

android 常用第三方包的代码混淆的相关文章

Android APK及导出JAR包的代码混淆

像Android开发基于java语言的,很容易被别人反编译出来,一下就相当于裸奔了,特别是用于商业用途的时候,防止反编译是必要的措施.而代码混淆是一种很好防止反编译的方式. 1.APK的代码混淆. 在eclipse的开发环境下,使用android SDK 自带的proguard混淆工具. 主要用到红线框中的两个文件. 在project.properties文件中,要指定混淆的文件.如图: 然后,详细的proguard-project.txt的写法如下: -dontwarn 是让指定包名不提示警告

Android项目外接高德地图代码混淆注意事项

如今好多项目中都加入了第三方jar包,可是最大的问题就是打包的时候代码混淆报错,下面是高德地图混淆报错解决方式: 在proguard-project.txt中加入例如以下代码: -libraryjars   libs/android-support-v4.jar -dontwarn android.support.v4.** -keep class android.support.v4.** { *; } -keep interface android.support.v4.app.** { *

Android studio 使用心得(五)—代码混淆和破解apk

这篇文章等是跟大家分享一在Android studio 进行代码混淆配置.之前大家在eclipse上也弄过代码混淆配置,其实一样,大家可以把之前在eclipse上的配置文件直接拿过来用.不管是.cfg文件还是.txt文件都一样. 先给大家贴一个混淆模板吧.注释很清楚.是我目前一个项目用的proguard.cfg配置文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Afinal的jar包进行代码混淆出错

今天用到了代码混淆,混淆过后APP不能够运行,老报错,由于项目中只用了Afinal的第三方库,于是按照网上给出的答案为了不混淆Afinal的jar包,在配置文件中写入了下面的语句: -libraryjars libs/afinal_0.5.1_bin.jar -dontwarn net.tsz.afinal.** -keep class net.tsz.afinal.** { *; } -keep public class * extends net.tsz.afinal.** -keep pu

玩一下android的反编译和代码混淆

这次准备系统的玩儿一下android从导出apk到反编译再到代码混淆然后再次反编译的过程,有图有真相的记录一下~~ 第一步,导出未加混淆的普通apk 首先创建了一个fuckcode项目,有基本的Activity:MainActivity一个,Other类一个,代码很简单,在MainActivity中调用Other的静态方法xx,xx方法只是输出一个字符串,预想目的是为了看看混淆后Other是否还可以反编译出来.附图: ok,很业余很简单哈,MainActivity中代码也很业余很简单,如下: 1

Android常用第三方支付

移动支付 用户使用移动的终端完成对所购买商品或者服务的支付功能;分为近场支付(蓝牙支付,刷卡,滴卡),和远程支付(网上支付,短信支付) app支付模块 常见的支付厂商-->常见的支付方式 支付宝:阿里公司 微信:腾讯公司 银联:联合起来的结构 财付通:腾讯公司 支付宝钱包:阿里公司 百度钱包:百度公司 支付安全吗? 都是比较安全.都是大公司的产品.而且这个和金钱之前挂钩; 支付难不难? 支付不难.因为是第三方平台的东西. 支付集成大概需要多长时间?(如果之前做过) 支付宝:5-10分钟 银联:5

Android 常用抓包工具介绍之Charles

?更多技术干货请戳:听云博客 Charles是一款抓包修改工具,相比起TcpDump,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!前面介绍了如何使用TcpDump抓包,下面给大家介绍一下Charles的使用. Charles抓包 Charles是一个HTTP代理服务器/HTTP监视器/反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.这些包括request.response现HTTP headers(包含cookies与c

实现android apk反编译后代码混淆

通常情况下我们需要对我们开发的android代码进行混淆,以免代码在反编译时暴露敏感信息及相关技术代码: 反编译测试工具:onekey-decompile-apk-1.0.1. 在高级版本的adt创建完都会有project.properties文件:开启混淆的话,需要在文件中这样做如图: 注意:混淆代码的生效时刻是在:apk签名之后. 然后在用onekey-decompile-apk-1.0.1反编译后效果如下:

android 常用第三方插件收藏

1.android-vertical-slide-view: 仿照淘宝和聚美优品,在商品详情页,向上拖动时,可以加载下一页.使用ViewDragHelper,滑动比较流畅. 2.Android-MaterialRefreshLayout :这是一个下拉刷新控件,它比SwipeRefreshLayout更漂亮和强大 3.TwinklingRefreshLayout(推荐使用):支持下拉刷新和上拉加载的RefreshLayout,自带越界回弹效果,支持RecyclerView,AbsListView