ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.
//连接设备
adb connect xxxx.xxx.xxx.xx:xxxx
//进入设备
adb shell
//进入安卓app目录下
cd system/app
//将一个apk 推送到app目录下
adb push <本地路径> <远程路径>
//删除apk,需要进入安卓app目录
rm xxx.apk
//查看设备
adb devices
//安装apk
adb install xxx.apk
//卸载apk
adb uninstall <软件名>
adb uninstall -k <软件名>
//下载文件
adb pull <远程路径> <本地路径>
//显示帮助信息
adb help
//手机数据线连接:
adb remount
一个表格:
Category | Command | Description | Comments |
Options | -d | 仅仅通过USB接口来管理abd | 如果不只是用USB接口来管理则返回错误 |
-e | 仅仅通过模拟器实例来管理adb | 如果不是仅仅通过模拟器实例管理则返回错误 | |
-s <serialNumber> | 通过模拟器/设备的允许命令号码来发送命令来管理adb (如“emulator-5556″) | 如果没有指定号码,则会报错 | |
General | devices | 查看所有连接模拟器/设备的设施的清单 | 查看Querying for Emulator/Device Instances获取更多相关信息 |
help | 查看adb所支持的所有命令 | ||
version | 查看adb的版本序列号 | ||
Debug | logcat [<option>] [<filter-specs>] | 将日志数据输出到屏幕上 | |
bugreport | 查看bug的报告,如dumpsys ,dumpstate ,和logcat信息 | ||
jdwp | 查看指定设施的可用的JDWP信息 | 可以用forward jdwp:<pid>端口映射信息来连接指定的JDWP进程,例如: | |
Data | install <path-to-apk> | 安装Android为(可以模拟器/设施的数据文件.apk指定完整的路径) | |
pull <remote> <local> | 将指定的文件从模拟器/设施拷贝到计算机上 | ||
push <local> <remote> | 将指定的文件从计算机上拷贝到模拟器/设备中 | ||
Ports and Networking | forward <local> <remote> | 用本地指定的端口通过Socket方法远程连接模拟器/设施 | 端口需要描述下列信息:
|
ppp <tty> [parm]… | 通过USB运行ppp:
需要提醒的不能自动启动PDP连接 | ||
Scripting | get-serialno | 查看adb实例的序列号 | 查看Querying for Emulator/Device Instances可以获得更多信息 |
get-state | 查看模拟器/设施的当前状态 | ||
wait-for-device | 如果设备不联机就不让执行,也就是实例状态是device时 | 可以提前把命令转载在adb的命令器中,在命令器中的命令在模拟器/设备连接之前是不会执行其他命令的,示例如下: adb wait-for-device shell getprop 需要提醒的是,这些命令在所有的系统启动起来之前是不会启动adb的,所以在所有的系统启动起来之前也不能执行其他的命令,例如,运用install的时候就需要Android包,这些包需要系统完全启动,例如: adb wait-for-device install <app>.apk 上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生 | |
Server | start-server | 选择服务是否启动adb服务进程 | |
kill-server | 终止adb服务进程 | ||
Shell | shell | 通过远程Shell命令来控制模拟器/设备实例 | 查看获取更多信息for more information |
shell [<shellCommand>] | 连接模拟器/设施执行Shell命令,执行完毕后退出远程Shell端l |