上一篇介绍的am,pm命令都是基于adb shell下的命令。这节来详细介绍下adb命令。

Android Debug Bridge(adb)是一个让你跟模拟器或者android设备通信的多功能命令。它是一个包含三个组件的client-server程序:

1、运行在你开发机器上的adb client,你能从shell中通过adb命令调用一个adb client,另外ADT插件和DDMS都是使用了adb client功能。

2、运行在你开发机器上的一个adb server,该adb server作用在于维护adb client和adb daemon之间的通信。

3、运行在模拟器或者android设备后台的adb daemon。

adb tool在<sdk>/platform-tools/目录下。

当你启动一个adb client的时候,adb client会去检查开发机器上是否已经运行了adb server进程,如果没有,它会去启动adb server。当adb server启动后,adb server绑定本地 TCP5037端口,然后监听从adb client发过来的adb命令。所有的adb client都是通过5037端口跟adb server通信。

adb server要跟所有运行在开发机器上的模拟器或者android设备建立连接。它通过扫描5555-5585之间的所有奇数端口查找模拟器或者android设备。adb server扫描到每个adb daemon都会建立跟其的相关端口的绑定。既然每个模拟器或者android设备都获取到一对有序的端口(一个偶数console连接端口和一个奇数adb连接端口)如下:Emulator1, console:5554 Emulator1, adb:5555;Emulator2, console:5556 Emulator2, adb:5557;依此类推。同样的,如果一个模拟器连接adb的商品为5555,那么连接console的端口就是5554。

当adb server跟模拟器或者android设备连接成功后,你就可以通过adb命令(或者脚本)去访问该模拟器或android设备。

注意:连接一个android4.2.2以上的android设备的时候,系统会通过一个对话框提示询问是否接受一个RSA密钥允许通过开发机器的调试。这种安全机制保护用户设备,让adb命令不能执行。除非你能解锁该android设备并确认询问对话框,当然,这在adb1.0.31以上的版本(SDK Platform-tools16.0.1以上)是可以实现的。

你可以在开发机器上的命令行或者脚本执行adb命令。如:

adb [-d|-e|-s <serialNumber>] <command>

如果你的开发机器上只运行了一个模拟器或者android设备,那么adb命令将默认发送到该模拟器或者android设备上执行。如果运行了多个模拟器或者android设备,那么你要使用-d,-e或者-s参数去指定执行adb命令的模拟器或者android设备。以下是相关参数或命令的用法:

-d :将adb命令指向唯一连接到开发机器上的android设备,如果开发机器上连接了多个android设备将返回提示错误。

-e :将adb命令指向唯一的模拟器。

-s <serialNumber>:将adb命令指向具体的android设备(如:emulator-5556)

devices :查询所有连接到开发机器上的android设备。

help :帮助命令。

version : 版本查询。

logcat [option] [filter-specs] :打印log信息。

jdwp :有效的JDWP进程列表。

install <path-to-apk> : 安装apk到指定的设备。

pull <remote> <local> :复制文件到开发机器上的指定位置。

push <local> <remote> :复制文件到指定的android设备。

adb(Android Debug Bridge)(一)的更多相关文章

  1. 用ADB(Android Debug Bridge)实时监测Android程序的运行

      监控Android设备上程序的运行,需要ADB的配合,具体ADB工具的介绍以及命令选项可见博客: http://blog.csdn.net/mliubing2532/article/details ...

  2. adb ( Android Debug Bridge)

    adb ( Android Debug Bridge) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. adb工具的工 ...

  3. [ADB]ADB(Android Debug Bridge)简介及基础(不包含命令)

    "Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an ...

  4. C语言基础课程 第三课 ADB(Android Debug Bridge)的使用

     由于前面已经发布过Linux的博客了 基础班将Linux基础命令就不单独发表博客了,本节课主要就是利用adb连接手机进行一个Linux基本命令的复习.而且熟悉手机的底层运作,不用界面操作照样也能 ...

  5. adb Android Debug Bridge 安卓调试桥

    adb devices 获取设备列表及设备状态 adb get-state 获取设备的状态,设备的状态有 3 钟,device , offline , unknown device:设备正常连接 of ...

  6. [ADB Shell]Android Debug Bridge常用命令

    ADB用法 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...

  7. adb(android debug bridge)命令

    adb(android debug bridge) adb devices --查看当前连接的模拟器/设备 adb remount --模拟器/设备重新启动,保证能用 adb push src des ...

  8. Android Debug Bridge

    Android Debug Bridge Introduction     Android Debug Bridge (adb) is a versatile command line tool th ...

  9. Android Debug Bridge命令介绍[转]

    Android Debug Bridge命令介绍 Android Debug Bridge的一些基本命令.这个工具直译过来就是Android调试桥的意思.它提供了强大的特性,例如复制文件到设备或从设备 ...

随机推荐

  1. BZOJ 2142 礼物 组合数学 CRT 中国剩余定理

    2142: 礼物 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1450  Solved: 593[Submit][Status][Discuss] ...

  2. Codeforces Round #352 (Div. 1) B. Robin Hood 二分

    B. Robin Hood 题目连接: http://www.codeforces.com/contest/671/problem/B Description We all know the impr ...

  3. centos配置虚拟主机virtualhost,让服务器支持多网站多域名(转)

    如何让centos(redhat)配置虚拟主机,让服务器支持多个网站,针对Apache,只需要你修改apache配置文件/etc/httpd/conf/httpd.conf即可. 里面有个exampl ...

  4. A profile to detect when a SMS database has been changed

    http://webmail.dev411.com/t/gg/tasker/12bdddbsak/a-profile-to-detect-when-a-sms-has-been-sent A bela ...

  5. UCS UTF UTF-7 UTF-8 UTF-16

    Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案.Unicode的学名是"Universal Multiple-Octet Coded Cha ...

  6. THE CUSTOMISER

    http://www.wanga.com/cu.php The Customiser incorporates all of the features of Magic Mouse. It also ...

  7. 微软Silverlight欲攻占iPhone和Android手机

    微软日前表示,该公司正在努力把Silverlight视频技术引入手机市场.微软Silverlight视频技术被誉为“Flash杀手”,该公司前不久刚发布了Silverlight 2.0版. 尽管说苹果 ...

  8. 解决sqlite删除数据或者表后,文件大小不变的问题

    原因分析: sqlite采用的是变长纪录存储,当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的"空闲列表"中用于存储你下次插入的数据,用于提高效率,磁盘空间并没有丢 ...

  9. 经典数独游戏+数独求解器—纯C语言实现

    "心常乐数独小游戏"(下面简称"本软件")是一款windows平台下的数独游戏软件. 本软件是开源.免费软件. 本软件使用纯C语言编写,MinGW编译,NSIS ...

  10. nginx配置location总结

    location匹配顺序 "="前缀指令匹配,如果匹配成功,则停止其他匹配 普通字符串指令匹配,顺序是从长到短,匹配成功的location如果使用^~,则停止其他匹配(正则匹配) ...