Sensor整体框架
什么是Sensor?
Sensor就是所谓的传感器,比如AccelerometerSensor、MagneticSensor、OrientationSensor、ProximitySensor、LightSensor、Gyro等。
黄色部分:硬件,在I2C总线上
红色部分:驱动,驱动注册到Kernel的Input Subsystem
上,然后通过Event Device
把Sensor数据传到HAL层,准确说是HAL从Event读
绿色部分:动态库,它封装了整个Sensor的IPC机制,如SensorManager
是客户端,SensorService
是服务端,而HAL部分是封装了服务端对Kernel的直接访问
蓝色部分就是我们的Framework
和Application
了,JNI负责访问Sensor的客户端,而Application
就是具体的应用程序,用来接收Sensor返回的数据,并处理实现对应的UI效果
SensorService启动
网络上很多sensor机制讲解的内容都是过时的了,新的android有了新的机制,这里讲的是Android5.0以上的版本
这里推荐一个较新的博客,关于Android5.0 Sensor机制 android-5.0 sensor工作原理—sensorservice的启动(一)
启动SensorService的过程如上图所示,过程还是比较清晰的。