挤需体验三番钟,里造会干我一样,爱象节款混淆

FreeProGuard
为方便广大 Android 开发者们今后防混淆配置,很久之前便有打算做这个免混淆库了,只是拖到最近才有空来实现该库,该库利用了 consumerProguardFiles
来传递 aar 中的防混淆配置到主工程中,所以依赖了该库后常用的主流三方库便不再需要开发者们手动配置了,当然,有些友善的库已采用了该方式,我也希望更多的开源库使用该方式从而省去开发者配置防混淆,本库已配置了如下防混淆文件(包括库的不同版本):

  • AndroidCommon
  • AliPay
    (需防混 jar)
  • AndroidEventBus
  • BaiduMap
  • BaseRecyclerViewAdapterHelper
  • Bugly
  • ButterKnife
  • Dagger
  • EventBus
  • Fastjson
  • Fresco
  • GaoDeMap
  • Getui
  • Glide
  • GreenDAO
  • Gson
  • Guava
  • Jackson
  • JPush
  • LitePal
  • MiPush
  • OkHttp
  • Realm
  • Retrofit
  • Retrolambda
  • RongCloud
  • RxJava
  • Stetho
  • Tencent
  • UMeng

How to use

  1. 首先开启混淆,设置 minifyEnabled true
  2. 添加依赖:
    implementation "com.blankj:free-proguard:0.0.5"
    复制代码
  3. 把项目中的实体类加入到 proguard-rules.pro
    文件中,一般为 -keep class urpackage.xx.bean/entity/model.** { *; }
    ,或者使用 @Keep
    注解这些实体类;
  4. 把项目中需要防混淆的 jar 加入到 proguard-rules.pro
    文件中,比如支付宝 SDK 的 -libraryjars libs/alipaySDK-20150602.jar
  5. 把项目中用到的一些不包括在如上列表中的三方库配置到 proguard-rules.pro
    文件中,或者 提 issue
    使其加入到本库中来(小众或者冷门的不予合入哦)。

Profit

  1. 开启混淆会将代码中的所有变量、函数、类的名称变为简短的英文字母代号(也可自定义),在缺乏相应的函数名和程序注释的情况下,即使被反编译,也将难以阅读,提升应用的安全性;
  2. 混淆通过分析字节码,去掉冗余代码,再加上缩短了变量、函数、类的名称,可以进一步缩减应用大小,如果想混淆资源文件,可以使用微信的 AndResGuard

Last but not least

如果该库能为你节省 10 分钟甚至更多的时间,请把它分享给他人来帮助更多的开发者们节省时间,这些时间可以多陪伴家人、多运动、多做自己喜欢的事情,希望开源可以帮助到更多的人,也希望更多的人加入到开源中来。

ChangeLog

由于库刚发初版,后续还会加入更多的防混淆规则,所以版本号会不断迭代,稳定后会选择使用 1.0.0 版本。

由于库刚发初版,后续还会加入更多的防混淆规则,所以版本号会不断迭代,稳定后会选择使用 1.0.0 版本。

由于库刚发初版,后续还会加入更多的防混淆规则,所以版本号会不断迭代,稳定后会选择使用 1.0.0 版本。

原文 

https://juejin.im/post/5b873ab451882542ba1dd3ff

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 挤需体验三番钟,里造会干我一样,爱象节款混淆

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址