关于adb协议?

2天前 (10-11 21:18)阅读2回复0
wly
wly
  • 管理员
  • 注册排名8
  • 经验值37025
  • 级别管理员
  • 主题7405
  • 回复0
楼主

  温馨提醒:您好,感激您利用微问,(若是能帮到你,请猛戳“有用”) 1。 概述 Android Debug Bridge (adb) 是一个android开发人员必会的多功用的调试东西,如它的名字一样,它在开发者和目的机器之间,架起了一座bridge。

   adb的用法很简单,只要看完SDK文档关于ADB的部门,(android-sdk-linux_86/docs/guide/developing/tools/adb。html),再稍加操练,根本上就满上就能很纯熟的利用了。 adb源码位置是:system/core/adb。

   2。 ADB架构 adb由两个物理文件构成: adb/adb。exe 运行于PC端,包罗Linux、Windows、Mac OS等系统之中,凡是是x86架构上(下文中,ADB指整个模块,而adb零丁指那一部门); adbd 运行于Android设备的底层Linux之中,ARMv5架构上。

   构建差别文件,通过传入Android。mk的$(BUILD_SIMULATOR)变量能否为实。源码中由ADB_HOST宏用来区分当地主机(adb)和目的机(adbd)。 区分差别OS,通过传入Android。mk的$(HOST_OS)。

  它的有效取值包罗linux、darwin、freebsd和windows。差别平台的次要不同是USB的控造办法和文件途径。 2。1。

   ADB各模块定义 adb server: 计算机上的一个办事历程,历程名为adb adbd (adb daemon) : Android 手机上的一个办事历程,历程名为adbd adb client:你能够认为是计算机上的一个末端窗口,历程名也为adb DDMS:Dalvik Debug Monitor Service Jdwp: Java Debug Wire Protocol。

  adb通信分为两部门:adb client和adb server,以及adb server和adb daemon。

�8�5 client和server之间的通信协议

adb server对当地的tcp 5037号端口停止监听,期待adb client的号令。

  client的每个号令城市包罗两个部门,前一部门固定4个字节,以十六进造体例指定数令部门的长度。后一部门是实正的内容。发送死令的接口为writex,并最末挪用_fh_socket_write,通过send发送进来。因而那两部门至少需要发送两个tcp包。

例如想要获取adb server的版本号,client起首毗连本机的tcp 5037端口,然后发送“000C”和“host:version”。

server对client回复,分为如下情况

1、 胜利,回复四字节串“OKAY”,后面跟的内容按照差别的号令而差别。

2、 失败,回复四字节串“FAIL”,然后跟四字节的十六进造长度,以及失败原因。

3、 关于host:version,回复4个字节的十六进造字串,代表server的内部版本号。

希望能帮忙到你,费事点击“有用”,谢谢!。

0
回帖

关于adb协议? 期待您的回复!

取消