android - NDK : are x86 binaries needed for the Razr i?

标签 android android-ndk

据我所知,Razr i 是目前唯一一款基于英特尔的相关智能手机。

我们的应用程序使用通过 NDK 包含的 C++ 库。现在我想知道是否需要添加 x86 支持才能让这个应用程序在 Razr i 上运行。

如果在 Application.mk 中未设置“APP_ABI”(默认为“armeabi”),Play 商店会告诉我该 apk 支持 2635 台设备,不支持 282 台设备。大多数不受支持的是平板电脑,我们的应用程序需要 GPS。然而 Razr i 并未列出。

阅读http://software.intel.com/en-us/articles/google-play-supports-cpu-architecture-filtering-for-multiple-apk我偶然发现了这样的声明: “许多 x86 ABI 设备还可以运行 ARMv7 和 ARMv5TE 二进制文件。” 真的吗?因此,也许没有必要为所有设备扩充 apk 或每个版本管理 2 个 apk?

有人可以告诉我 Razr i 是否属实吗?

最佳答案

这有两个部分

  1. Razr I 通过使用称为二进制翻译的概念(即 Houdini)来支持 ARM 二进制文件。因此,ARM 指令会即时转换为 x86,并且您的应用程序可以毫无麻烦地运行。不过,会产生少量的转换开销,但还不足以导致性能下降。
  2. 最好的途径是将您的库移植到 x86,因为这意味着您可以从 x86 架构中获得最大的 yield 。

许多应用程序的运行方式与 Razr I 上的运行方式相同,但实际上并未指定支持 x86。因此,99% 的可能性是您的应用程序可能只是在 Razr I 上运行,但实际上没有相关的 x86 库。

关于android - NDK : are x86 binaries needed for the Razr i?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16533272/

相关文章:

带有httpurlconnection的android api 23中的Java rest api

android - Android 上的 GStreamer

android - native cpp 中有很多 Unresolved 错误

android - 从 native 库调用方法时出现 UnsatisfiedLinkError 尽管 System.loadLibrary 似乎没问题

Android NDK JNI 构建错误 : undefined reference to 'function_name'

android - 如何从 firebase 检索多个数据列表

android - 安装失败,因为 APK 未签名

android - BitmapFactory.decodeStream 总是返回 NULL

java - 每 10 分钟重新加载一次当前 Activity

android - 使用 Android NDK 无法读取 OBB 文件内容