SL4A: Eigene Android-Apps schnell und einfach selbst schreiben

Wer ein Android-Smartphone besitzt, eine gängige Scripting-Sprache kennt und einige Minuten Zeit übrig hat, kann mit Scripting Layer for Android problemlos eine Android-App schreiben. ZDNet zeigt, was man dazu braucht.

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

Themenseiten: Android, Anwendungsentwicklung, Google, Handy, Mobil, Mobile, Smartphone, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

4 Kommentare zu SL4A: Eigene Android-Apps schnell und einfach selbst schreiben

Kommentar hinzufügen
  • Am 1. März 2014 um 23:03 von lol

    uebrigens wer nur mail auf einem mac verwendet laueft bereits in einen irrsinns bug.

    apples mail client hat BIS HEUTE das problem das er bei imap postfachern willkuerlich immer wieder ein gesendetes mail einfach loescht.

    und das in hoher stueckzahl.

    aber gut das sich jemand der sich mit joomla beschaeftig anderen die kompetenz abreden will… ach herrlich diese idioten im netz die seit einer woche ohne hilfe den power schalter finden und glauben sie muessen ihren senf dazu geben…

    kein wunder das demokratie niemals funtionieren wird

  • Am 30. April 2011 um 11:30 von SMS

    Apple wird es schwer haben
    Noch profitiert Apple vom App-Boom. Android holt jedoch mit Riesenschritten auf. Apple ist selbst schuld wenn es durch erschwerte Entwicklung und willkürlichen Entscheidungen die Entwickler auf Android-Systeme treibt. Wir sind auch kurz davor auf Android-Entwicklungen umzusteigen. Apple schaufelt sich so langfristig sein eigenes App-Grab! Ich denke das sich ein weniger restriktives System auf Dauer beim User durchsetzt. Außerdem wird auf toleranteren Plattformen meist die bessere und kreativere Software entwickelt.

    • Am 11. Juni 2011 um 23:55 von Walter Bernhard

      AW: Apple wird es schwer haben
      So ein Kommentar kann nur in völliger Unkenntnis des Marktes geschrieben werden. Bei Apple habe ich Sicherheit das es funktioniert. Bei der freien Software brauche ich Glück. Nicht jeder will gleich Programmierer werden nur weil er eine App auf sein Phone spielen will.
      Was die Kreativität betrifft sollte ZD mal die Entwicklungsgeschichte seit 1976 aufschreiben und gegenüber stellen. Wann was wo in den Markt gebracht wurde.
      Apple und Next werden dann ziemlich oft genannt werden müssen. Die Trends werden seit über 30 Jahren von Jobs gesetzt. Auch wenn die meisten Apple erst seit dem Ipod kennen.
      Ich kämpfe gerade mit einer Schrottsoftware für Joomla und warte darauf das ein kompetenter Entwickler Lust und Laune hat den Mist zu reparieren. Ich ziehe es vor für Leistungen zu zahlen, dann habe ich auch Anspruch auf mangelfreie Programme.

      • Am 23. Januar 2012 um 15:22 von morn

        AW: SL4A: Eigene Android-Apps schnell und einfach selbst schreiben
        Apple bringt mit sicherheit keine fehlerfrei Software raus, wenn man nur Photo Booth benutzt und mit Mail keine fehler erlebt benutzt man seinen Mac nicht, rausgeworfenes Geld!, da kann ich auch Briefe schreiben, mitm Tinten Killer auf Zelophan oder Vinyl verbrennen und schade der Umwelt gleichzeitig weniger als wenn ich mir nen Mac kaufe der nonstop mit 20% last läuft nur ums Gui darzustellen, und wenns nur 5% sind hab ich mir die 5000 euro variante gekauft die dennoch 50 watt mehr verschlingt.
        Ach ohne Unix kein osx, hab ich das jetzt richtig in erinnerung? wie ist das mit den open george bestandteilen von os X?
        Und nen ipod erster generation hatte ne dualcore recheneinheit damit ie schlecht programmierte software auch ruckelfrei läuft … soviel zu innovation
        ich hätte auch gerne ne xbox mit 12gb arbeitsspeicher nur damit das spiel nicht solange lädt nur sonst bräuchte ich sie nicht wird einfach nicht ausgelastet. Ich habe mir damals linux aufn ipod gepackt und konnte aufeinmal filme sehen und usbfestplatten anschließen ach ich hätte mir sogar nen lamp server draufpacken können wenn ich nicht so ungeduldig beim webseitenladen wär….
        guten tag
        ach ja ich kauf mir nen mercedes e klasse weil ich es dadrinn so schön leise finde auch wenn ich immer nur alleine im auto sitze genug der polemik
        gr morn

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *