作者:郭嘉
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell

【基于Android的ARM汇编语言系列】章节列表

【基于Android的ARM汇编语言系列】之一:ARM汇编语言开篇
【基于Android的ARM汇编语言系列】之二:C/C++程序生成ARM汇编程序的过程分析
【基于Android的ARM汇编语言系列】之三:ARM汇编语言程序结构
【基于Android的ARM汇编语言系列】之四:ARM处理器的寻址方式
【基于Android的ARM汇编语言系列】之五:ARM指令集与Thumb指令集
【基于Android的ARM汇编语言系列】之六:NEON指令集与VFP指令集

NEON指令集与VFP指令集是ARM指令集的扩展,多用于多媒体编程和浮点运算。

一 Android平台使用NEON指令集与VFP指令集

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-v7aLOCAL_ARM_:=true

更多相关文章

  1. 【贪吃蛇—Java程序员写Android游戏】系列 0. 前言几句话
  2. Android面试系列文章2018之Android部分Service篇
  3. Android面试系列文章2018之Android部分Service篇
  4. Android伸手党系列之五:Android(安卓)UI相关知识总结
  5. Android电源管理系列之PowerManagerService(一)
  6. Android伸手党系列之五:Android(安卓)UI相关知识总结
  7. 2011年Android产品趋势
  8. Android(安卓)性能优化系列视频(五)
  9. [Android(安卓)Training视频系列]1.1 Creating an Android(安卓)

随机推荐

  1. 爬虫代理哪家强?十大付费代理详细对比评测
  2. Session和Cookies的基本原理
  3. Selenium的使用方法简介
  4. Scrapy-Redis分布式爬虫源码解析
  5. 10 个最受欢迎的JavaScript框架[每日前端
  6. 学习 Selenium 的十大理由[每日前端夜话0
  7. 【知识星球】:Python数据科学学习社区
  8. 分析Ajax爬取今日头条街拍美图
  9. Scrapy爬虫去重效率优化之Bloom Filter的
  10. 网络暴力有多可怕?