安卓手机查看充放电电压、电流及功率

news/2024/11/19 12:02:18/
2016年02月15日更新:有网友对lspower这个脚本在哪儿有疑问,其实只需要 创建一个名为 lspower 文本文件,把脚本内容复制粘贴进去就是这个lspower脚本了,可能还需要可执行权限,这个需要读者自己去了解下了。
(偶然登了下新浪邮箱,才发现15年有网友通过新浪邮箱联系过我,可惜我有时博客和这个邮箱都不太看。)


现在的手机,尤其平板,供电比较复杂:电池、DC、USB口都能对设备供电,同时USB口和DC还要对电池充电,而且锂电池一般有个芯片来管理充电,充电情况也是比较复杂的。如果同时插着USB、DC时设备,系统是怎么供电的呢?用USB口对手机和平板充电,是否只有500mA的电流?下面我就来验证一下。

我们知道,安卓系统的内核是Linux,Linux内核直接管理或监视很多设备,我们可以从内核就可以直接查询到电池、DC和USB口的供电电压、电流及功率(也就我们常说的多少瓦),还有充电的电量这些信息。下面我就提供一个脚本来查看这些信息。比起来一些应用软件提供的信息,这个都是我们自己能看到的,比较放心。当然这个脚本只能在Linux内核运行着的情况下,也就是机器开着时的状态,不能查看关机时设备用电状态。

一、脚本内容和分析
先看脚本:
# Collect power informations 
bv=`cat /sys/class/power_supply/battery/voltage_now` 
bi=`cat /sys/class/power_supply/battery/current_now` 
uv=`cat /sys/class/power_supply/usb/voltage_now`
ui=`cat /sys/class/power_supply/usb/current_now`
av=`cat /sys/class/power_supply/ac/voltage_now`
ai=`cat /sys/class/power_supply/ac/current_now`

# Show power informations
echo -e "Power info:"
echo -e "          V(V)\t I(mA)\t P(W)"
echo -e "AC:       "$(echo "$av" | awk '{printf "%.3f\n",$1/1.0e6}')"\t "$(($ai/1000))"\t "$(echo "$av $ai" | awk '{printf "%.3f\n",$1*$2/1.0e12}')
echo -e "USB:      "$(echo "$uv" | awk '{printf "%.3f\n",$1/1.0e6}')"\t "$(($ui/1000))"\t "$(echo "$uv $ui" | awk '{printf "%.3f\n",$1*$2/1.0e12}')
echo -e "Battery:  "$(echo "$bv" | awk '{printf "%.3f\n",$1/1.0e6}')"\t "$(($bi/1000))"\t "$(echo "$bv $bi" | awk '{printf "%.3f\n",$1*$2/1.0e12}')

我们分别从/sys/class/power_supply/目录下的battery、usb和ac目录读取信息,这三个目录分别对应电池、USB和DC口设备的信息。这三个目录的结构基本一样,下面都有voltage_now、current_now、uevent等文件。其中uevent中含有所有信息,比如上面的voltage_now、current_now信息其实也包含在里面,同时还有电池当前电量的百分比、电池设定的容量等信息。但是我们现在只是查看电压、电流和功率,有心的读者可以自己再去探索一番。

信息的显示,使用了命令awk来处理输出样式的对齐,所以需要安装有awk。安装awk最简单的方法是安装Busybox Pro应用。
另外,大家也看到,这个脚本适用于充电驱动在系统注册的设备名为ac、battery和usb的情况,如果你的设备名不是这三个,需要自行修改一下名字。


二、使用和对输出信息的解读
下面以我的平板为例,说明一下使用和理解输出信息。
笔者的平板9.7吋屏,CPU是国产全志A10单核,电池是8000mAh的,有USB和DC口,系统是4.0.3,Linux内核3.0.8。在我的笔记本ThinkPad E50上插USB口,用adb连接平板,读者可以安装终端软件,在终端软件中使用。DC口现在有些问题了,插着也没用,所以只插了USB口。(DC口在系统注册的名字是ac,所以脚本中也用AC代替)

笔者是在电脑上使用adb连接,这种方法适合对安卓有一定了解的用户,普通用户直接安装终端软件就可以用。由于只是查看信息,所以并不需要root权限。
安卓系统用电状况一:
关闭屏幕
root@android:/sdcard/Scripts # sh lspower                                      
V(V) I(mA) P(W)
AC:       0.000 0 0.000
USB:      5.023 93 0.467
Battery:  3.727 48 0.179

安卓系统用电状况二:
打开屏幕,不做什么事
root@android:/sdcard/Scripts # sh lspower                                      
V(V) I(mA) P(W)
AC:       0.000 0 0.000
USB:      5.026 93 0.467
Battery:  3.705 90 0.333

