Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92
Android4.4 -> Android6.0 有点细微变化, 但是整体框架不变, 使用守护进程的方式和kernel通信,
拿到信息后再和上层service交互, 属于沟通的桥梁.
main -> system/core/healthd/healthd.cpp
healthd_init ->
healthd_mode_ops->init ->
healthd_mode_android_init ->
healthd_register_event //callback为binder_event()
new BatteryPropertiesRegistrar -> BatteryPropertiesRegistrar.cpp //用于和Battery Service通信。
gBatteryPropertiesRegistrar->publish ->
BatteryPropertiesRegistrar::publish ->
defaultServiceManager()->addService //注册成为一个service,这样Battery Service就可以获取了。
wakealarm_init -> //注册一个alarm,然后定期唤醒系统更新电池状态.
healthd_register_event //callback为wakealarm_event()
wakealarm_set_int
OS: Android 6.0
Kernel: 3.10.92
Android4.4 -> Android6.0 有点细微变化, 但是整体框架不变, 使用守护进程的方式和kernel通信,
拿到信息后再和上层service交互, 属于沟通的桥梁.
main -> system/core/healthd/healthd.cpp
healthd_init ->
healthd_mode_ops->init ->
healthd_mode_android_init ->
healthd_register_event //callback为binder_event()
new BatteryPropertiesRegistrar -> BatteryPropertiesRegistrar.cpp //用于和Battery Service通信。
gBatteryPropertiesRegistrar->publish ->
BatteryPropertiesRegistrar::publish ->
defaultServiceManager()->addService //注册成为一个service,这样Battery Service就可以获取了。
wakealarm_init -> //注册一个alarm,然后定期唤醒系统更新电池状态.
healthd_register_event //callback为wakealarm_event()
wakealarm_set_int