菜鸟科技网

sdk adb命令有哪些常用操作?

环境准备:如何让 adb 命令可用?

在使用 adb 之前,你必须确保你的电脑已经安装了 Android SDK,adb 的路径被添加到了系统的环境变量中,这样你就可以在任何目录下直接输入 adb 命令。

sdk adb命令有哪些常用操作?-图1
(图片来源网络,侵删)
  1. 安装 Android SDK:通常通过 Android Studio 的 SDK Manager 进行安装。
  2. 找到 adb 路径adb.exe 文件位于 Android SDKplatform-tools 目录下,路径类似这样:
    • Windows: C:\Users\你的用户名\AppData\Local\Android\Sdk\platform-tools\
    • macOS: /Users/你的用户名/Library/Android/sdk/platform-tools/
    • Linux: /home/你的用户名/Android/Sdk/platform-tools/
  3. 添加到环境变量
    • Windows: 将上述路径添加到系统的 "Path" 环境变量中。
    • macOS / Linux: 将上述路径添加到 ~/.bashrc, ~/.zshrc~/.profile 文件中,然后运行 source ~/.bashrc (或对应的 shell 文件) 使其生效。

验证安装:在终端或命令提示符中输入 adb version,如果能看到版本信息,说明配置成功。


核心概念:adb 的三大组件

adb 工作在客户端-服务器模型上,包含三个部分:

  1. 客户端:在你的电脑上运行,当你输入 adb 命令时,就是客户端在监听。
  2. 守护进程:在 Android 设备上运行,作为客户端和 adb 服务器的中介。
  3. 服务器:也在你的电脑上运行,管理客户端和设备之间的通信。

adb 启动时,会先启动一个服务器,它会尝试连接到所有已连接的设备上的守护进程。


adb 命令详解

设备连接与管理

这些命令用于查看和管理已连接的设备。

sdk adb命令有哪些常用操作?-图2
(图片来源网络,侵删)
命令 描述 示例
adb devices (最常用) 列出所有连接的设备及其状态。 adb devices
adb -s <设备ID> <command> 指定对某个设备执行命令(当多设备连接时必备)。 adb -s emulator-5555 install my_app.apk
adb get-serialno 获取当前连接设备的序列号。 adb get-serialno
adb disconnect 断开与当前设备的连接。 adb disconnect
adb connect <IP>:<端口> 通过 IP 地址和端口连接到一个设备(如模拟器或通过 Wi-Fi 连接的真机)。 adb connect 192.168.1.100:5555

设备状态说明:

  • device: 设备已正常连接,可以接受命令。
  • unauthorized: 设备已连接,但未授权电脑调试,请确保在设备的“开发者选项”中点击了“允许 USB 调试”。
  • offline: 设备未响应,可以尝试拔插 USB 线或重启 adb 服务。

应用安装与卸载

这些命令用于管理设备上的应用程序。

命令 描述 示例
adb install <path_to_apk> 安装 APK 文件到设备。 adb install C:\Users\...\app-release.apk
adb install-multiple <path1> <path2> 安装一个包含 split APKs 的应用(如为不同 ABI 或屏幕密度准备的 APK)。 adb install-multiple base.apk x86_64.apk
adb install -r <path_to_apk> (常用) 重新安装 APK,保留应用数据和缓存。 adb install -r app-release.apk
adb install -d <path_to_apk> 允许安装版本代码较低的应用(降级安装)。 adb install -d old_app.apk
adb install -t <path_to_apk> 允许安装测试 APK(需要 android:debuggable="true")。 adb install -t test_app.apk
adb uninstall <package_name> 卸载应用。注意:这会删除应用的所有数据。 adb uninstall com.example.myapp
adb uninstall -k <package_name> 卸载应用,但保留应用数据和缓存目录。 adb uninstall -k com.example.myapp

日志查看

logcat 是调试应用时最重要的工具之一。

命令 描述 示例
adb logcat (最常用) 实时打印设备的所有日志。 adb logcat
adb logcat -c (常用) 清除设备上的日志缓冲区,通常在查看新日志前使用。 adb logcat -c
adb logcat -s <Tag> 过滤日志,只显示指定标签(Tag)的日志。 adb logcat -s ActivityManager
adb logcat | grep "关键字" 使用 grep 过滤日志,只包含特定关键字的行。 adb logcat \| grep "my_app"
adb logcat -v time 指定日志的显示格式,如时间戳。 adb logcat -v time
adb logcat -f <file_path> 将日志输出到指定文件,而不是屏幕。 adb logcat -f C:\logs\device_log.txt

