Android adb 命令~图解

做了这么长时间的开发与管理,在命令上总是自见则过,往往却忽视了在其命令上的分享过程,所以现在稍微有点时间就把其命令的相关操作来简单的扫盲一番吧,也系统通过这种方式去授之以渔而不是鱼,好了,我以图解的方式来展示,当然我的习惯就是任何东西先看帮助文档或者命令,就今天我们这里要讲解的ADB命令在命令行中可以通过命令帮助来进行详细了解,废话不多说,先上图吧:





以上为使用help来显示其相关的命令使用说明,当然那个如果你的英文足够好的话,其实这些都很简单,当然,如你不太习惯去看这些英文描述的话,那接下来就由我来帮助处理这样的问题吧,好了,我就以最初始的理解方式来进行翻译与讲解吧,OK:

Android Debug Bridge version 1.0.29
这是关于Android调试牌的1.0.29版本

 -d                            - directs command to the only connected USB device

通过这个直接的命令仅仅是去连接USB设备
                                 returns an error if more than one USB device is present.

如果有多个USB设备同时出现的时候就会返回一个错误信息
 -e                            - directs command to the only running emulator.

直接使用这个命令符号来运行模拟器
                                 returns an error if more than one emulator is running.

如果存在多个模拟器同时运行时会在当前返回一个错误信息
 -s <serial number>            - directs command to the USB device or emulator with

                                 the given serial number. Overrides ANDROID_SERIAL
                                 environment variable.

通过这个直接的命令去展示其USB设备或者模拟器的序列号,彼此覆盖时会使其环境变量是可变的
 -p <product name or path>     - simple product name like 'sooner', or
                                 a relative/absolute path to a product
                                 out directory like 'out/target/product/sooner'.
                                 If -p is not specified, the ANDROID_PRODUCT_OUT
                                 environment variable is used, which must
                                 be an absolute path.

通过此命令显示其产品的名称,如"sooner",或者是相对与绝对的产品输出路径像"out/target/product/sooner",如果 -p没有指定的话,就会使用ANDROID_PRODUCT_OUT的环境变量,但必须是一个绝对路径.
 devices                       - list all connected devices

通过此命令可以列出所有已经连接的设备
 connect <host>[:<port>]       - connect to a device via TCP/IP
                                 Port 5555 is used by default if no port number is specified.

通过TCP/IP的默认端口5555来连接设备
 disconnect [<host>[:<port>]]  - disconnect from a TCP/IP device.
                                 Port 5555 is used by default if no port number is specified.
                                 Using this command with no additional arguments
                                 will disconnect from all connected TCP/IP devices.

使用此命令可以去断开来自TCP/IP的设备连接,其在没有指定端口号时默认指定为5555,使用这个命令不需要去增加参数将会断开来自TCP/IP的所有连接设备

device commands:

设备命令:
  adb push <local> <remote>    - copy file/dir to device
PUSH命令:即复制一个文件或者目录进设备中

  adb pull <remote> [<local>]  - copy file/dir from device

