【问题标题】:Pure java adb client [closed]纯java adb客户端[关闭]
【发布时间】:2013-07-25 14:41:58
【问题描述】:

ADB 分为服务器部分和客户端部分,它们通过 TCP 协议相互通信,详细描述 here

有没有纯 java ADB 客户端?例如,如果您想从 jUnit 或 TestNG 测试用例驱动数据包管理器或活动管理器,这将非常有用。

我们在主要开发平台上都有 adb 命令行客户端二进制文件,但是有没有 adb 客户端的纯 Java 实现。

【问题讨论】:

  • 您到底在寻找什么优势?
  • 实际上,我想从开发机器上驱动 UiAutomator 测试。但是这样一个客户端库的用处应该有更广泛的用途。与原生命令行工具 adb 相比,pura java 客户端本质上是跨平台的,并且总体上使用起来更加流畅。
  • 我知道你的意思,我有完全相同的问题,虽然我使用的是 python。该协议在:android.googlesource.com/platform/system/core/+/master/adb/… 中进行了描述,但我发现了一些项目...寻找纯 Java 客户端将我带到您的问题这里,所以我猜答案是:“不是真的”,除非您自己做。 .
  • 我实际上创建了一个小型java项目,但忘记在这里发布答案。但是无法发送文件,因为这不是在文档中而是在代码中描述的。我的目的是编写文件同步代码并同时创建 SYNC.TXT 文件,然后向 AOSP 发出拉取请求。

标签: java android adb


【解决方案1】:

我创建了一个名为 jadb 的小型 Java 项目,可用 here 实现,它实现了 adb 客户端所做的大部分工作,包括发送文件。它需要运行adb 服务器(adb 二进制文件)

【讨论】:

  • 这听起来很有趣。您是根据哪个许可证发布的(存储库中目前似乎没有任何许可证)?
  • @Bruno 我在 Apache 2.0 许可下发布它。这也是 Android 开源项目发布的许可证。 jadb 项目基于 AOSP,所以这是有道理的。此外,此许可证通常最适合公司和其他开源项目。希望这会有所帮助。
  • 您的库正在使用套接字连接到 adb 服务器,该服务器是同一 adb 二进制文件的一部分。因此,在您重新实现服务器部分之前(包括处理 USB 传输),您的代码仍然需要本机 adb
  • @AlexP。很公平。我已经更新了答案以澄清服务器在同一个二进制文件中。
猜你喜欢
  • 2012-03-31
  • 2010-10-18
  • 2019-05-23
  • 1970-01-01
  • 2013-03-20
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
相关资源
最近更新 更多