使用 ADB 查看 Android 设备的 CPU 使用率(详解)

在 Android 开发和调试过程中,监控设备的性能数据至关重要。CPU 使用率是一个关键的性能指标,它能够帮助开发者识别应用的性能瓶颈和优化机会。本文将详细介绍如何使用 Android Debug Bridge (ADB) 查看设备的 CPU 使用率,并解释终端上各个参数的含义。

一、查看整体 CPU 使用率


1. 使用 top 命令

要查看设备的整体 CPU 使用率,可以使用 top 命令。该命令将显示当前所有进程的 CPU 使用情况,包括每个进程的 CPU 使用率、内存使用量和运行时间等。

adb shell top

top 命令输出的常见字段及其含义如下:

PID   USER      PR  NI VIRT  RES  SHR S [%CPU] %MEM     TIME+ ARGS
  • PID: 进程 ID
  • USER: 进程所属用户
  • PR: 进程优先级
  • NI: 进程调度优先级(Nice 值)
  • VIRT: 虚拟内存使用量
  • RES: 常驻内存使用量(物理内存)
  • SHR: 共享内存使用量
  • S: 进程状态(R=运行中,S=睡眠中,D=不可中断的睡眠中,Z=僵尸进程等)
  • %CPU: CPU 使用率
  • %MEM: 内存使用率
  • TIME+: 进程运行总时间
  • ARGS: 进程的启动命令和参数

2. 使用 dumpsys cpuinfo 命令

dumpsys 是一个强大的工具,可以输出系统服务的详细信息。要查看 CPU 使用情况的话,可以使用以下命令:

adb shell dumpsys cpuinfo

该命令会输出每个进程的 CPU 使用情况汇总信息。输出示例如下:

Load: 1.76 / 1.88 / 1.98
CPU usage from 322041ms to 22000ms ago (2024-06-26 15:08:43.625 to 2024-06-26 15:13:43.666):34% 6348/com.xxx.xxx: 31% user + 3.3% kernel / faults: 4757 minor1.6% 408/irq/76-dwc3: 0% user + 1.6% kernel0.9% 386/media.codec: 0.4% user + 0.4% kernel / faults: 32 minor0.8% 632/com.android.systemui: 0.6% user + 0.1% kernel / faults: 1699 minor 1 major0.7% 179/surfaceflinger: 0.4% user + 0.3% kernel / faults: 488 minor...
  • Load: 系统负载
  • CPU usage from Xms to Yms ago: 最近一段时间的 CPU 使用情况
  • 34% 6348/com.xxx.xxx: 进程 com.xxx.xxx 使用了 34% 的 CPU
  • 31% user + 3.3% kernel: 31% 的 CPU 使用在用户空间,3.3% 在内核空间

我们经常看到在运行top命令的时候,多个进程的CPU使用率累加明显超过100%,如下图所示:
在这里插入图片描述
这表示在多核处理器上,第一个进程大约占用了一个核心的 66.6% 的 CPU 时间,第二个进程占用了另一个核心的 44.3% 的 CPU 时间。如果系统是六核处理器,那么这两个进程的总 CPU 使用率可能就会超过100%。

这种情况下,系统会把各个核心上的 CPU 使用率相加以计算出总的 CPU 使用率。因此,总体上看,CPU 使用率超过100%并不奇怪,因为它反映了多核处理器上各个核心同时工作的情况。

二、查看特定应用的 CPU 使用率


有时可能需要查看特定应用的 CPU 使用率。可以结合 findstr 命令来过滤特定的包名或进程 ID。

1. 获取特定应用的进程 ID (PID)

adb shell pidof com.xxx.xxx

com.xxx.xxx 替换为你要查看的应用包名。

2. 使用 top 命令并过滤该 PID

adb shell top -n 1 | findstr <PID>

<PID> 替换为上一步中获取的进程 ID。

3. 使用 dumpsys cpuinfo 命令并过滤包名

adb shell dumpsys cpuinfo | findstr com.xxx.xxx

com.xxx.xxx 替换为你要查看的应用包名。

三、解释常见的 CPU 相关命令参数


