深入理解ADB:工作原理与实战命令
48 浏览量
更新于2024-08-30
收藏 1.5MB PDF 举报
"ADB工作原理及常用命令详解"
在Android开发和调试过程中,ADB(Android Debug Bridge)是一个至关重要的工具。它提供了一种桥梁,使得开发者可以在电脑上与Android设备进行通信,进行各种操作,如安装应用、查看设备状态、运行shell命令等。
**定义**
ADB是Android SDK的一部分,位于`sdk/platform-tools`目录下。它是一个命令行工具,允许开发者通过USB或无线网络连接管理Android设备和模拟器。为了方便使用,通常会将ADB的路径添加到系统的环境变量Path中。
**工作原理**
ADB的工作流程包括adbclient、adbserver和adbd三个主要部分。当用户在命令行中输入ADB命令时,adbclient(即adbshell)会发送请求给adbserver,adbserver再将这些请求转发给设备上的adbd服务,由adbd执行实际的操作。
**常用命令**
1. **adb help**:显示所有ADB命令及其参数的说明。
2. **adb devices**:列出已连接的设备和模拟器,包括设备ID和状态。
- **adb devices -l**:列出设备详细信息,如设备类型、序列号等。
3. **adb connect**:通过IP地址连接到运行中的无线ADB设备。
4. **adb disconnect**:断开与特定设备的连接。
5. **adb shell**:在设备上打开一个远程shell,可以执行各种Linux命令。
- **查看包名和启动窗口名**:使用`dumpsys activity activities | grep mFocusedActivity`。
- **adb shell ps**:列出设备上正在运行的进程。
- **adb shell pm list package**:显示设备上安装的所有应用包名。
- **adb shell am start -W -n 包名/窗口名**:启动指定应用的指定活动,并等待其完成启动,用于调试启动性能。
6. **Monkey工具**:使用`adb shell monkey`进行Android应用的压力测试,随机生成用户事件。
7. **adb pull**和**adb push**:分别用于从设备拉取文件到电脑和将电脑文件推送到设备。
8. **adb install**:安装APK文件到设备。
9. **adb uninstall**:卸载指定包名的应用。
10. **adb kill-server**和**adb start-server**:停止和启动ADB服务。
11. **adb logcat**:查看设备日志。
- **adb logcat *:E**:只显示错误级别日志。
- **adb logcat -c**:清除日志缓冲区。
- **adb logcat -v long *:W > D:\log.txt**:将警告级别日志输出到文件。
- **adb logcat -f /data/log.txt *:W**:将警告级别日志写入设备指定文件。
- **adb logcat *:E | findstr 进程号**:查找包含特定进程号的错误日志。
- **adb logcat -s**:跟踪特定标签的日志。
了解和熟练掌握这些ADB命令,能极大提升Android开发者的工作效率,便于调试、测试和管理Android设备。
2017-11-13 上传
2017-12-21 上传
2018-05-30 上传
2012-06-19 上传
2012-08-30 上传
2011-11-17 上传
2021-05-19 上传
weixin_38554781
- 粉丝: 6
- 资源: 884
最新资源
- TrebBrennan.github.io
- genetic-startups-web:代表初创企业生命的遗传算法(用Ruby on Rails + React编写)
- demo
- cmake-3.14.1-Linux-x86_64.tar.gz
- Pokemon Wallpaper HD Custom New Tab-crx插件
- spam-filter-with-naive-bayes:使用多名词朴素贝叶斯算法构建垃圾邮件SMS过滤器
- 招生信息网网站模版
- vegcart:具有提供商状态管理的Flutter演示应用程序。 包括多个主题选项
- CSharpOopsProject
- Bulletin_Board
- 20200928农业机械系列深度研究:2019年中国农机自动驾驶行业研究报告.rar
- CircleProgress:圆形动画progressbar,这里是github一个开源项目,代码down下拉,研究了一下,并做了详细的注释
- 节点后端
- mex_utils:MATLAB 的 mex 接口的 C++ 包装器,旨在
- 20210311电子行业汽车电子专题:汽车芯片缺货缘由及关注重点.rar
- 篮球 热门运动 高清壁纸 新标签页 主题-crx插件