问题描述
我有一个包含3000张照片的Android项目,需要离线使用。当我将所有照片都包含在构建中时,构建将失败。当我删除其中一些时,构建成功。 我将照片放入了两个动态模块,这些模块在安装时下载。
以下是gradle扫描以供参考:https://scans.gradle.com/s/nn6eo527qvge6
解决方法
这纯粹是一个尺寸问题
可能。
我该如何解决?
首先将照片移出res/drawable-xxhdpi-v4/
并移至assets/
,然后调整使用照片的代码以进行匹配。
然后,查看生成的APK大小,然后将其与预期的应用分发渠道的大小限制(例如,Play商店的100MB限制)进行比较。如果超出该限制,则需要采用其他方法(例如APK expansion files)。
,要在CommonsWare's answer上进行扩展,我认为您执行此操作的方法不是使用Dynamic Modules
,而是使用asset delivery
。可以说是“营销”为“用于游戏”,但并不受此限制。
asset-delivery背后的想法是,您需要一包资产(应用中的图像)才能使应用正常运行。
可以在安装时请求此“资产”包,也可以稍后“按需”请求。所有这些令人困惑,因为Dynamic Delivery听起来很相似。但是,如asset-delivery page顶部所述,它们使用不同的API 。
说实话,我还没有使用过Asset Delivery,所以请带上一粒盐,然后考虑一下(例如,我quote):
如果下载大小大于150 MB,并且用户未使用Wi-Fi,则直到用户明确表示同意使用移动数据连接进行下载,下载才会开始。同样,如果下载量很大并且用户丢失了Wi-Fi,则下载将暂停,并且需要明确同意才能继续使用移动数据连接。