yale8848 / RetrofitCache

RetrofitCache让retrofit2+okhttp3+rxjava配置缓存如此简单。通过注解配置,可以针对每一个接口灵活配置缓存策略;同时让每一个接口方便支持数据模拟,可以代码减小侵入性,模拟数据可以从内存,Assets,url轻松获取。
MIT License
676 stars 85 forks source link

混淆 keep 规则过于暴力 #7

Closed drakeet closed 6 years ago

drakeet commented 6 years ago

你好,感谢分享和开源这个项目,它看起来很棒!

不过我看到在 README 文档中写到需要 keep 一系列 okhttp、retrofit 等相关代码,而且都是全量 keep **,过于暴力,实际上,这些 keep 很多都是不必要的,如果是 aar 项目,大多会有 consumerProguard,它们会自动采纳开源库作者内置的 Proguard rules,如果全量 keep 起来,会导致 minify 工具无法正常排除无用代码最终使得安装包体积增大。

# retrofit2
-dontwarn retrofit2.**
-keep class retrofit2.** { *; } # <- 不应该
-keepattributes Signature
-keepattributes Exceptions

-dontwarn org.robovm.**
-keep class org.robovm.** { *; } # <- 不应该

# okhttp3
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;} # <- 不应该
-keep class okhttp3.** { *;} # <- 不应该
-keep class okio.** { *;} # <- 不应该
-dontwarn sun.security.**
-keep class sun.security.** { *;}
-dontwarn okio.**
-dontwarn okhttp3.**

# rxjava
-dontwarn rx.** 
-keep class rx.** { *; } # <- 不应该

如果可以,请修改这部分内容,以免产生误导 :) 再次表示感谢!

yale8848 commented 6 years ago

谢谢你提出的宝贵意见,因为工程中用到了反射,为了安全就基本都keep了,后续我会重新整理一份。

drakeet commented 6 years ago

因为 RxJava 和 OKHttp 都属于大型库,全量 keep 将导致安装包大好几 MB,代价很大。

yale8848 commented 6 years ago

我重新把混淆整理了一下