Apk大小支持Android中的多个屏幕密度

时间:2013-10-03 02:50:59

标签: android apk android-resources

我正在开发一款支持以下密度的Android应用:ldpi,mdpi,hdpi和xhdpi。我将图像存储在每个文件夹中,并根据密度进行放大。我的问题是我的APK大小约为100 MB,我猜这四个资源文件夹的图像正在加起来。

有没有办法减少这个APK文件的大小?当我尝试上传我的应用以测试应用内结算时,Google Play的限制为50 MB APK,因此无法上传。

为什么用户需要下载具有永远不会从其他资源中使用的图像的APK?有什么想法吗?

2 个答案:

答案 0 :(得分:0)

为什么不使用expansion file?或者尝试压缩数据。

答案 1 :(得分:0)

2015年9月Play商店has been increased to 100 MB的最高限额,如果您需要更多空间,最多可以添加两个2 GB expansion files,但实施起来有点棘手。

从2016年7月开始,当您上传应用时,Google Play只会下载已更改的部分APK,从而减少数据消耗。

如果您认为问题是由资源引起的,为什么不检查drawable-<density>文件夹的大小,只是为了准确了解每个密度占用多少空间?

在任何情况下,如果仅包含低分辨率资源,则在高分辨率设备上,它们将按比例放大显示模糊,而如果仅包含高分辨率资源,则它们将在低分辨率设备上按比例缩小,在运行时增加OutOfMemoryError的风险。在您的情况下,一个好方法可以只包括mdpixhdpi资源:ldpi将从mdpi缩放,hdpi从{{{} 1}}。

同时检查您是否可以使用9-patches替换某些资源,或者更好地使用SVGs替换。

最后一个解决方案是为不同的密度(和屏幕尺寸)提供不同的APK,如记录here