13

我想知道应该将哪些架构放入我的 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

请说清楚。

4

2 回答 2

13

您还可以指定mips,当您使用all.

armeabi代码可以在armeabi-v7a设备上运行,但反过来不行。因此,如果您有,则不需要 ,但它可以让您利用某些设备上的硬件浮点运算。armeabi-v7aarmeabi

另请注意,您包含的架构越多,生成的 APK 就越大。如果您定期为所有平台编译,您的构建将需要更长的时间。

查看 NDK 安装中的 docs/CPU-ARCH-ABIS.html 以了解有关不同架构的更多信息。

于 2013-10-18T13:51:55.043 回答
6

我建议至少设置 armeabi-v7a 和 x86。

armeabi-v7a 涵盖了大多数(可能是所有)最新的 arm 设备,并为您提供硬件浮点支持。

x86 涵盖了当前所有的 x86 设备(其中最大的是三星 Galaxy Tab 3)。此外,从今年开始,英特尔正在大力、非常公开地推动平板电脑的市场份额,未来可能会更受欢迎。

这有很多影响。krsteve 是正确的,这将使您的构建稍微慢一些(因为您现在有效地构建了您的游戏两次)并且它会使您的 APK 更大(因为您将 x86 和 ARM 二进制文件一起包含),但是,在宏伟的计划中这些二进制文件的大小可能与您的资产相比相形见绌,如果不是,那么您的游戏可能还不足以超过 Google Play APK 大小限制。

总结一下:

  1. 使用 armeabi-v7a 和 x86,或全部使用
  2. 额外的 apk 大小将与您的资产大小无关或相形见绌
  3. 你的构建时间会增加,但它会增加你可以点击的设备数量,所以这似乎是一个公平的权衡
于 2014-05-21T08:29:10.840 回答