myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Ungelesen 21.11.18, 01:52   #1
Erik/Schreier
Ist öfter hier
 
Registriert seit: Feb 2011
Ort: Eastgermany
Beiträge: 222
Bedankt: 357
Erik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt PunkteErik/Schreier erschlägt nachts Börsenmakler | 26395 Respekt Punkte
Standard Programmierung auf Android Geräten

Vor einiger Zeit hatte ich in einem Forum erwähnt dass ich mittlerweile einen großen Teil meines Codes auf dem Tablet schreibe und erhielt zum großen Teil schallendes Gelächter. Dieses kam zwar zumeist von Nutzern die sich mit IDE')s und Baukästen Programme zusammenklicken und sich Programmierer nennen

Um nun deutlich zu machen wie einfach es ist auf Android alle benötigten Programme einzurichten um wirklich effektiv zu programmieren schreibe ich dieses kleine Tutorial für interessierte und Anfänger, behandle dabei die Erstellung und Einstellung der Umgebung. Dies bezieht sich zwar auf die Android App Termux sollte jedoch auch auf jeder anderen Linuxpartition möglich sein die eine Kommandozeile bietet.


Schritt 0: Was wir benötigen

Um es deutlich zu sagen, auch wenn wir im Play Store Apps wie Hacker Keyboard und ähnliches haben die uns Funktionstasten usw. zur verfügung stellen ist es ratsam eine Hardwaretastatur zu nutzen, diese gibt es für 20 Euro zu kaufen und kann wie jede andere genutzt werden. Ich habe für sämtliche Hardware ca 250 Euro ausgegeben und habe mir ein Samsung Galaxy Tab A6 zugelegt was neben Android 8 auch einen 10 Zoll Bildschirm mit einer Auflösung von 1920x1200 besitzt und mir
zusätzlich noch eine 50 Euro Tastatur mit integrierter Aufnahme zugelegt, wenn man bedenkt was Notebooks in dieser Preisklasse leisten eigentlich kein schlechter Deal.

Neben der Hardware die vermutlich jeder in den Händen hält benötigen wir ledichlich eine Android App aus dem Playstore die sich Termux nennt und von Fredrik Fornwall entwickelt wurde. Bei Termux handelt es sich um nichts weiter als eine Grundlegende Kommandozeile für Linux. Der Vorteil dieser App ist dass sie Kostenlos und werbefrei ist, 90% aller Linux Konsolenanwendungen ausführen kann und selbst auf dem schlechtesten Gerät ohne Root flüssig läuft.

Wer nun der Meinung ist dass er zum Programmieren Guis und Maussteuerung benötigt sollte von diesem Guide die Finger lassen denn alles was wir hier verwenden und installieren ist Tastaturgesteuert und bezieht sich auf die Kommandozeile, wer Motivation besitzt und wirklich Programmieren möchte wird vollauf zufrieden sein.

Die Installation und Einrichtung benötigt ca. eine halbe bis 1 Stunde, ermöglicht es und die Programmierung für alle wichtigen Sprachen (Python, Ruby, C++, Go, Rust ...) und kostet uns je nach installierten Paketen gerade einmal ein paar hundert MB Speicher.

Ich versuche das Tutorial so zu gestalten dass man danach alles besitzt um mit dem Gerät produktiv in einer vernünftigen Umgebung arbeiten zu können gehe aber nicht tiefer auf die Einstellungsmöglichkeiten ein da diese unbegrenzt sind (Das Komplette System ist zu 100% anpassbar) zeige jedoch Grundlagen zur Anpassing.

Was ich nicht erkläre ist die Anpassung der jeweiligen Programme wie Editoren da dies den Rahmen sprengen würde, ich nehme einfach an dass jeder der spezielle verwednen möchte mit dem Umgang und den Plugins vertraut ist bzw. motiviert sich die Dokumentation durchzulesen.


Schritt 1: Installation der Pakete

Wir haben nun also Termux aus dem Playstore geladen und installiert, beim Tippen auf das Symbol werden die benötigten Files geladen und 10 Sekunden später steht uns die Umgebung zur Verfügung.

Das erste was wir nun tun müssen ist sicherstellen dass der Paketmanager auf die aktuellen Daten zugreift und das System ansonsten alles besitzt.

Code:
    $ pkg upgrade && update
