輸入設(shè)備都有共性:中斷驅(qū)動+字符IO,基于分層的思想,Linux內(nèi)核將這些設(shè)備的公有的部分提取出來,基于cdev提供接口,設(shè)計了輸入子系統(tǒng),所有使用輸入子系統(tǒng)構(gòu)建的設(shè)備都使用主設(shè)備號13,同時輸入子系統(tǒng)也支持自動創(chuàng)建設(shè)備文件,這些文件采用阻塞的IO讀寫方式,被創(chuàng)建在"/dev/input/"下。如下圖所示。內(nèi)核中的輸入子系統(tǒng)自底向上分為設(shè)備驅(qū)動層,輸入核心層,事件處理層。由于每種輸入的設(shè)備上報的事件都各有不同,所以為了應(yīng)用層能夠很好識別上報的事件,內(nèi)核中也為應(yīng)用層封裝了標(biāo)準(zhǔn)的接口來描述一個事件,這些接口在"/include/upai/linux/input"中。

  • 設(shè)備驅(qū)動層是具體硬件相關(guān)的實現(xiàn),也是驅(qū)動開發(fā)中主要完成的部分,

  • 輸入核心層主要提供一些API供設(shè)備驅(qū)動層調(diào)用,通過這些API設(shè)備驅(qū)動層上報的數(shù)據(jù)就可以傳遞到事件處理層,

  • 事件處理層負(fù)責(zé)創(chuàng)建設(shè)備文件以及將上報的事件傳遞到用戶空間,

移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),手機維修培訓(xùn),手機軟件培訓(xùn)

input的使用

input對象描述了一個輸入設(shè)備,包括它可能上報的事件,這些事件使用位圖來描述,內(nèi)核提供的相應(yīng)的工具幫助我們構(gòu)建一個input對象,大家可以參考內(nèi)核文檔"Documentation/input/input-programming.txt",里面對于input子系統(tǒng)的使用有詳細(xì)的描述。

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式