Android adb 命令图解.docx
- 文档编号:17829615
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:11
- 大小:595.13KB
Android adb 命令图解.docx
《Android adb 命令图解.docx》由会员分享,可在线阅读,更多相关《Android adb 命令图解.docx(11页珍藏版)》请在冰点文库上搜索。
Androidadb命令图解
Androidadb命令图解
做了这么长时间的开发与管理,在命令上总是自见则过,往往却忽视了在其命令上的分享过程,所以现在稍微有点时间就把其命令的相关操作来简单的扫盲一番吧,也系统通过这种方式去授之以渔而不是鱼,好了,我以图解的方式来展示,当然我的习惯就是任何东西先看帮助文档或者命令,就今天我们这里要讲解的ADB命令在命令行中可以通过命令帮助来进行详细了解,废话不多说,先上图吧:
以上为使用help来显示其相关的命令使用说明,当然那个如果你的英文足够好的话,其实这些都很简单,当然,如你不太习惯去看这些英文描述的话,那接下来就由我来帮助处理这样的问题吧,好了,我就以最初始的理解方式来进行翻译与讲解吧,OK:
AndroidDebugBridgeversion1.0.29
这是关于Android调试牌的1.0.29版本
-d -directscommandtotheonlyconnectedUSBdevice
通过这个直接的命令仅仅是去连接USB设备
returnsanerrorifmorethanoneUSBdeviceispresent.
如果有多个USB设备同时出现的时候就会返回一个错误信息
-e -directscommandtotheonlyrunningemulator.
直接使用这个命令符号来运行模拟器
returnsanerrorifmorethanoneemulatorisrunning.
如果存在多个模拟器同时运行时会在当前返回一个错误信息
-s
thegivenserialnumber.OverridesANDROID_SERIAL
environmentvariable.
通过这个直接的命令去展示其USB设备或者模拟器的序列号,彼此覆盖时会使其环境变量是可变的
-p
arelative/absolutepathtoaproduct
outdirectorylike'out/target/product/sooner'.
If-pisnotspecified,theANDROID_PRODUCT_OUT
environmentvariableisused,whichmust
beanabsolutepath.
通过此命令显示其产品的名称,如"sooner",或者是相对与绝对的产品输出路径像"out/target/product/sooner",如果-p没有指定的话,就会使用ANDROID_PRODUCT_OUT的环境变量,但必须是一个绝对路径.
devices -listallconnecteddevices
通过此命令可以列出所有已经连接的设备
connect
Port5555isusedbydefaultifnoportnumberisspecified.
通过TCP/IP的默认端口5555来连接设备
disconnect[
Port5555isusedbydefaultifnoportnumberisspecified.
Usingthiscommandwithnoadditionalarguments
willdisconnectfromallconnectedTCP/IPdevices.
使用此命令可以去断开来自TCP/IP的设备连接,其在没有指定端口号时默认指定为5555,使用这个命令不需要去增加参数将会断开来自TCP/IP的所有连接设备
devicecommands:
设备命令:
adbpush
PUSH命令:
即复制一个文件或者目录进设备中
adbpull
PULL命令:
即复制一个文件或者目录进设备中
adbsync[
(-lmeanslistbutdon'tcopy)
(see'adbhelpall')
SYNC:
复制主机内容进设备,仅仅是设备进行改变时对其内容进行同步处理的操作,括号里有说明:
我的意思是列出但是不需要复制,可参考帮助ALL
adbshell -runremoteshellinteractively
SHELL:
运行远程SHELL与之交互
adbshell
SHELL:
直接运行远程SHELL命令
adbemu
EMU:
运行模拟器监控信息面板命令
adblogcat[
阅览设备日志
adbforward
远期套接字连接
forwardspecsareoneof:
远期规格显示的一个标准是:
tcp:
TCP端口号
localabstract:
本地抽象:
UNIX域名的SOCKET名称
localreserved:
本地服务:
UNIX域名/SOCKET名称
localfilesystem:
本地文件系统:
UNIX域名/SOCKET名称
dev:
设备:
字符设备名称
jdwp:
远程进程ID
adbjdwp -listPIDsofprocesseshostingaJDWPtransport
列出相关的进程ID为主机进程的一个JAVA调试的无线协议的传输
说道JDWP,我简单对其说明下,说明是JDWP呢,JDWP的全写是:
JavaDebugWireProtocol:
即JAVA调试器无线协议,它定义了调试器(Debugger)和被调试的JAVA虚拟机(targetvm)之间的通信协议,在这里,我更要说明下:
Debugger与Targetvm,Targetvm中运行着我们希望要调试的程序,它与一般运行的Java虚拟机没有什么区别,只是在启动时加载了AgentJDWP从而具备了调试功能。
而debugger就是我们熟知的调试器,它向运行中的targetvm发送命令来获取targetvm运行时的状态和控制Java程序的执行。
Debugger和targetvm分别在各自的进程中运行,他们之间的通信协议就是JDWP。
JDWP与其他许多协议不同,它仅仅定义了数据传输的格式,但并没有指定具体的传输方式。
这就意味着一个JDWP的实现可以不需要做任何修改就正常工作在不同的传输方式上(在JDWP传输接口中会做详细介绍)。
JDWP是语言无关的。
理论上我们可以选用任意语言实现JDWP。
然而我们注意到,在JDWP的两端分别是targetvm和debugger。
Targetvm端,JDWP模块必须以Agentlibrary的形式在Java虚拟机启动时加载,并且它必须通过Java虚拟机提供的JVMTI接口实现各种debug的功能,所以必须使用C/C++语言编写。
而debugger端就没有这样的限制,可以使用任意语言编写,只要遵守JDWP规范即可。
JDI(JavaDebugInterface)就包含了一个Java的JDWPdebugger端的实现(JDI将在该系列的下一篇文章中介绍),JDK中调试工具jdb也是使用JDI完成其调试功能的。
以上介绍的JDWPagent在调试中扮演的角色为下图所示:
其实我们对其协议简单分析下,我们可以通过下图来了解到起握手协议的简单过程:
最后了解下其架构吧:
好,从以上我们了解了其JDWP的相关信息,更详细的信息与操作请在GOOGLE里详细查询与了解吧.
adbinstall[-l][-r][-s]
('-l'meansforward-locktheapp)
('-r'meansreinstalltheapp,keepingitsdata)
('-s'meansinstallonSDcardinsteadofinternalstorage)
通过这个命令来对其打包的APK进行安装进设备中,-l意味着远期锁定期APP,-r意味着需要重新安装这个APP,当然需要对其数据进行保持,-s意味着安装进SD卡中
adbuninstall[-k]
('-k'meanskeepthedataandcachedirectories)
通过这个命令来卸载其安装好的APK,即移除当前的APP来自设备的包,-k意味着保持数据域缓存目录
adbbugreport -returnallinformationfromthedevice
thatshouldbeincludedinabugreport.
通过这个命令可以对其调试出的信息(设备的信息)输出并显示出来
adbbackup[-f
-writeanarchiveofthedevice'sdatato
Ifno-foptionissuppliedthenthedataiswritten
to"backup.ab"inthecurrentdirectory.
(-apk|-noapkenable/disablebackupofthe.apksthemselves
inthearchive;thedefaultisnoapk.)
(-shared|-nosharedenable/disablebackupofthedevice's
sharedstorage/SDcardcontents;thedefaultisnoshared.)
(-allmeanstobackupallinstalledapplications)
(-system|-nosystemtoggleswhether-allautomaticallyincludes
systemapplications;thedefaultistoincludesystemapps)
(
the-allor-sharedflagsarepassed,thenthepackage
listisoptional. Applicationsexplicitlygivenonthe
commandlinewillbeincludedevenif-nosystemwould
ordinarilycausethemtobeomitted.)
通过这个命令可以实现其内容备份,
adbrestore
对其备份的归档文件可以重新对其内容进行设备的存储
adbhelp -showthishelpmessage
显示帮助信息
adbversion -showversionnum
显示去版本号
scripting:
脚本
adbwait-for-device -blockuntildeviceisonline
等待期设备知道设备在线时
adbstart-server -ensurethatthereisaserverrunning
启动其服务
adbkill-server -killtheserverifitisrunning
对其运行了的服务通过此命令对其杀死
adbget-state -prints:
offline|bootloader|device
获得其设备的状态
adbget-serialno -prints:
获得一系列的序列号信息
adbstatus-window -continuouslyprintdevicestatusforaspecifieddevice
连续打印指定的设备状态
adbremount -remountsthe/systempartitiononthedeviceread-write
对其设备读写进行重新安装
adbreboot[bootloader|recovery]-rebootsthedevice,optionallyintothebootloaderorrecoveryprogram
重新加载或者是去恢复程序等
adbreboot-bootloader -rebootsthedeviceintothebootloader
对其重新启动的设备进行加载
adbroot -restartstheadbddaemonwithrootpermissions
重新启动后获得ROOT权限
adbusb -restartstheadbddaemonlisteningonUSB
重新启动来监听器USB
adbtcpip
重新启动TCP来监听指定的TCP端口
networking:
网络
adbppp
Note:
youshouldnotautomaticallystartaPPPconnection.
/dev/omap_csmi_tty1
[parameters]-Eg.defaultroutedebugdumplocalnottyusepeerdns
adbsyncnotes:
adbsync[
-If
-Ifitis"system"or"data",onlythecorrespondingpartition
isupdated.
environmentalvariables:
ADB_TRACE -Printdebuginformation.Acommaseparatedlistofthefollowingvalues
1orall,adb,sockets,packets,rwx,usb,sync,sysdeps,transport,jdwp
ANDROID_SERIAL -Theserialnumbertoconnectto.-stakespriorityoverthisifgiven.
ANDROID_LOG_TAGS -Whenusedwiththelogcatoption,onlythesedebugtagsareprinted.
以上部分由于时间问题就不翻译与理解了,其实后面几句都非常好理解,自己也尝试着去做一下吧,
下面就进行一个简单的例子:
显示日志:
adblogcat|more
列出设备:
adbdevices
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android adb 命令图解 命令 图解
![提示](https://static.bingdoc.com/images/bang_tan.gif)