2014-10-17 24 views
6

据NDK的官方下载页面:http://goo.gl/vI7Oek 有两个目标版本:Android本机 - 何时使用64位NDK?

  • 86目标
  • 64目标

,我想知道(如NDK的东西一个新手)这是否意味着在编译装有x64处理器的设备的应用程序时,我应该使用x64 NDK?

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

回答

19

更新:现在的问题有点过时了。从版本10cNDK is distributed in a single package for all target platforms again开始。答案已经更新以反映这一事实。


首先,应该把设备的架构,你的应用程序将运行区分(可以是ARM(多种),32位或64位,MIPS 32位或64位,而英特尔在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和英特尔的x86),在你的Application.mk您可以指定您希望您的本机代码,为构建目标(谷歌APP_ABI),所以你会建立多个版本本地库,系统将在运行时加载相应的库。同样,您可以为同一架构系列的32位和64位版本提供单独的二进制文件,因此您可以对它们进行微调。

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

+0

非常感谢,所有我需要知道的 – 2014-10-17 12:41:45

相关问题