android輸入驅(qū)動系統(tǒng)

Paste_Image.png

層次說明:
1.android應用層
實現(xiàn)onTouchEvent和onTrackballEvent等函數(shù)接受運動事件,通過實現(xiàn)onKeyDown和onKeyUp等函數(shù)接受按鍵事件
2.java框架層
通過KeyInputDevice等類處理由EventHub傳送上來的數(shù)據(jù)通過RawInputEvent和KeyEvent表示,按鍵事件直接由KeyEvent傳給應用程序,觸摸或軌跡球由RawInputEvent轉(zhuǎn)換為MotionEvent傳給應用程序
3.EventHub
本地框架層的EventHub是libui中的一部分,實現(xiàn)了對驅(qū)動程序的控制,需要kl和kcm文件的支持
4.驅(qū)動程序

Paste_Image.png

真實設(shè)備節(jié)點位置dev/input/eventX
android輸入設(shè)備驅(qū)動程序的頭文件include/linux/input.h或include/uapi/linux/input.h,核心文件是drivers/input/input.c,event部分代碼文件driver/input/evdev.c

硬件抽象層:
framework/base/include/androidfw/KeycodeLabels.h或framework/native/include/input/KeycodeLabels.h是本地框架層libui的頭文件,實現(xiàn)用戶空間處理功能,觸摸屏和軌跡球只需要傳遞坐標,按下,抬起等信息,而按鍵處理的過程先經(jīng)過按鍵布局轉(zhuǎn)換和按鍵碼轉(zhuǎn)換
數(shù)組KEYCODES[]是表示存儲從字符串到整數(shù)的映射關(guān)系
framework/base/core/java/android/view/KeyEvent.java是android的KeyCode

映射解析:
文件位置:framework/base/data/keyboards
KeyLayoutMap.cpp負責解析處理kl文件,第一列為按鍵的掃描碼,是整數(shù)值,第二列為按鍵的標簽,字符串,完成第一次轉(zhuǎn)換,第三列按鍵的Flag,WAKE表示可以喚醒系統(tǒng),KeycodeLabels.h是第二次轉(zhuǎn)換

KeyCharacterMap.cpp負責解析kcm文件

EventHub.cpp
framework/base/services/input/EventHub.cpp是輸入系統(tǒng)的核心控制文件,例如當按下電源鍵后,系統(tǒng)把scanCode寫入對應的設(shè)備節(jié)點,文件EventHub.cpp會讀取該設(shè)備節(jié)點,并把scanCode通過KL文件對應成keyCode發(fā)送到上層

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市乙嘀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌熙揍,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氏涩,死亡現(xiàn)場離奇詭異诈嘿,居然都是意外死亡,警方通過查閱死者的電腦和手機削葱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門奖亚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人析砸,你說我怎么就攤上這事昔字。” “怎么了首繁?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵作郭,是天一觀的道長。 經(jīng)常有香客問我弦疮,道長夹攒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任胁塞,我火速辦了婚禮咏尝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘啸罢。我一直安慰自己编检,他們只是感情好,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布扰才。 她就那樣靜靜地躺著允懂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衩匣。 梳的紋絲不亂的頭發(fā)上蕾总,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天粥航,我揣著相機與錄音,去河邊找鬼生百。 笑死递雀,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的置侍。 我是一名探鬼主播映之,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拦焚,長吁一口氣:“原來是場噩夢啊……” “哼蜡坊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起赎败,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤秕衙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后僵刮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體据忘,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年搞糕,在試婚紗的時候發(fā)現(xiàn)自己被綠了勇吊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡窍仰,死狀恐怖汉规,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驹吮,我是刑警寧澤针史,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站碟狞,受9級特大地震影響啄枕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜族沃,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一频祝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脆淹,春花似錦智润、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至咐柜,卻和暖如春兼蜈,著一層夾襖步出監(jiān)牢的瞬間攘残,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工为狸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留歼郭,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓辐棒,卻偏偏與公主長得像病曾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子漾根,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容