1.平常项目中用到很多第三方库,就把用到的混淆配置累计到这里面了,方便以后使用。
2.利用consumerProguardFiles 来传递 aar 中的防混淆配置到主工程中,依赖该库后常用的主流三方库不再需要手动配置了,已经添加的混淆文件可以查看工程,以后会继续添加完善。
1.首先开启混淆设置 minifyEnabled true
2.加入依赖
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.zhaoxiuyu:Proguards:Tag'
}
3.把项目中的实体类加入到 proguard-rules.pro 文件中,一般为 :
# -keep class com.sendinfo.leshan.platform.entitys.response.** {*;}
# -keep class com.base.library.entitys.** {*;}
4.把项目中需要防混淆的jar加入到 proguard-rules.pro 文件中。
比如支付宝SDk的:
-libraryjars libs/alipaySDK-20150602.jar:
如果要对所有的jar防混,那么使用:
-libraryjars libs
5.把项目中用的到一些不包括在如上列表中的三方库配置到 proguard-rules.pro 文件中。
我会不定时更新 和 累加以上混淆配置。
配置文件 | 地址 |
---|---|
混淆配置说明 | .. |
Common通用配置 | .. |
ARouter - 路由 | .. |
AliPay - 支付宝 | 需防混 jar |
Androidanimations - 动画 | .. |
BaiduMap - 百度地图 | 需防混 jar |
Banner - 轮播图 | .. |
Bugly | .. |
CalendarView - 日历 | .. |
Easing | 该库被Androidanimations依赖 |
EventBus | .. |
GaoDeMap - 高德地图 | .. |
Glide - 图片加载 | .. |
GreenDAO - 数据库 | .. |
Gson | .. |
Ijkplayer | .. |
Immersionbar - 沉浸式 | .. |
JPush - 极光推送 | .. |
XiaoMiPush - 小米推送 | .. |
VivoPush - vivo推送 | .. |
MeiZuPush - 魅族推送 | .. |
HuaWeiPush - 华为推送 | .. |
OPPOPush - oppo推送 | .. |
LitePal - 数据库 | .. |
MMKV | .. |
OkHttp | .. |
Coroutines - 协程 | .. |
Retrofit | .. |
RxJava | .. |
RxLife - 解决RxJava内存泄漏 | .. |
ShareSDK | .. |
SuperTextView | .. |
Tencent - 腾讯相关 | .. |
UMeng - 友盟相关 | .. |
ViewAnimator - View动画 | 这个不需要混淆配置,如果出问题可以把这个加上 |
X5 - 浏览器 | .. |
XPopup - 弹窗 | .. |
ZXing - 二维码 | .. |
.. | .. |
- 开启混淆会将代码中的所有变量、函数、类的名称变为简短的英文字母代号(也可自定义),在缺乏相应的函数名和程序注释的情况下,即使被反编译,也将难以阅读,提升应用的安全性;
- 混淆通过分析字节码,去掉冗余代码,再加上缩短了变量、函数、类的名称,可以进一步缩减应用大小。
- 如果想混淆资源文件,可以使用微信的 AndResGuard
------- 自带混淆配置的库 -------
SmartRefreshLayout
rxhttp
utilcodex
lottie
transformations
BaseRecyclerViewAdapterHelper
banner
bga-qrcode-zxing
------- 可混淆,不用配置 -------
rippleeffect
PickerView
bottom-navigation
switch-button
flexibledivider
------- 没有找到 -------
ShadowLayout
smart-swipe
PinnedSectionItemDecoration
FlexItemDecoration
AndPermission