我正在开发一个支持以下密度的 Android 应用程序:ldpi、mdpi、hdpi 和 xhdpi。我将图像存储在每个文件夹中,并根据密度进行放大。我的问题是我的 APK 大小约为 100 MB,我猜四个资源文件夹的图像加起来了。
有什么办法可以减小这个 APK 文件的大小?当我尝试上传我的应用以测试应用内结算时,Google Play 的 APK 限制为 50 MB,因此无法上传。
为什么用户需要从其他资源文件夹下载包含他们永远不会使用的图像的 APK?任何想法?
我正在开发一个支持以下密度的 Android 应用程序:ldpi、mdpi、hdpi 和 xhdpi。我将图像存储在每个文件夹中,并根据密度进行放大。我的问题是我的 APK 大小约为 100 MB,我猜四个资源文件夹的图像加起来了。
有什么办法可以减小这个 APK 文件的大小?当我尝试上传我的应用以测试应用内结算时,Google Play 的 APK 限制为 50 MB,因此无法上传。
为什么用户需要从其他资源文件夹下载包含他们永远不会使用的图像的 APK?任何想法?
为什么不使用扩展文件?或者尝试压缩数据。
2015 年 9 月,Play 商店的最大限制已增加到100 MB,如果您需要更多空间,您可以添加最多两个 2 GB的扩展文件,但实施起来有点棘手。
从 2016 年 7 月开始,当您上传应用程序时,Google Play 仅下载 APK 中已更改的部分,从而减少了数据消耗。
如果您认为您的问题是由资源引起的,为什么不检查drawable-<density>
文件夹的大小,只是为了准确了解每个密度占用多少空间?
在任何情况下,如果您只包括低分辨率资源,在高分辨率设备上它们将被放大,看起来模糊,而如果您只包括高分辨率资源,它们将在低分辨率设备上缩小,增加运行时的风险OutOfMemoryError
。在您的情况下,一个好的方法可以是仅包含mdpi
和xhdpi
资源:ldpi
然后将从mdpi
和缩放hdpi
。xhdpi
还要检查你是否可以用9-patches替换你的一些资源,或者更好的是,用SVGs替换。
最后一个解决方案是为不同的密度(和屏幕尺寸)提供不同的 APK,如此处所述。