Android adb 基础使用指南
目录
一、设备相关的指令
二、常用的shell命令
1.文件与目录操作
2.电脑与设备间的文件传输
推送文件到设备 (adb push)
从设备拉取文件 (adb pull)
三、系统信息与状态查询
四、网络相关
五、日志查看
六、应用安装和应用卸载
应用安装命令汇总
应用卸载命令汇总
详细参数说明表格
安装选项参数
卸载选项参数
七、硬件与输入模拟
八、发送广播
基本广播命令格式
常用系统广播动作表格
系统控制类广播
网络与连接类
媒体与存储类
应用与组件管理类
广播选项参数表格
目标限制选项
数据传递选项
一、设备相关的指令
操作 | 命令 | 说明 |
---|---|---|
查看设备 | adb devices | 列出所有已连接的设备和模拟器 |
重新挂载 | adb remount | 将 /system 挂载为可读写(需Root) |
重启设备 | adb reboot | 普通重启 |
重启到Bootloader | adb reboot bootloader | 进入Fastboot模式,这个模式常用于刷入新的系统镜像、Recovery等。 |
重启到Recovery | adb reboot recovery | 进入Recovery模式,Recovery 模式用于执行系统更新、清除数据等操作。 |
关机 | adb shell reboot -p | 关闭设备电源 |
选择设备 | adb -s <序列号> <命令> | 指定对某个设备执行命令 |
进入Shell | adb shell | 进入设备的命令行界面 |
执行单条命令 | adb shell <命令> | 不进入Shell,直接执行一条命令 |
二、常用的shell命令
1.文件与目录操作
这是最基础也是最常用的命令集。
命令 | 功能 | 示例 |
---|---|---|
ls | 列出目录内容 | ls -l /sdcard (-l 显示详细信息) |
cd | 切换目录 | cd /system/app (进入系统应用目录);cd ..返回上一级 |
pwd | 显示当前所在目录的路径 | pwd |
cp | 复制文件或目录 | cp file1.txt /sdcard/backup/ |
mv | 移动或重命名文件/目录 | mv oldname.txt newname.txt |
rm | 删除文件或目录 | rm unwanted.jpg rm -r directory/ (-r 递归删除目录) |
cat | 查看文件全部内容 | cat /system/build.prop (查看系统属性) |
more / less | 分页查看文件内容 | more /system/build.prop (按空格翻页) |
grep | 在文件中搜索文本 | grep "ro.product.model" /system/build.prop (查找机型信息) |
find | 在目录中查找文件 | find /sdcard -name "*.jpg" (在SD卡找所有jpg文件) |
chmod | 修改文件权限 | chmod 755 script.sh (赋予可执行权限) |
chown | 修改文件所有者 |
|
touch | 创建新文件 | touch /sdcard/newfile.txt |
mkdir | 创建新目录 | mkdir /sdcard/MyNewFolder mkdir -p /sdcard/parent/child/grandchild (-p 创建多级目录) |
echo | 创建文件并写入内容 | echo "hello world" > /sdcard/test.txt echo "append line" >> /sdcard/test.txt (>> 表示追加内容) |
2.电脑与设备间的文件传输
推送文件到设备 (adb push)
场景 | 完整命令示例 | 结果说明 |
---|---|---|
推送单个文件 | adb push document.pdf /sdcard/Documents/ | PDF 文件被复制到设备的 Documents 文件夹 |
推送并重命名 | adb push image.jpg /sdcard/Pictures/newphoto.jpg | 文件被重命名为 newphoto.jpg |
推送到系统目录 | adb remount adb push bootanimation.zip /system/media/ | 需要 Root,替换系统启动动画 |
推送整个目录 | adb push C:\MyData\ /sdcard/Backup/ | 整个 MyData 文件夹被复制到 Backup 目录 |
从设备拉取文件 (adb pull)
场景 | 完整命令示例 | 结果说明 |
---|---|---|
拉取到当前目录 | adb pull /sdcard/screenshot.png | 截图保存到当前命令行所在目录 |
拉取到指定路径 | adb pull /sdcard/log.txt D:\Logs\ | 日志文件保存到 D:\Logs\ 目录 |
拉取整个文件夹 | adb pull /sdcard/DCIM/Camera/ ./photos/ | 相机照片拉取到本地 photos 文件夹 |
备份系统文件 | adb pull /system/etc/hosts ./backup/ | 需要 Root,备份 hosts 文件 |
三、系统信息与状态查询
用于了解设备的运行状况。
命令 | 功能 | 示例 |
---|---|---|
getprop | 查看 Android 系统属性 | getprop (查看所有)getprop ro.product.model (查看具体型号) |
setprop | 设置 Android 系统属性(需 Root) | setprop debug.sf.fps 60 |
dumpsys | dump 系统服务信息,极其强大 | dumpsys battery (查看电池信息)dumpsys meminfo (查看内存信息)dumpsys package com.android.chrome (查看Chrome应用信息) |
pm | Package Manager,管理应用包 | pm list packages (列出所有应用)pm list packages -3 (只列第三方应用)pm path com.android.chrome (找应用安装路径)pm disable-user com.bloatware (禁用应用,需Root) |
am | Activity Manager,管理应用活动 | am start -n com.android.settings/.Settings (启动设置)am force-stop com.android.chrome (强制停止Chrome) |
ps / top | 查看进程信息 | ps | grep chrome (查找Chrome进程)top (实时查看进程和资源占用) |
df | 查看磁盘空间使用情况 | df -h (-h 以人类可读的格式显示) |
cat /proc/cpuinfo | 查看 CPU 信息 | cat /proc/cpuinfo |
cat /proc/meminfo | 查看内存信息 | cat /proc/meminfo |
netstat | 查看网络连接和端口 | netstat -tulpn |
四、网络相关
命令 | 功能 | 示例 |
---|---|---|
ifconfig / ip addr | 查看网络接口和 IP 地址 | ifconfig wlan0 (查看Wi-Fi IP) |
ping | 测试网络连通性 | ping 8.8.8.8 |
netstat | 显示网络状态 | netstat |
ndc | 网络设备控制器(高级) | ndc resolver flushdefaultif (清空DNS缓存) |
五、日志查看
这是开发和调试的利器。
命令 | 功能 | 示例 |
---|---|---|
logcat | 查看系统日志 | logcat (持续输出全部日志)logcat -d > /sdcard/log.txt (将日志导出到文件)logcat | grep "MyApp" (过滤包含"MyApp"的日志) |
六、应用安装和应用卸载
应用安装命令汇总
安装方法 | 命令格式 | 示例 | 说明 & 适用场景 |
---|---|---|---|
基本安装 | adb install [选项] <apk路径> | adb install app.apk | 普通安装,存在相同应用时失败 |
覆盖安装 | adb install -r <apk路径> | adb install -r app.apk | 保留数据,重新安装(升级) |
降级安装 | adb install -r -d <apk路径> | adb install -r -d old_app.apk | 允许版本降级(需要 -r) |
授予所有权限 | adb install -g <apk路径> | adb install -g app.apk | 安装时自动授予所有权限 |
快速安装 | adb install --fastdeploy <apk路径> | adb install --fastdeploy app.apk | 仅更新修改部分,速度更快 |
分体APK安装 | adb install-multiple [选项] <apk文件列表> | adb install-multiple base.apk split1.apk | 安装拆分APK(App Bundle) |
PM安装 | adb shell pm install [选项] <apk路径> | adb shell pm install /sdcard/app.apk | 在设备端执行安装 |
应用卸载命令汇总
卸载方法 | 命令格式 | 示例 | 说明 & 适用场景 |
---|---|---|---|
基本卸载 | adb uninstall <包名> | adb uninstall com.example.app | 卸载应用,保留数据和缓存 |
完全卸载 | adb uninstall -k <包名> | adb uninstall -k com.example.app | 卸载应用但保留数据和缓存 |
PM卸载 | adb shell pm uninstall [选项] <包名> | adb shell pm uninstall com.example.app | 在设备端执行卸载 |
强制卸载 | adb shell pm uninstall --user 0 <包名> | adb shell pm uninstall --user 0 com.bloatware | 为用户0卸载(禁用系统应用) |
详细参数说明表格
安装选项参数
选项 | 说明 | 适用场景 |
---|---|---|
-r | 替换已存在应用,保留数据 | 应用升级、重新安装 |
-d | 允许版本降级 | 安装旧版本应用 |
-g | 授予所有运行时权限 | 避免安装后手动授权 |
-t | 允许测试包 | 安装调试版本APK |
-f | 安装到内部存储 | 强制安装到系统空间 |
-s | 安装到SD卡 | 安装到外部存储(已弃用) |
--fastdeploy | 快速部署 | 开发测试时快速更新 |
卸载选项参数
选项 | 说明 | 注意 |
---|---|---|
-k | 卸载但保留数据和缓存 | 默认行为,与直觉相反 |
(无 -k ) | 卸载并删除数据 | 实际上很少生效 |
--user 0 | 为当前用户卸载 | 用于"禁用"系统应用 |
七、硬件与输入模拟
命令 | 功能 | 示例 |
---|---|---|
input | 模拟触摸屏、按键等输入 | input tap 500 500 (在坐标(500,500)处点击)input keyevent KEYCODE_HOME (模拟按下Home键)input text "hello" (输入文本"hello") |
screencap | 截屏 | screencap -p /sdcard/screen.png |
screenrecord | 录屏(Android 4.4+) | screenrecord /sdcard/demo.mp4 (按Ctrl+C停止) |
dumpsys input | 查看输入设备信息 | dumpsys input |
svc | 控制部分硬件开关 | svc power shutdown (关机,部分设备有效)svc wifi enable/disable (开关Wi-Fi) |
八、发送广播
基本广播命令格式
命令格式 | 说明 |
---|---|
adb shell am broadcast [选项] -a <ACTION> | 发送指定动作的广播 |
adb shell am broadcast [选项] -n <COMPONENT> | 发送给特定组件 |
adb shell am broadcast [选项] -a <ACTION> -n <COMPONENT> | 组合使用 |
常用系统广播动作表格
系统控制类广播
广播动作 | 命令示例 | 功能说明 |
---|---|---|
关机 | adb shell am broadcast -a android.intent.action.ACTION_SHUTDOWN | 发送关机广播 |
重启 | adb shell am broadcast -a android.intent.action.REBOOT | 发送重启广播 |
飞行模式开关 | adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true | 开启飞行模式 |
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false | 关闭飞行模式 | |
电量变化 | adb shell am broadcast -a android.intent.action.BATTERY_CHANGED | 模拟电量变化 |
网络与连接类
广播动作 | 命令示例 | 功能说明 |
---|---|---|
WiFi开关 | adb shell am broadcast -a android.net.wifi.WIFI_STATE_CHANGED | WiFi状态变化 |
蓝牙开关 | adb shell am broadcast -a android.bluetooth.adapter.action.STATE_CHANGED | 蓝牙状态变化 |
网络状态变化 | adb shell am broadcast -a android.net.conn.CONNECTIVITY_CHANGE | 网络连接状态变化 |
媒体与存储类
广播动作 | 命令示例 | 功能说明 |
---|---|---|
媒体扫描 | adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/DCIM/newphoto.jpg | 扫描指定文件 |
媒体库扫描 | adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdcard | 扫描整个SD卡 |
USB设备连接 | adb shell am broadcast -a android.hardware.usb.action.USB_DEVICE_ATTACHED | 模拟USB设备连接 |
耳机插拔 | adb shell am broadcast -a android.intent.action.HEADSET_PLUG | 耳机状态变化 |
应用与组件管理类
广播动作 | 命令示例 | 功能说明 |
---|---|---|
应用包变化 | adb shell am broadcast -a android.intent.action.PACKAGE_ADDED | 应用安装广播 |
应用包删除 | adb shell am broadcast -a android.intent.action.PACKAGE_REMOVED | 应用卸载广播 |
应用包替换 | adb shell am broadcast -a android.intent.action.PACKAGE_REPLACED | 应用更新广播 |
开机完成 | adb shell am broadcast -a android.intent.action.BOOT_COMPLETED | 模拟开机完成 |
广播选项参数表格
目标限制选项
选项 | 说明 | 示例 |
---|---|---|
-n <组件名> | 指定接收组件 | -n com.example.app/.MyReceiver |
-f <标志> | 添加Intent标志 | -f 0x10000000 |
--receiver-permission <权限> | 要求接收者权限 | --receiver-permission android.permission.BLUETOOTH |
数据传递选项
选项 | 说明 | 示例 |
---|---|---|
-d <数据URI> | 设置数据URI | -d content://contacts/people/1 |
-t <MIME类型> | 设置MIME类型 | -t text/plain |
-e / --es <key> <value> | 添加字符串额外数据 | -e "message" "hello" |
--ez <key> <true/false> | 添加布尔值额外数据 | --ez "enabled" true |
--ei <key> <value> | 添加整数额外数据 | --ei "count" 5 |
--el <key> <value> | 添加长整数额外数据 | --el "time" 1633046400000 |
--ef <key> <value> | 添加浮点数额外数据 | --ef "price" 9.99 |