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

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

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

【操作系统】操作系统实验02-生产者消费者程序改进
1. 说明文档中原有程序实现的功能、实现方法。(用语言、程序流程图、为原有程序添加注释等方式均可) 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 提供了一种可靠且高效的数据传输方式,但它不提供任何加密或身份验证机制来保护数据。因此,传输的数据可能会被未经授权的用户拦截和读取,而且其真实性无法验证。 因此,为了确保 TCP 通信的安全,必须…...

c语言回顾-结构体(2)
前言 前面讲了结构体的概念,定义,赋值,访问等知识,本节内容小编将讲解结构体的内存大小的计算以及通过结构体实现位段,话不多说,直接上干货!!! 1.结构体内存对齐 说到计…...

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

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

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

简单好用的C++日志库spdlog使用示例
文章目录 前言一、spdlog的日志风格fmt风格printf风格 二、日志格式pattern三、sink,多端写入四、异步写入五、注意事项六、自己封装了的代码usespdlog.h封装代码解释使用示例 前言 C日志库有很多,glog,log4cpp,easylogging, eas…...
python 方法运行计时装饰模式实现
在代码开发过程中,需要记录方法的执行时间,每个方法都硬代码也可以实现,但是不是最好的方式,考虑到设计模式和模版代码,通过装饰模式实现方法运行计时 在Python中,装饰器可以接受参数,这样可以…...

【权威出版/投稿优惠】2024年水利水电与能源环境科学国际会议(WRHEES 2024)
2024 International Conference on Water Resources, Hydropower, Energy and Environmental Science 2024年水利水电与能源环境科学国际会议 【会议信息】 会议简称:WRHEES 2024 大会时间:点击查看 截稿时间:点击查看 大会地点:…...

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

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

【Android】使用Binder(AIDL)实现利用自定义Bean进行的进程间通信(二)
项目前置 这是我之前写的关于Binder的一些知识点和使用基本数据类型在通信的文章,感兴趣的可以看一下: Binder(一)Binder的介绍和AIDL使用Binder的实例 项目目标 在两个APP之间进行数据传递,使用Android推荐的Binder通讯&#…...
HTTP中get与post的区别?在传输数据类型上有什么区别?【面试】
HTTP中的GET和POST是两种最常见的请求方法,它们在数据传输和使用场景上有一些关键的区别: GET请求: 数据传输方式:GET请求将数据附加在URL之后,形成查询字符串(namevalue的形式),数…...

「51媒体-年中大促」天津有哪些媒体资源-媒体宣传服务公司
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 天津的媒体资源相当丰富,涵盖了报纸、电视、广播、新闻门户网站、央媒驻天津机构、视频媒体以及全国媒体资源等多个方面。以下是详细的媒体资源分类和具体信息: 一…...

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

前端老古董execCommand——操作 选中文本 样式
文章目录 ⭐前言⭐exe command api用法💖 example示例💖 测试效果 ⭐execommand和getSelection 的联系⭐总结⭐结束 ⭐前言 大家好,我是yma16,本文分享关于 前端老古董execCommand——操作选中文本。 execommand 当一个 HTML 文…...
elementui写一个自定义的rangeInput的组件
组件定义 使用el-row确保元素都在一行上对外暴露的prop是minValue和maxValue,但是不建议直接使用,使用计算属性minValueComputed和maxValueComputed更改计算属性的值的不要直接更改计算属性,也不要直接更改原本的prop,通知外层的父…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...