根据NDK的官方下载页面:http://goo.gl/vI7Oek 有两个目标版本:
我想知道(作为NDK中的新手),这是否意味着我应该在为配备x64处理器的设备编译应用程序时使用x64 NDK?
如果我只需要一个" .apk"文件,如何使它包含x86和amp; x64构建? (如果可能的话)
答案 0 :(得分:20)
更新:这个问题现在有点过时了。从版本10c
NDK is distributed in a single package for all target platforms again开始。答案已经更新,以反映这一事实。
首先,您应该区分运行应用程序的设备的体系结构(可以是ARM(几种)32或64位,MIPS 32或64位,以及Intel x86 / x64)和体系结构构建机器的/ OS(可以是在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包中的文档,它们非常详尽。