【发布时间】:2016-09-29 23:16:14
【问题描述】:
标题总结了这一点 - 我的应用在安装和不安装 Proguard 的设备上的大小相同,并且 APK 在磁盘上的大小相同。我解压了 APK,dex 文件约占其中的 72%,因此缩小应该会产生显着的效果(除非我使用了我包含的每个依赖项中的每个类和方法,这是不合理的)。我正在使用标准规则文件加上我自己的一个和一些保留规则。
Gradle 文件:
release {
signingConfig signingConfigs.release
zipAlignEnabled true
minifyEnabled true
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
proguard-rules.pro:
-dontwarn retrofit.**
-keep class retrofit.** { *; }
-keepattributes Signature
-keepattributes Exceptions
我以为会有很多关于这个问题的信息,但据我所知,几乎没有。
【问题讨论】:
-
我不确定您还有多少其他依赖项,但如果您正在执行 -keep 所有改造类,看起来您并没有试图最小化。 github.com/square/okhttp/issues/2230#issuecomment-236068544 不过,也许您正在最小化我在这里看不到的其他依赖项。
-
还有很多其他的依赖。我只是从改造文档中复制了这些规则。
-
同意@Emma,您还有哪些其他依赖项?您需要其他依赖项的其他规则。
-
为什么我需要其他依赖的规则?除非规则另有规定,否则 ProGuard 不会默认删除未使用的代码吗?