Erfahrene Linux Nutzer werden erkennen dass es sich hierbei tatsächlich um eine Linux Eingabezeile handelt und sie wie gewohnt funktioniert. Der obrige Befehl ist eine kurzvorm der beiden Befehle "pkg upgrade" und "pkg update" welche das aktualisieren für uns übernehmen, ein paar Zeilen Meldungen rasseln über den Bildschirm und wir sind bereit loszulegen.

Als erstes benötigen wir einen Texteditor, hierbei stehen uns alle zur Verfügung die in der Kommandozeile lauffähig sind. Einfache Editoren wie micro bieten die üblichen Funktionen zum Schreiben von Quellcode mit automatischer einrückung und Syntaxhervorhebung und sind gerade für Anfänger interessant, erfahrene Programmierer werden auf die üblichen Editoren wie Vim und Emacs zurückgreifen.

Code:
    $ pkg install vim       - installiert Vim 8.x
    $ pkg install micro     - installiert micro
Für die vollständige Liste der Editoren mit Screenshots schaut bitte auf die Wiki seite von Termux, dort sind einige aufgelistet. Gerade bei Vim ist zu erwähnen dass es nicht nur der original Editor ist sondern auch alle Funktionen enthalten sind und alle Plugins wie gewohnt über den Pluginmanager wie Vundle oä. installiert werden können (komplexere die kompiliert werden müssen durch Github).

Haben wir nun einen Texteditor unserer Wahl müssen wir uns noch entscheiden welche Programmiersprache wir verwenden möchten, hierfür stehen uns Interpreter und Compiler zu nahezu allen zur Verfügung (Rust durch thirdparty). Auch hier findet ihr eine Liste auf der Wiki Seite.

Code:
    $ pkg install python clang ruby
Die obere Zeile würde z.B. dafür sorgen dass die aktuellen Interpreter für Python 3 und Ruby installiert werden (für Python 2 $ pkg install python2) und die Compiler für Clang (C) und Clang++ (C++). Als Paketmanager fungieren auch hier pip für Python und Gem für Ruby welche in der Installation enthalten sind, sie ermöglichen es uns alle Drittanbietermodule zu installieren wie wir es gewohnt sind.

Bei Python Modulen wie Numpy und Scipy ist es ein wenig komplizierter da diese vorher kompiliert werden müssen was aktuell nicht möglich ist. Auf der Wiki Seite steht jedoch eine Anleitung zur Verfügung wie ihr diese Module durch einen anderen Paketmanager installiert, selben gilt für den Rustc Compiler.

Nun da ihr alle benötigten Pakete installiert habt könnt ihr wie auf jeder anderen Kommandozeile damit arbeiten, ihr erstellt die Quellcodes, Kompiliert oder interpretiert sie und fertig.


Schritt 2: Shell Crashkurs

Wer bisher nur mit Grafischen Oberflächen gearbeitet hat könnte Termux etwas unständlich finden jedoch arbeitet man nach ein paar Stunden Einarbeitungszeit schneller und effektiver damit als mit jeder anderen Umgebung. Als erstes ist anzumerken dass man sich alles selbst einrichtet und sich daher auch besser zurechtfindet, man kann das System zu 100% nach seinen Wünschen anpassen und durch ist in der Lage alles mit der Tastatur zu bedienen.

Wenn man die Shell startet befindet man sich im $HOME Verzeichnis, in diesem werden alle Dateien und Ordner abgelegt die wir erstellen und wir kommen mit dem Befehl "cd ~" immer wieder in dieses zurück falls wir uns im Ordnerchaos verirrt haben. Des weiteren werden hier standardmäßig die Konfigurationsdateien gesucht falls wir änderungen an unserem System vornehmen möchten.

Um uns den Inhalt des Ordners anzeigen zu lassen geben wir den Befehl "ls" in der Kommandozeile ein welcher uns alle Dateien und Verzeichnisse die sich im aktuellen Pfad befinden auflistet. Eine Ausnahme bilden hierbei Daten und Ordner welche mit einem "." beginnen, diese sind versteckt und werden nicht angezeigt, können jedoch von uns geöffnet und bearbeitet werden.

Wollen wir uns für unsere Programmierarbeit Verzeichnisse einrichten steht uns der Befehl mkdir zur Verfügung an welchen wir den gewünschten Namen anhängen, dieser ermöglicht es uns auch mehrere Ordner gleichzeitig zu erstellen.

