Как программировать в Android Studio с любого устройства с помощью JetBrains Projector

Хотите удаленно писать код в Android Studio? Попробуйте JetBrains Projector — лучший способ запустить IntelliJ IDE от JetBrains на любом устройстве.

JetBrains — компания, создавшая некоторые из самых популярных IDE, включая IntelliJ IDEA, PyCharm и PhpStorm. Даже Android Studio, своего рода собственная IDE Google для разработки Android, основана на IntelliJ.

Хотя IDE IntelliJ популярны по определенной причине (они хороший), иногда они могут быть немного тяжелыми. Например, IntelliJ и Android Studio могут потреблять много ресурсов, просто будучи открытыми. А если вы что-то компилируете, они будут использовать еще больше. Вы также не можете (пока) запускать программы JetBrains на мобильных устройствах, поскольку у JetBrains нет легкодоступных сборок ARM.

Так что же произойдет, если у вас нет мощного компьютера или у вас вообще нет компьютера? Обычно здесь вы ищете другие IDE, которые работают на ARM. Но у JetBrains есть решение, и оно называется JetBrains Projector.

Что такое проектор?

Вы, наверное, уже слышали об удаленном рабочем столе или VNC. Он позволяет вам графически взаимодействовать с компьютером через локальную сеть или даже через Интернет. JetBrains Projector работает немного как удаленный рабочий стол, но без некоторых недостатков.

Чтобы использовать проектор JetBrains, вам понадобится компьютер где-нибудь в Интернете, на котором он будет размещен. Это может быть экземпляр AWS или домашний сервер. Затем вы сможете подключиться к нему из любого поддерживаемого браузера, включая мобильный Chrome и Firefox.

Но вместо того, чтобы отображать весь рабочий стол и отправлять его видео обратно подключенному клиенту, JetBrains Projector отправляет информацию, необходимую клиенту для отображения IDE, как если бы он отображал локально. Это означает, что нет никакого сжатия или масштабирования разрешения, поэтому IDE выглядит почти естественно.

Кроме того, JetBrains Projector не ограничивается только официальными IDE JetBrains. Если у вас есть IDE, основанная на среде JetBrains, вы можете использовать ее с JetBrains Projector. Это включает в себя Android Studio.

Почему проектор?

Самая большая причина, по которой вы, возможно, захотите заняться удаленной разработкой, — это то, о чем я говорил во введении: что, если у вас нет мощного компьютера на базе x86? Вы можете купить полумощный специально для разработки или запустить облачный сервер и использовать JetBrains Projector.

Это также может быть полезно, если вы просто хотите разгрузить требования к ресурсам. Например, у меня есть довольно мощный игровой ноутбук с процессором i7-9750H и 32 ГБ оперативной памяти. Этого достаточно даже для крупных проектов, которыми я занимаюсь. Но если я хочу сделать что-то еще, помимо разработки, это тоже ресурсоемко, например смотрю ютуб, играя в игру? Потом все начинает разваливаться.

Но у меня есть сервер Ryzen 7 5800X с 32 ГБ ОЗУ. Поэтому я установил на него проектор JetBrains. Теперь я могу просто открыть новое окно Chrome и подключиться к нему со своего ноутбука, не беспокоясь о манипулировании ресурсами. Сервер также собирается намного быстрее, чем мой ноутбук, так что это беспроигрышная ситуация.

Как пользоваться проектором?

JetBrains Projector предназначен для размещения на компьютере с Linux. Это не означает, что вы не можете запустить его на macOS или Windows с WSL, но из-за этого вы можете столкнуться с некоторыми странными проблемами.

Чтобы его настроить, все, что вам нужно сделать, это зайти в Репозиторий установщика проектора на GitHub и следуйте инструкциям там. Они помогут вам установить зависимости и настроить IDE. Есть даже некоторые шаги по устранению неполадок WSL, если они вам понадобятся.

Затем вы можете просто подключиться к адресу вашего сервера, используя правильный порт и токен (если вы его установили), и теперь на вашем устройстве работает IDE без какого-либо раздувания.

Android-разработка

Я разработчик Android, поэтому, хотя я мог бы использовать IntelliJ IDEA для разработки, Android Studio работает лучше. Хотя JetBrains Projector поддерживает сторонние IDE, теперь для их загрузки и установки достаточно просто использовать встроенный интерфейс командной строки. Однако это все еще довольно просто.

Чтобы использовать Android Studio с проектором JetBrains, все, что вам нужно сделать, это загрузить и извлечь Android Studio в подходящее место. Затем вы можете вручную добавить его в Projector через командную строку, указав путь.

Есть еще одна проблема с разработкой Android и Projector: запуск приложений. Без каких-либо дополнительных действий вы можете кодировать приложения и просматривать их предварительный просмотр в Projector, но вы не можете использовать эмулятор или подключиться к реальному устройству для фактического запуска и отладки приложений. Или можешь?

