На верхнем уровне в ОС Android есть класс взаимодействия с устройствами ввода
android.view.InputDevice.
Необходимо проследить весь путь вызова функций от него до устройства уровня ядра Linux вида /dev/input/устройство.
Насколько я понял, класс
InputDevice вызывает
InputManager, который через заголовочный
файл вызывает сервис
InputManagerService, который опять вызывает
InputDevice. И в нем написано:
// Called by native code.
private InputDevice(int id, int generation, int controllerNumber, String name, int vendorId,
int productId, String descriptor, boolean isExternal, int sources, int keyboardType,
KeyCharacterMap keyCharacterMap, boolean hasVibrator, boolean hasButtonUnderPad) {
Правильно ли я понимаю, что какой-то сервис уровня Linux (т.е. не Java) создает каким-то механизмом экземпляры java-классов таким хитрым вызовом?
Если да, то где в исходнике именно это происходит?
Если я ошибаюсь, то какой правильный путь вызова функций от верхнего уровня до нижнего?
Ответ нужен для небольшого исследования в рамках написания статьи на хабр.