一.主体框架
sensor Frameowk层的初始化主要由systemServcer,android.hardware.sensors@1.0-service来共同完成。
1.systemServer
systemServer这边主要是启动sensor线程,初始化SensorDevice对象,让systemServcer建立和android.hardware.sensors@1.0-service的链接,之后进入死循环一直poll等待数据,当拿到数据后会通过sendEvents方法发送给SystemSensorManager中对应的Receiver对象,然后会调用dispatchAdditionalInfoEvent方法,这里会回调回JAVA层,然后这里会调用对应注册的mListener分发给APP。
2.android.hardware.sensors@1.0-service
android.hardware.sensors@1.0-service进程由init启动,这边的初始化主要是注册各个sensor的 handle到子系统中,然后进入死循环等待数据,当有数据时会层层传递到上层。
总体流程图如下: