『与善仁』Appium基础|『与善仁』Appium基础 — 7、ADB Shell命令的使用
目录
- 1、查看进程
- 2、查看实时资源占用情况
- 3、查看进程 UID
- 4、其它ADB Shell命令说明
Android系统是基于 Linux 内核的,也就是说Android系统的底层是Linux系统。所以 Linux 里的很多命令在 Android系统里也有相同或类似的实现,在
adb shell
里就可以调用。前面部分内容已经用到了 adb shell
命令,我们再来补充一下对adb shell
命令的认识。提示:要在Android手机上执行的1、查看进程 命令:adb shell
命令,就需要先root
手机,而虚拟机是直接root
的Android系统,所以直接可以在虚拟机上使用adb shell
命令。
adb shell ps
输出示例:
USERPIDPPIDVSIZERSSWCHANPCNAME
root108904788ffffffff 00000000 S /init
root2000ffffffff 00000000 S kthreadd
...
u0_a71777959261538748 48896 ffffffff 00000000 S com.sohu.inputmethod.sogou:classic
u0_a58796359261561916 59568 ffffffff 00000000 S org.mazhuang.boottimemeasure
...
shell87502171064074000000000 b6f28340 R ps
各列含义:
列名 | 含义 |
---|---|
USER |
所属用户 |
PID |
进程 ID |
PPID |
父进程 ID |
NAME |
进程名 |
adb shell top
输出示例:
User 0%, System 6%, IOW 0%, IRQ 0%
User 3 + Nice 0 + Sys 21 + Idle 280 + IOW 0 + IRQ 0 + SIRQ 3 = 307PID PR CPU% S#THRVSSRSS PCY UIDName
876303% R110640K1064Kfg shelltop
13103% S10K0Kfg rootdhd_dpc
614400% S115 1682004K 115916Kfg systemsystem_server
13200% S10K0Kfg rootdhd_rxf
173100% S620288K788Kfg root/system/bin/mpdecision
21700% S618008K356Kfg shell/sbin/adbd
...
777920% S19 1538748K48896Kbg u0_a71com.sohu.inputmethod.sogou:classic
796300% S18 1561916K59568Kfg u0_a58org.mazhuang.boottimemeasure
...
各列含义:
列名 | 含义 |
---|---|
PID |
进程 ID。 |
PR |
优先级。 |
CPU% |
当前瞬间占用 CPU 百分比。 |
S |
进程状态(R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)。 |
#THR |
线程数。 |
VSS |
Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)。 |
RSS |
Resident Set Size 实际使用物理内存(包含共享库占用的内存)。 |
PCY |
调度策略优先级,SP_BACKGROUND/SPFOREGROUND 。 |
UID |
进程所有者的用户 ID。 |
NAME |
进程名。 |
top
命令还支持一些命令行参数,详细用法如下:Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]参数:
-m num最多显示多少个进程
-n num刷新多少次后退出
-d num刷新时间间隔(单位秒,默认值 5)
-s col按某列排序(可用 col 值:cpu, vss, rss, thr)
-t显示线程信息
-h显示帮助文档
3、查看进程 UID 有两种方案:
- 使用
adb shell dumpsys package | grep userId=
命令的方式。
例如:$ adb shell dumpsys package org.mazhuang.guanggoo | grep userId=10394
- 通过
ps
命令找到对应进程的pid
之后 ,使用adb shell cat /proc//status | grep Uid
命令的方式。
例如:$ adb shell gemini:/ $ ps | grep org.mazhuang.guanggoo u0_a39428635 7701795812 78736 SyS_epoll_ 0000000000 S org.mazhuang.guanggoo gemini:/ $ cat /proc/28635/status | grep Uid Uid:10394103941039410394 gemini:/ $
命令 | 功能 |
---|---|
cat |
显示文件内容。 |
cd |
切换目录。 |
chmod |
改变文件的存取模式/访问权限。 |
df |
查看磁盘空间使用情况。 |
grep |
过滤输出。 |
kill |
杀死指定 PID 的进程。 |
ls |
列举目录内容。 |
mount |
挂载目录的查看和管理。 |
mv |
移动或重命名文件。 |
ps |
查看正在运行的进程。 |
rm |
删除文件。 |
top |
查看进程的资源占用情况。 |
提示:和Linux系统中的命令基本上是一样的。
参考:https://github.com/mzlogin/awesome-adb
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- 我和你之前距离
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 原生家庭之痛与超越