繁体   English   中英

Android Native - 何时使用64位NDK?

[英]Android Native - When to use 64-bit NDK?

根据NDK的官方下载页面: http//goo.gl/vI7Oek有两个目标版本:

  • x86目标
  • x64目标

我想知道(作为NDK中的新手),这是否意味着我应该在为配备x64处理器的设备编译应用程序时使用x64 NDK?

如果我只需要一个“.apk”文件,如何使它包含x86和x64版本? (如果可能的话)

更新:这个问题现在有点过时了。 从版本10c开始, NDK再次分布在所有目标平台的单个包中 答案已经更新,以反映这一事实。


首先,您应该区分运行应用程序的设备的架构(可以是ARM(几种)32或64位,MIPS 32或64位,以及Intel x86 / x64)以及架构/操作系统您的构建计算机(可以是运行在Intel x86 / x64处理器上的Windows,Linux或Mac)。

所以假设你有Windows 64位。 然后(现在最新的版本是10d )你应该下载android-ndk-r10d-windows-x86_64.exe 它将允许您为NDK支持的所有目标平台(32位和64位)构建。

如果为32位目标设备构建,则应用程序也将在64位设备上运行,因为所有列出的64位体系结构都向后兼容其32位对应设备。

但是,如果要使用目标体系结构的64位特定功能,则应使用64位工具链。 如果仅为64位构建,则应用程序将无法在32位体系结构上运行。

如果你必须支持几个目标(比如ARM和Intel x86),你可以在Application.mk中指定你想要为你的本机代码构建的目标(google for APP_ABI ),这样你就可以构建几个版本的本机库并且系统将在运行时加载适当的一个。 此外,您可以为同一架构系列的32位和64位版本提供单独的二进制文件,因此您可以对它们进行微调。

您可以进一步阅读NDK包中的文档,它们非常详尽。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM