{"id":13989097,"url":"https://github.com/Blankj/FreeProGuard","last_synced_at":"2025-07-22T10:30:59.975Z","repository":{"id":41440540,"uuid":"146161939","full_name":"Blankj/FreeProGuard","owner":"Blankj","description":":beginner: Config proguard for common Android libraries.","archived":false,"fork":false,"pushed_at":"2020-12-10T15:22:37.000Z","size":183,"stargazers_count":566,"open_issues_count":2,"forks_count":54,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-05-25T11:07:20.572Z","etag":null,"topics":["proguard","proguard-dictionary","proguard-rules"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Blankj.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-26T07:52:37.000Z","updated_at":"2025-04-10T09:43:20.000Z","dependencies_parsed_at":"2022-09-01T13:41:18.243Z","dependency_job_id":null,"html_url":"https://github.com/Blankj/FreeProGuard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Blankj/FreeProGuard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankj%2FFreeProGuard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankj%2FFreeProGuard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankj%2FFreeProGuard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankj%2FFreeProGuard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Blankj","download_url":"https://codeload.github.com/Blankj/FreeProGuard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blankj%2FFreeProGuard/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266474987,"owners_count":23934849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["proguard","proguard-dictionary","proguard-rules"],"created_at":"2024-08-09T13:01:31.297Z","updated_at":"2025-07-22T10:30:59.608Z","avatar_url":"https://github.com/Blankj.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"![logo][logo]\n\n[![fpg][fpgsvg]][fpg] [![License][licensesvg]][license]\n\n\n## About\n\n**[FreeProGuard][readme]** 为方便广大 Android 开发者们今后防混淆配置，很久之前便有打算做这个免混淆库了，只是拖到最近才有空来实现该库，该库利用了 `consumerProguardFiles` 来传递 aar 中的防混淆配置到主工程中，所以依赖了该库后常用的主流三方库便不再需要开发者们手动配置了，当然，有些友善的库已采用了该方式，我也希望更多的开源库使用该方式从而省去开发者配置防混淆，本库已配置了如下防混淆文件（包括库的不同版本）：\n\n* [AndroidCommon][AndroidCommon]\n* [AliPay][AliPay]（需防混 jar(-libraryjars libs/alipaySDK-20150602.jar)）\n* [AndFix][AndFix]\n* [AndroidEventBus][AndroidEventBus]\n* [AndroidUniversalImageLoader][AndroidUniversalImageLoader]\n* [ARouter][ARouter]\n* [BaiduMap][BaiduMap]（需防混 jar(-libraryjars libs/baidumapapi_v2_1_2.jar)）\n* [BaseRecyclerViewAdapterHelper][BaseRecyclerViewAdapterHelper]\n* [Bugly][Bugly]\n* [ButterKnife][ButterKnife]\n* [Dagger][Dagger]\n* [EventBus][EventBus]\n* [Fastjson][Fastjson]\n* [Fresco][Fresco]\n* [GaoDeMap][GaoDeMap]\n* [Getui][Getui]\n* [Glide][Glide]\n* [GreenDAO][GreenDAO]\n* [Gson][Gson]\n* [Ijkplayer][Ijkplayer]\n* [ImmersionBar][ImmersionBar]\n* [Guava][Guava]\n* [Jackson][Jackson]\n* [JPush][JPush]\n* [KotlinxCoroutines][KotlinxCoroutines]\n* [LitePal][LitePal]\n* [Mars][Mars]\n* [MiPush][MiPush]\n* [Nuwa][Nuwa]\n* [OkHttp][OkHttp]\n* [PingPlusPlus][PingPlusPlus]\n* [Realm][Realm]\n* [Retrofit][Retrofit]\n* [Retrolambda][Retrolambda]\n* [RongCloud][RongCloud]\n* [RxJava][RxJava]\n* [ShareSDK][ShareSDK]\n* [SinaWeiboSDK][SinaWeiboSDK]\n* [Stetho][Stetho]\n* [Tencent][Tencent]\n* [UMeng][UMeng]\n* [UnionPay][UnionPay]\n* [Volley][Volley]\n* [XinGe][XinGe]\n* [XunFei][XunFei]\n* [ZXing][ZXing]\n\n\n## How to use\n\n1. 首先开启混淆，设置 `minifyEnabled true`；\n2. 添加依赖：\n    ```groovy\n    implementation \"com.blankj:free-proguard:1.0.2\"\n    ```\n3. 把项目中的实体类加入到 `proguard-rules.pro` 文件中，一般为 `-keep class urpackage.xx.bean/entity/model.** { *; }`，或者使用 `@Keep` 注解这些实体类；\n4. 把项目中需要防混淆的 jar 加入到 `proguard-rules.pro` 文件中，比如支付宝 SDK 的 `-libraryjars libs/alipaySDK-20150602.jar`，如果要对所有 jar 都防混，那么使用 `-libraryjars libs` 即可；\n5. 把项目中用到的一些不包括在如上列表中的三方库配置到 `proguard-rules.pro` 文件中，或者[提 issue](https://github.com/Blankj/FreeProGuard/issues/new) 使其加入到本库中来（小众或者冷门的不予合入哦）。\n\n\n## Profit\n\n1. 开启混淆会将代码中的所有变量、函数、类的名称变为简短的英文字母代号（也可自定义），在缺乏相应的函数名和程序注释的情况下，即使被反编译，也将难以阅读，提升应用的安全性；\n2. 混淆通过分析字节码，去掉冗余代码，再加上缩短了变量、函数、类的名称，可以进一步缩减应用大小，如果想混淆资源文件，可以使用微信的 [AndResGuard](https://github.com/shwenzhang/AndResGuard)。\n\n\n## Last but not least\n\n如果该库能为你节省 10 分钟甚至更多的时间，请把它分享给他人来帮助更多的开发者们节省时间，这些时间可以多陪伴家人、多运动、多做自己喜欢的事情，希望开源可以帮助到更多的人，也希望更多的人加入到开源中来。\n\n\n## [ChangeLog](https://github.com/Blankj/FreeProGuard/blob/master/CHANGELOG.md)\n\n\n## 打个小广告\n\n欢迎加入我的小专栏「**[基你太美](https://xiaozhuanlan.com/Blankj)**」一起学习。\n\n\n\n[logo]: https://raw.githubusercontent.com/Blankj/FreeProGuard/master/art/logo.png\n\n[fpgsvg]: https://img.shields.io/badge/FreeProGuard-v1.0.2-brightgreen.svg\n[fpg]: https://github.com/Blankj/FreeProGuard\n\n[licensesvg]: https://img.shields.io/badge/License-Apache--2.0-brightgreen.svg\n[license]: https://github.com/Blankj/AndroidUtilCode/blob/master/LICENSE\n\n[readme]: https://github.com/Blankj/FreeProGuard\n\n[AndroidCommon]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-AndroidCommon.pro\n[AliPay]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-AliPay.pro\n[AndFix]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-AndFix.pro\n[AndroidEventBus]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-AndroidEventBus.pro\n[AndroidUniversalImageLoader]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-AndroidUniversalImageLoader.pro\n[ARouter]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-AndroidEventBus.pro\n[BaiduMap]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-BaiduMap.pro\n[BaseRecyclerViewAdapterHelper]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-BaseRecyclerViewAdapterHelper.pro\n[Bugly]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Bugly.pro\n[ButterKnife]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-ButterKnife.pro\n[Dagger]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Dagger.pro\n[EventBus]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-EventBus.pro\n[Fastjson]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Fastjson.pro\n[Fresco]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Fresco.pro\n[GaoDeMap]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-GaoDeMap.pro\n[Getui]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Getui.pro\n[Glide]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Glide.pro\n[GreenDAO]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-GreenDAO.pro\n[Gson]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Gson.pro\n[Guava]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Guava.pro\n[Ijkplayer]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Ijkplayer.pro\n[ImmersionBar]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-ImmersionBar.pro\n[Jackson]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Jackson.pro\n[JPush]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-JPush.pro\n[KotlinxCoroutines]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-KotlinxCoroutines.pro\n[LitePal]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-LitePal.pro\n[Mars]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Mars.pro\n[MiPush]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-MiPush.pro\n[Nuwa]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Nuwa.pro\n[OkHttp]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-OkHttp.pro\n[PingPlusPlus]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-PingPlusPlus.pro\n[Realm]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Realm.pro\n[Retrofit]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Retrofit.pro\n[Retrolambda]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Retrolambda.pro\n[RongCloud]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-RongCloud.pro\n[RxJava]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-RxJava.pro\n[ShareSDK]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-ShareSDK.pro\n[SinaWeiboSDK]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-SinaWeiboSDK.pro\n[Stetho]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Stetho.pro\n[Tencent]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Tencent.pro\n[UMeng]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-UMeng.pro\n[UnionPay]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-UnionPay.pro\n[Volley]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-Volley.pro\n[XinGe]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-XinGe.pro\n[XunFei]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-XunFei.pro\n[ZXing]: https://github.com/Blankj/FreeProGuard/blob/master/free-proguard/proguard-ZXing.pro\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBlankj%2FFreeProGuard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBlankj%2FFreeProGuard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBlankj%2FFreeProGuard/lists"}