【问题标题】:Android NDK : what should I set in Application.mk for APP_ABI?Android NDK:我应该在 Application.mk 中为 APP_ABI 设置什么?
【发布时间】:2013-10-27 04:31:15
【问题描述】:

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

请澄清。

【问题讨论】:

    标签: android android-ndk x86 arm abi


    【解决方案1】:

    您还可以指定mips,当您使用all 时将包含它。

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

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

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

    【讨论】:

      【解决方案2】:

      我建议至少设置 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. 您的构建时间 会增加,但它会增加你可以点击的设备数量,所以 这似乎是一个公平的权衡

      【讨论】:

        猜你喜欢
        • 2018-06-02
        • 1970-01-01
        • 2012-04-23
        • 2020-01-31
        • 1970-01-01
        • 2015-03-08
        • 1970-01-01
        • 1970-01-01
        • 2020-11-05
        相关资源
        最近更新 更多