zoukankan      html  css  js  c++  java
  • Android Debug Bridge

    Android Debug Bridge

      ADB lets you communicate with an emulator instance or connected Android-powered device. ADB 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.

      adb-server使用5037作为接口,接收所有client的请求。

      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...

      偶数用于console连接,奇数用于adb连接

      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).

    Enabling adb Debugging

      In order to use adb with a device connected over USB, you must enable USB debugging in the device system settings, under Developer options.

    命令定向

      

      

      -s 的参数使用devices命令来获得。

      

    Querying for Emulator/Device Instances

      输入 adb devices后,In response, adb prints this status information for each instance:

    • Serial number — A string created by adb to uniquely identify an emulator/device instance by its console port number. The format of the serial number is <type>-<consolePort>. Here's an example serial number: emulator-5554
    • State — The connection state of the instance may be one of the following:
      • offline — the instance is not connected to adb or is not responding.
      • device — the instance is now connected to the adb server. Note that this state does not imply that the Android system is fully booted and operational, since the instance connects to adb while the system is still booting. However, after boot-up, this is the normal operational state of an emulator/device instance.
      • no device — there is no emulator/device connected.

      Here's an example showing the devices command and its output:

      

    Installing an Application

      

    参考:

    1、http://developer.android.com/tools/help/adb.html

    2、http://android.xsoftlab.net/tools/help/adb.html

  • 相关阅读:
    Spring Bean的生命周期
    Java中的Object类
    Java线程池七个参数
    ROS 第五讲 在模拟器中构建第一个机器人
    ROS 第四讲 让小车在RViz与Gazebo模拟器中跑起来
    ROS 第三讲 操控小乌龟
    ROS 第二讲 基本操作
    ROS 第一讲 引入
    自然语言处理(二) 新词发现或非监督词典构建
    递归找到一个复杂对象中的某个值和它的最小层级
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3997081.html
Copyright © 2011-2022 走看看