关键词不能为空

当前您在: 主页 > 英语 >

adb使用详细教程

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 21:56
tags:

-

2021年3月3日发(作者:there是什么意思)


Android


调试桥接器,简称


adb


,是用于管理模拟器或真机状态的万能工具,采用了客户端


-


服务器模型,包括三个部分:



l


客户端部分,


运行在开发用的电脑上,


可以在命 令行中运行


adb


命令来调用该客户端,



ADB


插件和


DDMS

< p>
这样的


Android


工具也可以调用

< p>
adb


客户端。



l


服务端部分,


是运行在开发用电脑上的后台进程,


用于管理客户端与运行在模拟器或真机


的守护进程通信。


l


守护进程部分,运行于模拟器或手机的后台。



当启动


adb


客户端时,客户端首先检测


adb


服务端进程是否运行,如果没有运行,则启动


服务端。当服务端启动时,它会绑定到本地的


TCP5037


端 口,并且监听从


adb


客户端发来


的命 令


——


所有的


adb

< br>客户端都使用


5037


端口与


a db


服务端通信。



接下来服务端与所 有正在运行的模拟器或手机连接。它通过扫描


5555-5585


之间的奇数号


端口来搜索模拟器或手机,一旦发现


adb


守护进程,就通过此端口进行连接。需要说明的


是,


每一个模拟器或手机使用一对有序的端口,


偶数号端口用于控制台连接,


奇数号端口用



adb


连接,例如:



Emulator 1, console: 5554



Emulator 1, adb: 5555



Emulator 2, console: 5556



Emulator 2, adb: 5557 ...







即如果模拟器与


adb



5555


端口连接 ,则其与控制台的连接就是


5554


端口。






当服务端与所有的模拟器建立连接之后,就可以使用


adb


命令来控制或者访问了。


因为服务端管理 着连接并且可以接收到从多个


adb


客户端的命令,所以可以从 任何一个客


户端或脚本来控制任何模拟器或手机设备。







下文介绍了可以用来管理模拟器或手机的这些


adb


命令。


如果是在


Ecl ipse


并且安装



ADT

< p>
插件的环境下开发


Android


应用程序,就不 需要从命令行使用


adb


了,


ADT< /p>


插件已


经提供了透明的集成。不过,还是可以在调试等需要的时候 直接使用


adb



< br>使用


adb


命令







从开发用电脑的命令行或脚本文件中使用

adb


命令的用法是:





adb [-d|-e|-s ]







当使用的时候,


程序会调用


adb


客 户端。


因为


adb


客户端不需要关联到 任何模拟器,


所以如果有多个模拟器或手机正在运行,就需要使用


-d


参数指定要操作的是哪一个,更多


关于这些选项参数的使 用可以参见


Directing Commands to a Specific Emulator/Device


Instance




查询模拟器或手机状态







了解


adb


服务端连接的模拟器或手机可以帮助更好的使用< /p>


adb


命令,这可以通过


devices


命令列举出来:



adb devices







执行结果是

< br>adb


为每一个设备输出以下状态信息:



l


序列号


(serialNumber)





adb


创建的使用控制台端口号的用于唯一标识一个模拟器或


手机设备 的字符串,格式是



<


设备类型


>-<


端口号


>


,例 如:



emulator-5554


l


状态


(state)




连接状态,其值是:



n offline




未连接或未响应



n device



已经连接到服务商。注意这个状态并不表示

< br>Android


系统已经完全启动起来,


系统启动的过程 中已经可以连接


adb


,但这个状态是正常的可操作状态。



每一个设备的输出形如:



[serialNumber] [state]



下面是



devices


命令和其执行结果:



$$ adb devicesList of devices attached


emulator-5554 deviceemulator-5556 deviceemulator-5558 device



如果没有模拟器或手机在运行,该状态返回的是


no device




操作指定的模拟器或手机







如果有多个模拟器或手机正在运行,当使用


adb


命令的时候 就需要指定目标设备,


这可以通过使用


-s

选项参数实现,用法是:



adb -s







即可以在


adb


命令中使用序列号指定特定的目标,前文已经 提到的


devices


命令可


以实现查 询设备的序列号信息。







例如:



adb -s emulator-5556 install



需要注意 的是,如果使用了


-s