Code:
    $ mkdir programming
    $ cd programming
    $ mkdir rb py cpp
Im obrigen Beispiel erstellen wir zuerst im aktuellen Pfad den Ordner programming, mithilfe des cd Befehls wechseln wir in dieses und erstellen dort die Ordner rb py und cpp für unsere Sprachen.

Befehle können auch mithilfe des && Operators verkettet werden um sich Tipparbeit zu spaaren.

Code:
    $ mkdir programming && cd programming && mkdir rb py cpp
Dieser Code hat die selbe Wirkung wie die anderen drei Zeilen nur dass wir alles mit einem mal durchführen. Wer nun veruscht die Ordner in einer Grafischen Oberfläche mit der Maus zu erstellen wird merken wie viel schneller wir sind und mal ehrlich, das fühlt sich doch um ein vielfaches mehr wie Coding an oder?

Haben wir uns nun vertippt und statt demm Ordner rb den Ordner rn erstellt können wir diesen problemlos mithilfe des "rm" befehls wieder entfernen. Dieser Befehl bietet eine Vielzahl zusätzlicher Parameter für spezielle Fälle, da es zu lange dauern würde sie alle aufzuführen lest euch bitte eine Dokumentation zur Linux Shell durch.

Code:
    $ rm -r rn
Um am Ende wieder in unseren Homeordner zu gelangen reicht die Eingabe von "cd ~", wollen wir jedoch nur einen Ordner nach oben verwenden wir "cd ..". Passt jedoch auf dass ihr nicht versehentlich im $HOME Verzeichnis "cd .." eingebt, dadurch gelangt ihr in die Ordnerstruktur unter der Linux die Systemdaten ablegt und falls ihr hier versehentlich ettwas überschreibt kann es sein dass die App nichtmehr gestartet werden kann und ihr alles neu installieren müsst.


Schritt 3: Optimierung

Im Moment ist es noch recht mühsam sich durch die Ordner zu bewegen da wir ständig den vollständigen Pfad eingeben müssen wenn wir uns mit cd bewegen, dafür bietet uns das System alias Methoden die uns das wechseln stark vereinfachen. Um diese einzurichten wechseln wir zuerst mithilfe von "cd ~" ins HOME Verzeichnis und erstellen mit unserem Editor die Datei .bashrc (der Punkt am Anfang ist wichtig!)

Code:
    $ vim .bashrc
    $ micro .bashrc
Es erwartet uns eine leere Textdatei ein welcher wir Optionen eingeben können welche beim Start von Termux übernommen werden. Dies reicht von Shortcuts zu weitreichenden Änderungen am System selbst, wir beschränken uns jedoch auf die Grundlagen.

Achtung: Auch wenn im Netz eine vielzahl von .bashrc Dateien zur Verfügung gestellt wird, diese sind meist auf die Wünsche des Erstellers angepasst und auch wenn sie für ihn "Die Ultimative", "Die Beste" oder sonstwas sind, sind sie für uns nutzlos, wir wollen ein System für uns einrichten und keins verwenden was funktioniert wie andere es wollen oder schlimmer noch, so funktioniert wie wir es nicht wollen.

An diesem Punkt solltet ihr im HOME Verzeichnis Ordner für eure Arbeit erstellt haben. Ich habe Ordner für meine Programmiersprachen erstellt und einen Ordner mit Notitzen in welchem sich Cheatsheets und wie der Name bereits sagt Notitzen befinden.

In die .bashrc schreiben wir nun einfach alias Anweisungen für die Pfade die wir am häufigsten benötigen, dadurch müssen wir nichtmehr den Pfad angeben sondern nur den Bezeichner den wir verweden.

Code:
    alias <Bezeichner>="(Befehl)Pfad"

    alias _py='cd ~/programming/py'
Oben habe ich nun ein Alias für meinen Python ordner angelegt. Das Schlüsselwort alias muss immer am Anfang stehen, der Name des Bezeichners ist beliebig, sollte jedoch keine Namen von Programmen enthalten (stellt euch vor ihr nennt den Alias python, wollt ihr nun zum Pfad oder zum Interpreter?) ich verwende hierbei möglichst kurze Zeichenketten da ich schreibfaul bin, und stelle einen _ davor um Namenskollisionen zu vermeiden.

