常用的ADB命令
-
查看adb版本信息
adb version -
检查adb连接是否成功
adb shell -
常用命令
cat 显示文件内容
cd 切换目录
chmod 改变文件的存取模式/访问权限
df 查看磁盘空间使用情况
grep 过滤输出
kill 杀死指定 PID 的进程
ls 列举目录内容
mount 挂载目录的查看和管理
mv 移动或重命名文件
ps 查看正在运行的进程
rm 删除文件 -
获取root权限
命令:adb root
正常输出:restarting adbd as root
PS:再执行命令:adb shell ,命令行提示符会变成“#”
恢复非root权限:adb unroot -
安装apk命令:adb install -r “目录以及名称” ps:-r表示覆盖安装
adb install [-l|-r|-t|-s|-d|-g] <path_to_apk>
-l 将应用安装到保护目录 /mnt/asec
-r 允许覆盖安装
-t 允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的应用
-s 将应用安装到 sdcard
-d 允许降级覆盖安装
-g 授予所有运行时权限
adb install原理
1 push apk 文件到 /data/local/tmp。
2 调用 pm install 安装。
3 删除 /data/local/tmp 下的对应 apk 文件。 -
卸载apk
adb uninstall [-k]
-k 卸载应用但保留数据和缓存目录 -
查看应用列表
基本命令格式:adb shell pm list packages [-f|-d|-e|-s|-3|-i|-u] [–user USER_ID] [FILTER]
无 所有应用
-f 显示应用关联的 apk 文件
-d 只显示 disabled 的应用
-e 只显示 enabled 的应用
-s 只显示系统应用
-3 只显示第三方应用
-i 显示应用的 installer
-u 包含已卸载应用
包名包含 字符串 -
强制停止应用
命令:adb shell am force-stop
命令示例:adb shell am force-stop com.qihoo360.mobilesafe 表示停止 360 安全卫士的一切进程与服务 -
重启设备
adb reboot -
对设备中的文件输出电脑
adb pull <设备里的文件路径> [电脑上的目录] 复制文件到设备 -
对电脑中的文件输出设备
adb push <电脑上的文件路径> <设备里的目录> 模拟按键/输入 -
截图录制屏幕
屏幕截图:adb exec-out screencap -p > sc.png
录制屏幕:adb shell screenrecord /sdcard/filename.mp4 PS:停止快捷键:ctrl+c;默认时长180秒 -
日志以及命令
[adb] logcat [] … [] …
级别:V Verbose(最低,输出得最多)
D Debug
I Info
W Warning
E Error
F Fatal
S Silent(最高,啥也不输出)
举例:adb logcat :W PS:macOS系统以作为tag的参数需加双引号
adb logcat ActivityManager:I MyApp:D *:S PS: 可以由多个 [:priority] 组成
表示:输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志
指定日志格式:adb logcat -v
format:brief,process,tag,raw,time,threadtime,long
类型 输出格式
brief /(): (默认格式)
process ()
tag /:
raw
time /():
threadtime :
long [ : / ]
格式指定与过滤同时使用:adb logcat -v long ActivityManager:I *:S
清空日志:adb logcat -c
内核日志:adb shell dmesg
PS:"[]"内表示内核开始启动后的时间,单位为秒
"Freeing init memory"表示内核启动时间 -
查看进程Uid
方法1:adb shell dumpsys package | grep userId=
方法2:adb shell ps → adb shell cat /proc//status | grep Uid -
查看进程
adb shell ps
PS:USER:所属用户,PID:进程ID,PPID:父进程 ID,NAME:进程名 -
查看资源占用
adb shell top
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 [ -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 显示帮助文档 -
使用monkey压力测试
开启:adb shell monkey -p -v 500
关闭:adb shell → top | grep monkey(获取到进程id) → kill -9 进程id
检查进程是否关闭:top | grep monkey