移植Android的用戶輸入系統(tǒng),主要的工作分成以下兩個部分:
輸入(input)驅(qū)動程序
用戶空間中動態(tài)配置的kl和kcm文件
由于Android用戶輸入部分的“硬件抽象層”就是libui庫中的EventHub,這部分是系統(tǒng)標(biāo)準(zhǔn)的部分。因此,在實(shí)現(xiàn)特定硬件平臺的Android系統(tǒng)的時候,用戶輸入的硬件抽象層通常情況下不做改變。
EventHub使用Linux標(biāo)準(zhǔn)的input設(shè)備作為輸入設(shè)備,其中又以實(shí)用Event設(shè)備居多。在這種情況下,為了實(shí)現(xiàn)Android系統(tǒng)的輸入,也必須使用Linux標(biāo)準(zhǔn)input驅(qū)動程序作為標(biāo)準(zhǔn)的輸入。
由于標(biāo)準(zhǔn)化程度比較高,實(shí)現(xiàn)用戶輸入系統(tǒng),在用戶空間一般不需要更改代碼。唯一的情況是使用不同的kl和kcm文件,使用按鍵的布局和按鍵字符映射關(guān)系。