Android命令行工具是开发者与Android系统交互的核心桥梁,通过命令行可以高效完成设备调试、应用安装、日志监控、系统信息查询等操作,这些工具既包含Android SDK自带的基础命令,也涉及系统级shell指令,覆盖了开发、测试、运维全流程需求,以下从核心工具、使用场景及实践技巧展开详细说明。

Android命令行工具的核心组成与功能
Android命令行工具主要分为SDK工具和系统shell工具两类,前者通过adb(Android Debug Bridge)调用,后者需通过adb shell进入设备终端执行。
(一)SDK基础工具:adb的核心用法
adb是Android命令行工具的枢纽,需配置环境变量后全局使用,其核心功能包括设备连接、文件传输、应用安装与调试等。
-
设备连接管理
- 检测连接设备:
adb devices,输出包含设备序列号(如emulator-5554)和device状态表示连接成功。 - 连接指定设备:多设备场景下通过
adb -s <序列号> 命令操作,如adb -s emulator-5554 install app.apk。 - 启用无线调试:通过
adb tcpip 5555切换至无线模式,再用adb connect <设备IP>:5555连接,适合无USB线场景。
- 检测连接设备:
-
应用安装与卸载
(图片来源网络,侵删)- 安装APK:
adb install app.apk,覆盖安装加-r参数(adb install -r app.apk),安装到测试通道加-t。 - 卸载应用:
adb uninstall <包名>,保留数据卸载加-k(adb uninstall -k <包名>)。 - 查看已安装应用:
adb shell pm list packages,过滤应用名加| findstr "关键字"(Windows)或grep "关键字"(Linux/macOS)。
- 安装APK:
-
日志监控与调试
- 实时查看日志:
adb logcat,按标签过滤如adb logcat *:S(关闭所有日志)或adb logcat ActivityManager:I(显示ActivityManager的INFO级别日志)。 - 导出日志文件:
adb logcat -d > log.txt,保存设备日志到本地;adb logcat -c可清空设备日志缓冲区。 - 过滤特定应用日志:
adb logcat | findstr "包名",实时监控指定应用的日志输出。
- 实时查看日志:
-
文件与数据管理
- 推送/拉取文件:
adb push <本地路径> <设备路径>(如adb push test.txt /sdcard/),adb pull <设备路径> <本地路径>(如adb pull /sdcard/download/ .)。 - 查看设备存储:
adb shell df -h查看分区使用情况,adb shell ls /sdcard/列出SD卡内容。
- 推送/拉取文件:
(二)系统Shell工具:设备底层操作
通过adb shell进入设备Linux环境后,可执行系统级命令,实现更精细化的操作。
-
应用与进程管理
(图片来源网络,侵删)- 强制停止应用:
adb shell am force-stop <包名>,立即关闭应用所有进程。 - 查看运行进程:
adb shell ps | findstr "包名",获取应用的进程ID(PID)和CPU占用情况。 - 清除应用数据:
adb shell pm clear <包名>,相当于“清除数据”操作,需谨慎使用。
- 强制停止应用:
-
系统信息查询
- 获取设备型号:
adb shell getprop ro.product.model。 - 查看Android版本:
adb shell getprop ro.build.version.release。 - 检查屏幕分辨率:
adb shell wm size,返回物理分辨率(如1920x1080)和当前显示分辨率(若有虚拟屏缩放)。 - 查看电池状态:
adb shell dumpsys battery,输出当前电量(level)、温度(temperature)是否充电(status)等信息。
- 获取设备型号:
-
网络与性能调试
- 查看实时网络连接:
adb shell netstat -an | grep ESTABLISHED,显示已建立的TCP连接。 - 模拟网络丢包/延迟:需搭配
tc(Traffic Control)命令,如adb shell tc qdisc add dev wlan0 root netem delay 100ms(增加100ms延迟)。 - 捕获网络包:通过
adb shell tcpdump -i any -p -s 0 -w /sdcard/capture.pcap抓包,再拉取到本地用Wireshark分析。
- 查看实时网络连接:
(三)进阶工具:专项场景解决方案
-
adb shell am(Activity Manager)
启动应用:adb shell am start -n <包名>/<Activity类名>(如adb shell am start -n com.android.settings/.Settings)。
强制停止服务:adb shell am stop-service <服务类名>。 -
adb shell dumpsys
导出系统服务信息:adb shell dumpsys <服务名>,如dumpsys meminfo <包名>查看内存占用,dumpsys cpuinfo查看CPU使用率。 -
fastboot(刷机工具)
需设备进入fastboot模式(关机后按音量下+电源键),常用命令:- 查看设备:
fastboot devices - 刷入Recovery:
fastboot flash recovery recovery.img - 解锁Bootloader:
fastboot oem unlock(需厂商授权,可能失去保修)
- 查看设备:
命令行工具使用场景与最佳实践
| 场景 | 推荐命令组合 | 注意事项 |
|---|---|---|
| 应用崩溃日志分析 | adb logcat -d | grep -i "FATAL"`` +adb shell dumpsys stack <包名>` |
过滤出致命错误(FATAL)和堆栈信息,定位崩溃原因 |
| 性能监控 | adb shell top -m 10(查看CPU前10进程) + adb shell dumpsys meminfo <包名> |
长时间监控建议用脚本定时采集数据,分析内存泄漏或CPU异常占用 |
| 自动化测试 | adb shell input tap 500 500(模拟点击) + adb shell input text "hello"(输入文本) |
结合adb shell am start启动目标页面,可编写脚本实现UI自动化 |
| 批量设备操作 | adb devices | grep -v "List" | cut -f1(获取所有设备序列号) + xargs -I {} adb -s {} install app.apk |
Linux/macOS下用xargs批量执行,Windows需用for循环遍历设备列表 |
| 系统备份与恢复 | adb backup -f backup.ab -apk -all(备份应用+数据) + adb restore backup.ab |
备份文件需妥善保管,恢复前建议先卸载旧版本避免冲突 |
常见问题与解决方案
-
adb命令提示“command not found”
原因:未配置Android SDK环境变量,或adb路径未加入系统PATH。
解决:下载SDK后,将platform-tools目录路径添加到环境变量(如Linux下~/.bashrc添加export PATH=$PATH:/path/to/sdk/platform-tools),重启终端生效。 -
设备连接后显示“unauthorized”
原因:未在设备上授权USB调试权限(需弹出“允许USB调试”对话框并确认)。
解决:在设备设置中找到“关于手机”,连续点击“版本号”7次启用开发者选项;返回设置-系统-开发者选项,开启USB调试,重新插拔数据线并授权。
FAQs
Q1: 如何通过命令行查看Android设备的电池健康状态?
A1: 设备本身无直接电池健康命令,但可通过以下方式间接判断:
- 使用
adb shell dumpsys battery查看当前电量(level)和电压(voltage),电压过低可能意味着电池老化。 - 安装第三方应用(如AccuBattery)后,通过
adb shell pm list packages | grep accubattery确认安装,再查看该应用生成的健康报告。 - 部分厂商(如三星、华为)提供系统命令,如
adb shell dumpsys batterystats,分析历史充放电循环次数。
**Q2: 如何用命令行实现Android应用的静默安装(无需用户点击)?
A2: 静默安装需设备root权限或系统签名应用,普通应用无法直接实现,方法如下:
- Root设备:通过
adb shell pm install -r -g <本地路径>/app.apk(-g授予应用所有权限),但需root环境支持。 - 系统应用签名:将应用用平台签名(
build/target/product/security/platform.pk8)重新打包后安装,此时应用具备系统级权限,可静默安装。 - 使用adb install --user:Android 8.0+支持多用户模式,可通过
adb install --user 0 app.apk安装到主用户,但仍需用户首次授权USB调试。
