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

使用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. hdoj 2023 求平均成绩

    求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  2. TcxVerticalGrid demo

    procedure TForm1.Button1Click(Sender: TObject);var row: TcxEditorRow; i,t: Integer;begin grid.ClearR ...

  3. C++学习笔记(十四):模板

    模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性.模版可以分为两类,一个是函数模版,另外一个是类模版.Java中对应的技术称为泛型. 函数模板 ...

  4. Oracle- 包

    在一个大型项目中,可能有很多模块,而每个模块又有自己的过程.函数等.而这些过程.函数默认是放在一起的(如在PL/SQL中,过程默认都是放在一起的,即Procedures中),这些非常不方便查询和维护. ...

  5. iOS开发-相关文档

    关于调试,查看Xcode Overview文档相关部分:http://developer.apple.com/library/ios/documentation/ToolsLanguages/Conc ...

  6. 单点登录系统CAS筹建及取得更多用户信息的实现

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  7. C#-窗体之间传递参数

    主窗体: ].Value.ToString(); AddRoomTypeFrm AddRoomTypeFrm = new AddRoomTypeFrm(getroomtypeid); AddRoomT ...

  8. C#-动态生成40个按钮,大小(20,20),要求每行6个放置

    应该为for (int i=0;i<基本数据DataSet3.Tables [0].Rows .Count ;i++)                 {                 int ...

  9. UVa 131 - The Psychic Poker Player

    题目:手里有五张牌,桌上有一堆牌(五张).你能够弃掉手中的k张牌,然后从牌堆中取最上面的k个. 比較规则例如以下:(按优先级排序) 1.straight-flush:同花顺.牌面为T(10) - A, ...

  10. js冒泡事件示例

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery - Start ...