ADB命令详解

 

概述

adb(Android debug bridge),用于管理模拟器或真机。包括三个部分:adb客户端(PC上),adb服务器(PC上),adbd(模拟器或真机上)。网上看到下图,贴上来

  运行adb客户端时,会检测adb服务器进程时候运行,如果没有运行,启动服务器。当服务器启动时,会绑定到本地的TCP5037端口。并且监听从adb客户端发来的命令。

说明:可以通过 adb start-server启动服务,通过adb kill-server停止服务。

  adb服务器与所有正在运行的模拟器和真机连接。它通过扫描5555—5585之间的奇数端口来搜索模拟器或真机,一旦发现adb守护进程,就通过此端口进行连接。需要说明的是,每一个模拟器或真机使用一对端口,奇数端口用于adb连接,偶数端口用于控制台连接。

  如果模拟器与adb在5555端口连接,则控制台的连接端口将是5554.

 

Android 命令

  使用Android命令的前提条件,一定要将sdk\tools目录放到环境变量中。

  使用android -h获取帮助信息。android list device和adb devices输出的内容不一致,应该是android输出的并不是已经运行的设备,而是其能创建虚拟机的设备列表,使用eclipse创建虚拟机的时候,可以选择的那个列表。另外android命令执行的时间比较长。android命令没有特别去操作,只是在网上看到很多人写的博客中都有android命令,但是自己用的时候却提示不是内部或外部命令。所以将使用android命令的前提写出来。

  android包含很多子命令。可以通过以下方式查看子命令的帮助信息:

  例如查看创建模拟器子命令的帮助信息:android -h create avd

  在sdk\tools目录中,不止有android命令。还有ddms等命令,可以操作一下试试。

 

ADB常用命令

  adb version 查看adb版本

  adb install [-lrtsdg] <file> 安装app

  adb install-multiple [-lrtsdpg] <file ... >

  adb uninstall [-k] <pakage> 卸载app

  adb push <local> <remote> 从PC拷贝东西到设备上

  adb pull <remote> <local> 从设备拷贝东西到PC上

  adb logcat 设备的日志

  adb bugreport 查看bug报告

  adb jdwp

  adb sync [<directory>] 

  adb shell 进入设备的shell命令

  adb emu

  adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [<packages ... >]

  adb restore

  adb disable-verity

  adb enable-verity

  adb keygen <file>

  adb forward <local> <remote> 将特定端口上的请求转发到模拟器或手机的指定端口上。

  adb forward --no-rebind <local> <remote>  

  adb forward --list  

  adb forward --remove <local>

  adb forward --remove-all

  adb reverse <remote> <local>

  adb reverse --norebind <remote> <local>

  adb reverse --list

  adb reverse --remove <remote>

  adb reverse --remove-all

 

 

 

 

连接设备相关:

  adb -a 命令针对所有的设备,需要与命令一起使用,例如 adb -a push <local> <remote>

  adb -d 命令针对真机,需要与命令一起使用。如果有多个模拟器或手机,当使用adb命令的时候就需要指定目标设备。

  adb -e 命令针对虚拟机,需要与命令一起使用。如果有多个模拟器或手机,当使用adb命令的时候就需要指定目标设备。

  adb -s <specific device> 命令针对指定设备,需要与命令一起使用。如果有多个模拟器或手机,当使用adb命令的时候就需要指定目标设备。

  adb -p <product name or path>

  adb -H 访问其他机器上的adb service

  adb -P 访问其他机器上的adb service

  adb devices [-l] 列出所有的设备,实际列出的就是设备的serialnumber,可以通过-s指定列出的serialNumber找到对应的设备

  adb connect <host>[:<port>] 

  adb disconnect[<host>[:<port>]] 

  

 

scripting :

  adb wait-for-device

  adb start-server 启动adb server

  adb kill-server 停止adb server

  adb get-state 列出设备状态: offline | bootloader | device

  adb get-serialno 列出设备的serial number

  adb get-devpath 

  adb remount 从新挂载系统分区,使其可写(system、vendor、oem目录)

  adb reboot [bootloader|recovery] 

  adb reboot sideload

  adb reboot sideload-auto-reboot

  adb sideload <file>

  adb root  重启adbd并获得root权限

  adb unroot  重启adbd并释放root权限

  adb usb

  adb tcpip <port>

 

 

Android系统对应的命令(部分为linux命令)

adb shell am start -n <package_name>/.<activity_class_name>  // 启动应用

adb shell top        // 查看设备cpu和内存占用情况
adb shell top -m 6     // 查看占用内存前6的app
adb shell top -n 1    // 刷新一次内存信息,然后返回
adb shell procrank     // 查询各进程内存使用情况
adb shell kill [pid]    // 杀死一个进程
adb shell ps        // 查看进程列表
adb shell ps -x [PID]    // 查看指定进程状态

adb shell service list   // 查看后台services信息

 

emulator命令

可以使用emulator命令启动模拟器。

emulator -avd <avd名称>

emulator -data 镜像文件名称

 

连接真机的两种方式

  可以通过两种方式连接真机,通过usb连接,也可以通过局域网连接,如下图所示。通过局域网连接的方式需要使用命令adb connect <host>[:<port>],断开连接的方式 adb disconnect[<host>[:<port>]]

  

 

posted @ 2016-02-24 14:06  环游世界  阅读(9160)  评论(0编辑  收藏  举报