当前位置: 首页 > news >正文

adb之ps命令用法

目录

  • 前言
  • 一、命令参数
  • 二、输出结果含义


前言

在adb shell终端,输入 ps,可查看手机当前所有的进程状态,其中ps的英文全称是Process Status。 ps命令对于分析系统异常情况时都是必备的技能,需要通过这个简单命令来查看系统真实的状态。

一、命令参数

  • -A: 显示所有进程,包括与控制终端无关的进程。
  • -a: 显示所有终端(与 -d 相反)。
  • -d: 显示所有进程,但不包括会话领导者。
  • -e: 显示所有进程(与 -A 选项相同)。
  • -g: 以进程组来显示进程。
  • -G: 以实际组名来显示进程(在sgid之前)。
  • -p: 根据指定的PID来显示进程。
  • -P: 根据父PID来显示进程。
  • -s: 在会话ID中显示进程。
  • -t: 附加到指定的TTY(终端)上的进程。
  • -T: 显示线程信息。
  • -u: 根据指定的用户名来显示进程。
  • -U: 根据实际用户名来显示进程(在suid之前)。

上面的参数可根据需要自由组合,比如查看系统中所有进程的基本信息:
adb shell ps -A

查看特定进程的线程信息(以PID为例,可以在ps命令或其他命令中获取特定进程的PID):
adb shell ps -T < PID>

1|trinket:/ # ps -T 31144
USER           PID   TID  PPID     VSZ    RSS WCHAN            ADDR S CMD
u0_a115      31144 31144   597 5707888  96156 SyS_epoll+          0 S mservice:remote
u0_a115      31144 31150   597 5707888  96156 futex_wai+          0 S Jit thread pool
u0_a115      31144 31155   597 5707888  96156 do_sigtim+          0 S Signal Catcher
u0_a115      31144 31156   597 5707888  96156 poll_sche+          0 S ADB-JDWP Connec
u0_a115      31144 31157   597 5707888  96156 futex_wai+          0 S HeapTaskDaemon
u0_a115      31144 31158   597 5707888  96156 futex_wai+          0 S ReferenceQueueD
u0_a115      31144 31159   597 5707888  96156 futex_wai+          0 S FinalizerDaemon
u0_a115      31144 31160   597 5707888  96156 futex_wai+          0 S FinalizerWatchd
u0_a115      31144 31161   597 5707888  96156 binder_io+          0 S Binder:31144_1
u0_a115      31144 31162   597 5707888  96156 binder_io+          0 S Binder:31144_2
u0_a115      31144 31165   597 5707888  96156 binder_io+          0 S Binder:31144_3
u0_a115      31144 31173   597 5707888  96156 futex_wai+          0 S Profile Saver
u0_a115      31144 31175   597 5707888  96156 binder_io+          0 S HwBinder:31144_
u0_a115      31144 31232   597 5707888  96156 binder_io+          0 S Binder:31144_4
u0_a115      31144 31233   597 5707888  96156 SyS_epoll+          0 S queued-work-loo

查看所有普通应用程序,老版本android是单用户的,所以用户普通进程的user都是以u0开头的,google有意把android发展成支持多用户的,现在已经有u1, u2_等等的用户名,另外普通app的uid是从10000开始:

ps -A |grep u0
u0_a111       2036   597 6654872 199308 SyS_epoll_wait      0 S com.android.systemui
u0_a112       2401   597 6294320 164404 SyS_epoll_wait      0 S com.android.launcher3
u0_a56        2477   597 5758552  91156 SyS_epoll_wait      0 S android.ext.services
u0_a130       2560   597 5770632 109984 SyS_epoll_wait      0 S com.android.inputmethod.latin
u0_a89        3035   597 5770064  95024 SyS_epoll_wait      0 S com.qualcomm.qti.sva
u0_a97        3090   597 5717908  89052 SyS_epoll_wait      0 S .pasr
u0_a119       3131   597 5735684  92332 SyS_epoll_wait      0 S com.qualcomm.qti.services.systemhelper:systemhelper_service
u0_a88        3353   597 5651104  83940 SyS_epoll_wait      0 S com.android.smspush
u0_a48        3652   597 5803580 103868 SyS_epoll_wait      0 S android.process.media
u0_a118       4427   597 5704704  83668 SyS_epoll_wait      0 S com.qualcomm.qti.callenhancement
u0_a135       5277   597 5722432  87816 SyS_epoll_wait      0 S com.qualcomm.telephony
u0_a58       11871   597 6139768 160692 SyS_epoll_wait      0 S org.codeaurora.snapcam
u0_a138      12967   597 5633764  89704 SyS_epoll_wait      0 S org.chromium.webview_shell
u0_a168      13165   597 5678620 103000 SyS_epoll_wait      0 S com.quectel.cardiagnosis
u0_a162      13199   597 5844304 180444 SyS_epoll_wait      0 S com.example.hxplay
u0_a144      13233   597 5835764 146244 SyS_epoll_wait      0 S com.henry.basic
u0_a63       19299   597 5679996  82448 SyS_epoll_wait      0 S com.android.cellbroadcastreceiver
u0_a81       19936   597 5679012  86284 SyS_epoll_wait      0 S com.android.printspooler
u0_a51       19949   597 5722976  95068 SyS_epoll_wait      0 S com.android.providers.calendar
u0_a44       28312   597 5748860 106720 SyS_epoll_wait      0 S android.process.acore
u0_a160      28563   597 5748916 119836 SyS_epoll_wait      0 S com.android.audiotest
u0_a140      28725   598 1879448  90096 SyS_epoll_wait      0 S com.android.webview:webview_service
u0_a52       28851   597 5802572 138512 SyS_epoll_wait      0 S com.android.permissioncontroller
u0_a106      30983   597 5771068  99520 SyS_epoll_wait      0 S com.android.dialer
u0_a115      31144   597 5707888  96156 SyS_epoll_wait      0 S com.qualcomm.qti.seccamservice:remote

