Führen Sie CLion nativ auf Android aus, lassen Sie Ihren Desktop hinter sich!

Führen Sie CLion nativ auf Android aus, lassen Sie Ihren Desktop hinter sich!

Wie oft lesen Sie Artikel, die besagen, dass Leute ihren Hauptcomputer durch ein iPad ersetzt haben und voll zufrieden sind? Nun, wie viele dieser Artikel verwenden irgendwo einen Linux-Server (vps) mit einigen nativen Apps, aber meistens SSH zu diesem Server? Nun, was wäre, wenn ich Ihnen sagen würde, dass Sie eine vollwertige IDE, die beste IDE für C++, die es gibt, CLion von JetBrains, auf Android ausführen können? Einschließlich Kompilieren, justnative GCC, CMake, GDB und all dem Zeug, an das Sie gewöhnt sind? Nur zum Spaß habe ich CLion auf einem alten Samsung Tab S2 installiert, das ich herumgelegt hatte, mit Ubuntu in einer Chroot. Es funktioniert viel besser als ich erwartet hatte, mit einer Bluetooth-Tastatur und -Maus ist es fast so, als ob Sie auf einem Desktop wären. Ich frage mich, ob Sie Android Studio ausführen und das Tablet verwenden könnten, um Apps für sich selbst zu kompilieren. Dieser Artikel zeigt einige Fotos, darunter eine mechanische Tastatur, verschiedene Fenstermanager und Anweisungen zum Nachbauen dieses Setups.

Bei meiner Arbeit verwende ich CLion als Editor meiner Wahl. Alle unsere (eingebetteten) C++-Entwickler tun dies, wobei ein oder zwei ein anderes Tool (Nano) bevorzugen. Zu Hause benutze ich es auch für mein Training, die Codewars-Katas mache ich oft und schreibe manchmal darüber.

Es ist jedoch nicht immer möglich, eine so große, sperrige Workstation zu verwenden. Was ist, wenn Sie eine mobilere Einrichtung wünschen? Vielleicht entspricht ein Laptop Ihren Bedürfnissen, aber was wäre, wenn Sie eines dieser alten Tablets verwenden könnten, die Sie wahrscheinlich in einer Schublade haben, die Staub ansammelt?

Ich habe ungefähr 6 Stunden Akkulaufzeit, also ist selbst das besser, als ich von einem so alten Gerät mit ressourcenhungriger Jetbrains-Software erwartet hatte.

Da CLion eine Java-Software ist, dachte ich, versuchen wir es auf einem meiner älteren Tablets zum Laufen zu bringen. Ich hatte auch eine Bluetooth-Tastatur herumliegen, die perfekte Kombination für etwas Entwicklung auf der Couch oder im Zug.

Mit einer Powerbank und einem USB-OTG-Kabel könnte ich sogar meine CODE-Tastatur verwenden:

Wer wünscht sich das nicht jeden Tag im Zug zur Arbeit?

Meine Hardware besteht aus einem Samsung Galaxy Tab S2 von 2015, auf dem ein benutzerdefiniertes Rom, LineageOS 16 und eine generische (Rapoo, China Fluff) Bluetooth-Tastatur/Maus ausgeführt werden.

Chroot, einfach oder schwer?

Durch die Verwendung einer Chroot-Umgebung kann man fast jede moderne Linux-Distribution über eine einfach zu bedienende GUI-App auf Android installieren, ohne dass Root erforderlich ist. Kopieren Sie ein paar Befehle und fügen Sie sie in Termux ein, starten Sie den VNC-Server und verbinden Sie sich mit einer VNC-App, bVNC ist ebenfalls Open Source, und Sie befinden sich in der Linux-Distribution Ihrer Wahl.

Einfach

Am einfachsten ist es, eine App wie AnLinux oder Andronix zu verwenden. Letzterer, Andronix, wird um Geld bitten, um einige der Funktionen der App zu nutzen. Sie müssen nicht für eine grundlegende Ubuntu-Installation bezahlen.

Das erste, AnLinux, ist Open Source und etwas spartanischer, funktioniert aber gut. Es bietet sogar IceWM als einfache Option. IceWM ist mein liebster Legacy Window Manager, und auf einem Tablet in einer Chroot verbraucht es fast keine Ressourcen (Speicher/RAM). Wir alle wissen, dass die IDEs von Jetbrains alle Ressourcen nutzen, die sie bekommen können, und noch mehr.

