• adb——Android的ADB工具使用


    一、定义与作用:

     ADB全称Android Debug Bridge, 就是起到调试桥的作用。是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备,默认情况下当我们运行Eclipse时adb进程就会自动运行。当然我们也可以在外部使用本身自带的一些命令,进行操控模拟器或者真实的设备。adb一般位于<sdk>/platform-tools/目录下,其中<sdk>是android sdk的安装目录。它的主要功能有: 

    (1)快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
    (2)在设备上运行Shell命令;
    (3)管理设备或手机模拟器上的预定端口;

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

    二、配置环境变量:

        1,打开环境变量配置窗口。右击计算机,属性-高级系统设置-环境变量。

          2.下面你可以建一个单独的变量,也可以直接在path后面直接追加,主要是个人习惯吧。要注意的是一定要指定目录为:D:AndroidAndroid-sdks ools。这是我的目录

          3.编辑成功运行的结果如下图:


    三、代码的使用

    1、

    adb version           版本信息 

    C:UsersAdministrator>adb version
    Android Debug Bridge version 1.0.31

    2、

    安装与卸载应用
    可以通过install命令来从development computer安装一个应用到emulator/device上。
    usage: adb install <path_of_apk>

    通过uninstall命令可以卸载已经安装的软件。
    1.usage: adb uninstall name-of-app-package
    其中name-of-app-package是/data/data目录下的安装包。

    2.手动删除

    adb shell
    cd /data/app
    rm app.apk

    3、

    .复制文件

    可以使用adb pull ,push 命令将文件复制到一个模拟器/设备实例的数据文件或是从数据文件中复制。install 命令只将一个apk文件复制到一个特定的位置,与其不同的是,pull 和 push 命令可让用户复制任意的目录和文件到一个模拟器/设备实例的任何位置。

    从模拟器或者设备中复制文件或目录,使用如下命:

    adb pull <remote> <local>

    将文件或目录复制到模拟器或者设备,使用如下命令:

    adb push <local> <remote>

    在这些命令中, <local> 和<remote> 分别指通向自己的发展机(本地)和模拟器/设备实例(远程)上的目标文件/目录的路径

    下面是一个例子::

    adb push foo.txt /sdcard/foo.txt

    4、

     从电脑上发送文件到设备
      adb push <本地路径> <远程路径>
      用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

    5、

    从设备上下载文件到电脑
      adb pull <远程路径> <本地路径>
      用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

    6、

    查看设备
      adb devices
      这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

    7、adb logcat 使用logcat命令

    8、

    过滤日志输出

    每一个输出的Android日志信息都有一个标签和它的优先级.

    • 日志的标签是系统部件原始信息的一个简要的标志。(比如:“View”就是查看系统的标签).
    • 优先级有下列集中,是按照从低到高顺利排列的:
      • V — Verbose (lowest priority)
      • D — Debug
      • I — Info
      • W — Warning
      • E — Error
      • F — Fatal
      • S — Silent (highest priority, on which nothing is ever printed)

    9、

    控制日志输出格式

    日志信息包括了许多元数据域包括标签和优先级。可以修改日志的输出格式,所以可以显示出特定的元数据域。可以通过 -v 选项得到格式化输出日志的相关信息.

    • brief — Display priority/tag and PID of originating process (the default format).
    • process — Display PID only.
    • tag — Display the priority/tag only.
    • thread — Display process:thread and priority/tag only.
    • raw — Display the raw log message, with no other metadata fields.
    • time — Display the date, invocation time, priority/tag, and PID of the originating process.
    • long — Display all metadata fields and separate messages with a blank lines.

    当启动了logcat ,你可以通过-v 选项来指定输出格式:

    [adb] logcat [-v <format>]

    下面是用 thread 来产生的日志格式:

    adb logcat -v thread

    需要注意的是你只能-v 选项来规定输出格式 option.

    10、

    启动shell命令

    Adb 提供了shell端,通过shell端你可以在模拟器或设备上运行各种命令。这些命令以2进制的形式保存在本地的模拟器或设备的文件系统中:

    /system/bin/...

    不管你是否完全进入到模拟器/设备的adb远程shell端,你都能 shell 命令来执行命令.

    当没有完全进入到远程shell的时候,这样使用shell 命令来执行一条命令:

    adb [-d|-e|-s {<serialNumber>}] shell <shellCommand>

    在模拟器/设备中不用远程shell端时,这样使用shell 命 :

    adb [-d|-e|-s {<serialNumber>}] shell

    通过操作CTRL+D 或exit 就可以退出shell远程连接.

    下面一些就将告诉你更多的关于shell命令的知识.

    adb 命令表

    下列表格列出了adb支持的所有命令,并对它们的意义和使用方法做了说明.

    Category

    Command

    Description

    Comments

    Options

    -d

    仅仅通过USB接口来管理abd

    如果不只是用USB接口来管理则返回错误

    -e

    仅仅通过模拟器实例来管理adb

    如果不是仅仅通过模拟器实例管理则返回错误

    -s <serialNumber>

    通过模拟器/设备的允许命令号码来发送命令来管理adb (如“emulator-5556″)

    如果没有指定号码,则会报错

    General

    devices

    查看所有连接模拟器/设备的设施的清单

    查看 Querying for Emulator/Device Instances 获取更多相关信息

    help

    查看adb所支持的所有命令

     

    version

    查看adb的版本序列号

     

    Debug

    logcat [<option>] [<filter-specs>]

    将日志数据输出到屏幕上

     

    bugreport

    查看bug的报告,如dumpsys ,dumpstate ,和logcat 信息

     

    jdwp

    查看指定设施的可用的JDWP信息

    可以用 forward jdwp:<pid>端口映射信息来连接指定的JDWP进程,例如:
    adb forward tcp:8000 jdwp:472
    jdb -attach localhost:8000

    Data

    install <path-to-apk>

    安装Android为(可以模拟器/设施的数据文件.apk指定完整的路径)

     

    pull <remote> <local>

    将指定的文件从模拟器/设施拷贝到计算机上

     

    push <local> <remote>

    将指定的文件从计算机上拷贝到模拟器/设备中

     

    Ports and Networking

    forward <local> <remote>

    用本地指定的端口通过Socket方法远程连接模拟器/设施

    端口需要描述下列信息:

    • tcp:<portnum>
    • local:<UNIX domain socket name>
    • dev:<character device name>
    • jdwp:<pid>

    ppp <tty> [parm]…

    通过USB运行ppp:

    • <tty> — the tty for PPP stream. For exampledev:/dev/omap_csmi_ttyl.
    • [parm]… &mdash zero or more PPP/PPPD options, such as defaultroute ,local , notty , etc.

    需要提醒的不能自动启动PDP连接

     

    Scripting

    get-serialno

    查看adb实例的序列号

    查看 Querying for Emulator/Device Instances 可以获得更多信息

    get-state

    查看模拟器/设施的当前状态

    wait-for-device

    如果设备不联机就不让执行,也就是实例状态是 device 时

    可以提前把命令转载在adb的命令器中,在命令器中的命令在模拟器/设备连接之前是不会执行其他命令的,示例如下:

    adb wait-for-device shell getprop

    需要提醒的是,这些命令在所有的系统启动起来之前是不会启动adb的,所以在所有的系统启动起来之前也不能执行其他的命令,例如,运用install 的时候就需要Android包,这些包需要系统完全启动,例如:

    adb wait-for-device install <app>.apk

    上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生

    Server

    start-server

    选择服务是否启动adb服务进程

     

    kill-server

    终止adb服务进程

     

    Shell

    shell

    通过远程Shell命令来控制模拟器/设备实例

    查看获取更多信息 for more information

    shell [<shellCommand>]

    连接模拟器/设施执行Shell命令,执行完毕后退出远程Shell端l

  • 相关阅读:
    centos7.3部署memcached服务
    tomcat一闪而过,无法开启
    Windows系统因“CredSSP加密Oracle修正”无法远程连接
    猴子和打字机
    特修斯之船
    爱因斯坦的光线
    10个著名的思想实验(2)
    10个著名的思想实验1
    快速排序
    快速排序的c++实现
  • 原文地址:https://www.cnblogs.com/meiwei101/p/3985657.html
Copyright © 2020-2023  润新知