幾句話總結(jié)Android輸入系統(tǒng)

IM輸入事件系統(tǒng)

這里的輸入事件指,觸摸屏、按鍵,不包括傳感器

  • 底層
    兩條線程,一條讀事件,一條向上發(fā)事件,
    讀取輸入事件,采用epoll / poll機(jī)制去讀取輸入節(jié)點(diǎn)
  • 框架層
    InputManagerService只是個(gè)包裝類,所有工作都是本地的InputManager在做,包括跟更底層的那兩個(gè)讀與派發(fā)線程交互。當(dāng)然,IMS也不是一無是處,它在框架層跟其它模塊交互,比如WMS啦
    WMS, 與IMS交互,獲得最早的input事件,決定派發(fā)的根
    PWM, 處理特殊輸入事件,如電源鍵,HOME
    InputChannel, IM與View客戶端窗口類的交互通道,PIPE機(jī)制,只有在WMS確定讓某個(gè)窗口接收輸入事件時(shí),才接上
    ViewRootImpl,真是一把手,輸入事件在客戶窗口的派發(fā),由它開始
  • 應(yīng)用層
    關(guān)注下Key / Touch在View樹的傳遞與處理機(jī)制,無非就是個(gè)責(zé)任鏈模式 + 模板方法模式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評(píng)論 25 708
  • InputManagerService(IMS) Linux內(nèi)核,接受輸入設(shè)備的中斷,并將原始事件的數(shù)據(jù)寫入設(shè)備節(jié)...
    傀儡世界閱讀 4,172評(píng)論 1 2
  • 1:InputChannel提供函數(shù)創(chuàng)建底層的Pipe對(duì)象 2: 1)客戶端需要新建窗口 2)new ViewRo...
    自由人是工程師閱讀 5,730評(píng)論 0 18
  • 什么是增長(zhǎng)黑客 “增長(zhǎng)黑客”這一說法源于硅谷,增長(zhǎng)黑客是介于極客、發(fā)明家和廣告狂人之間的角色,是一群以數(shù)據(jù)驅(qū)動(dòng)營(yíng)銷...
    豐子恒閱讀 543評(píng)論 0 2
  • 性價(jià)比很高的一款紙膜水,沒有特別的味道,質(zhì)地是完全水狀,適合夏天使用,清爽保濕的類型,去除油光,皮膚會(huì)很舒服,美白...
    earlymolly閱讀 209評(píng)論 0 0

友情鏈接更多精彩內(nèi)容