SL4A: Eigene Android-Apps schnell und einfach selbst schreiben

Mobilplattformen werden als Ziel für Software-Entwickler immer beliebter. Ein Großteil dieser Aktivitäten wirkt jedoch ein wenig wie der Dot-com-Boom, da viele Leute zu denken scheinen, sie hätten einen neuen Weg zum Reichtum gefunden:

  1. Ein Mobilgerät kaufen
  2. Eine Mobil-App entwickeln
  3. Geld verdienen!

Die Wirklichkeit ist nicht ganz so einfach. Die wenigen Menschen, die diese Erfolgsformel tatsächlich umgesetzt haben, gehörten häufig zu denjenigen, die etwas völlig Neues für diese Plattform entwickelt haben – etwas, für das die Menschen wirklich bereit sind, Geld zu bezahlen. Um Menschen davon zu überzeugen, Geld auszugeben, muss man mehr tun, als nur ein Logo auf ein halb gares Widget zu setzen.

Für diejenigen von uns, die ihre Mobilgeräte eher als Mittel zum Zweck betrachten, ist jedoch die Aussicht, Computer mit ziemlich robusten Netzwerkfähigkeiten und umfangreichen Entwicklungs-APIs griffbereit in ihren Taschen zu tragen, sicher eine reizvolle Vorstellung. Leider ist der Entwicklungsprozess so vertrackt und beschränkt ist.

Apple hat mit seinen drakonischen Richtlinien, wie Entwickler ihre Software schreiben dürfen, welche Programmiersprachen und APIs sie benutzen dürfen und welche Inhalte sie über ihre Software verbreiten dürfen, in der Fachpresse einige Wellen geschlagen. Die bürokratischen Hürden, die man nehmen muss, um lediglich einen Bugfix oder ein Update für seine Anwendung im App Store zu publizieren, sollen hier beiseite gelassen werden.

Mit Android wird die Sache etwas angenehmer für Entwickler, die Benutzern ihre Software tatsächlich zur Verfügung stellen möchten. Es ist leichter, Software für den Android Market genehmigt zu bekommen, man kann aber auch ganz einfach den Android Market insgesamt umgehen, wenn man möchte. Zum Beispiel können Benutzer die Anwendungen des jeweiligen Entwicklers von einer Webseite herunterladen, wenn sie das vorziehen. Auch müssen Anwendungen nicht zwangsweise in Googles eigener Java-Implementierung programmiert werden.

Während Apple sich neue Wege ausdachte, Entwickler davon abzuhalten, Code in jeder beliebigen Sprache für das iPhone zu schreiben, setzt sich in der Android-Community zunehmend die Meinung durch, dass man Code in der Sprache schreiben dürfen sollte, in der man möchte, um ihn dann in einer Form zu kompilieren, die auf der Android-Plattform läuft. Solche Werkzeuge werden unterschiedlich beurteilt, doch allein die Tatsache, dass es sie gibt, zeigt, dass ein sehr viel entwicklerfreundlicheres Ökosystem um Android-Geräte herum besteht, das nichts mit Apples gelegentlich entwicklerfeindlichem Management des App Store zu tun hat.

In der Desktop-Linux-Welt ist es heute üblich, kleinere Apps mittels Scripts zu schreiben. Dazu zählen etwa einfache Social-Networking-Clients oder Multi-Messenger-Programme. Für Android gibt es eine kostenlose Open-Source-App im Android Market namens Scripting Layer for Android, kurz SL4A. Dabei handelt es sich um eine Kombination aus IDE, API-Wrapper und Interpreter-Plug-in-Framework, die mit einer Reihe verschiedener Sprach-Interpreter zum Ausführen von Code verwendet werden kann. Unter anderem sind derzeit die folgenden Interpreter für SL4A verfügbar:

  • Bean Shell
  • JRuby (Ruby in Java)
  • Lua
  • Perl
  • Python
  • Rhino (JavaScript in Java)

SL4A ist mehr als nur ein Spielzeug. Es stellt einen Teil der Android-Entwicklungs-API für die selbst geschriebenen Scripts mittels der Syntax der jeweiligen Sprache zur Verfügung. Es ist sogar möglich, die eigenen Scripts in Android-Pakete zu bündeln, die dann wie jede andere Android-App installiert werden können. Die Entwickler beanspruchen nicht, SL4A sei für den produktiven Einsatz geeignet: Es wurde für Entwickler entworfen und ist Software mit Alpha-Qualität, was sich aber noch ändern kann.

