Jak kódovat v Android Studio z jakéhokoli zařízení s JetBrains Projector

Chcete vzdáleně kódovat v Android Studiu? Podívejte se na JetBrains Projector, nejlepší způsob, jak spustit JetBrains IntelliJ IDE na jakémkoli zařízení.

JetBrains je společnost, která stojí za některými z nejpopulárnějších IDE, včetně IntelliJ IDEA, PyCharm a PhpStorm. Dokonce i Android Studio, jakési vlastní IDE společnosti Google pro vývoj Androidu, je založeno na IntelliJ.

Zatímco IDE IntelliJ jsou z nějakého důvodu populární (jsou dobrý), mohou být občas trochu těžké. IntelliJ a Android Studio mohou například zabírat spoustu zdrojů jen tím, že jsou otevřené. A pokud něco kompilujete, využijí toho ještě víc. Také nemůžete (zatím) skutečně spouštět věci JetBrains na mobilních zařízeních, protože JetBrains nemá snadno dostupná sestavení ARM.

Co se tedy stane, když nemáte výkonný počítač, nebo dokonce nemáte ani počítač? Normálně byste se zde porozhlédli po jiných IDE, která fungují na ARM. Ale JetBrains má řešení a jmenuje se JetBrains Projector.

Co je to projektor?

Pravděpodobně jste již někdy slyšeli o vzdálené ploše nebo VNC. Umožňuje vám graficky komunikovat s počítačem přes místní síť nebo dokonce internet. JetBrains Projector funguje trochu jako vzdálená plocha, ale bez některých nevýhod.

Chcete-li používat JetBrains Projector, potřebujete počítač někde na internetu, abyste jej mohli hostit. Může to být instance AWS nebo domovský server. Poté se k němu můžete připojit z libovolného podporovaného prohlížeče, včetně mobilního Chrome a Firefoxu.

Ale místo zobrazení celé plochy a odesílání videa z toho zpět do připojeného klienta, JetBrains Projector odesílá informace potřebné k tomu, aby klient zobrazil IDE, jako by se zobrazovalo lokálně. To znamená, že nedochází k žádné kompresi nebo škálování rozlišení, takže IDE vypadá téměř nativní.

JetBrains Projector také není omezen pouze na oficiální JetBrains IDE. Pokud máte IDE, které je úzce založeno na IDE od JetBrains, můžete jej používat s JetBrains Projector. To zahrnuje Android Studio.

Proč projektor?

Největší důvod, proč byste mohli chtít dělat vzdálený vývoj, je to, o čem jsem mluvil v úvodu: Co když nemáte výkonný počítač s procesorem x86? Můžete si koupit polovýkonný speciálně pro vývojové práce, nebo můžete spustit cloudový server a použít JetBrains Projector.

Může být také užitečné, pokud chcete pouze snížit požadavky na zdroje. Například mám docela výkonný herní notebook s i7-9750H a 32 GB RAM. To bohatě stačí i na velké projekty, kterými se zabývám. Ale pokud chci dělat něco jiného nad vývojem, který je také náročný na zdroje, jako sledování YouTube, hrát hru? Pak se věci začnou hroutit.

Ale mám server Ryzen 7 5800X s 32 GB RAM. Tak jsem na to nainstaloval JetBrains Projector. Nyní mohu otevřít nové okno Chrome a připojit se k němu ze svého notebooku, aniž bych se staral o žonglování se zdroji. Server se také staví mnohem rychleji než můj notebook, takže je to oboustranně výhodná situace.

Jak se používá projektor?

JetBrains Projector je určen k hostování na počítači se systémem Linux. To neznamená, že jej nemůžete spustit na macOS nebo na Windows s WSL, ale kvůli tomu můžete narazit na nějaké podivné problémy.

Chcete-li jej nastavit, vše, co musíte udělat, je zamířit do Repo GitHub instalačního programu projektoru a postupujte podle tam uvedených pokynů. Provedou vás instalací závislostí a nastavením IDE. Existují dokonce některé kroky pro odstraňování problémů s WSL, pokud je potřebujete.

Pak se stačí připojit k adrese vašeho serveru pomocí správného portu a tokenu (pokud jste jej nastavili) a nyní máte na svém zařízení spuštěné IDE bez jakéhokoli nadbytku.

Vývoj pro Android

Jsem vývojář pro Android, takže zatímco jsem mohl použít IntelliJ IDEA pro vývoj, Android Studio má tendenci fungovat lépe. Přestože JetBrains Projector podporuje IDE třetích stran, je nyní tak jednoduché, jako jejich stažení a instalaci pomocí vestavěného rozhraní příkazového řádku. Stále je to ale docela jednoduché.

Chcete-li používat Android Studio s JetBrains Projector, vše, co musíte udělat, je stáhnout a extrahovat Android Studio někde, kde je to rozumné. Poté jej můžete ručně přidat do Projectoru pomocí příkazového řádku zadáním cesty.

S vývojem Androidu a Projectorem je také další problém: spouštění aplikací. Bez čehokoli navíc můžete v Projectoru kódovat aplikace a prohlížet náhledy, ale ke skutečnému spouštění a ladění aplikací nemůžete použít emulátor ani se připojit ke skutečnému zařízení. Nebo můžeš?

