我想在Android上获得我的移动应用程序的最大性能。我想知道是否有人知道检查手机是否有FPU的窍门。
经过一些研究,似乎在拥有FloatMath的单元上使用FPU类的速度要慢一些,所以我希望两全其美。
大多数较新的手机都有一个FPU,但我希望它能提供最大的性能。
发布于 2017-11-05 14:30:14
尽管这是一个非常古老的帖子,但对于像我这样被谷歌登陆到这里的人来说,它可能会发现它很有用。在这里,我将展示如何使用NDK (C++)来完成这项工作,因为Java方式已经给出了。
使用NDK,通过包含cpu-features.h,我们可以利用一些API和预定义的宏来检测FPU的可用性。
对于32位处理器,您应该在的返回值上检查ANDROID_CPU_ARM_FEATURE_VFPv3、ANDROID_CPU_ARM_FEATURE_VFPv2、ANDROID_CPU_ARM_FEATURE_VFP_D32、ANDROID_CPU_ARM_FEATURE_VFP_FP16或ANDROID_CPU_ARM_FEATURE_VFP_FMA中的一个,这将确保您的处理器配备了android_getCpuFeatures()。
对于64位,请检查ANDROID_CPU_ARM64_FEATURE_FP标志。
此外,调用android_getCpuFamily()以获得CPU系列/体系结构(ARM/MIPS,32/64位等)。
cpufeatures library manual可以在您的项目中包含和使用所有内容。
https://stackoverflow.com/questions/8161184
复制相似问题