Android CLI 完全指南:从入门到精通

发布时间:2026/7/19 21:59:21
Android CLI 完全指南:从入门到精通 1. 引言在 Android 开发的世界里图形化的 Android Studio 无疑是强大的主力工具。然而对于追求效率、自动化构建、持续集成CI/CD以及深入理解构建系统的开发者来说掌握 Android 命令行工具CLI是通往更高阶技能的必经之路。本指南将带你从零开始全面掌握 Android 开发中不可或缺的命令行工具包括adb、dumpsys、pm、am、screencap、logcat等并深入讲解如何利用 Gradle 和 SDK Manager 在无图形界面的环境下完成完整的开发与调试流程。2. 环境准备搭建你的 Android CLI 工具箱在开始之前你需要确保电脑上安装了必要的命令行工具。2.1 安装 Android SDK 命令行工具下载命令行工具访问 Android 开发者官网下载适用于你操作系统的“命令行工具”。解压并配置将下载的commandlinetools-*压缩包解压到一个目录例如~/Android/cmdline-tools。使用sdkmanager通过sdkmanager安装所需的 SDK 组件。# 查看可用包./sdkmanager--list# 安装指定版本的平台工具和构建工具./sdkmanagerplatform-toolsplatforms;android-34build-tools;34.0.0# 安装 NDK用于原生开发./sdkmanagerndk;25.2.95196532.2 配置环境变量为了方便在任何路径下使用这些工具需要将它们添加到系统的PATH环境变量中。# 编辑你的 shell 配置文件如 ~/.bashrc, ~/.zshrcexportANDROID_HOME$HOME/AndroidexportPATH$PATH:$ANDROID_HOME/cmdline-tools/latest/binexportPATH$PATH:$ANDROID_HOME/platform-toolsexportPATH$PATH:$ANDROID_HOME/emulator# 使配置生效source~/.zshrc3. 核心工具详解adbAndroid Debug Bridgeadb是 Android CLI 的灵魂它充当着电脑与 Android 设备真机或模拟器之间的通用调试桥梁。3.1 设备连接与管理# 查看已连接的设备列表adb devices# 连接一个设备通过 TCP/IP常用于无线调试adb connect192.168.1.100:5555# 断开指定设备adb disconnect192.168.1.100:5555# 在有多个设备时指定操作某个设备adb-semulator-5554 shell3.2 安装与卸载应用# 安装 APKadbinstallapp-debug.apk# 安装并保留数据和缓存用于覆盖安装测试adbinstall-rapp-debug.apk# 卸载应用需要指定包名adb uninstall com.example.myapp# 卸载但保留数据和缓存目录adb uninstall-kcom.example.myapp3.3 文件传输# 从电脑推送文件到设备adb push local_file.txt /sdcard/Download/# 从设备拉取文件到电脑adb pull /sdcard/Download/remote_file.txt.# 拉取整个目录adb pull /sdcard/Download/ ./local_download/3.4 进入 Shell 环境adb shell是通往 Android 系统内部的钥匙可以执行 Linux 命令。# 进入交互式 Shelladb shell# 直接执行单条命令adb shellls/sdcard/ adb shell dumpsys battery4. 系统信息与调试dumpsys dumpsysdumpsys是 Android 系统服务的诊断工具可以获取几乎所有系统状态信息。4.1 常用 dumpsys 命令# 获取电池状态adb shell dumpsys battery# 获取当前 Activity 栈信息了解哪个 Activity 在前台adb shell dumpsys activity activities|grepmResumedActivity# 获取网络连接信息adb shell dumpsys connectivity# 获取窗口信息分辨率、密度等adb shell dumpsys window displays# 获取所有正在运行的服务列表adb shell dumpsys-l4.2 使用 dumpsys 进行性能分析# 获取 CPU 使用信息adb shell dumpsys cpuinfo# 获取内存使用信息按进程adb shell dumpsys meminfo# 获取指定应用的内存信息adb shell dumpsys meminfo com.example.myapp# 获取 GPU 渲染性能adb shell dumpsys gfxinfo com.example.myapp5. 应用管理pmPackage Managerpm命令用于管理设备上的应用包。# 列出所有已安装的应用包adb shell pm list packages# 列出包含特定关键词的应用adb shell pm list packages|grepgoogle# 列出第三方应用adb shell pm list packages-3# 查看应用的详细信息安装路径、权限等adb shell pm dump com.example.myapp# 清除应用数据adb shell pmclearcom.example.myapp# 禁用/启用应用adb shell pm disable-user--user0com.example.myapp adb shell pmenablecom.example.myapp6. 模拟用户操作amActivity Manageram命令可以模拟启动 Activity、发送广播、启动服务等操作。# 启动一个 Activity通过 Intentadb shell am start-ncom.example.myapp/.MainActivity# 启动 Activity 并传递数据adb shell am start-ncom.example.myapp/.DetailActivity--eskeyvalue# 发送一个广播adb shell am broadcast-aandroid.intent.action.BOOT_COMPLETED# 启动一个服务adb shell am startservice-ncom.example.myapp/.MyService# 强制停止一个应用adb shell am force-stop com.example.myapp7. 屏幕与输入操作7.1 截屏与录屏# 截屏并保存到电脑adb shell screencap /sdcard/screenshot.png adb pull /sdcard/screenshot.png.# 录屏默认 180 秒4Mbpsadb shell screenrecord /sdcard/demo.mp4# 录屏并指定参数adb shell screenrecord--size720x1280 --bit-rate 2M --time-limit30/sdcard/demo.mp47.2 模拟输入# 模拟点击x, y 坐标adb shell input tap5001000# 模拟滑动adb shell input swipe5001000500500# 模拟输入文本adb shell input textHello World# 模拟按键如返回键、Home 键adb shell input keyevent KEYCODE_BACK adb shell input keyevent KEYCODE_HOME adb shell input keyevent KEYCODE_MENU8. 日志查看logcatlogcat是 Android 日志系统的核心工具用于查看应用和系统的运行日志。8.1 基本用法# 实时查看所有日志adb logcat# 清空之前的日志adb logcat-c# 将日志输出到文件adb logcat-dapp_log.txt8.2 过滤日志# 按日志级别过滤V, D, I, W, E, F, Sadb logcat *:E# 按标签过滤adb logcat-sMyAppTag# 组合过滤只显示 MyAppTag 的 Error 级别日志adb logcat-sMyAppTag:E# 使用 grep 进行更灵活的过滤adb logcat|grep-ierroradb logcat|grepcom.example.myapp8.3 格式化输出# 显示详细的时间、PID、TID 等信息adb logcat-vlong# 显示线程时间adb logcat-vthreadtime# 显示彩色输出便于区分不同级别adb logcat-vcolor9. 无线调试ADB over Wi-Fi摆脱数据线的束缚让调试更加自由。# 1. 先用 USB 连接设备# 2. 让设备在 5555 端口监听 TCP/IP 连接adb tcpip5555# 3. 断开 USB 线# 4. 通过 IP 地址连接设备adb connect192.168.1.100:5555# 5. 现在可以无线使用 adb 了adb devices adb shell# 6. 断开无线连接adb disconnect192.168.1.100:555510. 自动化构建Gradle Wrapper在 CI/CD 环境中通常使用 Gradle Wrappergradlew来执行构建任务。# 查看项目中的 Gradle 任务./gradlew tasks# 构建 Debug APK./gradlew assembleDebug# 构建 Release APK./gradlew assembleRelease# 运行所有测试./gradlewtest# 运行指定模块的测试./gradlew :app:testDebugUnitTest# 清理构建产物./gradlew clean# 构建并安装 Debug APK 到连接的设备./gradlew installDebug11. 实战案例自动化测试脚本结合以上命令可以编写一个简单的自动化测试脚本。#!/bin/bash# auto_test.shPACKAGE_NAMEcom.example.myappAPK_PATH./app/build/outputs/apk/debug/app-debug.apkecho 开始自动化测试 # 1. 安装应用echo1. 安装应用...adbinstall-r$APK_PATH# 2. 启动应用echo2. 启动应用...adb shell am start-n$PACKAGE_NAME/.MainActivity# 3. 等待 3 秒sleep3# 4. 模拟用户操作echo3. 模拟点击...adb shell input tap300500sleep1# 5. 截屏echo4. 截屏...adb shell screencap /sdcard/test_screenshot.png adb pull /sdcard/test_screenshot.png.# 6. 获取日志echo5. 获取日志...adb logcat-d-sMyAppTagtest_log.txt# 7. 卸载应用echo6. 卸载应用...adb uninstall$PACKAGE_NAMEecho 测试完成 12. 总结与进阶学习通过本指南你已经掌握了 Android CLI 的核心工具和常用命令。这些技能不仅能提升你的日常开发效率更是构建自动化工作流、进行深度性能分析和系统级调试的基石。进阶学习方向深入 Gradle学习编写自定义 Gradle Task实现更复杂的构建逻辑。Monkey 测试使用adb shell monkey进行压力测试和随机测试。Systrace / Perfetto学习使用更高级的性能分析工具进行 UI 和 CPU 分析。编写 Shell 脚本将常用的 CLI 操作组合成脚本打造自己的自动化工具链。现在打开你的终端开始探索 Android CLI 的强大世界吧