根据NDK的官方下载页面:http://goo.gl/vI7Oek有两个目标版本:
我想知道(作为NDK方面的新手),这是否意味着我在为配备了x64处理器的设备编译应用程序时应该使用x64 NDK?
如果我只需要一个".apk“文件,那么如何使它同时包含x86 & x64构建?(如果可能的话)
发布于 2014-10-17 12:14:55
更新:这个问题现在有点过时了。从版本10c NDK is distributed in a single package for all target platforms again开始。答案已经更新,以反映这一事实。
首先,您应该区分运行应用程序的设备的体系结构(可以是ARM (几种) 32或64位,MIPS 32或64位,以及Intel x86 / x64)和构建机器的体系结构/OS(可以是Windows、Linux或Mac,它们都运行在Intel x86 / x64处理器上)。
因此,假设您有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中指定您希望为其构建本机代码的目标(GoogleforAPP_ABI),因此您将构建多个版本的本机库,系统将在运行时加载适当的一个。此外,通过这种方式,您可以为同一体系结构系列的32位和64位版本提供单独的二进制文件,因此您可以对它们进行微调。
您可以进一步阅读NDK包中的docs,它们非常详尽。
https://stackoverflow.com/questions/26423959
复制相似问题