我的应用尺寸已达到117 MB,因为Play商店不允许上传apks,如果其大于100 MB。
所以我使用了split
,并根据不同的ABI创建了apk的多个版本
如果我分析universal-apk
,我在lib文件夹中得到了这些类型的ABI's
;
我用它来为每个separate apk
abi
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a', 'armeabi'
universalApk true
}
}
现在我在结果中获得了4种类型的apk。 universal-apk
大小为117 MB,其中armeabi
为68 MB。
因此很明显,我无法在游戏商店上传universal-apk
,因此我最终会在游戏商店上传3 apk's
。
现在我的问题是那些cpu architecture
不属于这些类别的用户会发生什么。
我注意到Galaxy S7是arm64-v8a
,除了这些之外,市场上还会有一些其他架构可供使用,那么如果universal-apk
不存在,或{{1 }}和armeabi-v7a
足以定位市场上的所有设备。
这会减少目标应用用户吗?我无法找到x86
答案 0 :(得分:3)
第一步始终是从数据开始。在Play Developer Console中查看现有用户,了解用户的分布情况。
对于没有这些ABI的用户,他们将获得"此应用与您的设备不兼容"。
然而,x86_64和arm64-v8a与x86和armeabi-v7a向后兼容。通过覆盖您选择的那些,它几乎可以在所有设备上运行,mips可能不值得担心。
如果您添加x86_64和arm64-v8a变体,那么较新设备上的用户将获得更好的性能,但如果没有这个变量,它应该可以正常工作。
armeabi现在非常罕见,但是一些非常古老的设备确实有这种限制。如果你的目标是一个现代的Android版本(例如ICS +),你可能会没问题。
答案 1 :(得分:1)
可以在此处找到所有受支持的ABI的列表:
https://developer.android.com/ndk/guides/abis.html#sa
如果删除reset()选项,则将为每个受支持的ABI构建拆分。