为帮助大家调试和查阅, jwisp总结了电池电量报警, 关机, 电量图标变化规则表. 如下:
关键类和其位置:
BatteryService.java (/frameworks/base/services/java/com/android/server/) com_android_server_BatteryService.cpp (/frameworks/base/jni/) StatusBarPolicy.java (/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/) stat_sys_battery_charge.xml (/frameworks/base/core/res/res/drawable/)
BatteryService类, 由update()方法调用本地方法native_update()来更新电量
com_android_server_BatteryService.cpp通过UEvent方式来得到上报上来的电池相关信息.
StatusBarPolicy.java负责状态栏电池状态信息变化的显示, 包括电量, 充电, 以及低电报警通知等.
电池电量报警关机策略及电池电量状态图标变化规则表:
level <= 15 电池电量报警, 报警会在以下三种状态发生:
1.非充电状态, level首次达到15 (上一个level状态必须>15)
2.充电状态转为非充电状态时(上一个状态是充电状态,此时为非充电状态), level<=15
3.刚开机,非充电状态, level<=15
level <=4 自动关机
98 <= level <= 100 满电状态
28 <= level <= 97 此中间状态, 按5%来递减, 图片随之变化
level <= 27 变成浅绿色- 多
level <= 22 变成浅绿色- 少
level <= 17 变黄
level <= 12 变红 – 多
level <= 7 变红 – 少
level <= 2 变成红色叉叉
更多android文章 http://www.jwisp.com