adb(Android Debug Bridge)(一)
上一篇介绍的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)(一)的更多相关文章
- 用ADB(Android Debug Bridge)实时监测Android程序的运行
		
监控Android设备上程序的运行,需要ADB的配合,具体ADB工具的介绍以及命令选项可见博客: http://blog.csdn.net/mliubing2532/article/details ...
 - adb ( Android Debug Bridge)
		
adb ( Android Debug Bridge) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. adb工具的工 ...
 - [ADB]ADB(Android Debug Bridge)简介及基础(不包含命令)
		
"Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an ...
 - C语言基础课程 第三课 ADB(Android Debug Bridge)的使用
		
 由于前面已经发布过Linux的博客了 基础班将Linux基础命令就不单独发表博客了,本节课主要就是利用adb连接手机进行一个Linux基本命令的复习.而且熟悉手机的底层运作,不用界面操作照样也能 ...
 - adb  Android Debug Bridge  安卓调试桥
		
adb devices 获取设备列表及设备状态 adb get-state 获取设备的状态,设备的状态有 3 钟,device , offline , unknown device:设备正常连接 of ...
 - [ADB Shell]Android Debug Bridge常用命令
		
ADB用法 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...
 - adb(android debug bridge)命令
		
adb(android debug bridge) adb devices --查看当前连接的模拟器/设备 adb remount --模拟器/设备重新启动,保证能用 adb push src des ...
 - Android Debug Bridge
		
Android Debug Bridge Introduction Android Debug Bridge (adb) is a versatile command line tool th ...
 - Android Debug Bridge命令介绍[转]
		
Android Debug Bridge命令介绍 Android Debug Bridge的一些基本命令.这个工具直译过来就是Android调试桥的意思.它提供了强大的特性,例如复制文件到设备或从设备 ...
 
随机推荐
- 【原】不定义Order属性,通过切面类的定义顺序来决定通知执行的先后顺序
			
[结论] 在多个切面类的“切入点相同”并且每个切面都“没有定义order属性”的情况下,则切面类(中的通知)的执行顺序与该切面类在<aop:config>元素中“声明的顺序”相关,即先声明 ...
 - [MSDN] Windows Server 2012 R2 简/繁/英下载
			
Windows Server 2012 R2 Chinese-Simplified ISO SHA1-------------------------------------------------- ...
 - 使用jQuery异步传递Model到控制器方法,并异步返回错误信息
			
需要通过jquery传递到控制器方法的Model为: public class Person { public string Name { get; set; } public int Age { g ...
 - 咏南WEB框架群集
			
咏南WEB框架群集 咏南WEB框架支持群集部署,支持负载均衡和自动故障转移. 咏南WEB群集部署在阿里云服务器上面. 在线测试:http://47.106.93.126:9999/
 - Android开发FAQ集锦!!!
			
.Android SDK应该从什么地方下载?为什么(http://developer.Android.com/ )经常上不上去? 答:谷歌官网的 (http://developer.Android.c ...
 - 在Windows Phone项目中调用C语言DLL
			
在Windows Phone项目中调用C语言写的DLL 最近接到一个需求,需要在WP里调用一个C语言写的DLL,并且说Android和iOS都可以,问我WP是否可以这样? 我说我调研一下,就有了下面的 ...
 - 单独配置secondarynamenode
			
一.配置说明 这是在我之前yarn框架上通过加入节点,改动相关的配置文件,使得secondarynamenode独立出来的,所以这里前期的一系列琐碎配置请參考我之前的博客: http://blog.c ...
 - .NET:事务、并发、并发问题、事务隔离级别、锁等相关资料整理
			
这里面的有三篇文章,必须要读读:http://technet.microsoft.com/en-us/library/ms189130(v=sql.105).aspx. 这里有一个系列,我还没有读:h ...
 - python测试开发django-8.windows系统安装mysql8教程
			
前言 MySQL 是最流行的关系型数据库管理系统,可以在本地搭建一个mysql的环境,便于学习. windows7/windows10 mysql-8.0.11-winx64 下载安装包 mysql的 ...
 - DELIMITER关键词作用 替换结束符号
			
注意:“DELIMITER //”语句的作用是将MYSQL的结束符设置为//,因为MYSQL默认的语句结束符为分号;,为了避免与存储过程 中SQL语句结束符相冲突,需要使用DELIMITER 改变存储 ...