Android电池电量使用详情查看
来源:互联网 发布:广数g92车英制螺纹编程 编辑:程序博客网 时间:2024/06/11 03:30
Android电池电量使用详情查看
关于Android电量的基础知识
关于电能的相关物理公式
- 电功率公式P=UI,P为电功率单位为w(瓦),U为电压单位V(伏特),I为电流单位安(A)
- 电能公式W=Pt=UIt,W为电能单位j(焦耳),t时间单位s(秒)
手机电池容量相关说明
手机上的电池容量一般是以mAh为单位的,这是因为手机的电压是保持稳定的,一般手机的电池容量在1500mAh到5000mAh之间,比如3000mAh表示的意思是手机能够保持电流大小为3000毫安的情况下对外输出电流一小时
Android手机各部件运行时能耗详情
在Android手机中,对于手机中的每个部件(cpu、led、gps、3g等等)运行时对应的能耗值都放在power_profile.xml文件中,而且系统的 设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的。
google官网介绍:http://source.android.com/devices/tech/power.html
- 我的手机获取的prower_profile.xml内容:华为 SCL-CL00
screen.full:320.0 手机屏幕全亮状态电流
radio.active:140.0 无线网路最高功率工作电流
wifi.scan:130.0 扫描wifi电流
cpu.speeds: cpu的工作速度 [200000.0,345600.0,400000.0,422400.0,499200.0,533333.0,652800.0,729600.0,800000.0,806400.0,883200.0,960000.0,1036800.0,1113600.0,1190400.0,1267200.0,1344000.0,1420800.0,1497600.0,1593600.0,]
dsp.video:300.0
wifi.on:3.0
cpu.idle:3.0
wifi.active:130.0
bluetooth.on:1.0
none:0.0
wifi.batchedscan:[2.0E-4,0.002,0.02,0.2,2.0,]
screen.on:120.0
cpu.active:[75.0,85.0,100.0,107.0,115.0,120.0,130.0,140.0,160.0,200.0,210.0,220.0,230.0,240.0,250.0,270.0,320.0,370.0,420.0,480.0,]
radio.scanning:10.0
radio.on:[10.0,5.0,]
dsp.audio:50.0
battery.capacity:3000.0
gps.on:40.0
bluetooth.active:70.0- 我的手机获取的prower_profile.xml内容:华为 SCL-CL00
Google官网参数说明:http://source.android.com/devices/tech/power/values.html
2. 如何获取power_profile
通过源码搜索power_profile,发现在代码PowerProfile这个类中有加载这个配置文件,通过反射PowerProfile来获取power_profile.xml信息,反射代码如下:
try { Class powerProfile = Class.forName("com.android.internal.os.PowerProfile"); Constructor constructor = powerProfile.getConstructor(new Class[]{Context.class}); Object o = constructor.newInstance(this); Field field = powerProfile.getDeclaredField("sPowerMap"); field.setAccessible(true); Object values = field.get(o); HashMap<String, Object> powerMap = (HashMap<String, Object>) values; Iterator<Map.Entry<String, Object>> entryit = powerMap.entrySet().iterator(); while (entryit.hasNext()) { Map.Entry<String, Object> entry = entryit.next(); String key = entry.getKey(); Object value = entry.getValue(); if (value instanceof Double[]) { Double[] vs = (Double[]) value; StringBuilder sb = new StringBuilder(); sb.append("["); for (double v : vs) { sb.append(v + ","); } sb.append("]"); Log.i("power", key + ":" + sb.toString()); } else { Log.i("power", key + ":" + value.toString()); } } } catch (Exception e) { e.printStackTrace(); }
Android源码查询:http://androidxref.com/source/xref/frameworks/base/core/java/com/android/internal/os/PowerProfile.java
Android获取电池电量使用详情
对于android5.0以上的版本可以用开源项目Battery Historian来查看详情,GitHub上的地址为:https://github.com/google/battery-historian.
- 下载battery-historian
- 找到historian.py(在scripty文件夹里面)位置
- adb链接手机,并且cd到historian.py目录下
- adb shell dumpsys batterystats –reset重置,
- 手机端断开和电脑的连接,并且运行你的程序一段时间
- 连接电脑
- adb shell dumpsys batterystats > batterystats.txt
- python historian.py batterystats.txt > batterystats.html(确保你下载了python,并且使用版本为2.7)
- 打开batterystats.html查看详情
google官网地址:https://developer.android.com/studio/profile/battery-historian.html
我的手机获取的信息如下:
参数说明:
battery_level:手机电量
screen:屏幕
top:当前运行的app
running:cpu运行
mobile-radio:无线网路运行
date_conn:数据连接
Google官网参数说明:https://developer.android.com/studio/profile/battery-historian-charts.html
- Android电池电量使用详情查看
- 举例说明在android中使用BroadcastReceiver之二-------查看电池电量
- 电池电量android
- android dialog使用详情
- Android上拉查看详情实现
- android非wifi下查看H5详情
- android向上拖动查看图文详情控件
- Android 通知 Notification 使用详情
- Android Studio插件使用详情
- Android中Gradle使用详情
- Centos 7 查看电池电量信息
- android 显示电池电量
- Android电池电量状态源码
- android 电池电量上报管理
- Android电池电量检测
- Android中获取电池电量
- Android 电池电量监控初步
- android电池电量监控
- NPM配置问题
- 欢迎使用CSDN-markdown编辑器
- xml-在程序中写xml并将内存中的xml保存至文件中
- java学习笔记-类, 面向对象特性,包机制
- C/C++轻松写可塞满硬盘的程序
- Android电池电量使用详情查看
- Angualr 组件间通信
- Spring 定时器--时间配置规范
- 《轻量级微服务架构》读书笔记——蛙牛
- vs2008突然不能使用查找功能了
- BZOJ 1042: [HAOI2008]硬币购物 DP,与处理,容斥
- 关于Android换行符的注意
- git//只是为了自己了解一下
- Android开发工具类--LogUtils