背景
根据 Andriod 文档的“Resource Shrinking”网页( here ),您可以通过 build.gradle 文件最小化应用程序的大小,使用以下几行:
android {
...
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
而且,他们说在使用它时,它还会告诉你在这个过程中节省了多少:
问题
我找不到这些问题的答案:
最佳答案
让我们来看看
这些将在 gradle 日志中。在 Android Studio 内部,我相信这些都显示在 Messages
窗口中(在 Android、Run、TODO 窗口旁边)。
minify
运行 ProGuard。 shrink
删除 ProGuard 标记为未使用的资源。
不!
ProGuard 收缩 仅代码 ; shrinkResources
这只是 /res/
文件夹中的内容。 shrinkResources
依赖于 ProGuard 的日志输出来运行。 ProGuard 是真正分析代码以了解未使用内容的人。
编辑:
我刚刚找到了一篇非常好的博客文章。 CommonsWare 将其发布在其他一些 stackOverlow 问题上:http://cyrilmottier.com/2014/08/26/putting-your-apks-on-diet/
它完美地解释了您的后续问题:
从帖子:
这意味着, shrinkResources
仅比较可绘制对象是否在文件夹中,而不是在 R
类中。
关于android - "minifyEnabled"vs "shrinkResources"- 有什么区别?以及如何获得节省的空间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30800804/