【问题标题】:Android armeabi devices with API level 15+API 级别 15+ 的 Android armeabi 设备
【发布时间】:2015-06-18 19:04:36
【问题描述】:

我正在为 API 级别 15+ 开发一个包含一些 jni 代码的应用程序,我想知道是否有具有 armeabi ABI (ARMv5) 和 API 级别 15+ 的设备

我可以只包含 armeabi-v7a 和 x86 库并跳过旧的 armeabi 吗?

【问题讨论】:

    标签: android-ndk


    【解决方案1】:

    Android 本身不支持 Android 4.4(API 级别 19)低于 ARMv7 的 ARM 版本。从 Android 4.0(API 级别 15)开始,它默认不支持 ARMv5/ARMv6,但可以修改为针对这些平台构建(请参阅https://groups.google.com/d/msg/android-building/Q_gU1zb6DLc/Bq5QryioQ_kJ),并且有在 ARMv6 上运行的自定义构建。我不完全确定是否有任何官方认证的兼容设备运行这种组合(Android 4.0-4.3) - 至少不应该有任何此类认证设备运行 Android 4.4,因为兼容性定义文档严格要求 ARMv7从那个版本开始。

    所以在实践中你应该很安全地跳过它,但你可能会通过这样做排除一些边缘第三方 ROM。

    请参阅https://stackoverflow.com/a/28926267/3115956 以获取类似问题的类似答案。

    【讨论】:

    • 不错的信息,但我很困惑。 ARMv6 支持到 4.0,然后 ARMv7 支持到 4.4,是这样吗?否则我会错过 ARMv6 和 ARMv7 之间的一些版本 :)
    • 否 - 从 4.4 开始,仅允许使用 ARMv7(加上 x86 和 mips 等其他架构),即没有官方兼容的设备在 ARMv6 上运行 Android 4.4。从 Android 4.0 到 4.3,Android 源代码本身不再为 ARMv6 构建,但制造商可以修改源代码使其构建为 ARMv6,并且没有严格要求不能使用 ARMv6 制作设备对于那些 Android 版本。所以从 Android 4.0 开始,带有 ARMv6 的设备应该会少很多,而从 Android 4.4 开始,应该不会再有 ARMv6 了。
    【解决方案2】:

    我可以只包含 armeabi-v7a 和 x86 库并跳过旧的 armeabi 吗?

    不,如果应用程序要在旧的基于 cpu 的架构设备上使用。

    是的,如果我们确定没有客户拥有早于 ARM7 cpu 架构的设备。

    在我们的案例中,我们购买了一年的 Chilkat 许可证,他们很乐意为 ARMEABI .SO 文件提供支持。因此,这取决于用例。它对组织来说是负担得起的。

    如果有人想联系他们寻求帮助,也想分享 Chilkat 的联系点。发送电子邮件至 -> support@chilkatsoft.com

    谢谢你,编码快乐!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 2011-02-15
      相关资源
      最近更新 更多