Похоже, что Google ожидал такого сценария, поскольку ADB может подключаться к удаленному серверу через Интернет. Все, что нужно, — это SSH-туннель от клиента к серверу Projector. Я установил Android Studio на проектор, чтобы не пытаться управлять ADB и использовать порт 5038. Затем я просто использую какой-нибудь SSH-клиент (OpenSSH, plink и т. д.) для создания туннеля, который перенаправляет сервер ADB, работающий локально на порту 5037, на сервер на порту 5038. Легкий!

Все, что вам нужно, это SSH-туннель для правильной разработки Android.

Если вам нужна дополнительная информация о том, как заставить работать туннелирование Android Studio и SSH, ознакомьтесь с этим Документ GitHub Хоаким Вержес.

Одно замечание об Android Studio и других сторонних IDE на базе JetBrains: их нельзя обновить с экрана проектора. Вам нужно будет напрямую подключиться к серверу и обновить их оттуда. Прежде чем сделать это, убедитесь, что соответствующий экземпляр проектора остановлен.

Android Разработка Android

Поскольку JetBrains Projector работает в браузере и можно подключиться с чего-то вроде телефона Android, то это совершенно случайный пример, и мне захотелось кое-что попробовать.

В Android 11 появилась возможность включить беспроводной ADB прямо с устройства. Хотя некоторые производители уже раскрыли эту настройку, она доступна не для всех устройств, сертифицированных Google, если они работают на Android 11 или более поздней версии. Хотя беспроводная отладка предназначена для использования с компьютера, это не обязательно.

Приложения похожие на Сидзуку продемонстрировать, что на Android 11 можно подключиться к вашему устройству с помощью ADB... с вашего устройства, даже не думая об использовании компьютера. Хотя Шизуку использует это, чтобы позволить приложениям выполнять операции с повышенными правами, я думаю, вы, вероятно, понимаете, к чему это приведет.

Итак, я сделал приложение! Не знаю, сделаю ли я это когда-нибудь публичным, но это довольно просто. У меня есть библиотека SSH и двоичный файл ADB ARM64. Я использую двоичный файл ADB для подключения к используемому устройству, затем использую библиотеку SSH для создания туннеля пересылки от моего устройства к серверу проектора. И, наконец, я использую его для хранения и запуска URL-адресов проекторов.

Бам, разработка для Android... из Android! Каждый раз, когда меня нет дома, но я хочу заняться разработкой Android, я могу просто достать свой Самсунг Галакси Таб С7. У меня есть Bluetooth-клавиатура и Bluetooth-мышь (примечание: если вы используете проектор, вам Действительно хотите использовать мышь или трекпад. Он не очень хорошо справляется с сенсорным вводом), поэтому я могу разрабатывать и отлаживать без необходимости переключать устройства и не таскать с собой гораздо более тяжелый ноутбук.

Проблемы

JetBrains Projector все еще находится на ранней стадии разработки, поэтому он не идеален.

  1. Иногда он немного подтормаживает при реагировании на такие действия, как прокрутка и перетаскивание, а элементы управления могут работать шатко.
  2. Случайным образом при просмотре кода библиотеки (декомпилированного или в виде исходного кода) шрифт становится очень тяжелым и все зависает. Хотя, возможно, на момент написания этой статьи это было исправлено.
  3. Некоторые плагины не будут работать должным образом. Поскольку это не прямой видеопоток, плагины, такие как встроенные браузеры, просто ничего не отображают.
  4. Поддержки X-сервера нет и, вероятно, не будет. Это может затруднить разработку настольных и браузерных приложений, но вы всегда можете использовать SSH-туннель с X-переадресацией и локальный X-сервер, если вам это действительно нужно.
  5. Иногда интерфейс зависает, и вам нужно обновить страницу или даже перезапустить службу сервера, чтобы она снова заработала.

И это еще не все.

Но является ли все это нарушением условий сделки? Конечно, не для меня. Меня вполне устраивает немного менее совершенный опыт (в конце концов, я использую Android Studio Canary), особенно если это означает, что я могу перенести всю работу по компиляции на другой компьютер и даже разработать для своего планшета со своего компьютера. планшет.

Android Studio работает на Samsung Galaxy Tab S7 через проектор JetBrains

Несмотря на все проблемы, мне по-прежнему очень нравится JetBrains Projector. Это делает возможной разработку с мобильных устройств, переносит нагрузку ресурсов с локального компьютера на удаленный, а еще это просто здорово.

Я знаю, что другие IDE, такие как Visual Studio, позволяют перенести компиляцию на удаленный компьютер, но для этого все равно требуется, чтобы IDE была установлена ​​и работала локально.

Я лично очень рад видеть, как проектор JetBrains будет развиваться дальше, потому что сейчас он уже довольно невероятен. Надеюсь, они смогут исправить некоторые из проблем, которые я описал выше, но даже сейчас Projector можно безопасно использовать для готовых к производству проектов.

Если вы хотите попробовать JetBrains Projector самостоятельно, вот ссылка еще раз к установщику и руководству по первоначальной настройке. Если вы хотите настроить Android Studio в Projector, вот еще раз эта ссылка, также.