Каков фактический путь случая действий, когда я нажимаю клавишу на клавиатуре, и это показывает на оболочке?

Попробуйте очистить и перестроить свой проект.

Если это не сработает, используйте этот код для установки фона.

linearLayout.setBackground(ContextCompat.getDrawable(this, R.drawable.img1))

Кстати, в следующий раз вы должны опубликовать код напрямую, а не передавать ссылку.

5
задан GEOCHET 13 March 2009 в 15:25
поделиться

2 ответа

Входной слой Linux с драйверами USB добирается, scancodes (в основном "КЛЮЧЕВОЙ 1 ВНИЗ" "НАСТРАИВАЕТ 1") с клавиатуры.

X использования его контурная карта для преобразования scancodes в коды клавиши и X входных событий.

Метод ввода GTK преобразовывает последовательность входных событий в составленные unicode символы.

Терминал Gnome кодирует их в UTF-8 для оболочки.

Shell не заботится. это просто знает, что имеет дело с многобайтовым кодированием.

Оболочка повторяет многобайтово закодированный текст назад через TTY.

Терминал Gnome декодирует входящий текст и определяет unicode кодовые точки.

Терминал Gnome тянет символы с помощью GTK + средства.

GTK + использует Pango для рендеринга текста и называет X библиотек для рисования пикселей на экран.

X-сервер вовлекает символы в экранный буфер, и видеокарта отображает их.

Вот моя попытка схемы:

сопроводительный текст http://osoft.us/system_layers.png

8
ответ дан 13 December 2019 в 22:17
поделиться

Посмотрите на него в слоях. Сначала аппаратные средства, и драйвер устройства в ядре Linux будет иметь определенные методы для управления и ответа на клавиатуру с помощью регистров состояния в устройстве и обработчиков прерываний, например.

Затем ядро Linux, которое будет иметь некоторый метод загрузки соответствующего драйвера для каждой части аппаратных средств обнаруженным во время начальной загрузки. После того, как загруженный, драйвер устройства соответствует некоторому интерфейсу драйвера ядра, обеспечивая данные от устройства до ядра и наоборот.

Вне ядра, на некотором уровне, драйвер устройства и аппаратные средства видимы, обычно как список в/dev каталоге. Программное обеспечение, как эмулятор терминала, который должен использовать устройство, получит доступ к устройству посредством записи в/dev.

Коммуникация между приложением уровня пользователя и устройством теперь происходит через ряд чтения-записи и ioctl операций. Они захватывают в ядро (см. страницы руководства для них для некоторой детали), в которой точке ядро общается с драйвером устройства, загруженным выше.

Эмулятор терминала отобразит символы, поскольку Вы вводите их (в большинстве случаев) и поскольку они получены от устройства (в большинстве случаев) при помощи шрифтов, к которым это может получить доступ, расположенный в различных местах в зависимости от приложения. (Я говорю в общих местах здесь, потому что я не знаю Gnome конкретно).

Это помогает?

2
ответ дан 13 December 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: