本文共 4257 字,大约阅读时间需要 14 分钟。
2. 数据结构
3. 四大函数
本文以重力感应器装置G-sensor为例探索Android的各层次结构。
1. 体系结构
本文重点关注硬件抽象层,JNI以及Framework。
1.1 硬件抽象层
1.2 JNI (Java Native Interface)
1.3 Java Framework
2 数据结构
2.1 sensors_control_context_t
struct sensors_control_context_t {
struct sensors_control_device_t {
2.2 sensors_data_context_t
struct sensors_data_context_t {
struct sensors_data_device_t {
struct hw_device_t {
struct hw_module_t {
struct hw_module_methods_t {
下文将通过对(*open), (*open_data_source), (*data_open)和(*poll)的代码分析,探索Android的各层次架构。
3 四大函数
3.1 module->methods->open()
1) Framework
2) JNI
3) 硬件抽象层
3.2 sSensorDevice->open_data_source()
1) Framework
2) JNI
3) 硬件抽象层
4) 设备驱动层
3.3 sSensorDevice->data_open()
1) Framework
2) JNI
3) 硬件抽象层
3.4 sSensorDevice->poll()
1) Framework
2) JNI
3) 硬件抽象层
4) 设备驱动层
通过bma220_get_orientation(data)得到G-sensor的数据data,然后将其从内核空间上传到用户空间的arg.
转载地址:http://vesci.baihongyu.com/