雑記帳 Androidの入力デバイス初期化処理
FC2ブログ

2009'03.27 (Fri)

Androidの入力デバイス初期化処理

今日は諸事情で休みなのでAndroid解析の覚え書き続き。

前書いた初期化処理の内容はgoogleにドキュメントあったし。。。orz...
まあ、だいたい正解だったけど。。。

で、課題のデバイス関連の処理について。

入力デバイス
frameworks/base/libs/ui/EventHub.cppで処理をしている。
この中のEventHub::openPlatformInput()でオープンされている。
処理するデバイスは/dev/input以下をスキャンして自動的にリストに登録
されるが、ioctlで以下をサポートしていないとエラーで登録されない。
EVIOCGVERSION, EVIOCGID, EVIOCGNAME, EVIOCGPHYS, EVIOCGUNIQ, EVIOCGBIT

deviceが見つかったらその種類を調べてリスト(ってか配列だけど)に登録。追加の時はreallocしてる。
そのあとデバイスの種類を調べて登録。登録できる種類は
CLASS_KEYBOARD, CLASS_TRACKBALL, CLASS_TOUCHSCREENの3種類。
キーボードの場合にはこの後KEYTABLEを読み込んで登録する。

実際にイベントを読む処理はEventHub::getEventで実行。

ってことでまとめると
 ・普通にType-Uのタッチパネルドライバが入ってれば普通に動くはず
  →多分Kernelのコンフィグおかしいかな??
 ・ほかの特殊ボタンもここにラッパーかませば動くのね。

って感じ。

じゃあ、こいつらはどこから呼ばれているんだろう・・・

だんだん面白くなってきたぞ。。。





テーマ : コンピュータ関連 - ジャンル : コンピュータ

11:09  |  Android  |  TB(0)  |  CM(0)  |  EDIT  |  ↑Top

Comment

コメントを投稿する


 管理者だけに表示  (非公開コメント投稿可能)

▲TOP

Trackback

この記事のトラックバックURL

→http://kobayuta.blog47.fc2.com/tb.php/182-f14fdee5

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲TOP

 | HOME |