【发布时间】:2018-08-28 08:30:58
【问题描述】:
我正在为 Android 开发一个非常简单的应用程序,实际上它所做的只是在屏幕上显示当前时间和日期。考虑到这一点,我原本预计应用程序的大小只有几千字节,但事实并非如此。
在生成应用程序的“发布”后,并在 Android Studio 中使用 Build > Analyze APK... 对其进行分析,我可以看到大量的 .png 和 .xml 资源文件被放入 .apk 文件中,我从未使用过或包含其中任何一个(我的项目仅包含 4 个资源文件)。这让我很困扰,因为这些自动包含的资源文件只会占用空间。
这些是自动包含的文件夹(蓝色),其中包含我正在谈论的文件:
如您所见,这大约是应用程序大小的 26%。
类似的情况发生在“classes.dex”文件中,该文件包含数百个(可能数千个)我从未在我的代码中引用的类。例如,在查看文件包含的内容后,我在其中发现了“HashMap”,因为我从未在我的代码中导入它,所以将其包含在内是没有意义的。
最后,我的问题是:是否有可能以某种方式避免将这些未使用的资源文件和类包含在 .apk 的发布中?
注意:我已经在使用了
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
在我的“build.gradle”文件中,它确实减少了 .apk 的大小,但是我上面描述的未使用的元素仍然包括在内。
【问题讨论】:
标签: java android android-studio apk