日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android应用程序键盘(Keyboard)消息处理机制分析(3)

發布時間:2025/7/14 Android 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android应用程序键盘(Keyboard)消息处理机制分析(3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? ? ? ?Step 15. Looper.pollOnce

?? ? ? ?這個函數定義在frameworks/base/libs/utils/Looper.cpp文件中,具體可以參考前面Android應用程序消息處理機制(Looper、Handler)分析一文,這里就不再詳述了。總的來說,就是在Looper類中,會創建一個管道,當調用Looper類的pollOnce函數時,如果管道中沒有內容可讀,那么當前線程就會進入到空閑等待狀態;當有鍵盤事件發生時,InputReader就會往這個管道中寫入新的內容,這樣就會喚醒前面正在等待鍵盤事件發生的線程。

?? ? ? ?InputDispatcher類分發消息的過程就暫時分析到這里,后面會有更進一步的分析,現在,我們回到Step 12中,接著分析InputReader類讀取鍵盤事件的過程。在調用了InputReaderThread線程類的run就函數后,同樣會進入到InputReaderThread線程類的threadLoop函數中去。

?? ? ? ?Step 16. InputReaderThread.threadLoop

?? ? ? ?這個函數定義在frameworks/base/libs/ui/InputReader.cpp文件中:

  • bool?InputReaderThread::threadLoop()?{??
  • ????mReader->loopOnce();??
  • ????return?true;??
  • }??
  • ?? ? ??這里的成員變量mReader即為在前面Step 8中創建的InputReader對象,調用它的loopOnce成員函數執行一次鍵盤事件的讀取操作。

    ?

    ?? ? ? Step 17. InputReader.loopOnce

    ?? ? ??這個函數定義在frameworks/base/libs/ui/InputReader.cpp文件中:

  • void?InputReader::loopOnce()?{??
  • ????RawEvent?rawEvent;??
  • ????mEventHub->getEvent(&?rawEvent);??
  • ??
  • #if?DEBUG_RAW_EVENTS??
  • ????LOGD("Input?event:?device=0x%x?type=0x%x?scancode=%d?keycode=%d?value=%d",??
  • ????????rawEvent.deviceId,?rawEvent.type,?rawEvent.scanCode,?rawEvent.keyCode,??
  • ????????rawEvent.value);??
  • #endif??
  • ??
  • ????process(&?rawEvent);??
  • }??
  • ?? ? ? ?這里通過成員函數mEventHub來負責鍵盤消息的讀取工作,如果當前有鍵盤事件發生或者有鍵盤事件等待處理,通過mEventHub的getEvent函數就可以得到這個事件,然后交給process函數進行處理,這個函數主要就是喚醒前面的InputDispatcherThread線程,通知它有新的鍵盤事件發生了,它需要進行一次鍵盤消息的分發操作了,這個函數我們后面再進一步詳細分析;如果沒有鍵盤事件發生或者沒有鍵盤事件等待處理,那么調用mEventHub的getEvent函數時就會進入等待狀態。

    ?

    ?

    轉載于:https://blog.51cto.com/shyluo/966612

    總結

    以上是生活随笔為你收集整理的Android应用程序键盘(Keyboard)消息处理机制分析(3)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。