如何在我的C++ Android appolication中启用VFP或NEON支持?

Ser*_* K. 4 gcc android-ndk

默认情况下,Android NDK不会生成带有VFP(向量浮点)或打开NEON指令的代码.我怎么能打开它们?

Mār*_*iko 7

Android NDK中的以下文件中有相关文档:docs/CPU-ARCH-ABIS.html和docs/CPU-ARM-NEON.html.

基本上你想放

APP_ABI := armeabi armeabi-v7a
Run Code Online (Sandbox Code Playgroud)

生成两个共享库,一个没有(针对ARMv5TE),另一个有VFP支持(针对ARMv7).

要使用NEON支持构建.c/.cpp文件,请在Android.mk文件中将.neon后缀添加到filename(例如:file.cpp.neon).或者要构建启用了NEON的所有文件,放入Android.mk文件:

LOCAL_ARM_NEON := true
Run Code Online (Sandbox Code Playgroud)

注意 - 并非所有ARMv7设备都支持NEON(如Nvidia Tegra 2).更好地在运行时检测它,然后选择不同的代码路径.

阅读文档了解更多信息.

  • 是的,它是自动完成的(对于armeabi和armeabi-v7a,现在是x86).阅读文档 - "III.1.应用程序包中的本机代码"部分 (2认同)