<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • 手機萬能驅動工具(usb萬能驅動安卓手機版操作)


    1、Input驅動程序是Linux輸入設備的驅動程序,分成游戲桿(joystick)、鼠標(mouse和mice)和事件設備(Event queue)3種驅動程序。其中事件驅動程序是目前通用的驅動程序,可支持鍵盤、鼠標、觸摸屏等多種輸入設備。Android系統級深入開發——input驅動程序

    支持的輸入設備

    2、Input驅動程序的主設備號是13,3種驅動程序的設備號分配如下所示:

    joystick游戲桿:0~31

    mouse鼠標:32~62

    mice鼠標:63

    事件設備(Event):64~95

    實際上,每一種IInput設備占用5位,因此每種設備包含的個數是32個。

    3、Event設備在用戶空間大多使用read、ioctl、poll等文件系統的接口進行操作,read用于讀取輸入信息,ioctl用于獲取和設置信息,poll調用可以進行用戶空間的阻塞,當內核有按鍵中斷時,通過在中斷中喚醒poll的內核實現,這樣在用戶空間poll調用也可以返回。

    Event設備在文件系統中的設備節點為:/dev/input/eventX。Android系統級深入開發——input驅動程序

    Input設備節點

    主設備號為13,次設備號遞增生成,為64~95,各個具體的設備在misc、touchscreen、keyboard等目錄中。

    4、Event輸入驅動的架構圖如下所示:Android系統級深入開發——input驅動程序

    Event輸入驅動的架構圖

    輸入設備驅動程序的頭文件:include/linux/input.h。

    輸入設備驅動程序的核心和Event部分代碼分別是:drivers/input/input.c和drivers/input/evdev.c。

    input.h中定義了struct input_dev結構,它表示Input驅動程序的各種信息,對于Event設備分為同步設備、鍵盤、相對設備(鼠標)、絕對設備(觸摸屏)等。

    input_dev中定義歸納了各種設備的信息,例如按鍵,相對設備、絕對設備、雜項設備、LED、聲音設備、強制反饋設備、開關設備等。Android系統級深入開發——input驅動程序

    input_dev結構體

    Android系統級深入開發——input驅動程序
    Android系統級深入開發——input驅動程序

    在具體的Event驅動程序的實現中,如果得到按鍵的事件,通常需要通過以下的接口向上進行通知,這些內容也是在input.h中定義的,如下所示:

    Android系統級深入開發——input驅動程序
    Android系統級深入開發——input驅動程序
    Android系統級深入開發——input驅動程序

    5、對不同設備內容的報告均是通過input_event()函數來完成的,選擇使用了不同參數而已。在手機系統中經常使用的鍵盤(keyboard)和小鍵盤(keypad)屬于按鍵設備EV_KEY,軌跡球屬于相對設備EV_REL,觸摸屏屬于絕對設備ABS。

    關于按鍵數值的定義片段如下所示:

    Android系統級深入開發——input驅動程序

    6、可以使用getevent對Event設備進行調試。Android系統級深入開發——input驅動程序

    geteventAndroid系統級深入開發——input驅動程序

    getevent -l

    點擊鼠標,出現以上信息:第一列為設備節點,第二列為輸入設備類型,第三列為按鍵掃描碼,第四列為附加信息(按下、抬起、移動等)。

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费