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