PULL命令:即复制一个文件或者目录进设备中
  adb sync [ <directory> ]     - copy host->device only if changed
                                 (-l means list but don't copy)
                                 (see 'adb help all')

SYNC:复制主机内容进设备,仅仅是设备进行改变时对其内容进行同步处理的操作,括号里有说明:我的意思是列出但是不需要复制,可参考帮助ALL
  adb shell                    - run remote shell interactively

SHELL:运行远程SHELL与之交互
  adb shell <command>          - run remote shell command

SHELL:直接运行远程SHELL命令
  adb emu <command>            - run emulator console command

EMU:运行模拟器监控信息面板命令
  adb logcat [ <filter-spec> ] - View device log

阅览设备日志
  adb forward <local> <remote> - forward socket connections

远期套接字连接
                                 forward specs are one of:

远期规格显示的一个标准是:
                                   tcp:<port>

TCP端口号
                                   localabstract:<unix domain socket name>
本地抽象:UNIX域名的SOCKET名称

                                   localreserved:<unix domain socket name>

本地服务:UNIX域名/SOCKET名称
                                   localfilesystem:<unix domain socket name>

本地文件系统:UNIX域名/SOCKET名称
                                   dev:<character device name>

设备:字符设备名称
                                   jdwp:<process pid> (remote only)

远程进程ID
  adb jdwp                     - list PIDs of processes hosting a JDWP transport

列出相关的进程ID为主机进程的一个JAVA调试的无线协议的传输

说道JDWP,我简单对其说明下,说明是JDWP呢,JDWP的全写是:Java Debug Wire Protocol:即JAVA调试器无线协议,它定义了调试器(Debugger)和被调试的JAVA虚拟机(target vm)之间的通信协议,在这里,我更要说明下:Debugger与Target vm,Target vm 中运行着我们希望要调试的程序,它与一般运行的 Java 虚拟机没有什么区别,只是在启动时加载了 Agent JDWP 从而具备了调试功能。而 debugger 就是我们熟知的调试器,它向运行中的 target vm 发送命令来获取 target vm 运行时的状态和控制 Java 程序的执行。Debugger 和 target vm 分别在各自的进程中运行,他们之间的通信协议就是 JDWP。JDWP 与其他许多协议不同,它仅仅定义了数据传输的格式,但并没有指定具体的传输方式。这就意味着一个 JDWP 的实现可以不需要做任何修改就正常工作在不同的传输方式上(在 JDWP 传输接口中会做详细介绍)。JDWP 是语言无关的。理论上我们可以选用任意语言实现 JDWP。然而我们注意到,在 JDWP 的两端分别是 target vm 和 debugger。Target vm 端,JDWP 模块必须以 Agent library 的形式在 Java 虚拟机启动时加载,并且它必须通过 Java 虚拟机提供的 JVMTI 接口实现各种 debug 的功能,所以必须使用 C/C++ 语言编写。而 debugger 端就没有这样的限制,可以使用任意语言编写,只要遵守 JDWP 规范即可。JDI(Java Debug Interface)就包含了一个 Java 的 JDWP debugger 端的实现(JDI 将在该系列的下一篇文章中介绍),JDK 中调试工具 jdb 也是使用 JDI 完成其调试功能的。以上介绍的 JDWP agent在调试中扮演的角色为下图所示:


其实我们对其协议简单分析下,我们可以通过下图来了解到起握手协议的简单过程:


最后了解下其架构吧:


好,从以上我们了解了其JDWP的相关信息,更详细的信息与操作请在GOOGLE里详细查询与了解吧.

  adb install [-l] [-r] [-s] <file> - push this package file to the device and install it
                                 ('-l' means forward-lock the app)
                                 ('-r' means reinstall the app, keeping its data)
                                 ('-s' means install on SD card instead of internal storage)

通过这个命令来对其打包的APK进行安装进设备中,-l意味着远期锁定期APP,-r意味着需要重新安装这个APP,当然需要对其数据进行保持,-s意味着安装进SD卡中
  adb uninstall [-k] <package> - remove this app package from the device
                                 ('-k' means keep the data and cache directories)

通过这个命令来卸载其安装好的APK,即移除当前的APP来自设备的包,-k意味着保持数据域缓存目录
  adb bugreport                - return all information from the device
                                 that should be included in a bug report.

通过这个命令可以对其调试出的信息(设备的信息)输出并显示出来

  adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|-nosystem] [<packages...>]
                               - write an archive of the device's data to <file>.
                                 If no -f option is supplied then the data is written
                                 to "backup.ab" in the current directory.
                                 (-apk|-noapk enable/disable backup of the .apks themselves
                                    in the archive; the default is noapk.)
                                 (-shared|-noshared enable/disable backup of the device's
                                    shared storage / SD card contents; the default is noshared.)
                                 (-all means to back up all installed applications)
                                 (-system|-nosystem toggles whether -all automatically includes
                                    system applications; the default is to include system apps)
                                 (<packages...> is the list of applications to be backed up.  If
                                    the -all or -shared flags are passed, then the package
                                    list is optional.  Applications explicitly given on the
                                    command line will be included even if -nosystem would
                                    ordinarily cause them to be omitted.)
通过这个命令可以实现其内容备份,

  adb restore <file>           - restore device contents from the <file> backup archive

对其备份的归档文件可以重新对其内容进行设备的存储
  adb help                     - show this help message

显示帮助信息
  adb version                  - show version num

显示去版本号

scripting:

脚本
  adb wait-for-device          - block until device is online

等待期设备知道设备在线时
  adb start-server             - ensure that there is a server running

启动其服务
  adb kill-server              - kill the server if it is running

对其运行了的服务通过此命令对其杀死
  adb get-state                - prints: offline | bootloader | device

获得其设备的状态
  adb get-serialno             - prints: <serial-number>

获得一系列的序列号信息
  adb status-window            - continuously print device status for a specified device

连续打印指定的设备状态
  adb remount                  - remounts the /system partition on the device read-write
对其设备读写进行重新安装  

adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program
重新加载或者是去恢复程序等 

 adb reboot-bootloader        - reboots the device into the bootloader

对其重新启动的设备进行加载
  adb root                     - restarts the adbd daemon with root permissions

重新启动后获得ROOT权限
  adb usb                      - restarts the adbd daemon listening on USB

重新启动来监听器USB
  adb tcpip <port>             - restarts the adbd daemon listening on TCP on the specified port

重新启动TCP来监听指定的TCP端口
networking:

网络
  adb ppp <tty> [parameters]   - Run PPP over USB.
 

Note: you should not automatically start a PPP connection.
 <tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
 [parameters] - Eg. defaultroute debug dump local notty usepeerdns


adb sync notes: adb sync [ <directory> ]
  <localdir> can be interpreted in several ways:


  - If <directory> is not specified, both /system and /data partitions will be updated.


  - If it is "system" or "data", only the corresponding partition
    is updated.


environmental variables:
  ADB_TRACE                    - Print debug information. A comma separated list of the following values
                                 1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp
  ANDROID_SERIAL               - The serial number to connect to. -s takes priority over this if given.
  ANDROID_LOG_TAGS             - When used with the logcat option, only these debug tags are printed.

以上部分由于时间问题就不翻译与理解了,其实后面几句都非常好理解,自己也尝试着去做一下吧,

下面就进行一个简单的例子:

显示日志: adb logcat | more

列出设备: adb devices


OK,以上是简单的两个命令列子,你自己可以根据实际情况去带入相关参数即可对其命令进行校验了,好了,希望能给大家做一定的参考与学习.......

阅读更多
个人分类: Android
想对作者说点什么? 我来说一句

android adb命令

2012年06月19日 32KB 下载

android adb命令参考

2012年03月07日 3KB 下载

ADB的使用说明

2012年11月20日 21KB 下载

android手机系统adb常用的命令

2012年12月22日 33KB 下载

Android adb 进程端口处理命令

2015年08月18日 756B 下载

adb命令和环境变量配置

2014年04月09日 37KB 下载

没有更多推荐了,返回首页

不良信息举报

Android adb 命令~图解

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