Ako kódovať v Android Studio z akéhokoľvek zariadenia s JetBrains Projector

Chcete vzdialene kódovať v Android Studio? Vyskúšajte JetBrains Projector, najlepší spôsob, ako spustiť IntelliJ IDE JetBrains na akomkoľvek zariadení.

JetBrains je spoločnosť, ktorá stojí za niektorými z najpopulárnejších IDE, vrátane IntelliJ IDEA, PyCharm a PhpStorm. Dokonca aj Android Studio, akési interné IDE spoločnosti Google pre vývoj Androidu, je založené na IntelliJ.

Zatiaľ čo IDE IntelliJ sú z nejakého dôvodu populárne (sú dobre), môžu byť občas trochu ťažké. IntelliJ a Android Studio môžu napríklad zaberať veľa zdrojov len tým, že sú otvorené. A ak niečo zostavujete, využijú ešte viac. Tiež nemôžete (zatiaľ) skutočne spustiť veci JetBrains na mobilných zariadeniach, pretože JetBrains nemá ľahko dostupné zostavy ARM.

Čo sa teda stane, ak nemáte výkonný počítač, alebo dokonca nemáte ani počítač? Za normálnych okolností by ste sa tu poobzerali po iných IDE, ktoré fungujú na ARM. Ale JetBrains má riešenie a volá sa JetBrains Projector.

Čo je to projektor?

O vzdialenej ploche alebo VNC ste už určite počuli. Umožňuje vám graficky komunikovať s počítačom cez lokálnu sieť alebo dokonca cez internet. Projektor JetBrains funguje trochu ako vzdialená pracovná plocha, no bez niektorých nevýhod.

Ak chcete používať JetBrains Projector, potrebujete počítač niekde na internete, aby ste ho mohli hostiť. Môže to byť inštancia AWS alebo domáci server. Potom sa k nemu môžete pripojiť z akéhokoľvek podporovaného prehliadača vrátane mobilného Chrome a Firefoxu.

Ale namiesto zobrazenia celej pracovnej plochy a odosielania videa z nej späť do pripojeného klienta, Projektor JetBrains posiela informácie potrebné na to, aby klient zobrazil IDE, ako keby sa zobrazoval lokálne. To znamená, že neexistuje žiadna kompresia ani škálovanie rozlíšenia, takže IDE vyzerá takmer natívne.

JetBrains Projector tiež nie je obmedzený len na oficiálne JetBrains IDE. Pokiaľ máte IDE, ktoré je úzko založené na IDE od JetBrains, môžete ho používať s JetBrains Projector. To zahŕňa Android Studio.

Prečo projektor?

Najväčší dôvod, prečo by ste mohli chcieť robiť vzdialený vývoj, je to, o čom som hovoril v úvode: Čo ak nemáte výkonný počítač s procesorom x86? Môžete si kúpiť polovýkonný špeciálne pre vývojové práce, alebo môžete spustiť cloudový server a použiť JetBrains Projector.

Môže to byť tiež užitočné, ak chcete len znížiť požiadavky na zdroje. Napríklad mám dosť výkonný herný notebook s i7-9750H a 32 GB RAM. To je dosť aj na veľké projekty, ktorým sa venujem. Ale ak chcem popri vývoji robiť niečo iné, čo je tiež náročné na zdroje, napr sledovanie YouTube, hrať hru? Potom sa veci začnú rúcať.

Ale mám server Ryzen 7 5800X s 32 GB RAM. Tak som na to nainštaloval JetBrains Projector. Teraz môžem jednoducho otvoriť nové okno prehliadača Chrome a pripojiť sa k nemu z prenosného počítača bez obáv o žonglovanie so zdrojmi. Server sa tiež vytvára oveľa rýchlejšie ako môj laptop, takže je to obojstranne výhodná situácia.

Ako sa používa projektor?

Projektor JetBrains je určený na hosťovanie na počítači so systémom Linux. To neznamená, že ho nemôžete spustiť v systéme MacOS alebo Windows s WSL, ale kvôli tomu môžete naraziť na nejaké zvláštne problémy.

Ak ho chcete nastaviť, všetko, čo musíte urobiť, je prejsť do Repa GitHub na inštaláciu projektora a postupujte podľa tam uvedených pokynov. Prevedú vás inštaláciou závislostí a nastavením IDE. Existuje dokonca niekoľko krokov na riešenie problémov s WSL, ak ich potrebujete.

Potom sa môžete jednoducho pripojiť k adrese vášho servera pomocou správneho portu a tokenu (ak ste ho nastavili) a teraz máte na svojom zariadení spustené IDE bez akéhokoľvek nadúvania.

Vývoj systému Android

Som vývojár pre Android, takže zatiaľ čo som mohol použiť IntelliJ IDEA na vývoj, Android Studio zvyčajne funguje lepšie. Aj keď JetBrains Projector podporuje IDE tretích strán, je to teraz také jednoduché ako použitie vstavaného rozhrania príkazového riadka na ich stiahnutie a inštaláciu. Stále je to však celkom jednoduché.

Ak chcete používať Android Studio s JetBrains Projector, všetko, čo musíte urobiť, je stiahnuť a extrahovať Android Studio niekde rozumne. Potom ho môžete manuálne pridať do projektora cez príkazový riadok zadaním cesty.

Existuje aj ďalší problém s vývojom systému Android a projektorom: spustenie aplikácií. Bez čohokoľvek navyše môžete v Projector kódovať aplikácie a prezerať si ukážky, ale na skutočné spúšťanie a ladenie aplikácií nemôžete použiť emulátor ani sa pripojiť k skutočnému zariadeniu. Alebo môžeš?

