Для платформы Android создан X-сервер, написанный на языке Java
7 марта 2012 года
Представлен проект Android X server, в рамках которого подготовлена реализация X11-сервера для платформы Android, написанного на языке Java. X-сервер выполняется как подкласс Android View, что позволяет легко интегрировать его в другие приложения. Код проекта распространяется в рамках лицензии MIT. Интересно, что работа за несколько месяцев выполнена аспирантом, пожелавшим на практике разобраться в тонкостях работы протокола X11. Работы оказалось больше, чем предполагалось, но проект получился востребованным и полезным, поэтому был в итоге доведён до конца.
Для оценки возможностей проекта подготовлено простое демонстрационное приложение, доступное через Android Market. Приложение реализует более-менее полноценный X11-сервер, работающий как обычное приложение для платформы Android. Используя протокол X11 открывается возможность удалённого запуска нативных X11-приложений, размещённых на текущем устройстве или на другой машине в сети, с отображением вывода на экран Android-устройства. Например, внутри системы Android возможно создание chroot-окружения с ARM-сборкой полноценного дистрибутива Linux, выполнение графических приложений в котором не потребует лишних усложнений, таких как запуск отдельного VNC-сервера в связке с VNC-клиентом для платформы Android.
Из ограничений разработки отмечается отсутствие интегрированного оконного менеджера, что приводит к проблемам с запуском напрямую многих X-приложений (будут работать программы использующие только Xlib и Xaw, такие как xlogo, xclock, xeyes, xterm, xfd). Для решения проблемы предлагается запустить на удалённой стороне оконный менеджер (например, "fvwm -display ip_телефона:0") или интегрировать оконный менеджер в приложение Android, для чего потребуется создание аналога Xlib. Кроме того, не реализована поддержка некоторых редкоиспользуемых частей протокола X, таких как динамические карты цветов (поддерживается только 24-битные статические карты цветов), некоторые примитивы (например, пунктирная линия), операции отрисовки ограничены Copy и Xor. Не реализована поддержка расширений протокола X, но подготовлены хуки для желающих реализовать подобные расширения, например, X RENDER и X SHAPE.
В Android X server по умолчанию отключен контроль доступа, поэтому запустив X-сервер, можно сразу начинать эксперименты с запуском приложений, не забывая при этом о возможных угрозах безопасности, связанных с доступностью X-сервера для любых внешних запросов. Касание к сенсорному экрану транслируется в перемещение указателя курсора. Манипуляции с трекпадом аналогичны нажатию левой, средней и правой кнопок мыши. Поддерживается ввод как с физической клавиатуры, так и с виртуальной.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.