我正在开发一款支持以下密度的Android应用:ldpi,mdpi,hdpi和xhdpi。我将图像存储在每个文件夹中,并根据密度进行放大。我的问题是我的APK大小约为100 MB,我猜这四个资源文件夹的图像正在加起来。
有没有办法减少这个APK文件的大小?当我尝试上传我的应用以测试应用内结算时,Google Play的限制为50 MB APK,因此无法上传。
为什么用户需要下载具有永远不会从其他资源中使用的图像的APK?有什么想法吗?
答案 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
的风险。在您的情况下,一个好方法可以只包括mdpi
和xhdpi
资源:ldpi
将从mdpi
缩放,hdpi
从{{{} 1}}。
同时检查您是否可以使用9-patches替换某些资源,或者更好地使用SVGs替换。
最后一个解决方案是为不同的密度(和屏幕尺寸)提供不同的APK,如记录here。