Търсите да кодирате дистанционно в 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 Projector, имате нужда от компютър някъде в Интернет, за да го хоствате. Това може да е екземпляр на AWS или домашен сървър. След това можете да се свържете с него от всеки поддържан браузър, включително мобилни Chrome и Firefox.
Но вместо да покажете цял работен плот и да изпратите видео емисия от него обратно към свързан клиент, JetBrains Projector изпраща информацията, необходима на клиента, за да покаже IDE, сякаш се показва локално. Това означава, че няма никакво компресиране или мащабиране на разделителната способност, така че IDE изглежда почти естествено.
Освен това JetBrains Projector не се ограничава само до официалните JetBrains IDE. Докато имате IDE, която е тясно базирана на такава от JetBrains, можете да я използвате с JetBrains Projector. Това включва Android Studio.
Защо проектор?
Най-голямата причина, поради която може да искате да правите отдалечена разработка, е това, за което говорих във въведението: Какво ще стане, ако нямате мощен компютър, базиран на x86? Можете да закупите полумощен специално за развойна работа или можете да завъртите облачен сървър и да използвате JetBrains Projector.
Може да бъде полезно и ако просто искате да разтоварите изискванията за ресурси. Например, имам доста мощен лаптоп за игри с i7-9750H и 32 GB RAM. Това е достатъчно дори за големите проекти, с които се занимавам. Но ако искам да направя нещо друго в допълнение към разработката, което също е ресурсоемко, като например гледане на YouTube, играя игра? Тогава нещата започват да се разпадат.
Но имам сървър Ryzen 7 5800X с 32 GB RAM в него. Така че инсталирах JetBrains Projector на това. Сега мога просто да отворя нов прозорец на Chrome и да се свържа с него от моя лаптоп, без да се притеснявам за жонглиране с ресурси. Сървърът също се изгражда много по-бързо от моя лаптоп, така че е печеливша ситуация.
Как се използва проектор?
JetBrains Projector е предназначен да бъде хостван на Linux машина. Това не означава, че не можете да го стартирате на macOS или на Windows с WSL, но може да срещнете някои странни проблеми поради това.
За да го настроите, всичко, което трябва да направите, е да се насочите към Инсталатор на проектор GitHub repo и следвайте инструкциите там. Те ще ви преведат през инсталирането на зависимостите и настройката на IDE. Има дори някои стъпки за отстраняване на неизправности с WSL, ако имате нужда от тях.
След това можете просто да се свържете с адреса на вашия сървър, като използвате правилния порт и токен (ако сте задали такъв) и сега имате IDE, работещ на вашето устройство, без никакво раздуване.
Разработка на Android
Аз съм разработчик на Android, така че докато мога да използвам IntelliJ IDEA за разработка, Android Studio обикновено работи по-добре. Въпреки че JetBrains Projector поддържа IDE на трети страни, сега е толкова лесно, колкото използването на вградения интерфейс на командния ред, за да ги изтеглите и инсталирате. Все пак е доста просто.
За да използвате Android Studio с JetBrains Projector, всичко, което трябва да направите, е да изтеглите и извлечете Android Studio някъде разумно. След това можете ръчно да го добавите към Projector чрез командния ред, като посочите пътя.
Има и друг проблем с разработката на Android и Projector: стартиране на приложения. Без нищо допълнително можете да кодирате приложения и да преглеждате визуализации в Projector, но не можете да използвате емулатор или да се свържете с реално устройство, за да стартирате и отстранявате грешки в приложения. Или можеш?
Почти като Google очакваше този вид сценарий да се случи, защото ADB може да се свърже с отдалечен сървър през интернет. Всичко, което е необходимо, е SSH тунел от клиента до сървъра на Projector. Настроих Android Studio на проектора да не се опитва да управлява ADB и да използва порт 5038. След това просто използвам някакъв SSH клиент (OpenSSH, plink и т.н.), за да създам тунел, който препраща ADB сървъра, работещ локално на порт 5037, към сървъра на порт 5038. лесно!
Ако искате повече подробности за това как да накарате Android Studio и SSH тунелирането да работи, вижте това Документ на GitHub от Хоаким Вергес.
Една забележка относно Android Studio и други IDE на трети страни, базирани на JetBrains: Не можете да ги актуализирате от екрана на проектора. Ще трябва да се свържете директно със сървъра дистанционно и да ги актуализирате от там. Уверете се, че съответният екземпляр на проектора е спрян, преди да го направите.
Разработка на Android Android
Тъй като JetBrains Projector работи в браузър и можете да се свържете от нещо като телефон с Android, като напълно случаен пример, исках да опитам нещо.
Android 11 въведе възможност за активирайте безжичен ADB директно от устройството. Въпреки че някои производители разкриха настройката преди това, тя не е налична за всички сертифицирани от Google устройства, стига да са с Android 11 или по-нова версия. Докато безжичното отстраняване на грешки е предназначено да се използва от компютър, не е задължително.
Приложения като Шизуку демонстрирайте, че е възможно на Android 11 да се свържете с ADB към вашето устройство... от вашето устройство, без дори да мислите за използване на компютър. Въпреки че Shizuku използва това, за да позволи на приложенията да изпълняват повишени операции, мисля, че вероятно можете да видите накъде отива това.
Така че направих приложение! Не знам дали някога ще го направя публично достояние, но е доста просто. Имам SSH библиотека в него заедно с ARM64 ADB двоичен файл. Използвам ADB двоичния файл, за да се свържа с устройството, което използвам, след което използвам SSH библиотеката, за да създам препращащ тунел от моето устройство към сървъра на проектора. И накрая, използвам го за съхраняване и стартиране на URL адреси на проектор.
Бам, разработка за Android...от Android! Всеки път, когато не съм вкъщи, но искам да се занимавам с разработка на Android, мога просто да извадя своя Samsung Galaxy Tab S7. Имам Bluetooth клавиатура и Bluetooth мишка (странична бележка: ако използвате проектор, ще наистина ли искате да използвате мишка или тракпад. Не се справя добре с въвеждане чрез докосване), така че мога да разработвам и отстранявам грешки, без да е необходимо да сменям устройства и без да се налага да мъкна много по-тежък лаптоп.
проблеми
JetBrains Projector все още е в доста ранна разработка, така че не е перфектен.
- Понякога е малко забавено, когато реагирате на неща като превъртане и плъзгане, и контролите могат да излязат.
- Случайно, когато преглеждате кода на библиотеката (декомпилиран или в изглед на изходния код), теглото на шрифта става наистина тежко и всичко изостава. Това обаче може да е поправено към момента на писане на това.
- Някои плъгини няма да работят правилно. Тъй като това не е директен видео поток, плъгини като вградените браузъри просто няма да показват нищо.
- Няма поддръжка на X сървър и вероятно няма да има. Това може да затрудни разработката на приложения за десктоп и браузър, но винаги можете да използвате SSH тунел с X пренасочване и локален X сървър, ако наистина имате нужда.
- Понякога интерфейсът блокира и трябва да опресните страницата или дори да рестартирате услугата на сървъра, за да заработи отново.
И има още.
Но дали всичко това нарушава сделката? Със сигурност не е за мен. Напълно добре съм с малко по-неблагоприятно изживяване (все пак използвам Android Studio Canary), особено ако това означава, че мога да прехвърля цялата работа по компилирането на друг компютър и дори да разработя за моя таблет от моя таблет.
Дори и с неговите проблеми, все още наистина харесвам JetBrains Projector. Прави възможна разработката от мобилни устройства, премества натоварването на ресурсите от локален компютър към отдалечен и също така е наистина страхотно.
Знам, че други IDE, като Visual Studio, ви позволяват да прехвърлите компилация на отдалечен компютър, но това все още изисква да имате инсталирана и работеща локално IDE.
Аз лично съм много развълнуван да видя накъде ще се развие JetBrains Projector, защото вече е доста невероятно в момента. Надяваме се, че ще успеят да коригират някои от проблемите, които описах по-горе, но дори сега Projector трябва да е безопасен за използване за проекти, готови за производство.
Ако искате сами да изпробвате JetBrains Projector, ето линк отново към инсталатора и ръководството за първоначална настройка. Ако искате да настроите Android Studio в Projector, ето пак линка, както добре.