Möchten Sie remote in Android Studio programmieren? Schauen Sie sich den JetBrains-Projektor an, die beste Möglichkeit, die IntelliJ-IDE von JetBrains auf jedem Gerät auszuführen.
JetBrains ist das Unternehmen hinter einigen der beliebtesten IDEs, darunter IntelliJ IDEA, PyCharm und PhpStorm. Sogar Android Studio, Googles interne IDE für die Android-Entwicklung, basiert auf IntelliJ.
Die IDEs von IntelliJ sind zwar aus einem bestimmten Grund beliebt (sie sind es). Gut), können sie manchmal etwas schwer sein. IntelliJ und Android Studio können beispielsweise allein durch ihre Offenheit viele Ressourcen beanspruchen. Und wenn Sie etwas kompilieren, werden sie noch mehr verwenden. Sie können JetBrains-Sachen auch (noch) nicht wirklich auf Mobilgeräten ausführen, da JetBrains nicht über leicht zugängliche ARM-Builds verfügt.
Was passiert also, wenn Sie keinen leistungsstarken Computer haben oder nicht einmal einen Computer haben? Normalerweise würden Sie sich hier nach anderen IDEs umsehen, die auf ARM funktionieren. Aber JetBrains hat eine Lösung, und sie heißt JetBrains-Projektor.
Was ist ein Projektor?
Sie haben wahrscheinlich schon einmal von Remotedesktop oder VNC gehört. Sie können damit über ein lokales Netzwerk oder sogar das Internet grafisch mit einem Computer interagieren. JetBrains-Projektor funktioniert ein wenig wie ein Remote-Desktop, jedoch ohne einige Nachteile.
Um den JetBrains-Projektor verwenden zu können, benötigen Sie einen Computer im Internet, auf dem er gehostet werden kann. Dies kann eine AWS-Instanz oder ein Heimserver sein. Sie können dann von jedem unterstützten Browser aus eine Verbindung herstellen, einschließlich mobilem Chrome und Firefox.
Aber anstatt einen gesamten Desktop anzuzeigen und einen Video-Feed davon an einen verbundenen Client zurückzusenden, Der JetBrains-Projektor sendet die Informationen, die der Client benötigt, um eine IDE so anzuzeigen, als ob sie angezeigt würde örtlich. Das bedeutet, dass es keine Komprimierung oder Auflösungsskalierung gibt, sodass die IDE fast nativ aussieht.
Außerdem ist JetBrains-Projektor nicht nur auf die offiziellen JetBrains-IDEs beschränkt. Solange Sie über eine IDE verfügen, die eng an einer von JetBrains angelehnt ist, können Sie diese mit JetBrains-Projektor verwenden. Dazu gehört Android Studio.
Warum ein Projektor?
Der wichtigste Grund, warum Sie Remote-Entwicklung betreiben möchten, ist das, worüber ich in der Einleitung gesprochen habe: Was ist, wenn Sie keinen leistungsstarken x86-basierten Computer haben? Sie könnten einen halbleistungsfähigen Rechner speziell für Entwicklungsarbeiten kaufen oder einen Cloud-Server einrichten und den JetBrains-Projektor verwenden.
Dies kann auch nützlich sein, wenn Sie nur den Ressourcenbedarf auslagern möchten. Ich habe zum Beispiel einen ziemlich leistungsstarken Gaming-Laptop mit einem i7-9750H und 32 GB RAM. Das reicht sogar für die großen Projekte, mit denen ich zu tun habe. Aber wenn ich zusätzlich zur Entwicklung noch etwas anderes tun möchte, ist das auch ressourcenintensiv, z YouTube schauen, ein Spiel spielen? Dann beginnen die Dinge auseinanderzufallen.
Aber ich habe einen Ryzen 7 5800X Server mit 32 GB RAM drin. Also habe ich JetBrains-Projektor darauf installiert. Jetzt kann ich einfach ein neues Chrome-Fenster öffnen und von meinem Laptop aus eine Verbindung herstellen, ohne mir Gedanken über den Umgang mit Ressourcen machen zu müssen. Der Server baut auch viel schneller auf als mein Laptop, es ist also eine Win-Win-Situation.
Wie funktioniert die Verwendung eines Projektors?
Der JetBrains-Projektor soll auf einem Linux-Computer gehostet werden. Das bedeutet nicht, dass Sie es nicht unter macOS oder Windows mit WSL ausführen können, aber es könnten dadurch seltsame Probleme auftreten.
Um es einzurichten, müssen Sie nur zum gehen Projektor-Installationsprogramm GitHub-Repo und befolgen Sie die dortigen Anweisungen. Sie werden durch die Installation der Abhängigkeiten und die Einrichtung einer IDE geführt. Es gibt sogar einige Schritte zur WSL-Fehlerbehebung, falls Sie diese benötigen.
Dann können Sie einfach über den richtigen Port und das richtige Token (falls Sie eines festgelegt haben) eine Verbindung zu Ihrer Serveradresse herstellen, und jetzt läuft auf Ihrem Gerät eine IDE ohne Aufblähung.
Android-Entwicklung
Ich bin ein Android-Entwickler. Während ich IntelliJ IDEA für die Entwicklung verwenden könnte, funktioniert Android Studio tendenziell besser. Während JetBrains-Projektor IDEs von Drittanbietern unterstützt, ist es jetzt so einfach, sie über die integrierte Befehlszeilenschnittstelle herunterzuladen und zu installieren. Es ist aber immer noch ziemlich einfach.
Um Android Studio mit JetBrains-Projektor zu verwenden, müssen Sie lediglich Android Studio herunterladen und an einem sinnvollen Ort extrahieren. Anschließend können Sie es manuell über die Befehlszeile zum Projektor hinzufügen, indem Sie den Pfad angeben.
Bei der Android-Entwicklung und bei Projektor gibt es noch ein weiteres Problem: das Ausführen von Apps. Ohne zusätzliche Extras können Sie Apps codieren und Vorschauen in Projektor anzeigen, aber Sie können keinen Emulator verwenden oder eine Verbindung zu einem echten Gerät herstellen, um Apps tatsächlich auszuführen und zu debuggen. Oder kannst du?
Es ist fast so, als hätte Google ein solches Szenario erwartet, da ADB über das Internet eine Verbindung zu einem Remote-Server herstellen kann. Alles, was benötigt wird, ist ein SSH-Tunnel vom Client zum Projektorserver. Ich habe Android Studio auf dem Projektor so eingestellt, dass es nicht versucht, ADB zu verwalten und Port 5038 zu verwenden. Dann verwende ich einfach eine Art SSH-Client (OpenSSH, Plink usw.), um einen Tunnel zu erstellen, der den lokal auf Port 5037 laufenden ADB-Server an den Server auf Port 5038 weiterleitet. Einfach!
Weitere Informationen dazu, wie Sie Android Studio und SSH-Tunneling zum Laufen bringen, finden Sie hier GitHub-Dokument von Joaquim Verges.
Ein Hinweis zu Android Studio und anderen JetBrains-basierten IDEs von Drittanbietern: Sie können sie nicht über den Projektorbildschirm aktualisieren. Sie müssen direkt auf den Server zugreifen und diese von dort aus aktualisieren. Stellen Sie sicher, dass die entsprechende Projektorinstanz gestoppt ist, bevor Sie dies tun.
Android Android-Entwicklung
Da der JetBrains-Projektor in einem Browser läuft und man beispielsweise von einem Android-Telefon aus eine Verbindung herstellen kann, wollte ich als völlig zufälliges Beispiel etwas ausprobieren.
Mit Android 11 wurde die Möglichkeit dazu eingeführt Aktivieren Sie drahtloses ADB direkt vom Gerät. Während einige Hersteller die Einstellung bereits zuvor offengelegt haben, ist sie nicht für alle Google-zertifizierten Geräte verfügbar, solange diese über Android 11 oder höher verfügen. Während das drahtlose Debuggen dazu gedacht ist, von einem Computer aus verwendet zu werden, muss dies nicht der Fall sein.
Apps wie Shizuku Zeigen Sie, dass es unter Android 11 möglich ist, mit ADB eine Verbindung zu Ihrem Gerät herzustellen... von Ihrem Gerät aus, ohne auch nur daran zu denken, einen Computer zu verwenden. Während Shizuku dies nutzt, um Apps die Ausführung erhöhter Vorgänge zu ermöglichen, können Sie meiner Meinung nach wahrscheinlich erkennen, wohin das führt.
Also habe ich eine App gemacht! Ich weiß nicht, ob ich es jemals öffentlich machen werde, aber es ist ziemlich einfach. Ich habe darin eine SSH-Bibliothek zusammen mit einer ARM64 ADB-Binärdatei. Ich verwende die ADB-Binärdatei, um eine Verbindung zu dem von mir verwendeten Gerät herzustellen, und verwende dann die SSH-Bibliothek, um einen Weiterleitungstunnel von meinem Gerät zum Projektorserver zu erstellen. Und schließlich verwende ich es zum Speichern und Starten von Projektor-URLs.
Bam, für Android entwickeln... von Android! Immer wenn ich nicht zu Hause bin, aber etwas Android-Entwicklungsarbeit erledigen möchte, kann ich einfach meine herausnehmen Samsung Galaxy Tab S7. Ich habe eine Bluetooth-Tastatur und eine Bluetooth-Maus (Nebenbemerkung: Wenn Sie einen Projektor verwenden, tun Sie das Wirklich Sie möchten eine Maus oder ein Trackpad verwenden. Mit der Touch-Eingabe funktioniert es nicht so gut, sodass ich entwickeln und debuggen kann, ohne das Gerät wechseln zu müssen und ohne einen viel schwereren Laptop herumschleppen zu müssen.
Probleme
Der JetBrains-Projektor befindet sich noch in einem recht frühen Entwicklungsstadium und ist daher noch nicht perfekt.
- Manchmal ist die Reaktion auf Dinge wie Scrollen und Ziehen etwas verzögert, und die Steuerung kann schief gehen.
- Zufällig wird beim Anzeigen von Bibliothekscode (entweder dekompiliert oder in der Quellansicht) die Schriftgröße sehr stark und alles verzögert sich. Dies könnte jedoch zum Zeitpunkt des Schreibens dieses Artikels behoben sein.
- Einige Plugins funktionieren nicht richtig. Da es sich nicht um einen direkten Videostream handelt, zeigen Plugins wie die eingebetteten Browser einfach nichts an.
- Es gibt keine X-Server-Unterstützung und wird es wahrscheinlich auch nicht geben. Dies kann die Entwicklung von Desktop- und Browser-Apps schwierig machen, Sie können jedoch jederzeit einen SSH-Tunnel mit X-Weiterleitung und einem lokalen X-Server verwenden, wenn Sie ihn wirklich benötigen.
- Manchmal stürzt die Schnittstelle ab und Sie müssen die Seite aktualisieren oder sogar den Serverdienst neu starten, damit er wieder funktioniert.
Und es gibt noch mehr.
Aber ist das alles ein Dealbreaker? Für mich sicher nicht. Vor allem mit einem etwas weniger ausgefeilten Erlebnis komme ich vollkommen zurecht (schließlich verwende ich Android Studio Canary). wenn das bedeutet, dass ich die gesamte Kompilierungsarbeit auf einen anderen Computer verlagern und sogar von meinem aus für mein Tablet entwickeln kann Tablette.
Trotz seiner Probleme gefällt mir der JetBrains-Projektor immer noch sehr gut. Es ermöglicht die Entwicklung von Mobilgeräten aus, verlagert die Ressourcenlast von einem lokalen Computer auf einen Remote-Computer und ist außerdem einfach wirklich cool.
Ich weiß, dass Sie mit anderen IDEs wie Visual Studio die Kompilierung auf einen Remotecomputer verlagern können, aber dafür muss die IDE trotzdem lokal installiert und ausgeführt werden.
Ich persönlich bin sehr gespannt, wie sich der JetBrains-Projektor weiterentwickeln wird, denn er ist im Moment schon ziemlich unglaublich. Hoffentlich können sie einige der oben beschriebenen Probleme beheben, aber auch jetzt sollte der Projektor sicher für produktionsreife Projekte verwendet werden können.
Wenn Sie JetBrains-Projektor selbst ausprobieren möchten, hier nochmal der Link zum Installationsprogramm und zur Ersteinrichtungsanleitung. Wenn Sie Android Studio im Projektor einrichten möchten, Hier ist noch einmal dieser Link, sowie.