android 电池管理之个人理解
来源:互联网 发布:北京折叠 雨果 知乎 编辑:程序博客网 时间:2024/05/09 23:10
电池最开始的检测代码是在frameworks/base/services/java/com/android/server/BatteryService.java中,这里使用的是android中switch机制。监视的位置是(adb shell)/sys/class/power_supply,里面看各家自己的驱动是怎么实现的,具体就是一些状态值,比如电源在不在,电池电量,电池温度等。里面的数值一旦有变化,就会通知BatteryService.java去读,BatteryService.java中有一个native方法
通过jni去读取这些状态值,并在jni直接对BatteryService.java的一些属性(电源在不在,电池电量,电池温度等)赋值,BatteryService.java根据这些值做相应的操作,会有intent发出,接收的地方(StatusBarPolicy.java)根据这些intent中所附带的值进行系统图标的变化。比如,
电源在,代表充电,根据电量选择不同的动画,满电了,就停止动画。
电源不在,就是耗电过程,根据电量去显示不同的图片(只有四五张图片吧,是每掉多少电后才换一张图,如下图)。
由图可知,最后电池红的的时候还有4的电量,所以没有关机。BatteryService.java中有几种关机检测,电量为零或者温度过高都会直接关机。
其实类比电池的检测,可以猜测比如耳机插拔等操作过程了。
充电动画的实现是一个frameworks/base/core/res/res/drawable/stat_sys_battery_charge.xml上面的xml是一个
根据不同level值进行变化的动画效果(本质换图片)控制是在
frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java中,通过设置battery
的level,stat_sys_battery_charge.xml从而会动态的换取不同动画效果。
- android 电池管理之个人理解
- android电池管理
- Android-statuabar电池管理
- Android电池管理
- android电池管理系统
- android BatteryManager电池管理
- android电池管理系统
- android电池管理系统
- android电池管理系统
- Android 电池管理系统
- Android 电池管理系统
- Android 电池管理系统
- Android 电池管理
- Android 电池管理系统
- Android的电池的管理
- android 电池管理(大全)
- android 4.4电池管理流程
- Android Battery(四) 电池管理
- 没有分了,怎么办?
- 部分问题解决方案整理
- http://acm.nyist.net/JudgeOnline/problem.php?pid=38&&最小生成树
- 系统工程师应该准备的细节
- 本地管理表空间
- android 电池管理之个人理解
- Exporting System or Composite Partitioned Table Using Classic Export Gives EXP-6 AND EXP-0
- linux sed用法
- 如何用C++编程获得某台机器的IP地址?
- JDBC的LIKE书写规范
- moto 525 挂电话慢
- 防止衣物褪色的小妙招
- 类似csdn的2周内自动登录实现
- Linux中gns3/dynamips 与多台交换机连接,单网卡