Chcesz kodować zdalnie w Android Studio? Sprawdź projektor JetBrains, najlepszy sposób na uruchomienie IntelliJ IDE JetBrains na dowolnym urządzeniu.
JetBrains to firma stojąca za niektórymi z najpopularniejszych IDE, w tym IntelliJ IDEA, PyCharm i PhpStorm. Nawet Android Studio, coś w rodzaju wewnętrznego IDE firmy Google do programowania na Androida, jest oparte na IntelliJ.
Chociaż IDE IntelliJ są popularne nie bez powodu (są Dobry), czasami mogą być trochę ciężkie. IntelliJ i Android Studio mogą na przykład zużywać dużo zasobów, po prostu będąc otwartymi. A jeśli coś kompilujesz, użyją jeszcze więcej. Nie można także (jeszcze) tak naprawdę uruchamiać oprogramowania JetBrains na urządzeniach mobilnych, ponieważ JetBrains nie ma łatwo dostępnych wersji ARM.
Co więc się stanie, jeśli nie masz wydajnego komputera lub w ogóle go nie masz? Zwykle w tym miejscu rozglądałbyś się za innymi IDE, które działają na ARM. Ale JetBrains ma rozwiązanie i nazywa się ono projektorem JetBrains.
Co to jest projektor?
Prawdopodobnie słyszałeś już o zdalnym pulpicie lub VNC. Umożliwia graficzną interakcję z komputerem za pośrednictwem sieci lokalnej, a nawet Internetu. Projektor JetBrains działa trochę jak zdalny pulpit, ale bez pewnych wad.
Aby korzystać z projektora JetBrains, potrzebujesz komputera w Internecie, aby go hostować. Może to być instancja AWS lub serwer domowy. Następnie możesz połączyć się z nim z dowolnej obsługiwanej przeglądarki, w tym mobilnej przeglądarki Chrome i Firefox.
Zamiast jednak wyświetlać cały pulpit i wysyłać jego obraz wideo z powrotem do podłączonego klienta, Projektor JetBrains wysyła informacje potrzebne klientowi do wyświetlenia IDE tak, jakby było wyświetlane lokalnie. Oznacza to, że nie ma żadnej kompresji ani skalowania rozdzielczości, więc IDE wygląda prawie natywnie.
Ponadto projektor JetBrains nie ogranicza się tylko do oficjalnych interfejsów IDE JetBrains. Jeśli masz IDE ściśle oparte na IDE z JetBrains, możesz go używać z projektorem JetBrains. Obejmuje to Android Studio.
Dlaczego projektor?
Najważniejszym powodem, dla którego możesz chcieć zająć się zdalnym programowaniem, jest to, o czym mówiłem we wstępie: A co, jeśli nie masz wydajnego komputera opartego na architekturze x86? Możesz kupić średnio wydajny specjalnie do prac programistycznych lub możesz uruchomić serwer w chmurze i używać projektora JetBrains.
Może to być również przydatne, jeśli chcesz po prostu odciążyć wymagania dotyczące zasobów. Na przykład mam całkiem wydajnego laptopa do gier z i7-9750H i 32 GB pamięci RAM. To wystarczy nawet na duże projekty, którymi się zajmuję. Ale jeśli chcę zrobić coś jeszcze oprócz rozwoju, co również wymaga dużych zasobów, np oglądanie YouTube'a, grać w grę? Potem wszystko zaczyna się rozpadać.
Ale mam serwer Ryzen 7 5800X z 32 GB pamięci RAM. Zainstalowałem więc na nim projektor JetBrains. Teraz mogę po prostu otworzyć nowe okno Chrome i połączyć się z nim z laptopa, nie martwiąc się o żonglowanie zasobami. Serwer jest również budowany znacznie szybciej niż mój laptop, więc jest to sytuacja korzystna dla obu stron.
Jak korzysta się z projektora?
Projektor JetBrains jest przeznaczony do hostowania na komputerze z systemem Linux. Nie oznacza to, że nie można go uruchomić na macOS lub Windows z WSL, ale możesz z tego powodu napotkać dziwne problemy.
Aby to skonfigurować, wystarczy udać się do Repozytorium GitHub instalatora projektora i postępuj zgodnie z zawartymi tam instrukcjami. Przeprowadzą Cię przez proces instalacji zależności i konfiguracji IDE. Istnieją nawet pewne kroki rozwiązywania problemów z WSL, jeśli ich potrzebujesz.
Następnie możesz po prostu połączyć się z adresem serwera, używając prawidłowego portu i tokena (jeśli takowy ustawiłeś), i teraz masz IDE działające na swoim urządzeniu bez żadnych wzdęć.
Rozwój Androida
Jestem programistą Androida, więc chociaż mogę używać IntelliJ IDEA do programowania, Android Studio zwykle działa lepiej. Chociaż projektor JetBrains obsługuje IDE innych firm, teraz jest to tak proste, jak użycie wbudowanego interfejsu wiersza poleceń do ich pobrania i zainstalowania. Jednak nadal jest to dość proste.
Aby korzystać z Android Studio z projektorem JetBrains, wystarczy pobrać i rozpakować Android Studio w rozsądnym miejscu. Następnie możesz ręcznie dodać go do projektora za pomocą wiersza poleceń, podając ścieżkę.
Istnieje także inny problem związany z rozwojem Androida i projektorem: uruchamianie aplikacji. Bez niczego dodatkowego możesz kodować aplikacje i wyświetlać podglądy w projektorze, ale nie możesz używać emulatora ani łączyć się z prawdziwym urządzeniem, aby faktycznie uruchamiać i debugować aplikacje. Czy możesz?
To prawie tak, jakby Google spodziewał się takiego scenariusza, ponieważ ADB może połączyć się ze zdalnym serwerem przez Internet. Wszystko, czego potrzeba, to tunel SSH od klienta do serwera projektora. Ustawiłem Android Studio na projektorze tak, aby nie próbował zarządzać ADB i używać portu 5038. Następnie po prostu używam jakiegoś klienta SSH (OpenSSH, plink itp.), Aby utworzyć tunel, który przekazuje serwer ADB działający lokalnie na porcie 5037 do serwera na porcie 5038. Łatwy!
Jeśli chcesz uzyskać więcej informacji na temat działania tunelowania Android Studio i SSH, sprawdź to Dokument GitHuba autorstwa Joaquima Vergesa.
Jedna uwaga na temat Android Studio i innych IDE opartych na JetBrains innych firm: nie można ich aktualizować z ekranu projektora. Będziesz musiał zdalnie połączyć się bezpośrednio z serwerem i stamtąd je zaktualizować. Zanim to zrobisz, upewnij się, że odpowiednia instancja projektora została zatrzymana.
Rozwój Androida
Ponieważ projektor JetBrains działa w przeglądarce i można się z nim połączyć z czegoś na przykład telefonu z Androidem, co jest zupełnie przypadkowym przykładem, chciałem czegoś spróbować.
W Androidzie 11 wprowadzono możliwość włączyć bezprzewodowe ADB bezpośrednio z urządzenia. Chociaż niektórzy producenci udostępniali to ustawienie już wcześniej, nie jest ono dostępne dla wszystkich urządzeń z certyfikatem Google, pod warunkiem, że korzystają one z Androida 11 lub nowszego. Chociaż debugowanie bezprzewodowe powinno być wykonywane z poziomu komputera, nie musi tak być.
Aplikacje takie jak Shizuku pokaż, że na Androidzie 11 można połączyć się z ADB z Twoim urządzeniem... z Twojego urządzenia, nawet nie myśląc o korzystaniu z komputera. Chociaż Shizuku używa tego, aby umożliwić aplikacjom wykonywanie operacji na podwyższonym poziomie, myślę, że prawdopodobnie widzisz, dokąd to zmierza.
Więc stworzyłem aplikację! Nie wiem, czy kiedykolwiek to upublicznię, ale to całkiem proste. Mam w nim bibliotekę SSH wraz z plikiem binarnym ARM64 ADB. Używam pliku binarnego ADB do łączenia się z urządzeniem, którego używam, następnie korzystam z biblioteki SSH, aby utworzyć tunel przekazywania z mojego urządzenia do serwera projektora. I wreszcie używam go do przechowywania i uruchamiania adresów URL projektorów.
Bam, programuję dla Androida... z Androida! Za każdym razem, gdy nie ma mnie w domu, ale chcę zająć się programowaniem Androida, mogę po prostu wyjąć mój Samsung Galaxy Tab S7. Mam klawiaturę Bluetooth i mysz Bluetooth (uwaga: jeśli używasz projektora, będziesz Naprawdę chcesz używać myszy lub gładzika. Nie radzi sobie dobrze z wprowadzaniem dotykowym), więc mogę programować i debugować bez konieczności przełączania urządzeń i bez konieczności dźwigania ze sobą znacznie cięższego laptopa.
Problemy
Projektor JetBrains jest wciąż na wczesnym etapie rozwoju, więc nie jest doskonały.
- Czasami reakcja na takie czynności jak przewijanie i przeciąganie jest nieco opóźniona, a elementy sterujące mogą działać nieprawidłowo.
- Losowo, podczas przeglądania kodu biblioteki (zdekompilowanego lub w widoku źródłowym), waga czcionki staje się naprawdę duża i wszystko opóźnia się. Być może zostało to jednak naprawione w chwili pisania tego tekstu.
- Niektóre wtyczki nie będą działać poprawnie. Ponieważ nie jest to bezpośredni strumień wideo, wtyczki takie jak wbudowane przeglądarki po prostu nic nie będą wyświetlać.
- Nie ma obsługi serwerów X i prawdopodobnie nie będzie. Może to sprawić, że tworzenie aplikacji komputerowych i przeglądarkowych będzie trudne, ale zawsze możesz użyć tunelu SSH z przekierowaniem X i lokalnym serwerem X, jeśli naprawdę tego potrzebujesz.
- Czasami interfejs blokuje się i trzeba odświeżyć stronę lub nawet zrestartować usługę serwera, aby znów zaczęła działać.
I jest jeszcze więcej.
Ale czy to wszystko oznacza zerwanie umowy? Z pewnością nie dla mnie. Całkiem w porządku, zwłaszcza z nieco mniej dopracowanym doświadczeniem (w końcu używam Android Studio Canary). jeśli to oznacza, że mogę przenieść całą pracę kompilacji na inny komputer, a nawet opracować program dla mojego tabletu z mojego tablet.
Mimo tych problemów nadal bardzo lubię projektor JetBrains. Umożliwia tworzenie aplikacji na urządzeniach mobilnych, przenosi obciążenie zasobów z komputera lokalnego na komputer zdalny i jest po prostu naprawdę fajny.
Wiem, że inne IDE, takie jak Visual Studio, pozwalają przenieść kompilację na komputer zdalny, ale to nadal wymaga zainstalowania i uruchomienia IDE lokalnie.
Osobiście jestem bardzo podekscytowany możliwością zobaczenia, dokąd zmierza projektor JetBrains, ponieważ już teraz jest on niesamowity. Mamy nadzieję, że uda im się rozwiązać niektóre problemy, które opisałem powyżej, ale nawet teraz korzystanie z projektora w projektach gotowych do produkcji powinno być bezpieczne.
Jeśli chcesz sam wypróbować projektor JetBrains, oto jeszcze raz link do instrukcji instalatora i wstępnej konfiguracji. Jeśli chcesz skonfigurować Android Studio w projektorze, oto jeszcze raz ten link, również.