
Flyfish Studio 发布 Kadb:无需 ADB 二进制文件即可直连 Android 设备的 Kotlin 库
来源标题:Kadb: Kotlin library to connect Android devices directly without ADB binary file
Flyfish Studio 推出 Kotlin Multiplatform ADB 客户端库 Kadb,可直接与 adbd 通信,无需嵌入完整的 adb CLI 或服务器栈。该库支持 Android 与桌面 JVM 的 USB 连接、无线配对、shell、文件传输、安装和 TCP 转发,并提供可选的 mDNS 发现模块。Kadb 已用于其 WearOS Toolbox 智能手表工具。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
Kadb 是一个 Kotlin Multiplatform ADB 客户端库,可以直接与 adbd 通信。 它面向需要 shell、sync、安装、配对或端口转发的应用和工具,无需嵌入完整的 adb CLI 或 server 栈。
直接面向 adbd 的 Kotlin API 支持 Android 和 JVM 目标 Android 和桌面 JVM 的 USB 连接、无线配对、shell、文件传输、安装和 TCP 转发 在可行范围内对齐 AOSP 的 host 行为
由 Kadb 驱动 Kadb 为 WearOS Toolbox 提供底层支持,这是一个 Android 智能手表工具箱, 用于连接手表、管理应用和传输文件。 Kadb 和 WearOS Toolbox 均由 Flyfish Studio 开发。
dependencies { implementation("com.flyfishxu:kadb:2.1.5")
可选的 mDNS 发现:
dependencies { implementation("com.flyfishxu:kadb-mdns:2.1.5")
快速开始 连接到已有的设备 transport:
Kadb.create("127.0.0.1", 5555).use { kadb -> val response = kadb.shell("echo hello") check(response.exitCode == 0) check(response.output == "hello\n")
与新的 Android 11+ 设备配对:
Kadb.pair("10.0.0.175", 37755, "643102")
使用可选的 mDNS artifact 发现无线调试端点:
val mdns = KadbMdnsAndroid(context) mdns.start()
val mdns = KadbMdnsJvm() mdns.start()
发现到的端点可以传给 Kadb.create(host, port) 或 Kadb.pair(host, port, code)。
能力 API 通过 TCP 连接 adbd Kadb.create(...) USB 发现 / 连接 平台相关的 KadbUsb.devices(...)、KadbUsb.create(...) 无线配对 Kadb.pair(...) Shell shell(...)、openShell()、openPtyShellSession() 文件传输 push(...)、pull(...)、openSync() APK 安装 install(...)、installMultiple(...)、uninstall(...) 端口转发 tcpForward(...) Transport 复用 resetConnection() 可选的 mDNS 发现 KadbMdnsAndroid、KadbMdnsJvm
示例 安装 APK:
Kadb.create("127.0.0.1", 5555).use { kadb -> kadb.install(apkFile)
推送文件:
Kadb.create("127.0.0.1", 5555).use { kadb -> kadb.push(localFile, "/data/local/tmp/remote.txt")
转发 TCP 端口:
Kadb.create("127.0.0.1", 5555).tcpForward( hostPort = 7001, targetPort = 7001 ).use { // localhost:7001 现在会转发到设备的 7001 端口
平台与配对说明 Android 目标支持从 minSdk 23 开始 基本的 connect / shell / sync / install 流程不需要完整的 adb 二进制文件 配对比普通客户端操作有更严格的要求 JVM 配对需要 conscrypt-openjdk-uber Android 6 到 8 通常需要自定义 Conscrypt 依赖才能配对 JVM 配对依赖示例:
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。