安卓系统用电状况三:
播放在线视频,外放音量开到最大时
root@android:/sdcard/Scripts # sh lspower                                      
V(V) I(mA) P(W)
AC:       0.000 0 0.000
USB:      5.021 93 0.467
Battery:  3.691 163 0.602

从上面的结果来看,厂商提供的安卓系统,供电策略有些怪,USB和电池同时供电,而USB电压5V、电流93mA恒定不变,插着USB使用时不但不能给电池充电,反而以一定速度耗电。这个结果与安卓系统显示的电量是吻合的,之前发现平板开机插电脑上电量很久也没有增长,久了还自动关机,从这里来看就可以理解了。

相比之下,笔者自己编译的内核却是优先使用USB供电,USB供电电压随电池电压升高,电流基本恒定在1A左右,关闭屏幕时同时能给电池充电,只有在耗电较大时才使用同时开启电池供电。

另外值得一提的事是电池的充放电信息,笔者的这个电池只能看到放电电流,充电时从内核信息里只能看到电流为0,比较正常的情况应该是放电时电流为负,充电时为正,不充不放时为0才对。另外,像我的笔记本上的电池,从uevent的信息中能看到的信息要比这多,直接可以查看到功率、型号、厂商信息等。

从两种充电策略来看,笔者认为后者显然对于用户而言更好,可见国产厂商的系统优化还有待提高。 而从电池的信息来看,国产厂商用的电池不是大厂生产,很多信息查不到,不是特别规范。

平板电脑的硬件成本非常低,现在已经不太可能完全靠堆硬件来赚取利润,国产名牌提高产品质量、做好系统优化就显得更加重要了。

版权声明:本文系作者原创,读者可随意网上转载,但请保留此版权声明。如果有什么问题需要讨论、发现错误想指正或者有其它出版意向,请通过新浪博客http://blog.sina.com.cn/felonwan或邮箱felonwan.AT.sina.com联系作者felonwan。


http://www.ppmy.cn/news/336594.html

相关文章

功率

功率是指物体在单位时间内所做的功的快慢,即功率是描述 做功快慢的 物理量。功的数量一定,时间越短,功率值就越大。求功率的公式为功率功/时间。 目录 1基本介绍 ▪ 物理意义 ▪ 公式 ▪ 单位 ▪ 规律 ▪ 各种称谓 ▪ 电功率计算 ▪ 力…

信号能量与功率

1.1.2 信号能量与功率 注意:信号在后面的表示和处理中,使用复数将会更方便,也能展现更多信息 (一)有限区间能量 对于一个连续时间信号 x ( t ) x(t) x(t)来说,在 t 1 ≤ t ≤ t 2 t_1\le t\le t_2 t1​≤t≤t2​内的总能量可以…

power class 手机功率等级

如何从信令中查看终端的power class 功率等级 详细可参考3GPP 24.008 10.5.1.5 Mobile Station Classmark 1 10.5.1.7 Mobile Station Classmark 3 10.5.1.5 Mobile Station Classmark1 8 7 6 5 4 3 2 1 Mobile Station Classmark 1IEI octet 1 0 spare Revis…

Android功耗

人生有三大错觉 1.手机振动 2.他喜欢我 3.我的app不耗电 软件功耗的组成 软件功耗主要包括9项 功耗项解释usage通用的功耗CPUCPU的功耗wakelock唤醒带来的功耗mobileRadio移动无线的功耗wifiwifi功耗gps定位的功耗sensor传感器的功耗camera相机功耗flashlight闪光灯功耗 …

手机发射功率技术分析

一、手机发射功率的两个方面 手机发射功率在PHS、GSM、cdma2000 1x、wcdma等协议中,被设计得越来越复杂,它的重要性已不言而喻,哪手机发射功率是大些好哪,还是小些好哪? 事实上单纯的说大些好或者小些好,都…

手机功耗问题浅析

极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 1.飞行模式底电流问题 2.正常待机功耗简介 3.最干…

Android手机功耗,高通/MTK功耗

功耗优化- https://blog.csdn.net/zhangbijun1230/article/category/7541658 android 功耗优化- https://blog.csdn.net/zhangbijun1230/article/category/7618452 MTK 驱动- https://blog.csdn.net/zhangbijun1230/article/category/7494418 高通驱动- https://blog.csdn.net/…

Android 手机功耗解决方案

本篇文章主要介绍 Android 开发中的部分 功耗 知识点,通过阅读本篇文章,您将收获以下内容: 1.测试功耗手机配置 欢迎关注微信公众号:程序员Android 微信公众号:ProgramAndroid 我们不是牛逼的程序员,我们只是程序开发中的垫脚石。…