目录
一、设备相关的指令
操作 | 命令 | 说明 |
---|---|---|
查看设备 | 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 |
修改文件所有者 | chown system:system file |
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 |
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 |
六、应用安装和应用卸载
应用安装命令汇总
安装方法 | 命令格式 | 示例 | 说明 & 适用场景 |
---|---|---|---|
基本安装 | 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 |