在android 系統中定義了大量的物理和虛擬按鍵,比如返回鍵,home鍵,數字鍵等。現在有這樣乙個需求,要在現有的開發板上新增乙個新的物理按鍵。
在新增按鍵之前,需要了解andorid 系統的按鍵軟體架構,以物理按鍵為例。
1. 按鍵驅動層
將物理按鍵的鍵值上報給按鍵框架層。在手機的檔案系統中,有這樣的乙個目錄 /dev/input,按鍵框架層,就是通過檢測這個目錄,看是否有按鍵值上報。
2. 按鍵框架層
<1>將驅動中定義個的按鍵值對映成按鍵碼.(*.kcl)
<2>將按鍵碼對映成使用者可見的字元.(*.kcm)
3. 按鍵應用層
應用層在onkeyup,onkeydown 中識別的就是keycode.
按鍵值對映檔案 *.kl
如generic.kl,qwerty.kl 等。
key 123 back, 這句話的意思是 將驅動上報的鍵值 123 對映城按鍵碼 back,back 有自己的值(keycodelabel.h).
按鍵字元對映檔案 *.kcm
將按鍵碼對映成多個可顯示的使用者可以看到的字元。
如 qwerty.kcm(全鍵盤)
meta keys:就是alt、shift、caps_lock 這幾個鍵。
key a
label 表示顯示的字元 'a"
number 表示這個按鍵碼對應的數字,如在 九宮格中,按下包含a的那個鍵時,對應的數字鍵就是2
base 表示,alt,shift,caps_lock 這些按鍵沒有被按下時,需要顯示的字元
shift,capslock 表示shift或者capslock 被按下時,需要顯示的字元
其他的類似。
**:
Android4 1強制橫豎屏
由於做的是車機,所以有些應用是豎屏時要強制轉換一下,以下是強制轉換橫豎屏的方法 方法一 方法二 android4.0 frameworks base services su ceflinger su ceflinger.cpp void graphicplane setdisplayhardware...
android虛擬按鍵的實現
以前看過好幾次的東西又忘記了.或者寫下來就會記住了吧.那就寫下來 systemui 中虛擬按鍵的實現 home,back,recently 以home鍵為例 在layout中,定義home鍵為乙個keybuttonview 從布局上看,每個虛擬按鍵是 keybuttonview 那麼這個 class...
android如何新增乙個新的時區
前言 宣告csdn 雨季o莫憂離 正文解決方案 以加入nigeria時區為例,應該如下修改 1.找到該國家在zoneinfo中的時區資訊。區資訊的檔案可以從 比如在africa.txt中搜尋nigeria,可以找到下面的內容 nigeria zone name gmtoff rules format...