Android SensorService分析

本文详细分析了Android系统的SensorService,从初始化过程、SensorServer架构和结构、与HAL层的对接,到数据请求处理和传感器的启用。SensorService在systemserver启动时初始化,通过SensorDevice与硬件交互,获取并管理传感器列表,创建虚拟传感器,通过BinderService与sensorManager通信,最终实现数据的上传和应用。
摘要由CSDN通过智能技术生成

一、SensorService初始化

  1. systemserver初始化的时候,就会初始化sensorService;

  1. sensorService创建sensorDevice对象,sensorDevice是hal层的操作函数集;

  1. sensorDevice会得到系统所支持sensor的个数和sensor操作函数;

  1. sensorService将系统所支持的sensor添加到sensorlist中;

  1. 根据系统反馈创建虚拟sensor;

  1. 等待连接,启动线程分发数据;

二、SensorServer架构图

三、SensorServer结构图

(1)SensorServer继承了BinderService,BnSensorServer,以及Thread。

(2)当SensorServer初始化的时候,就会调用BinderService的方法,自动的将自己添加到serverManager中,这样sensorManager才能够通过serverManager得到sensorService。

(3)SensorServer在初始化过程中,首先它会调用SensorDevice的一个类,这个类会实例化一个对象,当对象初始化的时候会动态的加载Hal的库,而加载的方法就是hw_get_module(),通过这个方法就能够得到系统默认的sensor的库(libsensor.so),而这个sensor库就是提供底层操作函数集的库。然后会得到一系列sensor的结构,最终会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值