Je to skoro, jako by Google očekával, že k takovému scénáři dojde, protože ADB se může připojit ke vzdálenému serveru přes internet. Vše, co je potřeba, je tunel SSH od klienta k serveru projektoru. Nastavil jsem Android Studio na projektoru, aby se nepokoušel spravovat ADB a používal port 5038. Pak jen používám nějaký druh SSH klienta (OpenSSH, plink atd.) k vytvoření tunelu, který přesměruje ADB server běžící lokálně na portu 5037 na server na portu 5038. Snadný!

Vše, co potřebujete, je SSH tunel pro správný vývoj Androidu.

Pokud chcete další podrobnosti o tom, jak zprovoznit Android Studio a tunelování SSH, podívejte se na toto Dokument GitHub od Joaquima Vergese.

Jedna poznámka k Android Studiu a dalším IDE založeným na JetBrains třetích stran: Nelze je aktualizovat z obrazovky projektoru. Budete se muset připojit přímo k serveru a aktualizovat je odtud. Než to uděláte, ujistěte se, že je zastavena odpovídající instance projektoru.

Android Vývoj pro Android

Vzhledem k tomu, že JetBrains Projector běží v prohlížeči a můžete se připojit z něčeho jako je telefon s Androidem, jako zcela náhodný příklad jsem chtěl něco vyzkoušet.

Android 11 představil možnost povolit bezdrátové ADB přímo ze zařízení. Zatímco někteří výrobci toto nastavení zveřejnili již dříve, není k dispozici pro všechna zařízení certifikovaná společností Google, pokud jsou na platformě Android 11 nebo novější. Zatímco bezdrátové ladění je určeno k použití z počítače, nemusí tomu tak být.

Aplikace jako Shizuku demonstrovat, že na Androidu 11 je možné se připojit pomocí ADB k vašemu zařízení...z vašeho zařízení, aniž byste museli přemýšlet o použití počítače. Zatímco Shizuku to používá, aby umožnil aplikacím spouštět zvýšené operace, myslím, že pravděpodobně vidíte, kam to směřuje.

Tak jsem vytvořil aplikaci! Nevím, jestli to někdy zveřejním, ale je to docela jednoduché. Mám v něm knihovnu SSH spolu s binárním souborem ARM64 ADB. K připojení k zařízení, které používám, používám binární soubor ADB a poté pomocí knihovny SSH vytvořím předávací tunel z mého zařízení na server projektoru. A nakonec ho používám k ukládání a spouštění adres URL projektoru.

Bam, vývoj pro Android...z Androidu! Pokaždé, když nejsem doma, ale chci se věnovat vývoji Androidu, můžu si prostě vzít svůj Samsung Galaxy Tab S7. Mám Bluetooth klávesnici a Bluetooth myš (poznámka: pokud používáte Projector, budete opravdu chcete použít myš nebo trackpad. S dotykovým vstupem to nedělá dobře), takže mohu vyvíjet a ladit, aniž bych musel přepínat zařízení a aniž bych s sebou musel tahat mnohem těžší notebook.

Problémy

JetBrains Projector je stále ve velmi raném vývoji, takže není dokonalý.

  1. Někdy to trochu zaostává při reakci na věci, jako je posouvání a přetahování, a ovládací prvky se mohou ztrácet.
  2. Náhodně při prohlížení kódu knihovny (buď dekompilovaného nebo ve zdrojovém zobrazení) se tloušťka písma opravdu ztíží a vše zaostává. To však mohlo být opraveno při psaní tohoto článku.
  3. Některé pluginy nebudou fungovat správně. Protože se nejedná o přímý stream videa, pluginy jako vestavěné prohlížeče prostě nic nezobrazí.
  4. Podpora X serverů neexistuje a pravděpodobně ani nebude. To může zkomplikovat vývoj aplikací pro stolní počítače a prohlížeče, ale vždy můžete použít tunel SSH s přesměrováním X a místní X server, pokud to opravdu potřebujete.
  5. Někdy se rozhraní zablokuje a je třeba obnovit stránku nebo dokonce restartovat službu serveru, aby znovu fungovala.

A je toho víc.

Ale je to všechno průšvih? Pro mě určitě ne. Jsem naprosto v pořádku s trochu méně vybroušeným zážitkem (koneckonců používám Android Studio Canary), zvláště pokud to znamená, že mohu přenést veškerou kompilaci na jiný počítač a dokonce vyvinout pro svůj tablet ze svého tableta.

Android Studio běžící na Samsung Galaxy Tab S7 přes JetBrains Projector

I přes jeho problémy se mi JetBrains Projector stále velmi líbí. Umožňuje vývoj z mobilu, přesouvá zatížení zdrojů z místního počítače na vzdálený a je to také opravdu skvělé.

Vím, že jiná IDE, jako je Visual Studio, vám umožňují přenést kompilaci na vzdálený počítač, ale to stále vyžaduje, abyste měli IDE nainstalované a spuštěné lokálně.

Osobně jsem opravdu nadšený, když vidím, kam se JetBrains Projector dostává, protože už teď je to docela neuvěřitelné. Doufejme, že budou schopni opravit některé problémy, které jsem popsal výše, ale i nyní by měl být Projector bezpečný pro projekty připravené k produkci.

Pokud si chcete JetBrains Projector vyzkoušet na vlastní kůži, tady je zase odkaz k instalačnímu programu a průvodci počátečním nastavením. Pokud chcete nastavit Android Studio v Projector, tady je zase ten odkaz, také.