Android NDK从r3版本开始也添加了对NEON指令集与VFP指令集的支持。使用方法如下所示:

1 运行时检测处理器是否支持NEON指令集与VFP指令集

Android NDK提供了一个cpufeatures的库来让开发者在运行时检测处理器是否支持NEON指令集与VFP指令集。要使用cpufeatures库,

(1) 首先在Android.mk中添加以下内容:

$(call import-module, android/cpufeatures)

(2) 然后在C/C++代码中包含头文件cpu-features.h文件。该文件包含以下函数。

  • android_getCpuFamily():获取处理器家族信息,对于ARM处理器,该函数始终返回常量值ANDROID_CPU_FAMILY_ARM。
  • android_getCpuFeatures():检测处理器支持的指令集,如果支持NEON指令集,则返回的64位数据中ANDROID_CPU_ARM_FEATURE_NEON标志就会被置位。如果支持VFPv3指令集,则返回的64位数据中ANDROID_CPU_ARM_FEATURE_VFPv3标志就会被置位。
  • android_getCpuCount():获取处理器的核心数。

z只需要在Android.mk添加一下内容即可使用。

TARGET_ARCH_ABI:=armeabi-v7a
LOCAL_ARM_:=true