Je to skoro, ako keby Google očakával, že sa takýto scenár stane, pretože ADB sa môže pripojiť k vzdialenému serveru cez internet. Všetko, čo je potrebné, je tunel SSH od klienta k serveru projektora. Nastavil som Android Studio na projektore, aby sa nepokúšalo spravovať ADB a používal port 5038. Potom jednoducho použijem nejaký druh klienta SSH (OpenSSH, plink atď.) na vytvorenie tunela, ktorý prepošle server ADB bežiaci lokálne na porte 5037 na server na porte 5038. Jednoduché!

Všetko, čo potrebujete, je SSH tunel pre správny vývoj Androidu.

Ak chcete viac podrobností o tom, ako spustiť Android Studio a tunelovanie SSH, pozrite si toto Dokument GitHub od Joaquima Vergesa.

Jedna poznámka o Android Studio a iných IDE založených na JetBrains od tretích strán: Nemôžete ich aktualizovať z obrazovky projektora. Budete sa musieť pripojiť priamo na server a aktualizovať ich odtiaľ. Skôr ako tak urobíte, skontrolujte, či je príslušná inštancia projektora zastavená.

Android Vývoj pre Android

Keďže JetBrains Projector beží v prehliadači a môžete sa pripojiť z niečoho ako telefón s Androidom, ako úplne náhodný príklad som chcel niečo vyskúšať.

Android 11 predstavil možnosť povoliť bezdrôtové ADB priamo zo zariadenia. Zatiaľ čo niektorí výrobcovia toto nastavenie zverejnili už predtým, nie je k dispozícii pre všetky zariadenia certifikované spoločnosťou Google, pokiaľ majú Android 11 alebo novší. Zatiaľ čo bezdrôtové ladenie je určené na použitie z počítača, nemusí to tak byť.

Aplikácie ako Shizuku demonštrovať, že v systéme Android 11 je možné pripojiť sa pomocou ADB k vášmu zariadeniu...z vášho zariadenia bez toho, aby ste museli premýšľať o použití počítača. Zatiaľ čo Shizuku to používa, aby umožnil aplikáciám vykonávať zvýšené operácie, myslím, že pravdepodobne vidíte, kam to smeruje.

Tak som vytvoril aplikáciu! Neviem, či to niekedy zverejním, ale je to celkom jednoduché. Mám v ňom knižnicu SSH spolu s binárnym súborom ARM64 ADB. Na pripojenie k zariadeniu, ktoré používam, používam binárny kód ADB a potom používam knižnicu SSH na vytvorenie tunela na presmerovanie z môjho zariadenia na server projektora. A nakoniec ho používam na ukladanie a spúšťanie adries URL projektorov.

Bam, vývoj pre Android...z Androidu! Kedykoľvek nie som doma, ale chcem sa venovať vývoju pre Android, môžem si vybrať Samsung Galaxy Tab S7. Mám klávesnicu Bluetooth a myš Bluetooth (poznámka: ak používate projektor, budete naozaj chcete použiť myš alebo trackpad. S dotykovým vstupom to nefunguje dobre), takže môžem vyvíjať a ladiť bez toho, aby som musel prepínať zariadenia a bez toho, aby som so sebou musel vláčiť oveľa ťažší notebook.

Problémy

Projektor JetBrains je stále vo veľmi skorom vývoji, takže nie je dokonalý.

  1. Niekedy je to trochu oneskorené pri reakcii na veci, ako je posúvanie a ťahanie, a ovládacie prvky sa môžu zmiasť.
  2. Náhodne, pri prezeraní kódu knižnice (buď dekompilovaného alebo v zobrazení zdroja) je hmotnosť písma naozaj ťažká a všetko zaostáva. To však mohlo byť opravené pri písaní tohto článku.
  3. Niektoré doplnky nebudú správne fungovať. Keďže toto nie je priamy tok videa, doplnky ako vstavané prehliadače jednoducho nič nezobrazia.
  4. Podpora X servera neexistuje a pravdepodobne ani nebude. To môže sťažiť vývoj aplikácií pre stolné počítače a prehliadače, ale vždy môžete použiť tunel SSH s presmerovaním X a lokálnym serverom X, ak to skutočne potrebujete.
  5. Niekedy sa rozhranie zablokuje a musíte obnoviť stránku alebo dokonca reštartovať službu servera, aby znova fungovala.

A je toho viac.

Ale je to všetko narušiteľom obchodov? Pre mňa určite nie. Som úplne v poriadku s o niečo menej lešteným zážitkom (napokon používam Android Studio Canary), najmä ak to znamená, že môžem presunúť všetku kompiláciu na iný počítač a dokonca vyvinúť pre môj tablet z môjho tabletu.

Android Studio bežiace na Samsung Galaxy Tab S7 cez JetBrains Projector

Aj s jeho problémami sa mi JetBrains Projector stále veľmi páči. Umožňuje vývoj z mobilu, presúva zaťaženie zdrojov z lokálneho počítača na vzdialený a je to tiež naozaj skvelé.

Viem, že iné IDE, ako je Visual Studio, vám umožňujú stiahnuť kompiláciu na vzdialený počítač, ale to stále vyžaduje, aby ste mali IDE nainštalované a spustené lokálne.

Osobne som naozaj nadšený, keď vidím, kam sa JetBrains Projector dostane, pretože už teraz je to celkom neuveriteľné. Dúfajme, že budú schopní vyriešiť niektoré z problémov, ktoré som opísal vyššie, ale aj teraz by malo byť použitie Projector bezpečné pre projekty pripravené na výrobu.

Ak si chcete JetBrains Projector vyskúšať na vlastnej koži, tu je opäť odkaz k inštalačnému programu a sprievodcovi úvodným nastavením. Ak chcete nastaviť Android Studio v Projector, tu je zase ten odkaz, tiež.