Im String hinter dem = befindet sich die Anweisung welche ihr in die Konsole Tippen würdet, wir wollen das Verzeichnis wechseln also cd, da wir aus jedem belieigen Pfad wechseln müssen müssen wir auch den vollständigen Pfad vom Homeverzeichnis angeben, daher das ~/ am Anfang des Pfadnamens.

Es ist sogar möglich mit Aliases auf einzelne Dateien zugeifen zu können, da ich mein Cheatsheet für Vim doch recht häufig mal für einen Moment benötige habe ich auch hierfür ein Alias eingerichtet.

Code:
    alias _vc='vim ~/notes/vimcs.txt'
Dieses Alias öffnet die Datei vimcs.txt in Vim ohne dass wir den aktuellen Pfad verlassen müssen, wir könnten sie bei bedarf sogar bearbeiten und Speichern was auch bei größeren Projekten von Vorteil ist, befinden wir uns gerade im src Folder unseres Programms und müssen auf die Dokumentation zugreiffen müssen wir nicht erst das Verzeichnis wechseln.

Um auf unsere Aliases zuzugreifen müssen wir im Terminal jetzt lediglich den Bezciehner eingeben.

Code:
    $ _vc
und schon öffnet sich Vim mit unserer Textdatei. Das ist natürlich nur sinnvoll wenn wir die Dateien und Pfade auch oft nutzen, ein Beispielprojekt eines Buchs welches wir schreiben und nie wieder anrühren auf einen Shortcut zu legen ist blödsinn.

Wo wir bereits in der .bashrc sind können wir uns auch gleich um ein Problem kümmern vor dem ich ständig stehe, nach einer Stunde Programieren weiß ich nie wo ich mich befinde und möchte daher dass mir der Pfad direkt im Prompt angezeigt wird. Dies ist recht einfach und braucht nur eine Zeile Code.

Code:
    PS1=' \[\033[1;31m\]@\W : '
Diese Zeile ändert unseren Prompt vom $ in einen :, ändert die Schriftfarbe der Konsole auf Rot und fügt den Namen des Verzeichnisses vorn an.

Code:
     @cpp :
Die Möglichkeiten die sich bieten hier einzeln aufzuführen würden den Rahmen sprengen, man kann in der .bashrc wirklich alles anpassen. Im Netz gibt es gute Tutorials hierzu und wie gesagt, passt euch das System auf eure Ansprüche an und verwendet nicht die Dateien von dritten wenn ihr effektiv arbeiten möchtet.

Damit die Änderungen ander .bashrc in Kraft treten müsst ihr sie Speichern. in vim mit :wq, in micro durch <Strg> + S und im Anschluss Termux durch exit verlassen und neu starten damit die .bashrc neu eingelesen wird.


Schritt 4: Aufbohren für Tablets

Für Smartphones haben wir alles eingerichtet und eingestellt was möglich war, um mehrere Fenster zu öffnen wischen wir von links nach rechts und erstellen ein neues Fenster. Zwischen den beiden Fenstern können wir dann bequem wechseln um z.B. in einem den Editor und im anderen den Compiler laufen zu lassen.

Auf Tablets fällt uns auf dass wir eigentlich nur den halben Bildschirm brauchen und auf dem rechten gern ein weiteres Fenster hätten, dies ist in Termux zwar nicht möglich aber da wir uns in einem voll funktionsfähigen Linux befinden schaffen wir mit einem weieren Programm Abhilfe.

Code:
    $ pkg install tmux
Nach dem Start durch "tmux" erhalten wir eine ettwas veränderte Kommandozeile, bei diesem Programm handelt es sich um einen sogenannten Multiplexer der es uns ermöglicht Fenster auf dem Bildschirm zu splitten. Am unteren Bildschirmrand befindet sich eine Kommandozeile welche uns anzeigt wieviele tmux-server laufen (im Moment einer [0]) und hebt ihn uns hervor.

Um nun den Bildschirm zu splitten verwenden wir einfach die Tastenkombination von <Strg> + b um tmux mitzuteilen dass wir ihm eine Anweisung geben möchten und splitten den Bildschirm dann durch Eingabe von % (<Shift> + 5) horizontal. Ich nehme ja an dass ihr auch im Landschaftsmodus arbeitet.

Wollen wir nun das rechte Fenster nutzen um den Compiler auszuführen und uns z.B. die Dokumentationen durchzulesen können wir durch <Strg> + b, " (<Shift> + 2) das Fenster nocheinmal vertikal splitten.

