0

カーネルにデータを入力として渡そうとするカスタムの入力ハードウェア用のドライバーを作成しています。カーネルは OS を介してデータを渡し、MotionEvent を介してアプリ レベルに公開します。他のいくつかのデバイス ドライバーを見ると、Android 2.2 カーネル (2.6.32) の input.h で公開されている関数の一部を介して入力イベントを設定するとうまくいくように見えますが、これを確認したいと思います。このパスを開始する前に、画面やトラックボールなどからの既存の入力が OS を介してどのように渡されるかをよりよく理解しようとしています。最終的な目標は、このパスに多くの時間を費やす前に、デバイスからアプリ レベルにデータを渡すことができるようにすることです。

Linux カーネル 2.6.32 の入力ヘッダー

http://lxr.free-electrons.com/source/include/linux/input.h?v=2.6.32

Android クラスのソースを参照しましたが、View クラスの onTouchEvent() メソッドを介してアクセスできる MotionEvent クラスを OS がどのように開始するかを確認する場所がわかりません。MotionEvent が OS によってどのように読み込まれるか、および OS がそのデータをカーネルから取得する方法に関して、誰かが私を正しい方向に向けることができますか?

ありがとう、

ポール

4

1 に答える 1

0

Frameworks/base/libs/ui/EventHub.cpp で最初に確認する場所は、/dev/input を経由して、プラットフォーム上のさまざまな入力デバイスと、それらの入力の「種類」を見つけます。

もっと...

次のステップは、frameworks/base/services/jni/com_android_server_KeyInputQueue.cpp と frameworks/base/services/java/com/android/server/KeyInputQueue.java にあります。

新しいハードウェアの入力インターフェイスを実装するだけなら、それ以上のことは必要ないと思います...

于 2010-12-03T00:29:51.050 に答える