SensorService
2015-03-16 13:50:02 0 举报
SensorService是一个用于处理传感器数据的应用程序。它通过收集、分析和解释来自各种传感器的数据,为用户提供有关环境条件、设备状态和其他相关信息的实时更新。SensorService可以与各种类型的传感器兼容,包括温度传感器、湿度传感器、气压传感器等。此外,它还具有数据可视化功能,可以将复杂的数据以图表和图形的形式呈现给用户,帮助他们更好地理解和分析数据。总之,SensorService是一个功能强大且易于使用的应用程序,适用于需要实时监测和分析传感器数据的用户。
作者其他创作
大纲/内容
new
SensorManager
BpSensorEventConnection
SensorDevice
mSensorDevice//hal
instantiate
for循环nativeGetNextSensor
完成java 层 sensor list 初始化
BaseEventQueue
super
获取sensor
SensorManager.cpp
mSensorListeners
SystemSensorManager
dispatchSensorEvent
SensorService.cpp
init
ISensorEventConnection
mSensorEventConnection
获取ISensorServer//mSensorServer
android_hardware_SensorManager
nativeEnableSensor
registerSensor
//完成系统启动后Sensor在Framworks的初始化
ISensorServer.cpp
ISensorEventConnection
SensorEventQueue
write
onSensorChanged
SensorService
threadLoop
SensorDevice.h
sensors_poll_device_1_t* mSensorDevice; struct sensors_module_t* mSensorModule;
返回Vector 列表数据
添加到列表
assertStateLocked
ISensorEventConnection.cpp
enable
SensorEventConnection
sendEvents
connection
SensorInterface.h 的子类sensor
read
CallVoidMethod
//内部类
getActiveConnections
Sensor.java
ISensorService
createSensorEventConnection
android_hardware_SensorManager.cpp
Receiver//内部类
nativeGetNextSensor单列初始化
BnSensorServer
SensorEventQueue
BitTube
send//跨进程
回调到nativeInitBaseEventQueue 对应的java对象上
BpSensorServer
SensorEventConnection
SensorService.h
创建监听事件 new
ISensorServer
触发Looper执行 LooperCallback
mSensorServer
sendObjects
recvObjects
遍历
//单例
enableSensor(
binder
recv//拿到传感器对应的数值
获取注册且激活了的Sensor连接
Thread
threadloop//循环取底层数据
开始LooperCallback 和bitTub关联
将Hal中的Sensor 信息注册到Service中保存
addConnection(connection)
SensorService::threadLoop//循环读取数据
关联connection
registerListener
HAL 中存在的sensor
dev.getSensorList
SystemSensorManager.java
registerListenerImpl
完成获取
addSensor
addSensorEvent
JNI
enableDisable
onFirstRef
创建完成
Sensor.h
nativeClassInit//nativeGetNextSensor
ContextImp
register
hal操作
init//初始化两个socket mReceiveFd = sockets[0]; mSendFd = sockets[1];
sensor.h
poll
单例初始化
mSensorDevice
nativeGetNextSensor//将得到的数据填充到Sensor.java 中
mSensorQueue
run(\"SensorService\
将数据回调到具体应用界面
nativeInitBaseEventQueue
mMessageQueue->getLooper()->addFd(mSensorQueue->getFd()
connection->addSensor(handle)
BnSensorEventConnection
hal -》activie
getSensorChannel
Sensor
class
SensorEvent.java//UI上接收数据的载体
getSensorList
SensorRecord
mSensorsEvents
SensorInterface* sensor = mSensorMap.valueFor(handle);
mListener
Receiver//继承LooperCallback
handleEvent
Bp端 new BitTube
创建connection完成
HAL操作
Client
com_android_server_SystemServer.cpp
SystemServer进程的JNI 中初始化sensorService
Receiver
注册完成
mSensorList[i] = mSensors.array()//指针的指针将Vector列表政赋值
activeConnections[i].promote()
SensorManager.java
nativeClassInit//jni 初始化化对应的java类
0 条评论
下一页