android adb介绍

1. 什么是adb

在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB,ADB的全称为Android Debug Bridge,就是调试桥的作用。借助这个工具,我们可以管理设备或手机模拟器的状态 ,还可以进行以下的操作:

(1)快速更新设备或手机模拟器中的代码,如应用或Android系统升级;

(2)在设备上运行Shell命令;

(3)管理设备或手机模拟器上的预定端口;

(4)在设备或手机模拟器上复制或粘贴文件。

官网如下说:

Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It is a client-server program that includes three components:

  • A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
  • A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
  • A daemon, which runs as a background process on each emulator or device instance.

You can find the adb tool in <sdk>/platform-tools/.

When you start an adb client, the client first checks whether there is an adb server process already running. If there isn‘t, it starts the server process. When the server starts, it binds to local TCP port 5037 and listens for commands sent from adb clients—all adb clients use port 5037 to communicate with the adb server.

The server then sets up connections to all running emulator/device instances. It locates emulator/device instances by scanning odd-numbered ports in the range 5555 to 5585, the range used by emulators/devices. Where the server finds an adb daemon, it sets up a connection to that port. Note that each emulator/device instance acquires a pair of sequential ports — an even-numbered port for console connections and an odd-numbered port for adb connections. For example:

Emulator 1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557
and so on...

As shown, the emulator instance connected to adb on port 5555 is the same as the instance whose console listens on port 5554.

Once the server has set up connections to all emulator instances, you can use adb commands to access those instances. Because the server manages connections to emulator/device instances and handles commands from multiple adb clients, you can control any emulator/device instance from any client (or from a script).

2. 启动adb

我使用adb安装apk时,提示:

adb server is out of date.  killing...
ADB server didn‘t ACK
* failed to start daemon *

原因上,电脑上安装的手机助手占用了adb的端口5037,所以adb启动不起来。如果可以退出手机助手,且插上手机后助手也不会霸占adb的端口,倒是可以保留。无奈,我PC上的手机助手做不到,我只能卸之。卸载后就OK了,命令行下adb操作就能启动adb server了。如果需要安装ios包,可以使用itools。试用了下,不会引起以上问题。

使用adb时,需开启android的debug模式。

时间: 2024-10-13 20:49:15

android adb介绍的相关文章

Android bluetooth介绍(二): android 蓝牙代码架构及其uart 到rfcomm流程

关键词:蓝牙blueZ  UART  HCI_UART H4  HCI  L2CAP RFCOMM  版本:基于android4.2之前版本 bluez内核:linux/linux3.08系统:android/android4.1.3.4作者:xubin341719(欢迎转载,请注明作者,请尊重版权谢谢)欢迎指正错误,共同学习.共同进步!!一.Android Bluetooth Architecture蓝牙代码架构部分(google 官方蓝牙框架) Android的蓝牙系统,自下而上包括以下一些

Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析

关键词:蓝牙blueZ  A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_get_properties.AUDIO.DBUS版本号:基于android4.2之前版本号 bluez内核:linux/linux3.08系统:android/android4.1.3.4作者:xubin341719(欢迎转载.请注明作者.请尊重版权谢谢)欢迎指正错误.共同学习.共同进步!! 參考

Android ADB server didn&#39;t ACK * failed to start daemon * 简单有效的解决方案 (转)

转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9401981 ADB server didn't ACK 这个问题会困恼很多的新手朋友,我以前刚开始做Android的时候也遇到过这个问题,不过自己百度,google啥的,也不知道怎么就给解决了,看到群里很多新手朋友都会问这个问题,说实话我也没有一个解决这个问题的终极方法(百试百灵的那种,哈哈),自己没遇到也没有认真的去对待他,今天,就是在今天,我打开Eclipse连上手机,准备调试程

android adb 的各种使用方式详解

这篇文章主要介绍在windows 程序中使用adb 的方法,不介绍adb 的命令. 1) 启动adb 进程,从管道获取输出. 这种方式的弊端有多少,我也不知道,反正就是各种问题吧.但是目前我问过很多朋友,他们都是这么做的,因为这种方法最简单.弊端我列举一下 1) 每次执行一个adb 命令都要启动一个adb 进程,速度太慢,好像就是很不爽 2)  偶尔发现进程管理器中有N 多个adb 进程,然后就卡了. 3)  从管道获取输出,在很多情况下会发现adb 卡死了,进程退不出来. 4)  曾经发现 a

The connection to adb is down, and a severe error has occured. Android ADB server didn&#39;t ACK * failed to start daemon. 解决方案

ADB server didn't ACK 这个问题会困恼很多的新手朋友,我以前刚开始做Android的时候也遇到过这个问题,不过自己百度,google啥的,也不知道怎么就给解决了,看到群里很多新手朋友都会问这个问题,说实话我也没有一个解决这个问题的终极方法(百试百灵的那种,哈哈),自己没遇到也没有认真的去对待他,今天,就是在今天,我打开Eclipse连上手机,准备调试程序,出现如下的信息 The connection to adb is down, and a severe error has

Android平台介绍

一.Android平台介绍 什么是智能手机 具有独立的操作系统,独立的运行空间,可以由用户自行安装软件.游戏.导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称. 智能手机操作系统 Android.IOS.Windows Phone.BlackBerry.Symbian 什么是Android Android是一种基于Linux的开源操作系统,主要使用于移动设备,例如智能手机.平板电脑.智能手表.智能电视等等.由Google公司和开放手机联盟领导及开发.Android操作

Eclipse下ADB报错:Android ADB server didn&#39;t ACK,解决办法

转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9401981 ADB server didn't ACK 这个问题会困恼很多的新手朋友,我以前刚开始做Android的时候也遇到过这个问题,不过自己百度,google啥的,也不知道怎么就给解决了,看到群里很多新手朋友都会问这个问题,说实话我也没有一个解决这个问题的终极方法(百试百灵的那种,哈哈),自己没遇到也没有认真的去对待他,今天,就是在今天,我打开Eclipse连上手机,准备调试程

【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析

原文网址:http://blog.csdn.net/xubin341719/article/details/38584469 关键词:蓝牙blueZ  A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_get_properties.AUDIO.DBUS版本:基于android4.2之前版本 bluez内核:linux/linux3.08系统:android/android4

Android ADB工具-管理设备 app(二)

Android ADB工具-管理设备 app(二) 标签(空格分隔): Android 4.管理设备 app 命令 功能 adb install [-r|-s] <apkfile> 安装 apk 文件 adb uninstall [-k] <packagename> 卸载 app adb shell top [-m <number>] 查看内存占用情况 adb shell ps 查看进程列表 adb shell kill <pid> 杀死一个进程 adb s