二、输出结果含义

例如,在手机输出如下命令:(20671是某个进程pid)

 ps -A |grep -E "NAME| 13199 "
USER           PID  PPID     VSZ    RSS WCHAN            ADDR S NAME
u0_a162      13199   597 5844304 180444 0     0 S com.example.hxplay

结果分析:

字段含义
USER所有者用户的用户名,表示运行进程的用户。u0_a162
PID进程ID(Process ID),唯一标识每个进程的数字。13199
PPID父进程ID(Parent Process ID),标识创建当前进程的父进程的ID。597
VSZ虚拟内存大小(Virtual Memory Size),进程当前使用的虚拟内存大小(以KB为单位)。5844304
RSS常驻集大小(Resident Set Size),表示进程占用的物理内存大小(以KB为单位)。180444
WCHAN当前等待的内核函数(The name of the kernel function in which the process is sleeping)。0
ADDR内存地址(Memory Address),进程的内存地址。0
S进程状态,表示进程的当前状态,此处为"S"表示休眠(sleeping)状态。S
NAME命令名(Command Name),表示进程的名称或命令。com.example.hxplay

注: WCHAN值为0代表进程处于运行态;否则代表内核地址(休眠态)。

参考链接:

adb中ps命令的详解

相关文章:

adb之ps命令用法

目录 前言一、命令参数二、输出结果含义 前言 在adb shell终端&#xff0c;输入 ps&#xff0c;可查看手机当前所有的进程状态&#xff0c;其中ps的英文全称是Process Status。 ps命令对于分析系统异常情况时都是必备的技能&#xff0c;需要通过这个简单命令来查看系统真实的状…...

Ubuntu-24.04-live-server-amd64安装界面中文版

系列文章目录 Ubuntu安装qemu-guest-agent Ubuntu-24.04-live-server-amd64启用ssh Ubuntu乌班图安装VIM文本编辑器工具 文章目录 系列文章目录前言一、准备工作二、开始安装三、测试效果总结 前言 Centos结束&#xff0c;转战Ubuntu。我之所以写这篇文章&#xff0c;是因为我…...

Git的3个主要区域

一般来说&#xff0c;日常使用只要记住下图6个命令&#xff0c;就可以了。但是熟练使用&#xff0c;恐怕要记住60&#xff5e;100个命令。 下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。 Workspace&#xff1a;工作区 Index / Stage&#xff1a;暂存区 Reposito…...

【操作系统】操作系统实验02-生产者消费者程序改进

1. 说明文档中原有程序实现的功能、实现方法。&#xff08;用语言、程序流程图、为原有程序添加注释等方式均可&#xff09; 1.//const.h 2.//定义宏变量 3.#ifndef CONST_H 4.#define CONST_H 5. 6.#define TRUE 1 7.#define FALSE 0 8.#define ERROR 0 9.#define OVERFLOW -…...

TCP协议是安全的吗?

不安全 虽然 TCP 提供了一种可靠且高效的数据传输方式&#xff0c;但它不提供任何加密或身份验证机制来保护数据。因此&#xff0c;传输的数据可能会被未经授权的用户拦截和读取&#xff0c;而且其真实性无法验证。 因此&#xff0c;为了确保 TCP 通信的安全&#xff0c;必须…...

c语言回顾-结构体(2)

前言 前面讲了结构体的概念&#xff0c;定义&#xff0c;赋值&#xff0c;访问等知识&#xff0c;本节内容小编将讲解结构体的内存大小的计算以及通过结构体实现位段&#xff0c;话不多说&#xff0c;直接上干货&#xff01;&#xff01;&#xff01; 1.结构体内存对齐 说到计…...

Prometheus常见exporter安装部署

Prometheus常见exporter安装部署 在稳定性环境的监控当中需要收集各种各样的数据&#xff0c;这样的数据收集是通过各种exporter进行的&#xff0c;在这里我们进行最常用稳定性数据的收集exporter安装部署介绍。 node_exporter安装部署 node_exporter主要监控服务器本身的一…...

DGit的使用

