FreeProGuard 使用教程
1. 项目介绍
FreeProGuard 是一个为 Android 开发者提供的免混淆配置库。它利用了 consumerProguardFiles 来传递 aar 中的防混淆配置到主工程中,从而简化了开发者对常用三方库的混淆配置。通过依赖 FreeProGuard,开发者可以省去手动配置混淆规则的繁琐步骤,提升开发效率。
2. 项目快速启动
2.1 开启混淆
首先,在项目的 build.gradle 文件中开启混淆功能:
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
2.2 添加依赖
在项目的 build.gradle 文件中添加 FreeProGuard 的依赖:
dependencies {
implementation "com.blankj:free-proguard:1.0.2"
}
2.3 配置混淆规则
将项目中的实体类加入到 proguard-rules.pro 文件中,例如:
-keep class your.package.name.bean.entity.model.** { *; }
或者使用 @Keep 注解这些实体类。
2.4 添加防混淆的 jar 文件
如果项目中使用了需要防混淆的 jar 文件,例如支付宝 SDK,可以在 proguard-rules.pro 文件中添加:
-libraryjars libs/alipaySDK-20150602.jar
如果要对所有 jar 文件都进行防混淆,可以使用:
-libraryjars libs
3. 应用案例和最佳实践
3.1 案例一:简化混淆配置
在实际项目中,开发者通常需要为多个三方库配置混淆规则。使用 FreeProGuard 后,开发者只需添加 FreeProGuard 依赖,即可自动处理大部分常用三方库的混淆配置,大大简化了混淆配置的工作量。
3.2 案例二:自定义混淆规则
对于一些不包含在 FreeProGuard 中的三方库,开发者可以在 proguard-rules.pro 文件中手动添加混淆规则。如果这些规则较为通用,开发者还可以通过提交 issue 的方式,请求将这些规则加入到 FreeProGuard 中,从而帮助更多的开发者。
4. 典型生态项目
FreeProGuard 作为一个专注于 Android 混淆配置的开源项目,与以下几个典型的生态项目有紧密的关联:
4.1 ProGuard
ProGuard 是一个广泛使用的 Java 字节码优化和混淆工具,FreeProGuard 在底层依赖于 ProGuard 进行混淆处理。开发者可以通过 FreeProGuard 简化 ProGuard 的配置,同时享受到 ProGuard 带来的代码优化和混淆效果。
4.2 Android Gradle Plugin
FreeProGuard 与 Android Gradle Plugin 紧密集成,开发者可以通过 Gradle 脚本方便地管理和配置 FreeProGuard。通过 Gradle 插件,开发者可以更灵活地控制混淆的开启和关闭,以及自定义混淆规则。
4.3 常用三方库
FreeProGuard 已经内置了对多个常用三方库的混淆配置,包括但不限于:
- AndroidCommon
- AliPay
- AndFix
- AndroidEventBus
- AndroidUniversalImageLoader
- ARouter
- BaiduMap
- BaseRecyclerViewAdapterHelper
- Bugly
- ButterKnife
- Dagger
- EventBus
- Fastjson
- Fresco
- GaoDeMap
- Getui
- Glide
- GreenDAO
- Gson
- Ijkplayer
- ImmersionBar
- Guava
- Jackson
- JPush
- KotlinxCoroutines
- LitePal
- Mars
- MiPush
- Nuwa
- OkHttp
- PingPlusPlus
- Realm
- Retrofit
- Retrolambda
- RongCloud
- RxJava
- ShareSDK
- SinaWeiboSDK
- Stetho
- Tencent
- UMeng
- UnionPay
- Volley
- XinGe
- XunFei
- ZXing
通过 FreeProGuard,开发者可以轻松管理这些三方库的混淆配置,提升开发效率。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



