adb 实用命令汇总
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/
基础adb命令
# 重启adb 
adb kill-server# 查看已连接的设备
adb devices# 进入命令行
adb shell# 使用 -s 参数来指定设备
adb -s <设备序列号> shell# 显示日志
adb logcat
 
获取 API Level
进入 adb shell ,执行下面命令获取当前 Android 系统的 API Level(即 SDK 版本):
getprop ro.build.version.sdk
 
以下是 Android 版本与 API Level 的对应表(截至 Android 15):
| Android 版本 | API Level | 代号 | 发布时间 | 
|---|---|---|---|
| Android 15 | 35 | Vanilla Ice Cream | 2024年9月 | 
| Android 14 | 34 | Upside Down Cake | 2023年10月 | 
| Android 13 | 33 | Tiramisu | 2022年8月 | 
| Android 12L | 32 | 2022年3月 | |
| Android 12 | 31 | Snow Cone | 2021年10月 | 
| Android 11 | 30 | Red Velvet Cake | 2020年9月 | 
| Android 10 | 29 | Q | 2019年9月 | 
| Android 9 | 28 | Pie | 2018年8月 | 
| Android 8.1 | 27 | Oreo | 2017年12月 | 
| Android 8.0 | 26 | Oreo | 2017年8月 | 
| Android 7.1 | 25 | Nougat | 2016年10月 | 
| Android 7.0 | 24 | Nougat | 2016年8月 | 
| Android 6.0 | 23 | Marshmallow | 2015年10月 | 
| Android 5.1 | 22 | Lollipop | 2015年3月 | 
| Android 5.0 | 21 | Lollipop | 2014年11月 | 
获取 apk 安装路径
获取指定包名的 APK 路径
adb shell pm path com.shizhuang.duapppackage:/data/app/com.shizhuang.duapp-fTxemmnM8l6298xbBELksQ==/base.apk
 
将 APK 文件拉取到本地
adb pull /data/app/com.shizhuang.duapp-fTxemmnM8l6298xbBELksQ==/base.apk
 
获取 Activity 信息
进入 adb shell
# 获取设备上当前运行的 Activity
dumpsys activity activities | grep "mResumedActivity"# 获取活动栈中的所有 Activity,并从中提取出最近的 5 个 Activity
dumpsys activity activities | grep "Hist #" | head -n 5
 
获取进程信息
# 显示当前系统中正在运行的进程信息、CPU、内存使用率等
top# 列出当前所有进程
ps -A# 列出名称包含 fs 的进程
ps -A | grep fs# 获取 1234 端口进程的 pid
lsof | grep 1234# 根据包名获取 pid
pidof com.shizhuang.duapp# 查看进程状态(如果 TracerPid>0 表示被调试状态,TracerPid 就是跟踪调试的 进程id)
cat /proc/pid/status
 
进程管理
# 停止指定进程 
kill pid# 强制停止指定进程
kill -9 pid# 暂停进程
kill -19 pid# 继续进程
kill -18 pid
 
文件管理
# 拉取文件/目录到本地
adb pull /data/app/com.shizhuang.duapp-fTxemmnM8l6298xbBELksQ== D:\temp# 使用cat命令查看文件的内容
cat filename.txt# 当目录不存在自动创建目录
mkdir -p /sdcard/dump_dex# 复制文件(目录必须存在)
cp /data/data/com.shizhuang.duapp/8681372.dex /sdcard/dump_dex# 复制文件并自动创建目录
mkdir -p /sdcard/dump_dex && cp /data/data/com.shizhuang.duapp/8681372.dex /sdcard/dump_dex/# 移动文件
mv /data/data/com.shizhuang.duapp/8681372.dex /sdcard/dump_dex
 
查找文件/目录
查找 /data 路径下所有包含 com.cyrus.example 的文件或目录
 find /data -iname '*com.cyrus.example*'
 
查看文件详细信息
通过 adb shell 进入命令行通过 ls -alh 查看当前路径下所有文件。
wayne:/sdcard # ls -alh
total 32M
drwxrwx--x 15 root sdcard_rw 3.4K 2024-09-23 17:52 .
drwx--x--x  3 root sdcard_rw 3.4K 2024-09-16 18:43 ..
-rw-rw----  1 root sdcard_rw   88 2024-09-18 12:03 .thumbcache_idx_001
drwxrwx--x  2 root sdcard_rw 3.4K 2024-09-16 18:43 Alarms
drwxrwx--x  5 root sdcard_rw 3.4K 2024-09-18 00:25 Android
 
通过 stat 命令查看更加详细的文件信息,包括访问时间、修改时间、文件类型和 inode 号等。
wayne:/sdcard # stat /sdcard/AndroidFile: /sdcard/AndroidSize: 3488     Blocks: 7       IO Blocks: 512 directory
Device: 1ch/28d  Inode: 2999     Links: 5
Access: (0771/drwxrwx--x)       Uid: (    0/    root)   Gid: ( 1015/sdcard_rw)
Access: 2024-09-16 18:43:38.453334673 +0800
Modify: 2024-09-18 00:25:03.481711645 +0800
Change: 2024-09-18 00:25:03.481711645 +0800
 
通过 file 命令查看文件类型
wayne:/sdcard # file Magisk-v27.0.apk
Magisk-v27.0.apk: Zip archive data
 
head 用于查看文本文件的前几行内容,默认是前 10 行。
wayne:/sdcard # head /proc/cpuinfo
Processor       : AArch64 Processor rev 4 (aarch64)
processor       : 0
BogoMIPS        : 38.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x51
CPU architecture: 8
CPU variant     : 0xa
CPU part        : 0x801
CPU revision    : 4
 
-n <行数>:指定要显示的行数。
wayne:/sdcard # head -n 5 /system/build.prop# begin common build properties
# autogenerated by build/make/tools/buildinfo_common.sh
ro.system.build.date=Mon Sep 16 18:43:25 CST 2024
ro.system.build.date.utc=1726483405
 
编辑文件
编辑文件
vim a.log
 
如果文件不存在,vim 会创建一个新的。
打开后,你默认处于 “普通模式” ,此时按:
i
 
此时屏幕左下角会显示 – INSERT --,表示你现在可以开始输入内容。
按下 Esc 键即可退出插入模式,回到普通模式。
在普通模式下,输入以下命令退出 vim
:wq   ↵   # 保存并退出
:q!   ↵   # 不保存直接退出
 
其他常用命令:
| 操作 | 命令(普通模式) | 
|---|---|
| 插入(光标前) | i | 
| 插入(新行) | o | 
| 删除整行 | dd | 
| 撤销 | u | 
| 保存但不退出 | :w + Enter | 
| 不保存强制退出 | :q! + Enter | 
| 移动光标上下左右 | 使用方向键或 h j k l | 
截图
# 截图
adb shell screencap /sdcard/screenshot.png
# 将截图从设备复制到电脑
adb pull /sdcard/screenshot.png
# 删除设备中的截图文件
adb shell rm /sdcard/screenshot.png
