文章目录
- [adb 是什么?](#adb 是什么?)
-
- [adb 工作原理](#adb 工作原理)
- 链接真机
- adb常用命令
-
- adb命令格式
- [adb 安装/卸载命令](#adb 安装/卸载命令)
- [adb 命令启动页面](#adb 命令启动页面)
-
- [包和 Activity(活动页)的概念](#包和 Activity(活动页)的概念)
- 获取APP当前的页面名
- [获取启动页面的 activity](#获取启动页面的 activity)
- APP启动某个页面
- adb命令-清理APP应用缓存
-
- [adb shell 应用](#adb shell 应用)
- [adb shell查看应用列表](#adb shell查看应用列表)
- [adb shell 清除应用数据及缓存](#adb shell 清除应用数据及缓存)
- [adb 文件传输](#adb 文件传输)
- [adb 日志操作](#adb 日志操作)
- 总结
✨✨✨学习的道路很枯燥,希望我们能并肩走下来!
编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。

本文开始
adb 是什么?
Android Debug Bridge(Android 调试桥)简称 adb
Android sdk 中提供的用于管理模拟器或真机状态的工具
adb 工作原理
采用了客户端-服务器(C/S)模型,包括三个部分:
- adb client(客户端)
运行在开发机上(如你执行 adb shell 的终端)
负责发送命令 - adb server(服务端)
运行在开发机后台(首次 adb 命令时自动启动)
管理客户端与设备之间的通信,监听 TCP 端口(默认 5037) - adbd-守护进程(ADB Daemon)
运行在 Android 设备上(需开启"USB 调试")
接收来自 adb server 的指令并执行(如安装 APK、读取日志、启动 shell)
工作过程:客户端发送指令给服务端,服务端根据指令操作手机设备,操作结果返回服务端;
client 发送命令(如 adb install app.apk)→ server 转发 → adbd 执行 → 返回结果
【注】Client不断发送指令给5037端口,Server端监听到端口指令,操作设备,服务端与设备至少两个端口连接(一个负责连接adb,一个负责连接控制台)
左:客户端,右:服务端-手机
链接真机
- 手机端:手机处于USB调式模式
- win电脑端需要安装手机驱动
可以安装豌豆荚或手机助手,在连接真机时会自动安装驱动(不用时需要删除掉)
- adb环境配置:
安装java +android sdk 并配置环境变量
adb常用命令
adb命令格式
bash
# adb格式 :
adb [-d|-e|-s <serialNumber>]<command>
# 示例
adb -s 连接名称
-d :指定当前唯一通过 Usb 连接的 android 设备为命令目标(了解)
-e :指定当前唯一运行的模拟器为命令目标(了解)
-s :指定相应的设备为命令目标(重点)
adb 安装/卸载命令
安装命令
- 普通安装
bash
adb install <apk路径>
- 覆盖安装/替代安装
bash
adb install -r <apk路径>
卸载命令
卸载应用
bash
adb uninstall 包名
卸载应用(不删除配置文件,保存数据缓存信息)
bash
adb uninstall -k 包名
adb 命令启动页面
查看移动端安装的所有包名路径:
bash
# 系统路径
cd /data/data
# 可以操作sdcard路径
包和 Activity(活动页)的概念
- package 包:是 Android 应用的唯一标志
- Activity 活动页: Android 应用页面,每个页面就是一个 Activity
获取APP当前的页面名
前提:打开手机 app 应用的某个页面,想获取当前页面名称
方法:打开命令行工具,执行下述命令:
bash
adb shell "dumpsys window | grep mCurrentFocus"
获取启动页面的 activity
使用命令方式:
1.先运行下述命令
2.打开对应APP
示例:获取APP最初的启动页面,第一个就是,打开每个页面都可以在日志中看到页面名称;
验证获取的页面名称是否正确,使用下面APP启动某个页面的命令验证,会直接打开对应APP页面。
mac/linux命令:
bash
adb logcat ActivityManager:I | grep "cmp"
win命令:
bash
adb logcat ActivityManager:I | findstr "cmp"
APP启动某个页面
获取包名或者页面名称,验证包名或活动页面名称是否正确
运行命令会直接打开对应APP页面
am: 管理页面相关信息
pm: 包管理相关信息
bash
adb shell am start -n <包名>/<avticity名>
# 示例
adb shell am start -n com.tencent.mobileqq/xxxx.xxxActivity
adb命令-清理APP应用缓存
adb shell 应用
查看目录结构:
bash
adb shell ls
查看系统当前日期:
bash
adb shell date
查看系统 CPU 使用情况:
bash
adb shell cat /proc/cpuinfo
查看系统内存使用情况:
bash
adb shell cat /proc/meminfo
adb shell查看应用列表
显示所有应用:
bash
adb shell pm list packages
显示系统自带应用:
bash
adb shell pm list packages -s
显示第 3 方应用:
bash
adb shell pm list packages -3
adb shell 清除应用数据及缓存
bash
adb shell pm clear <包名>
adb 文件传输
bash
# PC端推送到移动端
adb push 电脑路径 设备路径
# 从移动端拉取文件到PC端
adb pull 设备路径 电脑路径
adb 日志操作
日志级别
V --- 明细 verbose(最低优先级)
D --- 调试 debug
I --- 信息 info
W --- 警告 warn
E --- 错误 error
F --- 严重错误 fatal
S --- 无记载 silent(最高优先级,绝不会输出任何内容
查看日志
bash
# 查看日志:打开app查看及时日志
adb logcat
查看日志常用参数
adb logcat --help
adb logcat [TAG:LEVEL ] [TAG:LEVEL ] ...
bash
# 打印默认日志数据
adb logcat
adb logcat -v time 打印时间
# 使用不同的颜色来显示每个优先级
adb logcat -v color
# 将日志输出到手机文件,filename为手机文件的路径地址
adb logcat -f <filename>
# 保存日志到PC上
adb logcat > log.log
# 清理已存在的日志
adb logcat -c
adb命令日志的一行显示解释:
时间戳,进程 ID(PID),线程 ID(TID),日志级别(Priority),标签(Tag),日志内容(Message)
adb logcat 根据条件过滤日志
打印 Warning 及以上级别的日志
bash
adb logcat -v time "*:W"
过滤tag 为ActivityManager,level为Debug及以上级别的日志
bash
# S:屏蔽(不显示)所有其他标签(tag)的日志
adb logcat ActivityManager:D '*:S'
总结
✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!