Achtet darauf dass ihr nicht zuviele Splits erstellt da jedes Fenster eine eigene Instanz der Kommandozeile besitzt und der Speicher somit recht schnell ausgelastet sein kann. Zwischen den Fenstern zu wechseln ist im Moment noch ein wenig komplituert, daher gehen wir sicher dass wir uns im Home Verzeichnis befinden und erstellen mit unserem Edior eine Datei namens .tmux.conf (achtet auf die Punkte).

Die tmux conf ist speziell für tmux, alles was wir in der .bashrc eingestellt haben können wir auch in tmux verwenden, umgekehrt funktioniert dies nicht. Hier können wir spezielle Tastenkombinationen festlegen, das Aussehen der Oberfläche und der Befehlsleise anpassen und sogar festlegen ob fenster beim Start automatisch gesplittet werden sollen.

Wir wollen nun zum erste die Tastenkombination ändern um in den Befehlsmodus zu kommen da <Strg> + b doch ettwas umständlich ist und des weiteren einen einfachen wechsel zwischen den Fenstern mit der Tastatur ermöglichen.

Code:
    $ cd ~ && vim .tmux.conf

    unbind C-b
    set-option -g prefix C-a
    bind-key C-a send-prefix
Durch diese Zeilen entfernen wir die Kombination <Control> + c (C-b) und weisen der Tastenkombination <Contol> + a den Befehlsmodus zu, ihr könnt natürlich jede andere Kombination verwenden solang diese noch nicht anderweitig verwendet wird.

Code:
    bind -n M-Left select-pane -L
    bind -n M-Right select-pane -R
    bind -n M-Up select-pane -U
    bind -n M-Down select-pane -D
Mithilfe dieser Zeilen können wir durch <Alt> + L, also mit Modifier und den Pfeiltasten zwischen den Fenstern hin und her wechseln. Im Netz findet man auch genügend Tutorials wie man die Vim Tastenkombinationen hierfür verwendet jedoch finde ich diese Möglichkeit intuitiver und man benötigt keine Plugins.

Im Prinzip kann man in der .tmux.conf alles nach seinen Wünschen anpassen, unter Linuxport im Internet findet man unglaubliche Setups an der Oberfläche und der Befehlszeile, mein Code zur Anpassung ist zwar nur auf das nötigste Begrenzt, umfasst jedoch auch schon 800 Zeichen. Versucht euch auch hier nach euren Wünschen einzurichten und kopiert nicht nur Dateien, es gibt viele gute Tutorials zu tmux.


Fazit:

Ich denke ich konnte zeigen dass es mit einfachen Mitteln möglich ist auch Geräte ohne Root in eine vollwertige Programmierumgebung zu verwandeln. Der Nachteil das somit keine Grafischen oberflächen programmiert werden können ist zwar schade jedoch auch nicht wirklich nötig. Mithilfe dieser Methode ist es vor allem möglich für wenig Geld immer und überall Code zu schreiben.

Bedenkt man dass es sich bei den Programmen um exakt die Tools handelt welche auch bei Professionellen entwicklern verwendet werden und nicht um billige Ports oder Kopien wie sie auf manch anderem Betriebssystem oder im Playstore angeboten werden.

Mein Fazit, wer wie ich unterwegs auf Montage Programmieren will und nicht ständig seinen Rechner mitschleppen der macht auf diesem Weg nichts falsch, die Programme können am Ende problemlos auf den PC übertragen werden. Das System und die Anwendungen können vollständig an die eigenen Bedürfnisse angepasst werden und erleichtert das Arbeiten um ein vielfaches, diesen Luxus habe ich auf Windows nicht!
__________________
1. Streite niemals mit Idioten, sie ziehen dich auf ihr Niveau und schlagen dich dann mit Erfahrung.

2. Wenn jemand denkt er hat die Oberhand, brich sie ihm.
Erik/Schreier ist offline   Mit Zitat antworten
Die folgenden 12 Mitglieder haben sich bei Erik/Schreier bedankt:
acemios (28.05.19), B345T (21.11.18), bibard (20.12.20), grafabflussrohr (30.05.21), ibeeback (13.01.19), ichbinshier (21.11.18), Likedeelers (06.12.19), matam (29.09.19), MerlinElMago (06.12.19), osmanli_ibo (17.07.19), Sammler2009 (28.04.20), Skues (02.01.20)
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.


Sitemap

().