如何用adb命令查看Android手机具体某个应用的耗电量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用adb命令查看Android手机具体某个应用的耗电量?相关的知识,希望对你有一定的参考价值。

要使用adb命令获取应用的耗电情况
不要使用电量检测软件的,要能读出耗电量百分比,并输出的;
我要获得详细的每个应用的耗电百分比,而且是自动化测试的,用代码实现,不要手动操作。
有相关思路都可以说一下

运用这些ADB命令可以很直观的查看到你手机上的硬件与软件方面的详细信息。可查看手机系统的具体命令如下:getprop 查看机器的全部信息参数
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命令是grepadb 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手机具体某个应用的耗电量?的主要内容,如果未能解决你的问题,请参考以下文章

如何用adb连接android手机

如何用adb连接android手机

如何用adb命令 获得Android手机分辨率

如何用adb连接android手机

如何使用ADB命令查看Android手机相关信息参数

如何用adb连接android手机