『与善仁』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手机上执行的adb shell命令,就需要先root手机,而虚拟机是直接root的Android系统,所以直接可以在虚拟机上使用adb shell命令。
1、查看进程 命令:
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 进程名
2、查看实时资源占用情况 【『与善仁』Appium基础|『与善仁』Appium基础 — 7、ADB Shell命令的使用】命令:
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 有两种方案:
  1. 使用adb shell dumpsys package | grep userId=命令的方式。
    例如:
    $ adb shell dumpsys package org.mazhuang.guanggoo | grep userId=10394

  2. 通过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:/ $

4、其它ADB Shell命令说明 如下是其它常用命令的简单描述,前文已经专门讲过的命令不再额外说明:
命令 功能
cat 显示文件内容。
cd 切换目录。
chmod 改变文件的存取模式/访问权限。
df 查看磁盘空间使用情况。
grep 过滤输出。
kill 杀死指定 PID 的进程。
ls 列举目录内容。
mount 挂载目录的查看和管理。
mv 移动或重命名文件。
ps 查看正在运行的进程。
rm 删除文件。
top 查看进程的资源占用情况。
提示:和Linux系统中的命令基本上是一样的。
参考:https://github.com/mzlogin/awesome-adb

    推荐阅读