如何用adb命令查看Android手机具体某个应用的耗电量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用adb命令查看Android手机具体某个应用的耗电量?相关的知识,希望对你有一定的参考价值。
要使用adb命令获取应用的耗电情况
不要使用电量检测软件的,要能读出耗电量百分比,并输出的;
我要获得详细的每个应用的耗电百分比,而且是自动化测试的,用代码实现,不要手动操作。
有相关思路都可以说一下
getprop ro.serialno 查看机器的SN号
getprop ro.carrier 查看机器的CID号
getprop ro.hardware 查看机器板子代号
首先在你的电脑键盘上同时按下 WIN+R ,这时候会弹出一个 运行 窗口。
接着在框中输入 CMD ,并按下 确定 。这时候就会弹出一个命令窗了!
上面所提供的ADB命令也就是在这个窗口下所运行的!先输入 adb shell ,按下回车。然后就可以开始输入上面所提供的命令了!getprop ro.serialno:查看机器的SN号getprop ro.carrier:查看机器的CID号android女用的是传说中三星的M100S,而这里作为示例的是T-Mobile版的G1,所以在这显示的是TMUS。getprop ro.hardware:查看机器板子代号可以看到G1的开发代号叫作trout!getprop ro.bootloader:查看SPL(Hboot)版本号getprop:查看机器的全部信息参数在这能看到你机器的全部的信息参数,从你的硬件信息到所刷的ROM版本信息。
1. 打开终端,进入上述目录,如下图所示:
2. 输入adb shell,打开adb命令行,如下图所示:
3. 查看cpu使用情况:
输入命令:top -m 10 -s cpu(-m显示最大数量,-s 按指定行排序),如下图所示:
参数含义:
PID : progress identification,应用程序ID
S : 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
#THR : 程序当前所用的线程数
VSS : Virtual Set Size虚拟耗用内存(包含共享库占用的内存)
RSS : Resident Set Size实际使用物理内存(包含共享库占用的内存)
PCY : 前台(fg)和后台(bg)进程
UID : User Identification,用户身份ID
Name : 应用程序名称
注意第一列的pid,使用pid值可以查看当前程序的内存使用情况。
4. 查看指定程序内存使用情况:
输入命令: dumpsys meminfo 3253,如下图所示:
参数含义:
dalvik : dalvik使用的内存
native : native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)
other : 除了dalvik和native的内存,包含C\C++非堆内存······
Pss : 该内存指将共享内存按比例分配到使用了共享内存的进程
allocated : 已使用的内存
free : 空闲的内存
private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)
share dirty : 共享,但有不能被换页出去的内存
5. 使用ctrl + c,退出adb命令行。追问
我要的是耗电量,这个实现不了
参考技术A 1、测试前,需要将手机的电量信息清空:adb shell "dumpsys batterystats --reset"2、获取手机的所有耗电信息:
第一步:adb shell "dumpsys batterystats > /sdcard/batterystats.txt"
第二步:adb pull /sdcard/batterystats.txt D:\测试数据\
3、查看指定应用的耗电信息:
第一步:“adb shell dumpsys batterystats 包名 > /sdcard/appbatterystats.txt”
第二步:adb pull /sdcard/appbatterystats.txt D:\测试数据\
可以去github下载historian.py来制作成直观的html。
使用命令:python historian.py appbatterystats.txt > batterystats.html
Android 使用心得 ❄️| 使用adb命令查看某个应用的 进程优先级!
前言
最近做项目用到了apk的进程优先级
部分,需要知道某个具体的app在系统进程中的优先级
所以就根据自己整理的和参考一些网上这方面的知识来做一下总结
查看Android应用apk的 进程优先级
第一步:获取想要查看进程的PID
一个设备在运行的时候肯定会有很多进程
因为设备一旦启动就会先运行许多系统应用,这是系统运行的必要条件
所以我们先通过命令来找到我们想要查询的某个进程
查看所有当前所有进程命令:adb shell ps
列名 | 含义 |
---|---|
USER | 所属用户 |
PID Process ID | 进程 ID |
PPID Process Parent ID | 父进程 ID |
VSIZE Virtual Size | 进程的虚拟内存大小 |
RSS Resident Set Size | 实际驻留”在内存中”的内存大小 |
WCHAN | 休眠进程在内核中的地址 |
NAME | 进程名 |
在命令指示符输入这行命令之后会出现一堆进程,这些就是当前设备正在运行的进程
了
如果觉得进程
实在是太多了,不是很好找到自己需要的那个进程
可以使用命令来筛选一下,这样可以看起来更美观 而且更容易找到我们想要的那个进程!
- 在Windows上筛选某个进程:
adb shell ps|findstr baidu
- 在手机上筛选某个进程:
adb shell ps baidu 或者 adb shell ps|findstr -i baidu
- android或者linux中的shell命令是grep:
adb shell ps|grepbaidu
然后我们根据进程ID
,也就是PID
找到我们需要查找的某个进程
比如我要查找的进程
就是下面图中这个
第二步:根据进程的PID查看进程优先级
在第一步中我们找到了想要查找的进程的PID
那我们就根据这PID
来查看他的优先级
查看某个进程的优先级命令:先进行adb shell
,然后cat proc/对应的进程PID/oom_adj
比如我这里的PID
是27652,那我的操作如下:cat proc/27652/oom_adj
这个数字11
就是我这个进程当前的优先级
但是这里要注意,如果这个进程当前是在前台正在运行,那么他的这个数值会显示为0
oom_adj 解释
那这样就可以查到我们所需要的进程优先级
了!
这个优先级
一般在写代码的时候可以自己设置
如果后期因为优先级
问题导致出现资源分配不均匀等等
导致 应用卡死 或者 掉帧 之类的话就需要重新进行合理的一个优先级
设置了!
Android中进程的优先级与垃圾回收机制相关,优先级越低被垃圾回收的机会越大。
当内存不足的时候,总是低优先级的进程被最先回收
以上是关于如何用adb命令查看Android手机具体某个应用的耗电量?的主要内容,如果未能解决你的问题,请参考以下文章