1. adb shell top 参数

  • -n <value>: 刷新次数。例如:-n 1 表示只刷新一次。
  • -d <value>: 刷新间隔时间(秒)。例如:-d 2 表示每 2 秒刷新一次。
  • -s <field>: 按指定字段排序。例如:-s cpu 按 CPU 使用率排序。
  • -m <value>: 显示前 N 个进程。例如:-m 10 显示前 10 个进程。

2. adb shell dumpsys cpuinfo 参数

dumpsys cpuinfo 通常不需要额外参数,因为它默认输出的是汇总信息。

四、最后


希望这篇文章对你在 Android 开发过程中监控 CPU 使用率有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/367030.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM指令微调Prompt的最佳实践(二):Prompt迭代优化

文章目录 1. 前言2. Prompt定义3. 迭代优化——以产品说明书举例3.1 产品说明书3.2 初始Prompt3.3 优化1: 添加长度限制3.4 优化2: 细节纠错3.5 优化3: 添加表格 4. 总结5. 参考 1. 前言 前情提要&#xff1a; 《LLM指令微调Prompt的最佳实践&#xff08;一&#xff09;&#…

用MySQL+node+vue做一个学生信息管理系统(四):制作增加、删除、修改的组件和对应的路由

1.下载依赖&#xff1a; npm install vue-router 在src目录下新建一个文件夹router&#xff0c;在router文件夹下新建一个文件router.js文件,在component目录下新建增加删除和修改的组件&#xff0c;引入router.js当中 此时的init组件为主页面&#xff08;&#xff08;二、三&…

TOGAF培训什么内容?参加TOGAF培训有什么好处?考试通过率多少?

TOGAF培训什么内容&#xff1f;参加TOGAF培训有什么好处&#xff1f;考试通过率多少&#xff1f; TOGAF培训哪些内容&#xff1f; 通过本课程&#xff0c;你将掌握TOGAF的理论和实践&#xff0c;理解企业架构的影响&#xff0c;能够评估、启动、设 计、执行新一轮企业和IT架构…

1:25万基础电子地图(西藏版)

我们为你分享过四川版、云南版、江西版、贵州版、重庆版和青海版的1比25万基础电子地图&#xff0c;现在再为你分享西藏版的电子地图。 如果你需要西藏版的1比25万基础电子地图&#xff0c;你可以在文末查看该数据的领取方法。 基础电子地图西藏版 西藏版1:25万基础电子地图…

Java中的类加载器

类加载器 1.什么是类加载器&#xff1f; 启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;&#xff1a;这是JVM自带的类加载器&#xff0c;负责加载Java的核心类库&#xff0c;如rt.jar等。由于安全原因&#xff0c;启动类加载器加载的类不能被其他类加载器加载的类…

试用笔记之-免费的汇通餐饮管理软件

首先下载免费的汇通餐饮管理软件&#xff1a; http://www.htsoft.com.cn/download/htcanyin.exe 安装后的图标 登录软件&#xff0c;默认没有密码 汇通餐饮管理软件主界面 汇通餐饮软件前台系统 点菜

eclipse断点调试(用图说话)

eclipse断点调试&#xff08;用图说话&#xff09; debug方式启动项目&#xff0c;后端调试bug调试 前端代码调试&#xff0c;请参考浏览器断点调试&#xff08;用图说话&#xff09; 1、前端 选中一条数据&#xff0c;点击删除按钮 2、后端接口打断点 断点按钮 介绍 resum…

前端知识点

HTML、CSS 相关 1、 BFC 1、BFC 是什么&#xff1f; BFC&#xff08;Block Formatting Context&#xff09; 格式化上下文&#xff1b; 指一个独立的渲染区域&#xff0c;或者说是一个隔离的独立容器&#xff1b;可以理解为一个独立的封闭空间。无论如何不会影响到它的外面 …

Elasticsearch-Rest-Client

Elasticsearch-Rest-Client&#xff1a;官方RestClient&#xff0c;封装了ES操作&#xff0c;API层次分明&#xff0c;上手简单。 1. 导入依赖 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high…

