据我所知,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 是否属实吗?
最佳答案
这有两个部分
- Razr I 通过使用称为二进制翻译的概念(即 Houdini)来支持 ARM 二进制文件。因此,ARM 指令会即时转换为 x86,并且您的应用程序可以毫无麻烦地运行。不过,会产生少量的转换开销,但还不足以导致性能下降。
- 最好的途径是将您的库移植到 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/