我目前正在开发一个 Android 项目,我必须从一个名为 Temper 的 USB 温度计棒收集数据,它将直接连接到平板电脑。
该设备具有用 C 编写的 Linux 驱动程序,我想将它们用于我的 Android 应用程序。
您知道如何将这些驱动程序集成到我的 apk 或其他地方吗?
或者是否可以只使用android.hardware.usb
包(Android 3.0+),从而制作我自己的“驱动程序”?
提前致谢。
我目前正在开发一个 Android 项目,我必须从一个名为 Temper 的 USB 温度计棒收集数据,它将直接连接到平板电脑。
该设备具有用 C 编写的 Linux 驱动程序,我想将它们用于我的 Android 应用程序。
您知道如何将这些驱动程序集成到我的 apk 或其他地方吗?
或者是否可以只使用android.hardware.usb
包(Android 3.0+),从而制作我自己的“驱动程序”?
提前致谢。
选项 a) 您只编译内核模块并使用特定的设备节点。这将需要生根您的设备并为特定设备的特定内核编译特定内核模块(丑陋!)
选项 b) 您使用 NDK 围绕 Linux 驱动程序编写一个包装器,并让该包装器成为 Android USB 主机接口 (Java) 和 Linux 驱动程序 (C) 之间的中间人,协调所有事件并推送数据。
我开始为 usb-dvb 设备驱动程序设计选项 b),这是一项令人难以置信的工作量。我希望你的驱动程序没有那么复杂。
如果您的驱动程序很容易(只有几个文件,而不是 10k+ 行低级代码甚至汇编程序)翻译成 Java,请继续使用选项 c)用 Java 重新编写 C 代码。因此,您不需要 C 中的包装器,您可以跳过 NDK 部分,这可以为您省去很多麻烦和噩梦。