而没有指定设备的话,

< br>adb


会报错。



安装应用程序



可以使用


adb


从开发用电脑中复制应用程序并且安装到模拟器或手机上,使用


install


命令


即可,在这个命令中,必 须指定待安装的


.apk


文件的路径:



adb install



关于创建可安装的应用的更多信息,请参见


Android Asset Packaging Tool


(aapt).


注意,如果使用了安装有


ADT


插件的


Eclipse


开发环境,就不需要直接使用


adb



aapt



令来安装 应用程序了,


ADT


插件可以自动完成这些操作。



转发端口





可以使用


forward


命令转发端口





将特定端口上的请求转发到模拟器 或手机的不同的


端口上。下例是从


6100

端口转到


7100


端口:





adb forward tcp:6100 tcp:7100





也可以使用


UNIX


命名的


socket


标识:





adb forward tcp:6100 local:logd



与模拟器或手机传输文件



可以使用< /p>


adb




pull




push


命令从模拟器或手机中复制文件,

< br>或者将文件复制到模拟器


或手机中。与



install


命令不同,它仅能复制


.apk


文件到特定的位置,



pull




push


命令


可以复制任意文件夹和 文件到模拟器或手机的任何位置。



从模拟器或手机中复制一个文件或文件夹(递归的)使用:



adb pull



复制一个文件或文件夹(递归的)到模拟器或手机中使用:



adb push


< /p>


在这个命令中





引用的是文件或文件夹的路径,在开发用电脑上的是< /p>


local


,在模拟器或手机上的是


re mote




例如:



adb push /sdcard/



adb


命令列表





下表列出了所有


adb


支持的命令及其说明:



类别



可选项



-e


命令



-d


命令仅对运行中的模拟器有效



说明



备注



命令仅对


USB


设备有效



如果有多个


USB


设备就 会返回


如果有多个运行中的模



拟器就会返回错误



命令仅对


adb


关联的特定序列号的模


如果不指定设备就 会返



-s


拟器或手机有效


(


例如



回错误




一般项



help


version


调试项



devices

< p>
输出


adb


支持的命令



输出


adb


的版本号

< br>


logcat [


[]


输出所有关联的模拟器


参见



Querying for Emulat


或手机设备列表



Instances



以获得更多信息






在屏幕上输出日志信息




bugreport


为报告


bug< /p>



在屏幕上输出


dumpsys




dumpstate



logcat


数据




jdwp


输出有效的


JDWP


进程信息



可以使用


forward


jdwp:


转换端口


以连接到指定的


JDWP


进程,例如:




adb forward tcp:8000


jdwp:472


jdb -attach


localhost:8000


安装应用程序(用完整



路径指定


.apk


文件)





数据项



pull



push


install


从开发机


COPY


指 定的文件到模拟器



或手机



从模拟器或手机


COPY


文件到开发机





端口和网络项



forward


端口可以使用以下格式表示:

从本地端口转换连接到


l



tcp:


模拟器或手机的指定端


l



local:




l



dev:


l



jdwp:


ppp


[parm]...


通过


USB


运行


UPP


l




PPP


流中的


tty


。例



:/dev/omap_csmi_ttyl




l



[parm]...



0


到多个



PPP/PPPD


选项


,


例如


defaultroute, local, notty


等等。



注意不用自动启动


PPP


连接



get-serialno


输出


ad b


设备的状态



输出

< br>adb


对象的序列号





脚本项



get-state


参见



Querying for Emulat


Instances


以获得更多信息。



可以在其他命令前 加上


此项,那样的话


adb



会等到模拟器或手机设


备已经连接才会执行命


令 ,例如


:



注意该命令并不等待系< /p>


统完全启动,因此不能


追加需要在系统完全启

动才能执行的命令,例


阻塞执行直到设备已经连接,


即设备


wait-for-device



install


命令需要



状态是


device.


Andro id


包管理器支持,


但它必须在系统完全启

动后才有效。下面的命





会在模拟器或手机与


adb


发生连接后就执 行


install



但系统还没有


完全启动,所以会引起


错误。



服务端项



start-server


检测


adb


服务进程是否



启动,如果没启动则启

-


-


-


-


-


-


-


-



本文更新与2021-03-03 21:56,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/703425.html

adb使用详细教程的相关文章