android原始碼 鍵盤訊息處理機制

2021-09-08 11:25:55 字數 606 閱讀 5325

鍵盤訊息處理模型:

1、wms統一管理window, 它包含了inputmanager變數,其對應c++層的nativeinputmanager

2、c++層的nativeinputmanager包含 inputmanger型別變數,

3、c++層的inputmanager物件包含inputreader、inputdispatcher

4、inputreader用來監聽系統的鍵盤事件

5、inputdispatcher用來分發鍵盤事件,它包含了inputwindow物件,即當前啟用的應用程式視窗

6、最終由inputreader中的eventhub來開啟輸入裝置檔案,讀取事件資訊

inputchannel事件的註冊:

1、activity 包含 phonewindow物件

2、phonewindow物件包含 decorview物件

3、decorview包含了viewroot物件

4、當inputreader從輸入裝置檔案讀取出事件後,inputdispatcher將事件傳遞給當前啟用視窗的viewroot物件,然後依次傳遞給decorview、phonewindow、activity

Android 訊息機制原始碼分析

threadlocal 乙個執行緒內部的資料儲存類,可以在指定執行緒中儲存資料,資料儲存以後,只有在指定執行緒中可以獲取到儲存的資料。先看下以下 主要是重寫了initialvalue方法 請看下面的原始碼 test public void test abc system.out.println th...

從原始碼的角度理解Android訊息處理機制

與handler共同作用的有looper,messagequeue,message。我麼接下來從原始碼的角度看看整個過程的大概實現。首先說一下每個物件的作用 looper 訊息輪詢循器,不斷的從訊息佇列中取出訊息交給handler處理 messagequeue 訊息佇列,用於儲存從handler傳送...

Scrapy原始碼閱讀 response處理過程

以官方教程quotesspider為例,結合原始碼分析一下scrapy中response的處理過程。下面是待爬取的網頁,紅框中的是目標html標籤 quote文字內容 如果output是request物件,則將其交給引擎準備繼續爬取,開啟executionengine類的crawl方法可以看到引擎直...