Dementsprechend kann man auch jedes Mal, wenn man ein Ruby-Script in der Konsole eines Android-1.5-Gerätes ausführt, die „Alpha-Qualität“ durchscheinen sehen: Der ganze Konsolen-Bildschirm wird mit Fehlerausgaben vollgeschrieben, während JRuby startet. Ansonsten gab es beim Schreiben und Ausführen von Perl- oder Ruby-Scripts keine Probleme.

Da die Android-API eine Schnittstelle zur zugrunde liegenden Java-API ist, kann man problemlos einige einfache Vermutungen darüber anstellen, wie sie funktioniert. Oft ist es aber sinnvoller, in der API-Übersicht und der API-Referenz von SL4A nachzuschauen.

Was SL4A als AndroidFacadeAPI bezeichnet, ist eindeutig objektorientiert. Bei grundsätzlich objektorientierten Sprachen wie Ruby und Python findet man sich schnell zurecht, abgesehen von kleinen Unterschieden bei den Coding-Konventionen zwischen den optimalen Verfahren der Community der jeweiligen Sprache und der AndroidFacadeAPI, etwa die Verwendung der camelCase-Schreibung für Methodennamen anstelle der snake_case-Schreibung in Ruby. Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells von Perl in Kombination mit Perls komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten API wie ein Stolperstein wirken.

Tagelanges Abmühen beim Schreiben von Code in Perl auf einem Handy, während man in Wartezimmern sitzt, zu Mittag isst oder anderweitigen Tätigkeiten nachgeht, erinnert in quälenden Details daran, warum man objektorientiertes Programmieren in dieser Sprache wie die Pest meiden sollte – auch wenn Perl für viele Zwecke sehr brauchbar ist. In Ruby dagegen kann man mittels der AndroidFacadeAPI innerhalb von Minuten Scripts schreiben und Informationen präsentieren, die man beim Scannen lokaler WLAN-Zugangspunkte sammelt, oder auch Informationen über die Netzwerkinterfaces, die in etwa mit der Ausgabe von ifconfig auf einem Unixsystem äquivalent sind.

Wenn SL4A auf dem Gerät installiert ist, kann man sogar in Android integrierte Mechanismen verwenden, um Verknüpfungen mit der Anwendung auf der Oberfläche des Gerätes einzufügen und Symbole zu erstellen, mit denen die Scripts gestartet werden, wenn man sie erst geschrieben und gespeichert hat. Dieser Coden-Testen-Debuggen-Prozess, den das elementare IDE von SL4A bietet, ist einfach, aber effektiv und befriedigend, speziell, wenn man stundenlang am Flughafen sitzt oder vor den Umkleidekabinen eines Kaufhauses wartet und nichts als sein Android-Gerät und die Muße hat, Code zu schreiben.

So kann man sich spielerisch mit den Möglichkeiten der in Android vorhandenen APIs vertraut machen. SL4A hat sogar einen potenziellen Suchtfaktor. Das größte Problem kann darin bestehen aufzuhören, wenn man im Imbiss an der Reihe ist.

SL4A downloaden

ZDNet.de Redaktion

Recent Posts

Dezember-Patchday: Google stopft schwerwiegende Löcher in Android

Mindestens eine Anfälligkeit erlaubt eine Remotecodeausführung. Angreifbar sind alle unterstützten Versionen von Android.

5 Stunden ago

Warum ein überlasteter IT-Service Unternehmen schadet

Ein einziges IT-Problem kann ein gesamtes Unternehmen zum Stillstand bringen. Insbesondere sicherheitsrelevante Vorfälle bedrohen dabei…

6 Stunden ago

Cyberkriminelle nutzen beschädigte Word-Dateien für Phishing-Angriffe

Viele Sicherheitsanwendungen erkennen die absichtlich beschädigte Dokumente nicht als gefährliche Dateien. Die Hintermänner haben es…

9 Stunden ago

So viele digitale Endgeräte haben Kinder wirklich

Ab einem Alter von 10 Jahren haben die meisten ein eigenes Smartphone. Hälfte zwischen 6…

1 Tag ago

Flüssigkeitsgekühlte High-Performance-Cluster

Energieeffiziente flüssigkeitsgekühlte Rechenzentren bringen wissenschaftlichen Fortschritt in Biowissenschaften und Medizin voran.

1 Tag ago

Intel-CEO Pat Gelsinger tritt zurück

Der Manager verlässt auch das Board of Directors. Während der Suche nach einem Nachfolger leiten…

1 Tag ago