高级过滤: adb logcat <优先级>:<Tag> *:<优先级>

sdk adb命令有哪些常用操作?-图3
(图片来源网络,侵删)
  • 优先级: V (Verbose), D (Debug), I (Info), W (Warning), E (Error), F (Fatal), S (Silent)
  • 示例: 只显示 Error 级别及以上,并且标签为 MyApp 的日志。 adb logcat E:MyApp *:S

文件系统操作

在电脑和设备之间传输文件。

命令 描述 示例
adb pull <remote> <local> 从设备下载文件到电脑。 adb pull /sdcard/DCIM/Camera/ ./photos/
adb push <local> <remote> 从电脑上传文件到设备。 adb push my_local_file.txt /sdcard/
adb shell (核心命令) 进入设备的 Linux Shell 环境。 adb shell

进入 adb shell 后,你可以在设备上执行标准的 Linux 命令:

  • ls: 列出目录内容。
  • cd: 切换目录。
  • mkdir: 创建目录。
  • rm: 删除文件。
  • cat: 查看文件内容。
  • chmod: 修改文件权限。

Shell 命令与活动管理

adb shell 内部或直接通过 adb shell 执行的命令。

命令 描述 示例
adb shell am start -n <包名>/<活动名> (常用) 启动一个指定的 Activity。 adb shell am start -n com.example.myapp/.MainActivity
adb shell am force-stop <包名> (常用) 强制停止一个正在运行的应用。 adb shell am force-stop com.example.myapp
adb shell pm list packages 列出设备上已安装的所有应用包名。 adb shell pm list packages
adb shell pm list packages -f 列出应用及其对应的 APK 文件路径。 adb shell pm list packages -f
adb shell pm path <包名> 获取指定应用的 APK 文件在设备上的完整路径。 adb shell pm path com.example.myapp
adb shell input text "你的文本" 在设备上输入指定的文本。 adb shell input text "Hello World"
adb shell input tap <x> <y> 在屏幕指定的坐标处点击。 adb shell input tap 500 1200
adb shell input swipe <x1> <y1> <x2> <y2> <duration> 在屏幕上滑动。 adb shell input swipe 100 1000 100 500 300
adb shell screencap -p <path> 截取屏幕并保存为图片到设备。 adb shell screencap -p /sdcard/screenshot.png
adb shell screenrecord <path> 录制屏幕,按 Ctrl+C 停止。 adb shell screenrecord /sdcard/record.mp4

模拟器/设备控制

命令 描述 示例
adb reboot 重启设备。 adb reboot
adb reboot bootloader 重启设备到 Bootloader 模式(通常用于刷机)。 adb reboot bootloader
adb reboot recovery 重启设备到 Recovery 模式。 adb reboot recovery
adb emu <command> 向模拟器发送特定命令。 adb emu geo fix <经度> <纬度> (模拟位置)
adb shell settings put global airplane_mode_on 1 开启飞行模式。
adb shell settings put global airplane_mode_on 0 关闭飞行模式。

常用场景示例

场景1:安装并启动一个应用

# 1. 安装应用(保留数据)
adb install -r my_app.apk
# 2. 启动应用的主界面
adb shell am start -n com.mycompany.myapp/.MainActivity

场景2:查看应用的日志

# 1. 清除旧日志
adb logcat -c
# 2. 运行你的应用(比如点击某个按钮)
# 3. 过滤并查看你的应用日志
adb logcat | grep "MyApp"

场景3:从设备下载一张截图

# 1. 截图并保存到设备
adb shell screencap -p /sdcard/screenshot.png
# 2. 将图片从设备下载到电脑当前目录
adb pull /sdcard/screenshot.png . 

场景4:通过 Wi-Fi 连接设备(减少 USB 依赖)

  1. 设备端
    • 用 USB 线连接电脑和设备。
    • 在终端运行:adb tcpip 5555 (端口号可以自定义,常用 5555)。
  2. 电脑端
    • 拔掉 USB 线。
    • 查看设备的 IP 地址(设置 -> 关于手机 -> 状态)。
    • 运行:adb connect <设备IP>:5555 (adb connect 192.168.1.100:5555)。
  3. 验证adb devices 应该能看到设备处于 device 状态。

希望这份详细的指南能帮助你熟练掌握 adb 命令!它是安卓开发和调试的瑞士军刀。

分享:
扫描分享到社交APP
上一篇
下一篇