手机每个硬件的耗电量是不一样的!比如屏幕就是耗电大户!其它一些元件则耗电量非常小!

使用android dumpsys工具可以获取电池以及电量消耗信息!

dumpsys工具:battery、batterystatus

1. 电池信息


1.1 获取手机电池信息

adb命令: adb shell dumpsys battery

得到信息如下:

  AC powered: false
USB powered: true
Wireless powered: false
status: 1 #电池状态:2:充电状态 ,其他数字为非充电状态
health: 2
present: true
level: 55 #电量: 百分比
scale: 100
voltage: 3977
current now: -335232
temperature: 335 #电池状态
technology: Li-poly

1.2 改变手机电池状态

手机连接到电脑,默认为充电状态

切换手机电池为非充电状态: adb shell dumpsys battery set status 1

1.3. 改变手机电量

改变手机电量! 亲,这是真的 !神奇的一刻

让手机电量显示百分百: adb shell dumpsys battery set level 100

让手机电量显示1: adb shell dumpsys battery set level 1

2. 电量消耗信息


关于电量,主要是通过battery-historian工具来获取。

https://github.com/google/battery-historian

2.1 获取电量消耗信息

获取整个设备的电量消耗信息: adb shell dumpsys batterystats  | more
获取某个apk的电量消耗信息: adb shell dumpsys batterystats com.Package.name | more

由于输出信息太多,可使用命令more 或者 less 分篇查看

输出信息如下(由于篇幅,只粘贴部分):

Battery History:
-1d04h22m36s181ms 044 20080000 status=charging health=good plug=usb temp=335 volt=3809 +plugged +sensor
-1d04h21m27s713ms 044 640a0000 +wifi +wifi_running +wake_lock
-1d04h21m23s278ms 044 6c0a0100 +phone_scanning phone_state=out
-1d04h21m19s102ms 044 2c0a0100 -wake_lock
-1d04h21m05s005ms 044 6c0a0100 +wake_lock
-1d04h20m51s486ms 044 6d0a0100 +wifi_scan
-1d04h20m49s211ms 044 6c0a0100 -wifi_scan
-1d04h20m41s478ms 044 6c0a0100
-1d04h20m31s476ms 044 6d0a0100 +wifi_scan
-1d04h20m29s174ms 044 6c0a0100 -wifi_scan
-1d04h20m24s353ms 044 2c0a0100 -wake_lock
-1d04h20m21s474ms 044 6d0a0100 +wifi_scan +wake_lock
-1d04h20m21s125ms 044 6d0a0100
-1d04h20m16s847ms 044 2c0a0100 -wifi_scan -wake_lock

也可以将上述命令标准输出到一个文件,来进行分析。

  • windows : > xxx.txt
  • Mac/Linux: > xxx.txt

2.2 将获得的数据转换为可视化的html文件

命令:python historian.py xxx.txt > xxx.html

Google Python脚本下载地址:https://github.com/google/battery-historian

3. 其他关于android电池电量优秀文章


  1. 传输数据时避免消耗大量电量:

    http://hukai.me/android-training-course-in-chinese/connectivity/efficient-downloads/index.html
  2. Android性能优化之电量篇:

    http://hukai.me/android-performance-battery/

android adb:电池与电量的更多相关文章

  1. Android取得电池的电量

    首先需要用到的是一个类继承BrocastReceiver 2 代码如下: public class Battery_Info extends BroadcastReceiver { @Override ...

  2. android adb常用命令

    android adb命令: adb root --获取root.adb remount --获取文件操作权限(push)adb shell pm list package 获取包名列表com.mqt ...

  3. Android adb push 和 pull操作

    由于安卓真机本地调试时,每次启动并生成apk然后安装到设备比较费时,而很多情况是仅仅修改了hot 脚本文件(cocos2dx + lua). 所以,使用热更机制把修改后的lua文件push到热更目录( ...

  4. Android学习笔记1 android adb启动失败问题 adb server is out of date. killing...

    下面是Android的学习笔记,原文地址. 我是使用adb devices出现如下红字错误, 使用第一种方法方法,结果关掉豌豆荚就可以了. android adb启动失败问题 adb server i ...

  5. 【转】Linux下Android ADB驱动安装详解

    原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...

  6. Android ADB命令详解

    adb的全称为Android Debug Bridge.是android司机经常用到的工具 . 你能在本篇文章中学到什么? adb基本指令 Shell AM&PM adb模拟用户事件 logc ...

  7. Android ADB命令教程二——ADB命令详解

    Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html       我们使用 adb -h 来看看,adb命令里面 ...

  8. Android ADB命令?这一次我再也不死记了!【简单说】

    https://www.jianshu.com/p/56fd03f1aaae adb的全称为Android Debug Bridge.是android司机经常用到的工具.但是问题是那么多命令写代码已经 ...

  9. Android adb shell data目录,Permission denied

    Android adb shell进入data目录,Permission denied 权限被拒绝 在shell里面输入su root,去申请root权限,注意:有小部分手机是需要点击授权,再次执行c ...

随机推荐

  1. DELPHI关闭瑞星监控的源代码

    program Project1; uses Windows, Messages, SysUtils; procedure DeleteMe; var BatchFile: TextFile; Bat ...

  2. 优化UITableViewCell高度计算的那些事(RunLoop)

    这篇总结你可以读到: UITableView高度计算和估算的机制 不同iOS系统在高度计算上的差异 iOS8 self-sizing cell UITableView+FDTemplateLayout ...

  3. Objective-C Autorelease Pool 的实现原理

    内存管理一直是学习 Objective-C 的重点和难点之一,尽管现在已经是 ARC 时代了,但是了解 Objective-C 的内存管理机制仍然是十分必要的.其中,弄清楚 autorelease 的 ...

  4. 转载Ajax.Net--ScriptManager和UpdatePanel控件

    ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果.其中的UpdatePanel就是设置页面中异步局部更新区域,它必须依赖于ScriptManager存在,因 ...

  5. Bugs及解决方案列表

    Bugs及解决方案列表(以下实例默认运行环境都为Standard mode): 如何在IE6及更早浏览器中定义小高度的容器? 方法: #test{overflow:hidden;height:1px; ...

  6. Windows Azure Website类别、限制条件

    在Azure中Website是一个典型的SAAS,用户可以很容易地搭建自己想要的网站,可以基于多种编程语言(ASP.NET/ASP/PHP/Node.JS等)和网站框架. Website有三种分类分别 ...

  7. python ssh弱口令爆破多线程脚本及遇到的一些错误与问题

    练习写了个SSH弱口令爆破多线程脚本,遇到的问题 1.一开始想import pexpect 中的pxssh 然而却一直该有错误, ImportError: cannot import name spa ...

  8. Flash 无法输入中文的修正方法

    在某些运行模式或运行时环境中,Flash 有一个 Bug,文本框与键盘的交互模式会无法输入中文(包括日文等带有输入法状态栏的输入模式),只要对 TextField 文本框实例的 FocusEvent. ...

  9. 2015北京网络赛 H题 Fractal 找规律

    Fractal Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc2015beijingo ...

  10. Android模拟器操作快捷键

    你可以通过模拟器的启动选项和控制台命令来控制模拟环境的行为和特性.一旦模拟器启动,你就可以通过键盘和鼠标来“按” 模拟器的按键,从而操作模拟器.下面的表格总结了模拟器按键可键盘按键之间的映射关系. 模 ...