2

私は現在 Android プロジェクトに取り組んでおり、タブレットに直接接続される Temper と呼ばれる USB 温度計スティックからデータを収集する必要があります。

このデバイスには C で記述された Linux ドライバーがあり、Android アプリでそれらを利用したいと考えています。

それらのドライバーを私の apk や他の場所に統合する方法を知っていますか?

または、android.hardware.usbパッケージ (Android 3.0 以降) を使用して、独自の「ドライバー」を作成することは可能ですか?

前もって感謝します。

4

1 に答える 1

1

オプション a) カーネル モジュールのみをコンパイルし、特定のデバイス ノードを使用します。これには、デバイスをルート化し、特定のデバイス用の特定のカーネル用に特定のカーネル モジュールをコンパイルする必要があります (醜い!)

オプション b) NDK を使用して Linux ドライバーのラッパーを作成し、ラッパーを Android USB ホスト インターフェイス (Java) と Linux ドライバー (C) の間の中間者にして、すべてのイベントを調整し、データをプッシュします。

私は、オプション b) の usb-dvb デバイス ドライバーの作業を開始しました。あなたのドライバーがそれほど複雑でないことを願っています。

ドライバーが非常に簡単に Java に変換できる場合 (1 万行以上の低レベル コードやアセンブラーではなく、少数のファイルのみ)、オプション c) を使用して Java で C コードを書き直してください。したがって、C のラッパーは必要なく、NDK の部分をスキップできるため、多くのトラブルや悪夢を回避できます。

于 2012-07-10T14:54:09.390 に答える