4
默認情況下,Android NDK不會生成具有VFP(矢量浮點)或NEON指令的代碼。我怎樣才能打開它們?如何在我的C++ Android appolication中啓用VFP或NEON支持?
默認情況下,Android NDK不會生成具有VFP(矢量浮點)或NEON指令的代碼。我怎樣才能打開它們?如何在我的C++ Android appolication中啓用VFP或NEON支持?
在Android NDK的以下文件中有關於此的文檔:docs/CPU-ARCH-ABIS.html和docs/CPU-ARM-NEON.html。
基本上你想要把
APP_ABI := armeabi armeabi-v7a
產生兩個共享庫,一個沒有(靶向結構ARMv5TE)和一個用VFP的支持(針對ARMv7的)。
使用NEON支持構建.c/.cpp文件在Android.mk文件中添加.neon後綴到文件名(例如:file.cpp.neon)。或建立與啓用NEON的所有文件,投入Android.mk文件:
LOCAL_ARM_NEON := true
要小心 - 不是所有的ARMv7設備支持NEON(喜歡的NVIDIA Tegra 2)。在運行時更好地檢測它,然後選擇不同的代碼路徑。
閱讀文檔以獲取更多信息。
是否可以將2個二進制文件放入.apk(armv7和neon),以便系統可以自動選擇正確的二進制文件? – 2012-02-17 12:07:18
是的,它是自動完成的(對於armeabi和armeabi-v7a,現在是x86)。閱讀文檔 - 「III.1。應用程序包中的本地代碼」 – 2012-02-17 21:35:44