2012-07-10 47 views
2

我目前正在開發一個Android項目,我必須從一個名爲Temper的USB溫度計棒上收集數據,該數據庫將直接連接到平板電腦。如何在Android上使用Linux C++驅動程序用於USB傳感器?

此設備具有Linux驅動程序,用C語言編寫,我想將它們用於我的Android應用程序。

你知道如何將這些驅動程序集成到我的apk或其他地方嗎?

還有可能只是使用android.hardware.usb包(Android 3.0+),從而使我自己的「驅動程序」?

在此先感謝。

回答

1

選項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

相關問題