将Remix连接到远程Git仓库 1.指定克隆的分支和深度 2.清理&#xff0c;如果您不在工作区上工作&#xff0c;请将其删除或推送至 GitHub 或 IPFS 以确保安全。 为了进行推送和拉取&#xff0c;你需要一个 PAT — 个人访问令牌 当使用 dGIT 插件在 GitHub 上推送、拉取、访问私…...

ElasticSearch学习篇13_《检索技术核心20讲》进阶篇之LSM树

背景 学习极客实践课程《检索技术核心20讲》https://time.geekbang.org/column/article/215243&#xff0c;文档形式记录笔记。 内容 磁盘和内存数据读取特点 工业界中数据量往往很庞大&#xff0c;比如数据无法全部加载进内存&#xff0c;无法支持索引的高效实时更新&…...

简单好用的C++日志库spdlog使用示例

文章目录 前言一、spdlog的日志风格fmt风格printf风格 二、日志格式pattern三、sink&#xff0c;多端写入四、异步写入五、注意事项六、自己封装了的代码usespdlog.h封装代码解释使用示例 前言 C日志库有很多&#xff0c;glog&#xff0c;log4cpp&#xff0c;easylogging, eas…...

python 方法运行计时装饰模式实现

在代码开发过程中&#xff0c;需要记录方法的执行时间&#xff0c;每个方法都硬代码也可以实现&#xff0c;但是不是最好的方式&#xff0c;考虑到设计模式和模版代码&#xff0c;通过装饰模式实现方法运行计时 在Python中&#xff0c;装饰器可以接受参数&#xff0c;这样可以…...

【权威出版/投稿优惠】2024年水利水电与能源环境科学国际会议(WRHEES 2024)

2024 International Conference on Water Resources, Hydropower, Energy and Environmental Science 2024年水利水电与能源环境科学国际会议 【会议信息】 会议简称&#xff1a;WRHEES 2024 大会时间&#xff1a;点击查看 截稿时间&#xff1a;点击查看 大会地点&#xff1a;…...

阿赵UE引擎C++编程学习笔记——场景加载和切换

大家好&#xff0c;我是阿赵。   继续学习UE引擎&#xff0c;这次来学习一下切换和加载场景的各种做法。 一、 蓝图实现 1、 切换关卡 所谓切换关卡&#xff0c;就是从当前关卡进入到一个新的关卡&#xff0c; 旧关卡的数据将会被放弃。进入新的关卡后&#xff0c;将会执行…...

【LLM之RAG】RAFT论文阅读笔记

研究背景 论文针对的主要问题是如何将预训练的大型语言模型&#xff08;LLMs&#xff09;适应特定领域的检索增强生成&#xff08;RAG&#xff09;。这些模型通常在广泛的文本数据上进行预训练&#xff0c;已经表现出在广义知识推理任务上的优越性能。然而&#xff0c;在特定领…...

【Android】使用Binder(AIDL)实现利用自定义Bean进行的进程间通信(二)

项目前置 这是我之前写的关于Binder的一些知识点和使用基本数据类型在通信的文章&#xff0c;感兴趣的可以看一下: Binder&#xff08;一&#xff09;Binder的介绍和AIDL使用Binder的实例 项目目标 在两个APP之间进行数据传递&#xff0c;使用Android推荐的Binder通讯&#…...

HTTP中get与post的区别?在传输数据类型上有什么区别?【面试】

HTTP中的GET和POST是两种最常见的请求方法&#xff0c;它们在数据传输和使用场景上有一些关键的区别&#xff1a; GET请求&#xff1a; 数据传输方式&#xff1a;GET请求将数据附加在URL之后&#xff0c;形成查询字符串&#xff08;namevalue的形式&#xff09;&#xff0c;数…...

「51媒体-年中大促」天津有哪些媒体资源-媒体宣传服务公司

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 天津的媒体资源相当丰富&#xff0c;涵盖了报纸、电视、广播、新闻门户网站、央媒驻天津机构、视频媒体以及全国媒体资源等多个方面。以下是详细的媒体资源分类和具体信息&#xff1a; 一…...

Thinkphp校园新闻发布系统源码 毕业设计项目实例

Thinkphp校园新闻发布系统源码 毕业设计项目实例 校园新闻发布系统模块&#xff1a; 用户模块&#xff1a;注册&#xff0c;登陆&#xff0c;查看个人信息&#xff0c;修改个人信息&#xff0c;站内搜索&#xff0c;新闻浏览等功能&#xff0c; 后台管理员模块&#xff1a;会员…...

前端老古董execCommand——操作 选中文本 样式

文章目录 ⭐前言⭐exe command api用法&#x1f496; example示例&#x1f496; 测试效果 ⭐execommand和getSelection 的联系⭐总结⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于 前端老古董execCommand——操作选中文本。 execommand 当一个 HTML 文…...

elementui写一个自定义的rangeInput的组件

组件定义 使用el-row确保元素都在一行上对外暴露的prop是minValue和maxValue&#xff0c;但是不建议直接使用&#xff0c;使用计算属性minValueComputed和maxValueComputed更改计算属性的值的不要直接更改计算属性&#xff0c;也不要直接更改原本的prop&#xff0c;通知外层的父…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...