我想知道我应该在Android游戏的Application.mk文件中添加哪些架构。
我想支持所有可以在Google Play和其他类型的Android商店下载游戏的平台。
我会说我应该设置:
APP_ABI := armeabi x86 (as many x86 devices are coming soon as far as I know)
但我想知道我是否应该设置:
APP_ABI := armeabi armeabi-v7a x86
或
APP_ABI := all
请澄清。
答案 0 :(得分:13)
您还可以指定使用mips
时会包含的all
。
armeabi
代码可以在armeabi-v7a
设备上运行,但不能相反。因此,如果您拥有armeabi-v7a
,则不需要 armeabi
,但它允许您在某些设备上利用硬件浮点运算。
另请注意,您添加的架构越多,生成的APK就越大。如果您经常为所有平台进行编译,那么您的构建将需要更长的时间。
在NDK安装中查看docs / CPU-ARCH-ABIS.html,了解有关不同体系结构的更多信息。
答案 1 :(得分:6)
我建议至少设置armeabi-v7a和x86。
armeabi-v7a涵盖了大多数(可能全部)最新的arm设备,并为您提供硬件浮点支持。
x86涵盖了当前所有x86设备(其中最大的是三星Galaxy Tab 3)。此外,今年以来英特尔正在大力推广平板电脑市场份额,并且未来可能更受欢迎。
这有很多影响。 krsteve是正确的,这将使你的构建稍微慢一些(因为你现在正在有效地构建你的游戏两次)并且它将使你的APK更大(因为你将x86和ARM二进制文件包括在一起),但是,在宏大的方案中这些二进制文件的大小可能会被你的资产相形见绌,如果不是,那么你的游戏可能不会大到超过Google Play APK大小限制。
总结: