Android (Samsung Galaxy S3 の Jelly Bean) でのセンサー データの取得に取り組んでいます。私は Android/Linux 内部に不慣れです。
センサーサンプルがドライバーからユーザー空間にどのように上昇するかについて、Android ソースを読み込もうとしています。参考までにこちらをご覧ください。SensorManager から SensorService に至るまで、すべてを行うことができます。カーネル モジュールのロード インフラストラクチャ、イベント入力デバイスの登録、およびドライバー (Galaxy S3 のオープンソースの加速度センサー ドライバーなど) での input_report_rel() 関数呼び出しを確認できます。しかし、その間、つまりハードウェア抽象化レイヤーで迷子になります。SensorService (SensorDevice の助けを借りて) は、最終的に構造体sensors_poll_device_t の関数ポインターを介して HAL を呼び出します。ヘッダー ファイルは /hardware/libhardware/include/hardware にあります。
HAL はどこに実装されていますか? HAL とカーネルの入力サブシステム間の相互作用はどのように実行されますか? SensorService は、プラットフォームで使用可能なセンサーと、ユーザーランドからそれらにアクセスするためのファイルをどのように検出しますか?
どんな種類の助けも大歓迎です!