android - 有人见过 ADB 推送的 C 或 C++ 实现吗?

标签 android bash adb protocols plex

我编写了一个小型 Plex 播放列表/媒体导出实用程序,用于将播放列表和媒体从 Plex 媒体服务器传输到 Android。它使用 ADB 可执行文件将文件从服务器推送到手机,并且运行良好;但是我真的很想将其移植到 C 或 C++ 并制作一个独立的可执行文件,而不是具有外部依赖项的 bash 脚本。

几天的谷歌搜索除了一堆错误的线索之外什么也没找到,这些线索最终成为 ADB 可执行文件的包装,以及一份解释该协议(protocol)的文档记录有多么糟糕的文档。

有人遇到过任何语言的独立库可以进行ADB推送吗?

最佳答案

这里有两个库,但不是用 C++ 编写的:Python , Haskell

假设 Python 已经安装在任何 Linux 系统上是相当安全的,所以我会选择那个。将 bash 迁移到 Python 也比将 bash 迁移到 C++ 容易得多。

如果您想用 C++ 编写自己的协议(protocol),adb 协议(protocol)有很好的文档记录 here .

另外,为什么不在 shell 脚本中安装依赖项呢?那里只有少数包管理器,所以不需要很长时间就能找出每个 Linux 风格的正确包名称并让 shell 自动下载它。这将是更标准的解决方案,并且只需几行 bash。

或者,您可以打包您的 shell 脚本并在包中标记依赖项(前者会更容易,尽管这两种方法都比用另一种语言重写 bash 脚本更容易)。然后用户可以根据自己的 Linux 风格下载软件包。

关于android - 有人见过 ADB 推送的 C 或 C++ 实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52654250/

相关文章:

android - 通过 findFragmentByTag 从 FragmentManager 获取 DialogFragment

java - 如何将json数据发送到POST restful服务

android - 尝试使用 adb shell screenrecord Android 4.4 进行视频录制

Android 在 RelativeLayout 中将 Cardview 置于父 Cardview 之上

java -version 返回错误,但 bash 配置文件正确

bash - 如何使用 Bash 抑制命令的所有输出?

linux - 如何在很棒的 WM 上使用快捷方式运行 bash

java - Android 和 PC 通过 USB 通信 : What is a safe directory that I can use ADB push/pull on and access from an Android app?

android - adb: 无法打开 app.apk: 不允许操作

android - 简单的 JNI 示例 Android