Android SensorService -- 启动过程

作者: 爱因私谈 | 来源:发表于2019-06-24 17:49 被阅读3次

Android SensorService 的整体启动时序图如下:

SensorService_start.png

SensorService启动过程主要完成下面几项工作:

  1. 实例化SensorService对象。
  2. 将自身加到系统Service列表中。
  3. 进入onFirstRef(),对整个SensorService初始化。
  4. 实例化SensorDevice对象。
  5. SensorDevice中首先加载"sensors.xxxx.so",取得sensors_module_t结构。
  6. 调用sensors_open_1()函数。
  7. 获取sensor列表,对所有sensor HAL层实现调用open_device()。
  8. 注册sensor。
  9. 注册虚拟sensor(RotationVectorSensor、GravitySensor、LinearAccelerationSensor、OrientationSensor、CorrectedGyroSensor、GyroDriftSensor等)
  10. 启动线程轮训各sensor上报的input事件,实际调用sensor HAL层的readEvents()。

注意:
只有当APP使用到sensor时,才会调用对应sensor HAL层的enable()方法,enable()实际通过ioctl调用驱动,开关数据获取。

相关文章

网友评论

    本文标题:Android SensorService -- 启动过程

    本文链接:https://www.haomeiwen.com/subject/qdooqctx.html