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

使用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. Mac OS环境下媒体文件分割工具mediafilesegmenter的简单使用(生成M3U8 TS文件)

    mediafilesegmenter是苹果开发的一款用于分割媒体文件的工具,其功能与mediastreamsegmenter相似,但操作更简单. * 具体可以对比博客中的另一篇简介<Mac OS ...

  2. flash Timer类使用

    var timer:Timer = new Timer(1000); timer.addEventListener("timer",tracerTimer); function t ...

  3. 判断数组(array)中是否包含某个字符(contains)

    $a="a","","b" $a -contains "a" 返回 $true $a -notcontains &quo ...

  4. 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误

    向往前一样.学习牛腩新闻公布系统的视频,写程序,打开数据库.出现一个框框,具体内容例如以下: 数据库连接不上.全部的工作都要歇班,捣鼓了会儿,简单总结一下解决该问题的方法. 首先:第一步,程序--SQ ...

  5. js防刷新的倒计时

    近期在维护考试系统,在进行考试測试时无意中点击了刷新button.可是上面的倒计时并没有受到影响.同一时候在几篇博客中也有这种样例,所以我想看看它究竟是如何防止刷新的. 假设是用cs代码写.我们可能会 ...

  6. javascript中的 "=="

    对象之间比较比较的是引用地址 对象和其他比较,转成字符串 字符串和数字比较,字符串转成数字 布尔值和任何比较,转成数字 undefined == null NaN 和谁都不相等 javascript权 ...

  7. [ZZ]如果有人问你数据库的原理,叫他看这篇文章

    如果有人问你数据库的原理,叫他看这篇文章 http://blog.jobbole.com/100349/ 文章把知识链都给串起来,对数据库做一个概述. 合并排序 阵列.树和哈希表 B+树索引概述 数据 ...

  8. 读写锁ReaderWriterLockSlim

    读写锁的概念很简单,允许多个线程同时获取读锁,但同一时间只允许一个线程获得写锁,因此也称作共享-独占锁. 某些场合下,对一个对象的读取次数远远大于修改次数,如果只是简单的用lock方式加锁,则会影响读 ...

  9. java_spring_依赖注入

    IOC反转控制 PersonService属性 PersonDao personDao接受通过xml注入的对象 PersonDaoBean.  Person中save()调用 PersonDaoBea ...

  10. Views

    Views Views are the visual side of the Nova, they are the HTML output of the pages. Views can be loc ...