adb[-e|-d|-s<设备序列号>]<子命令>
参数 | 说明 | ||
---|---|---|---|
-e | 只运行在模拟器 | ||
-s | 运行指定的设备 | ||
-help | 列出adb帮助文件 | ||
-version | 列出adb版本 | ||
List of devices attached
192.168.213.101:5555device
//上面那串数字就是设备ID
子命令 | 参数 | 说明 |
---|---|---|
devices | [-l] | 列出所有已经连接的设备,有三种状态: device/offline/device not found |
push | < local > < remote > | 复制一个文件或者目录到设备中 |
pull | < remote > < local > | 从手机复制文件到本地 |
install | [-l -r -t -s -d]< file > | 安装apk -l:表示应用为受限应用 -r:替换已经存在的应用 -t:运行安装测试包 -s:安装到SD卡中 -d:允许安装到sd卡中 |
install-multiple | [-l -r -t -s -d -p]< file... > | 批量安装 -p:部分应用程序安装 |
uninstall | [-k]< package > | -k:保持data和cache下的文件 |
子命令 | 参数 | 说明 |
---|---|---|
wait-for-device | 无 | 等待设备连接(设备未连接之前使用) |
start-server | 无 | 开启adb服务 |
kill-server | 无 | 杀掉adb服务 |
get-state | 无 | 获取adb服务状态 offline/bootloader/device |
get-serialno | 无 | 获取SN号 |
get-devpath | 无 | 获取device-path |
status-window | 无 | 连续打印指定设备的设备状态 |
子命令 | 参数 | 说明 |
---|---|---|
bugreport | 无 | 打印当前的dumpsys、sumpstate、locat的输出 |
logcat | 命令较多 | 输出android系统日志 |
shell | 命令较多 | 进入远程shell端 |
remount | 无 | 重新挂载系统分区,使系统分区重新可写(需要root权限) |
reboot | [bootloader | recovery] | 重启 Bootloader:重启设备到bootloader状态 recovery:重启设备到recovery状态 |
reboot-bootloader | 无 | 重启到bootloader |
root | 无 | 重新启动adbd获取root身份 |
usb | 无 | 重新启动adbd来监听USB |
tcpip | < port > | 重新启动adbd来监听指定TCP端口 |
//使用该命令可以查看指定应用的实时日志
adb logcat | find "packageName"
//使用该命令后指定的应用的相关日志会导出到相应位置
adb logcat | find "packageName" >F:\test\test.txt
1)devices
//列出已连接的设备
adb devices
//列出已连接的设备,并显示状态
adb devices -l
2)push
//将C盘目录下的apktool.log复制到设备的/mnt/sdcard/目录中
adb push C:\apktool.log /mnt/sdcard/
//将C盘目录下的apktool.log复制到虚拟设备的/mnt/sdcard/目录中
adb -e push C:\apktool.log /mnt/sdcard/
3)pull
//查看模拟器设备/data/app目录下的所有文件
adb -e shell ls /data/app
//将模拟器设备/data/app目录下的test.txt文件复制到本地c盘根目录
adb -e pull /data/app/test.txt c:\
4)remount、pull、root
//在模拟器设备中重新挂载系统分区,使系统分区重新可写(需要root权限)
adb -e remount
//重新获取一下模拟器设备的root身份
adb -e root
//复制I:\com.android.cts.uiautomator.apk到/system/app中
adb push I:\com.android.cts.uiautomator.apk /system/app
5) install、uninstall
//将本地.apk文件安装到模拟器设备中
adb -e install I:\com.android.cts.uiautomator.apk
//替换掉模拟器设备中的.apk文件然后重新安装一次
adb -e install -r I:\com.android.cts.uiautomator.apk
//卸载包名为com.android.cts.uiautomator的应用,但是保留保持data和cache下的文件(可以使用"adb -e shell pm list packages "命令查看包名)
adb -e uninstall -k com.android.cts.uiautomator
//完全卸载包名为com.android.cts.uiautomator的应用。用到这个位置的话是删除data和cache下的文件的用意
adb -e uninstall com.android.cts.uiautomator
6)servers
//杀掉adb服务
adb kill-server
//启动adb服务
adb start-server
//获取真机的连接状态
adb -d get-state
//获取真机SN号
adb -d get-serialno
//获取真机的path
adb -d get-devpath
//不断获取真机的连接状态
adb -d status-window
//会列出许多真机的当前信息
adb -d bugreport
//重启真机
adb -d reboot
//重启USB,相当于重新插了一下USB设备的效果
adb -d usb
//在不插入设备的情况下输入该命令刚开始会提示找不到设备,但那是等插入设备后就可以正常安装了
adb -d install -r I:\com.android.cts.uiautomator.apk
//他会先等待你连接上设备后再进行替换安装
adb -d wait-for-device install -r I:\com.android.cts.uiautomator.apk
//等待设备连接后输出日志
adb logcat wait-for-device
子命令 | 参数 | 说明 |
---|---|---|
backup | 无 | 将应用的数据文件写入到指定的文件,在不指定-f输出目录的情况下,保持在当前目录的"backup.ab" |
[-f < file >] | 指定备份目录 | |
[-apk | -noapk] | 是否备份apk文件,默认是noapk | |
[-obb | -noobb] | 是否备份obb数据包,默认是noobb | |
[-shared | -noshared] | 是否备份SD卡共享内容,默认是noshared | |
[-all] | 备份所有已安装的应用 | |
[-system | -nosystem] | 是否备份系统应用,-all默认是包括系统应用 | |
< packages... > | 备份指定的应用列表 | |
restore | < file > | 将备份文件恢复到手机中 |
//数据备份在你本地的当前目录,比如:"C:\Users\test>adb -apk -all"里的C:\Users\test路径就是当前目录
adb -apk -all
//将当前目录的备份文件恢复到设备
adb shell -restore back.ab
子命令 | 参数 | 说明 |
---|---|---|
forward --list | 无 | 列出所有套接字连接列表 |
forward | < local > < remote > | 重定向端口 |
forward --no-rebind | < local > < remote > | 重定向端口,例如local端口已经被占用则失败 |
forward --remove | < local > | 移除本地已经连接的套接字 |
forward --remove-all | 无 | 移除本地已经连接的所有套接字 |
reverse --list | 无 | 列出所有连接设备反向的套接字 |
reverse | < remove > < local > | 反向连接套接字 |
reverse --norebind | < remove > < local > | 反向连接,加入端口已经被占用则连接失败 |
reverse --remove | < remove > | 删除一个特定的逆转套接字连接 |
reverse --remove-all | 无 | 删除所有逆转的套接字连接设备 |
a. foward系列的命令是PC端发出的
b. reverse系列的命令是设备发出的
//给设备上的monkey开辟端口1080
adb shell monkey --port 1080
//PC上的1080端口映射到设备上的1080端口(需要再打开一个新的cmd窗口)
adb forward tcp:1080 tcp1080
//连接1080端口,连接好后会弹出一个新的窗口,此时可以发送一些按键消息比如"press 3"使用完毕关掉该窗口
telent localgost 1080
//查看刚刚映射的端口是否还在
adb forward --list
//移除所有映射的端口
adb forward --remove-all
子命令 | 参数 | 说明 |
---|---|---|
connect | < host >[:< port >] | 通过TCP/IP连接到设备 如果没有指定端口号则使用5555作为默认端口 |
disconnect | < host >[:< port >] | 断开TCP/IP设备 如果没有指定端口号则使用5555作为默认端口 使用这个命令没有附加参数,将断开所有连接的TCP/IP设备 |
sync | [< directory >] | 只要文件发生改变时就会自动从主机拷贝到设备需要指定环境变量ANDROID_PRODUCT_OUT为同步目录 |
adb connect 192.168.1.104:5555
//这里的地址就是在手机端使用"netcfg"命令后显示出来的IP,5555为默认端口
//然后就可以使用adb的其他命令对手机进行操作了