Für meinen ersten Versuch habe ich Andronix verwendet. Funktioniert, installiert XFCE, aber das Standard-Setup ist etwas daneben. Symbole fehlen, Firefox gibt einen Segfault aus, ich konnte nicht als Nicht-Root-Benutzer laufen und mehr von diesen kleinen Ärgernissen. Die Distribution ist jedoch neuer, sie bietet Ubuntu 19.10.

Hier ist ein Screenshot der XFCE-Umgebung, die Andronix bereitstellt, beachten Sie den glatter aussehenden Text:

Für meinen zweiten und letzten Versuch habe ich AnLinux verwendet. Es bietet Ubuntu 18.04, aber neben XFCE haben sie auch IceWM, was mir gefällt. Hier ist ein Screenshot von CLion und IceWM über AnLinux:

Unter Anlinux könnte ich einen regulären Benutzer hinzufügen und Firefox ohne Segfaults ausführen. Die von Ubuntu 18.04 bereitgestellte GCC-Version ist 7.3.0 und von Ubuntu 19.10 ist es 8.1.0.

Ich bevorzuge Anlinux, da die Anwendung weniger aufdringlich ist und der gesamte Quellcode verfügbar ist. Andronix sieht aus wie eine zwielichtige Seite, unvollständige Dokumentation, die ihre Premium-Version und ihre kostenpflichtigen modifizierten Betriebssystemversionen vorantreibt.

Schwer

Sie können Ihr eigenes Chroot auf Android einrichten. Als ich mein erstes Android-Handy hatte, das allererste HTC G1 (oder HTC Dream außerhalb von T-Mobile), habe ich bereits eine Desktop-Umgebung über die Chroot-Methode ausgeführt. Mann, war ich stolz darauf, dass OpenOffice auf meinem kleinen Telefonbildschirm läuft.

Das Debian-Wiki enthält eine Reihe von Informationen und eine Anleitung für eine manuelle Chroot. Debian sollte genauso gut funktionieren wie Ubuntu für CLion.

Entwicklungstools

Sobald Sie Ubuntu installiert haben und mit Ihrer GUI betriebsbereit sind, müssen Sie den Paketmanager verwenden, um die Entwicklungstools zu installieren. Die gebündelten CLion-Versionen funktionieren aufgrund der unterschiedlichen Architektur nicht. Starten Sie termux oder ein anderes Terminal, geben Sie chroot/vnc ein und installieren Sie die Grundlagen:

apt install openjdk-8-jre build-essential cmake gdb clang-format git wget sudo

Beachten Sie, dass nicht alles korrekt funktioniert, da es in einer Chroot gestartet wird. Alles, was mit Systemd zu tun hat, wird fehlschlagen, da Systemd nur als PID1 (nicht in einer Chroot) laufen kann. Es gibt auch keinen /proc/ standardmäßig also ps auxf und top wird nicht funktionieren.

Für unsere Zwecke, nur CLion und einen Browser auszuführen, um Codewars-Katas auszuführen, sind das keine großen Probleme.

Sie sollten jetzt erwägen, einen regulären Benutzer hinzuzufügen. Sie können alles als root ausführen, aber es ist weniger sicher.

adduser yourUserName

Es werden einige Fragen zu Benutzerinformationen und einem Passwort gestellt. Stoppen Sie den VNC-Server und starten Sie (über Termux) als neu erstellter Benutzer neu, zum Beispiel:

sudo -u yourUserName vncserver-start

Installation von CLion

Sobald Sie die Pakete installiert haben, fahren Sie fort und laden Sie die clion tar.gz-Datei herunter. Über deren Other Versions Seite ersparen Sie sich die Eingabe Ihrer E-Mail-Adresse.

wget https://download.jetbrains.com/cpp/CLion-2019.3.2.tar.gz

Extrahieren Sie die Datei:

tar -xf  CLion-2019.3.2.tar.gz

Starten Sie clion über ihr Skript:

~/clion-2019.3.2/bin/clion.sh

Der magische schicke Startbildschirm sollte Sie jetzt begrüßen:

Debugging und Unit-Tests

Sie fragen sich vielleicht, welche Art von Binärdateien kompiliert werden. In meinem Fall für die ARM-spezifische Architektur dieses Tablets:

/home/remy/CLionProjects/untitled/cmake-build-debug/untitled: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=2bce76cd5fbd36776f4023a3cb9c33049549e957, with debug_info, not stripped

Wenn Sie GDB installiert haben, können Sie es über CLion zum Debuggen verwenden, wie Sie es gewohnt sind, Breakpoints, Watches, den ganzen Kram:

Auch GoogleTest und mein Layout für CMake-Projekte funktionieren ohne Probleme.


No