В далёком 2017 году в Samsung для своих флагманов (на тот момент S8/S8+) на базе Android 7 добавили особый режим DeX. Он позволяет работать на внешнем мониторе в похожем на десктопное окружении, и подключать периферию (в частности, клавиатуру/мышь). Альтернативы тоже были и есть: гугл подсказывает, что без DeX выводить контент на ТВ через Google Chromecast можно было судя по документации начиная с Android 8 (нужна ещё и поддержка на стороне ТВ/приставки), такая же история с совместимостью и с Miracast. А ещё есть технология MHL, и тут на 4pda есть даже отдельный список устройств которые умеют вывод по HDMI (как с MHL, так и сами). При этом тут на Хабре в 2020 уже был краткий обзор DeX середины 2020 года, и пришло время посмотреть на эту фичу спустя 3.5 года.
В общем, способы вызволить джина из бутылки Андроид из смартфона есть давно. После покупки устройства, которое это умеет, стало интересно пощупать это вживую и посмотреть, имеет ли оно смысл в 2024 году.
Для честности следует заметить, что iPhone/iPad тоже умеют выводить картинку на внешний монитор, но просто в режиме дублирования экрана, что совсем не похоже на сабж. Может, в 15 iPhone что-то изменилось, поправьте тогда, пожалуйста, в комментариях.
Оборудование
Собственно, минимум который нужен — это смартфон с DeX и USB-C хаб с поддержкой HDMI (и если использовать Bluetooth периферию, то больше разъёмов и не надо). Итак, что я тестировал сам для проводного режима DeX:
-
смартфон Samsung S23
-
хаб Hoco HB28
-
монитор с HDMI
-
периферия (можно Bluetooth, если хаб с USB — то проводные, работают все, проверял).
Сразу оговорюсь, что хаб подходит по идее любой, который умеет подключаться по Type-C и выводить картинку на HDMI. Например, из тех какие любят маководы. Для мониторов без HDMI есть хабы с DisplayPort и шнурки Type-C — DisplayPort, должно тоже работать, но не проверял (не на чем).
Также поддерживается беспроводной режим DeX, но для него нужен уже не совершенно любой тупой ТВ или моник, а смарт-ТВ с Miracast. У меня такого нет, только монитор, так что формат не подходит. Уверен, что среди читателей будут люди со смарт-ТВ так что можете потестировать и похвастать в комментариях 😉.
На практике использовалось подключение к монитору FullHD на 23 дюйма, и другому — 2K WQHD 2560×1440. При этом “из коробки” не выводится картинка с разрешением выше чем FullHD, немного поиска — был найден ответ на 4pda (может кому будет полезно):
-
надо установить дополнительно из Samsung Galaxy Store две программы Good Lock и MultiStar
-
потом запустить Good Lock и в меню Multistar → I love Samsung DEX включить High resolutions for external display. Там же рекомендую сразу включить Run many apps at same time.
-
после подключения к монитору в меню Настройки → Samsung DeX → Разрешение экрана выбрать нужное (если автоматом не подхватилось).
Особенности самой ОС в режиме DeX
Как на большинстве десктопных ОС, внизу будет панель задач с со своей кнопкой Пуск, часами, статус-баром, иконкой активного языка (раньше судя по статье 2020 года не было языка). Далее небольшой список ключевых моментов.
-
Можно пользоваться одновременно и телефоном и монитором (DeX). Например, можно позвонить не отключаясь от DeX. Можно открыть на телефоне телегу, чатиться, и что-то делать на мониторе. Но с небольшими особенностями (см. ниже).
-
Любое приложение можно открыть только либо на телефоне либо на внешнем экране. Например, если мессенджер открыть на телефоне и потом на мониторе, то он какбы перенесётся, и на телефоне исчезнет. Работает переключение быстро, практически мгновенно. По сути аналог переноса окна приложения с одного монитора на другой в десктопной ОС.
-
Приложения переносятся корректно (но не все): например если запустить сначала Chrome в DeX и открыть несколько вкладок, потом открыть браузер на смартфоне, то браузер откроется без вкладок новым окном (в списке активных приложений будет другой браузер с вкладками из DeX). Смахиваем ненужный пустой браузер, и можно юзать нужный. Но поведение нелогичное.
-
По умолчанию активно переключение языков по Alt+Shift, Shift+Space, Ctrl+Space, их можно отключить в меню Настройки → Samsung DeX → Клавиатура → Дополнительные настройки → Физическая клавиатура но нельзя задать свою комбинацию. Там же есть и шпаргалка по всем доступным сочетаниям клавиш в ОС, доступны разные привычные типа переключение между окнами по Alt+Tab, сворачивание всех окон по Win+D, закрытие активного окна по Alt+F4 и пр. Привычный по Линуксам Win+Space переключает метод ввода, но не язык (не меняется в углу), тут получилось неудобно, да.
-
Полноценный многооконный режим, открыть можно сразу много разных приложений и менять размеры окон, закреплять, делать прозрачными, но быстро кончается оперативная память (Андроид сильно прожорлив, и его софт ещё голоднее). На Debian на десктопе 8 гиг RAM хватает очень на многое, тут же браузер с несколькими вкладками, камера, карты, и ещё несколько программ привели к тому, что вкладки в хроме постоянно перезагружались при переходе по ним. Это при том что я меню программ заморозил (отключил) всякий ненужный мне мусор типа Bixby, Android Auto etc. Для каждого приложения запоминается размер окна и после повторного открытия открывается в старом размере, удобно (даже после отключения и подключения режима DeX).
-
Есть стандартная панель быстрых настроек (есть ниже на одном из скринов), чтобы включить/выключить вай-фай, поуправлять громкостью и прочее.
-
Стандартное приложение камеры открывается в DeX, но сильно урезанное, есть только переключение фото-видео и старт-стоп, никаких настроек. Что удивило. Может, условный GCam будет норм, не проверял.
-
Многие приложения запускаются без подстройки масштабирования под большой внешний монитор. Например, на скрине ниже видно как стрёмно сразу выглядят карты (не стал искать где масштаб менять, по CTRL+колёсико не меняет). В принципе, можно дать доступ к местоположению в браузере и юзать браузерную версию. Такая же история была с читалкой Alreader, но там легко вручную масштаб уменьшил для скрина.
-
Настройки открываются полноценные такие же как и на телефоне. Вообще кроме камеры не обнаружил проблем с потерей функционала.
-
Можно выводить экранную клавиатуру на монитор или экран смартфона если вдруг нет физической. Также экран смартфона можно использовать как тач-панель (активируется тапом по особой иконке в левом нижнем углу на самом телефоне).
-
Смартфон разряжается не то чтобы быстро, но заметно: с учётом беспроводной клавиатуры и проводной мыши при наборе этого текста примерно на 16% за 1 час (подозреваю, что у условного Ultra с бОльшей батареей будет медленнее разряд). Удобнее всего поставить смартфон на беспроводную зарядку — нагрузка в режиме инет-сёрфинга и несложных приложений не сильная, перегрева девайса не будет. Также хаб может уметь подавать заряд через Type-C (Hoco умеет во всяком случае).
Далее немного скринов:
Также из-за того, что некоторые приложения вообще не разрабатывались с учётом большого размера окон, возможны забавные баги, например как ниже в клиенте WireGuard:
Особенности работы в браузере и сервисах
Как и было отмечено в обзоре 2020 года, браузер в режиме DeX ничего не знает о том, что он должен прикинуться десктопным, и сайты открывает как планшет по сути (отправляя инфу, что браузер мобильный).
Я использую Chrome, и как оказалось он сильно лучше подходит чем, скажем, Firefox. При этом что есть в Chrome “из коробки”:
-
адекватно автоматически масштабируется под внешний дисплей
-
нормальные вкладки вверху как на десктопе
-
работает открытие ссылки по средней кнопке мыши в новой вкладке
-
работают привычные хоткеи типа Ctrl+T, Ctrl+W, Ctrl+N, Ctrl+Shift+T, Ctrl+Shift+N, Ctrl+Tab, Ctrl+D, Ctrl+Shift+B, Ctrl+H etc.
Что работает, но после небольших телодвижений:
-
ссылки на почту, гугл-доки и т.п. хотят открываться в приложениях или если таковых не установлено — в каком-то урезанном мобильном варианте. Но можно обойти: скопировать ссылку и явно вставить в новой вкладке, потом включить десктопный режим по кнопке “три точки” в углу браузера. Так, например, набрана эта статья на внешнем мониторе. Также выше на скрине видно нормальный десктопный вариант Gmail-почты.
В Chrome нет DevTools, и нет расширений чтобы добавить такую фичу. Потому возникла идея поставить Firefox и расширение DevTools (есть там такое). В итоге Firefox совершенно не умеет понимать что он на большом экране с другим ppi и работает ужасно, без масштабирования (и не нашёл в настройках как чинить). Активация флажка “Вид для ПК” не помогает. Ниже на примере сайта Хабра видно как это выглядит при смене ширины окна на 2К мониторе (сначала сильно большой размер элементов на сайте, потом сильно мелкий):
Также в Firefox не работают хоткеи типа Ctrl+W, и нет вверху или внизу нормальных табов. Но да, расширение поставилось. В общем, Firefox не подошёл.
Потом я вспомнил, что вообще-то есть же стандартный Samsung Internet, который я просто по привычке сразу удалил с телефона при первоначальной настройке. Ну что ж, вернём и потестим его. И как оказалось, всё весьма неплохо: масштабирует адекватно, есть сразу поддержка тёмных тем для сайтов, есть поддержка своих дополнений которые ставятся из Galaxy Store (отдельным пунктом в настройках есть блокировщики рекламы), и потому активировал резатель рекламы и пошёл искать в дополнениях DevTools… И ничего не нашёл и судя по всему расширений там сильно негусто. Переключение по вкладкам список не увеличило:
YouTube в своём родном приложении выглядит как и ожидалось странно (можно развернуть на весь экран, но два раза, сначала само приложение потом видео в приложении, по стрелкам):
Лучше выглядит если открыть в режиме ПК в браузере, но разворачивать из оконного режима также придётся двумя кликами:
Протестированные дополнительные возможности
Запуск Linux и софта в нём
Когда-то сама компания Samsung разработала в 2018 году и год поддерживала приложение Linux on DeX, но потом его прибила. Однако возможность появилась благодаря приложению терминала Termux и пакету PRoot.
Про сам Termux есть прекрасная статья “Код доступа Termux” от господина @ne555. Там перечислены интересные кейсы работы с терминалом начиная с очевидных типа управления сервером по SSH и до более интересных типа построения графиков. Люто бешено рекомендую! Очевидно, что на внешнем мониторе да ещё и с физической клавиатурой эти вещи делать будет ещё удобнее.
Тут же напомню кратко, что мы делаем для запуска Linux (например, Debian) на смартфоне в режиме DeX:
-
Ставим терминал Termux. Помним что он работает сразу под рутом и не надо ставить нигде
sudo
. -
Обновляем пакеты (у Termux свои репозитории):
pkg update && pkg upgrade -y
-
Далее по официальному мануалу, ставим пакет proot-distro.
pkg install proot-distro
-
Ставим какой-то из доступных Linux (например Debian 12):
proot-distro install debian
-
Входим в установленный Debian:
proot-distro login debian
-
Обновляем пакеты и ставим VNC сервер (чтобы подключаться к Linux интерфейсу):
apt update && apt install tightvncserver -y
-
Ставим легковесное графическое окружение (например lxde, я ставил всё, вместе с Libre Office как раз заодно):
apt install task-lxde-desktop
-
Запускаем
vncserver
с нужным разрешением, например 1388×768:vncserver -geometry 1366x768
-
При первом запуске команды будет запрошено создание пароля — вводим какой нравится.
-
В терминале видим вывод типа
New 'X' desktop is localhost:8
— это значит, что всё запустилось и можно подключиться с помощью VNC клиента. -
Ставим на смартфон из Google Play любой VNC клиент, например AVNC.
-
Запускаем его в режиме DeX и подключаемся одним из двух способов: либо просто вводим в поле вверху
localhost:8
(адрес из шага 10), либо добавляем сервер через кнопку “плюс”, тогда надо указать адрес сервераlocalhost
и порт 560x где x — число после localhost из пункта 10. Вообще лучше в Termux проверить порт с помощью командыps -ef | grep whoami | grep vnc
. В любом случае для подключения вводим пароль, указанный в шаге 9.
После чего видим рабочий стол Debian LXDE, ставим туда что хотим и пользуемся. Для примера поставил NodeJS и локально запустил проект рабочей документации (т.к. на работе занимаюсь в том числе составлением мануалов). Debian запущен в окне в правой части скрина:
Также был успешно протестирован запуск разных редакторов из пакета Libre Office, и редактора Gimp т.к. на Android действительно нет нормальных редакторов с поддержкой слоёв (или не нашёл), и один скрин (составленный из двух картинок) для данной статьи пришлось собирать именно там. В качестве браузера Firefox на Debian показывает себя вполне нормально. Весь софт ставится нормально с репозиториев через apt.
Поставить VirtualBox нельзя (его нет под arm64), а docker хоть и ставится но падает с ошибкой отсутствия прав к изменению ulimit. На самом деле интернет подсказывает, что в PRoot нельзя заюзать docker, так что нет ничего неожиданного, но убедиться хотелось.
В Linux нормально показывается свободная и занятая память на накопителе и состояние RAM (те же цифры что и в самом смартфоне), но не прокидываются данные по CPU.
Разработка
Т.к. мы работаем в среде arm64 то собирать софт под десктопные платформы не можем никак. Но в то же время на Android можно запускать не только скрипты из интерпретируемых языков (типа Python, Rust etc.), но есть даже простенькие IDE, например для разработки Android-приложений для теста установил CodeAssist и Code Studio.
CodeAssist в разработке ещё, сильно простой интерфейс и работает нестабильно (не переключает вкладки иногда корректно), зато умеет в Kotlin. Приложение в бете, так что придираться к нему особо нечего:
Code Studio не умеет в Kotlin, но вроде получше немного, багов не обнаружил за 5 минут:
В общем можно поиграться поустанавливать IDE и найти что-то интересное. Как минимум где-то в пути открыть проект и что-то быстро глянуть и даже попробовать собрать можно. Опять же, у нас уже есть Debian, хоть он и ограничен набором софта под arm64.
Общение в мессенджерах
Телеграм выглядит нормально, увеличить окно можно, но особо ничего не даст в плане юзабилити. Всё таки не десктопная версия. Так проблем в UI вроде нет.
Также нормально работает приложение корпоративного мессенджера TrueConf. Для звонков с камерой телефон можно поставить на подставку (беспроводную зарядку). Примеры работы:
Так что там с полезностью?
Тут вопрос интересный. Всё время пока ставил софт, писал статью, и реально удивлялся что так вообще можно, думал а реально какие могут быть кейсы.
Давайте посмотрим что пишет сам производитель (несколько цитат):
-
Отправляйте сообщения друзьям, смотрите кино, работайте над презентацией — все это сразу на одном большом экране. Для дополнительного удобства также доступен беспроводной DeX.
-
Отвечаете за большой проект? DeX поможет вам легко представить аудитории презентацию.
-
Откройте приложение DeX на своем телефоне и подключите его к вашему телевизору для просмотра видео на большом экране или создайте виртуальный класс для своих детей. Одновременно, вы можете продолжить выполнять заниматься своими делами на телефоне.
Ну что ж, на самом деле все эти кейсы будут удобны только с беспроводным режимом и Miracast. С проводами и хабом уже не так удобно, и слабо представляю, чтобы на каком-то мероприятии в конференц-зале можно было легко подцепиться к ТВ-панели — организаторы, у которых всё настроено и идут презентации с ноута, не обрадуются.
Но в случаях, если неохота включать шумный комп а надо что-то попечатать, далеко ноут, или едешь куда-то и знаешь что в отеле/квартирке будет телек и может возникнуть необходимость что-то сделать такое рабочее или просто тупо запустить ютубчик со своих подписок — то можно брать с собой хаб (и по желанию маленькие клаву/мышь) и быть во всеоружии так сказать.
Пока тестировал эту штуку, сам использовал в таких случаях:
-
что-то срочно поправить в рабочих задачах дома, когда лень было ноут забирать с офиса
-
написать и сверстать эту статью на хабре
-
повыбирать что-то в инет-магазинах — очевидно, что любой сайт на большом мониторе удобнее юзать чем на мелком, особенно если сравнить надо характеристики товаров
-
один раз срочно надо было подключиться удалённо к рабочему столу человечка и помочь там в одном моменте, что тоже опять же с мелкого экрана сделать было бы крайне неудобно.
Если ещё есть реальные случаи из жизни или идеи зачем такое может понадобиться — пишите в комментариях и голосуйте в опросе. Спасибо за внимание!