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,以上是简单的两个命令列子,你自己可以根据实际情况去带入相关参数即可对其命令进行校验了,好了,希望能给大家做一定的参考与学习.......
url:http://greatverve.cnblogs.com/archive/2012/04/23/android-adb.html
我这个博客废弃不用了,今天想寻找外链的时候,突然想到这个博客权重很高。
有需要免费外链的,留言即可,我准备把这个博客变成免费的友情链接站点。