BUG TypeError: GPT2Model.forward() got an unexpected keyword argument ‘past’

TypeError: GPT2Model.forward() got an unexpected keyword argument past’ 环境 transformers 4.38.1详情 这是由于新版的transformers 对GPT2Model.forward() 参数进行了改变导致的错误。具体是past名称改为了 past_key_values 。 解决方法 找到错误语…

【Windows】draw.io(免费的开源跨平台绘图软件)软件介绍

软件介绍 draw.io 是一款免费且易于使用的在线流程图绘图软件&#xff0c;后来更名为 diagrams.net。它最初作为一个基于 Web 的应用程序提供&#xff0c;支持用户创建各种类型的图表、流程图、网络图、组织结构图、UML 图等。它是完全免费的、强大的、专业的、易于使用的和高…

分享:Motionity-开源的Web端动画编辑器

Motionity是一个免费且开源的Web端动画编辑器&#xff0c;它结合了After Effects和Canva的优点&#xff0c;为用户提供了强大的动画编辑功能。支持视频剪切、图像搜索过滤、文本动画库、图层蒙版等功能。 一、项目背景与特点 开源项目&#xff1a;Motionity是一个开源项目&…

黄子韬vs徐艺洋卫生间风波

【热搜爆点】黄子韬VS徐艺洋&#xff1a;卫生间风波背后的职场与友情界限探讨在这个充满欢笑与意外的综艺时代&#xff0c;《跟我出游吧》再次以它独有的魅力&#xff0c;引爆了一个既尴尬又引人深思的话题——“黄子韬要上徐艺洋的卫生间&#xff1f;”这不仅仅是一句简单的调…

Yarn的安装与配置

Yarn 是一个快速、可靠且安全的 JavaScript 包管理器&#xff0c;最初由 Facebook 开发&#xff0c;旨在提供比 npm 更快的依赖安装速度和更一致的包管理体验。以下是 Yarn 的安装与配置教程&#xff1a; 安装 Yarn 方法 1: 使用 npm 安装 如果你的系统已经安装了 Node.js …

基于YOLOv10深度学习的CT扫描图像肾结石智能检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【ajax实战02】数据管理网站—验证码登录

一&#xff1a;数据提交&#xff08;提交手机验证码&#xff09; 核心思路整理 利用form-serialize插件&#xff0c;收集对象形式的表单数据后&#xff0c;一并提交给服务器。后得到返回值&#xff0c;进一步操作 基地址&#xff1a; axios.defaults.baseURL http://geek.…

Keil5 ST-LINK setting闪退问题解决

1. 官网下载新版驱动文件 MDK uVision crashes when using ST-Link debugger 2. 解压替换 STLinkUSBDriver6.1.2.0Signed 我的库文件目录&#xff1a; D:\Tool\Keil5\ARM\STLink

开源模型应用落地-FastAPI-助力模型交互-WebSocket篇(六)

一、前言 使用 FastAPI 可以帮助我们更简单高效地部署 AI 交互业务。FastAPI 提供了快速构建 API 的能力,开发者可以轻松地定义模型需要的输入和输出格式,并编写好相应的业务逻辑。 FastAPI 的异步高性能架构,可以有效支持大量并发的预测请求,为用户提供流畅的交互体验。此外,F…

【JS】纯web端使用ffmpeg实现的视频编辑器-视频合并

纯前端实现的视频合并 接上篇ffmpeg文章 【JS】纯web端使用ffmpeg实现的视频编辑器 这次主要添加了一个函数&#xff0c;实现了视频合并的操作。 static mergeArgs(timelineList) {const cmd []console.log(时间轴数据,timelineList)console.log("文件1",this.readD…

MatLab三维图形绘制基础

三维图形绘制 三维曲线 plot3 螺旋图绘制 % %三维图像:螺旋图绘制 clear; clc; t [0:0.1:10*pi];% 向量 x sin(t) t.*cos(t);%t是向量&#xff0c;用点乘 y cos(t) - t.*sin(t); z t; plot3(x,y,z); grid on;plot3 绘制同型矩阵 %% % plot3绘制同型矩阵 t [0:0.1:10*…