iX 12/2016
S. 124
Praxis
Mobil-Programmierung
Aufmacherbild

Android-Funktionen aus Skripten aufrufen

Handy-Dressur

Termux macht Android-Schnittstellen in einer Linux-Kommandozeilenumgebung zugänglich. Das lässt sich mit allen gängigen Skriptsprachen nutzen – auch mit Ruby.

Für Android-Smartphones gibt es heute sowohl von den Betriebssystemherstellern als auch von anderen Anbietern umfangreiche Umgebungen zur komfortablen Softwareentwicklung. Allerdings ist der Aufwand für eine richtige App bei kleinen Aufgaben häufig zu groß. Schön wäre es, in solchen Fällen ähnlich wie am PC ein kleines Skript schreiben zu können, das den Job erledigt und auch eine rudimentäre Kommunikation mit dem Anwender erlaubt.

Dieser Artikel zeigt an kleinen Beispielen, wie sich das mit der App Termux in Android umsetzen lässt. Notwendig ist dazu lediglich eine Android-Version ab 5.0 (Lollipop). Gerootet muss das Handy oder Tablet nicht sein, solange für die gewünschten Aufgaben selbst keine Root-Rechte notwendig sind.

Linux komplett oder schlanke App?

Wie so oft gibt es verschiedene Möglichkeiten, Android zu skripten. Naheliegend ist eine der vielen Apps, die ein komplettes Linux unter Android einrichten. Die App GNUroot aus Googles Play Store beispielsweise installiert Debian Linux mit allen Applikationen, die in dessen ARM-Repository bereitstehen. Skripting mit Perl, Python, Ruby und Co. ist damit unkompliziert möglich, allerdings ist die Zahl der Schnittstellen zum Android-System überschaubar. Möchte man beispielsweise auf die Positionsinformation des Smartphones zugreifen, wird es schon schwierig.

Eine einfache Alternative ist die App Termux. Die quelloffene Anwendung unter GPL3-Lizenz stellt zunächst eine Terminal-Emulation für Android zur Verfügung, wie es viele im Play Store gibt. Darüber hinaus bauen die Entwickler ihre App jedoch immer stärker zu einer Linux-Umgebung mit einfach zu nutzenden Schnittstellen zum darüberliegenden Android aus.

Termux installieren

Termux findet sich sowohl im Play Store als auch in alternativen Repositories wie F-Droid. Wer möchte, kann die App auch selbst aus den auf GitHub verfügbaren Quellen bauen. Neben dem zentralen Termux-Package gibt es einige Zusatzpakete. Teilweise sind die kompilierten Pakete im Play Store kostenpflichtig, für unsere Zwecke reichen aber die kostenlos erhältlichen Apps völlig aus. Wichtig ist daher zunächst nur die Installation von Termux und Termux:API.

Beim Start der Termux-App öffnet sich ein klassisches Terminal-Fenster, wie man es von der Linux-Konsole her kennt. Die erste Hürde ist an dieser Stelle die Standardtastatur von Android: In der Konsole von Termux kann man sich wie auf der Linux-Konsole am PC sehr komfortabel bewegen, allerdings fehlen der Android-Tastatur viele der dazu notwendigen Tasten (Pfeiltasten, Strg, Alt …). In vielen Fällen reicht es, die Termux-Konsole vom PC aus fernzusteuern (dazu gleich mehr); dennoch ist es sinnvoll, eine geeignetere Tastatur zu installieren. Die App Hacker’s Keyboard liefert zumindest in Querausrichtung des Bildschirms eine übliche PC-Tastatur mit allen Sondertasten.

Im Termux-Terminal befindet man sich in einem Verzeichnis, das zu einer rudimentären Linux-Umgebung gehört. Mit den beiden Befehlen apt update und apt upgrade lassen sich die vorinstallierten Pakete aktualisieren. Der Befehl

apt list --installed

zeigt die installierten Pakete an, apt list gibt eine Liste aller verfügbaren Pakete aus. Der Befehl apt install installiert ein Paket.

Mehrere Termux-Sessions sind gleichzeitig möglich, wenn man in einem laufenden Terminal vom linken Rand zur Bildschirmmitte wischt. Es erscheint ein Menü, über das sich unter anderem eine weitere Session starten lässt. Der Wechsel zwischen bereits laufenden Sessions erfolgt ebenfalls über diese Wischgeste.

Damit Termux und die darin laufenden Skripte auf Android-Verzeichnisse zugreifen können, muss man in der Termux-Konsole auf dem Smartphone den Befehl termux-setup-storage einmal aufrufen. Das Tool legt im aktuellen Verzeichnis einen Unterordner storage mit symbolischen Links auf die Android-Ordner Download, DCIM, Movies, Music und Pictures an. Der Link storage/shared zeigt auf die SD-Karte, wo sich die genannten Verzeichnisse befinden.

Fernzugriff per SSH einrichten

Sobald man einige dieser Befehle in Termux eingetippt hat, dürfte deutlich geworden sein, dass die Nutzung der kleinen Bildschirmtastatur keine ideale Lösung zur Interaktion mit der Kommandozeile ist, vom Schreiben eines Skriptes ganz zu schweigen. Und selbst mit einer Bluetooth-Tastatur bleibt das Arbeiten auf dem kleinen Bildschirm mühsam. Es ist deshalb zweckmäßig, einen bequemen Zugang zur Termux-Konsole des Smartphones vom PC aus einzurichten.

Die einfachste Art des Fernzugriffs zum Skripten besteht in einer SSH-Verbindung über das lokale Netz. Dazu muss zunächst der SSH-Server auf dem Handy installiert werden:

apt install openssh

installiert den Server und startet ihn auch gleich. Achtung: Der Server lauscht an Port 8022. Der Befehl sshd startet den SSH-Server nach einem Neustart der App.