输入系统_Reader线程_核心类及配置文件

在EventHub.cpp中EventHub类:(int 代表设备编号,Device*代表设备)

KeyedVector<int32_t, Device*> mDevices;
struct Device {
    Device* next;

    int fd; // may be -1 if device is virtual
    const int32_t id;
    const String8 path;
    const InputDeviceIdentifier identifier;

最后类对象:

包括一些设备的信息,名字,bus,厂商,版本号

输入系统_Reader线程_核心类及配置文件

这些信息是从驱动得来的。

以后会根据这些信息打开配置文件。有3种

1、IDC(input device conf)

2、keylayout(键盘布局)

3、KCM(键盘字符映射)

输入系统_Reader线程_核心类及配置文件

输入系统_Reader线程_核心类及配置文件

在内核里  KEY_1  代表的是 2

而在安卓里  AKEYCODE_1 代表的是8

那么在这个中间起到转化作用的就是.kl文件

然后安卓按照一定的顺序查找这些文件