在上篇中有一個基本的input的設備的簡介,這裏我們在說一下input core相關的東東。
先來個開胃菜,先看看struct input_dev
下面開始進入正文
1、input device初始化中幾個主要的地方
2、上報過程
這裏我們跳過keypad的函數,從input開始
3、應用層如何獲得
下面我們看看上面應用層是如何取得的。
首先是framework_base/base/libs/ui/EventHub.cpp
在這裏的getEvent是來獲得evnet事件,相當於加了一層過濾,當有新的數據時候,則返回了,應用的thread也開始讀取。
其上是jni傳遞給上層的,最後通過WindowManagerService中開始分發給相關的應用去做處理。
一個簡單的圖:
看了之後才發現內核中的哪個部分也不能小看,小設備,大文章。看來對內核的理解還是不夠呀,慢慢的過程呀。。。
Have fun!