yale8848/RetrofitCache

混淆 keep 规则过于暴力

drakeet opened this issue · 3 comments

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

不过我看到在 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.** { *; } # <- 不应该

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

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

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

我重新把混淆整理了一下