如何在Android上使用Linux C++驱动程序用于USB传感器?

问题描述:

我目前正在开发一个Android项目,我必须从一个名为Temper的USB温度计棒上收集数据,该数据库将直接连接到平板电脑。如何在Android上使用Linux C++驱动程序用于USB传感器?

此设备具有Linux驱动程序,用C语言编写,我想将它们用于我的Android应用程序。

你知道如何将这些驱动程序集成到我的apk或其他地方吗?

还有可能只是使用android.hardware.usb包(Android 3.0+),从而使我自己的“驱动程序”?

在此先感谢。

选项a)只编译内核模块并使用特定的设备节点。这需要根植你的设备并为特定内核编译特定的内核模块(丑陋!)

选项b)你使用NDK编写一个Linux驱动程序的包装器,并让包装器成为man-in-the- Android USB Host接口(Java)和Linux驱动程序(C)之间的中间环节,协调所有事件并推送数据。

我开始着手处理usb-dvb设备驱动程序的选项b),这是一项令人难以置信的工作量。我希望你的司机不那么复杂。

如果您的驱动程序非常简单(只有少量文件,而不是10k +行的低级代码甚至汇编程序)才能转换为Java,请继续并使用 选项c)使用Java重写C代码。因此,你不需要C中的包装,你可以跳过NDK部分,这可以为你节省很多麻烦和噩梦。

+0

感谢您的回答,实际上我会接受您的建议并选择选项c,驱动程序不是很长,所以我只会使用Android的USB包进行翻译。希望它能解决问题! – user842539 2012-07-10 20:32:52