Android

Android – was geht?

Von am 07.12.2010

Es ist ein ewiger Kampf, welches Betriebssystem denn jetzt das Beste ist. Auf der iPhoneDevCon erfuhren wir mehr über einige sich im Umlauf befindenden Betriebssysteme. In diesem Artikel gebe ich einen kurzen Überblick über das populäre OS Android und was man braucht um mit der Entwicklung loslegen zu können.

Das Open Source Betriebssystem wurde von Google entwickelt und basiert auf einem Linux Kernel. Eine wesentliche Komponente eines Android-Systems ist die Laufzeitumgebung, die Dalvik Virtual Machine (DVM). Diese ist keine strikte Java Virtual Machine sondern sie wurde speziell für Android entwickelt und in zwei Schlüsselbereichen optimiert. Sie kann mehrere Male instantiiert werden – jede Anwendung hat in einem Linux-Prozess ihre eigene private Kopie der DVM. Außerdem ist sie sehr speichereffizient, registerbasiert (anstatt stack-basiert, wie die meisten Java-VMs) und verwendet ihre eigene Byte-Code-Implementierung.
Durch seine freie Verfügbarkeit gibt es eine große Auswahl an Geräten mit Android Betriebssystem. Das kommt den Kunden zu gute, da sie aus vielen verschiedenen Modellen aber auch Preisklassen wählen können.
Leider gibt es nicht nur Vorteile die für Android sprechen. Ein wesentlicher Kritikpunkt ist die weitreichende Fragmentierung in unterschiedliche Versionen. Jeder Hersteller passt  das Betriebssystem seinen Vorstellungen und an seine Geräte an. Dadurch müssen allerdings alle Änderungen bei einem Update von Android auch in die modifizierte Version übernommen werden, was die Veröffentlichungszeiten sehr verzögert.

Apps, Apps everywhere

Die Vorteile von Applikationen liegen auf der Hand. Sie werden mit einem simplen Klick installiert, Updates werden automatisch geladen und überhaupt, die ganze technische Komplexität wird vor dem Anwender verborgen. Zusätzlich sind die meisten Applikationen sehr günstig zu erwerben.
Möchte man nun eine eigene Applikation entwickeln braucht es nicht viel. Man sollte sich dennoch vorher darüber Gedanken machen. Es liegt fast auf der Hand: Kennt man die Programmiersprache schon? Hat man sich mit dem Gerät schon beschäftigt und kennt dessen Eigenheiten? Nicht minder wichtig ist eine gute Community. Was macht man wenn man nicht weiter weiß?
Welche Komponenten braucht man nun um eine Android App entwickeln zu können?

  • Eclipse IDE
  • Android SDK (verschiedene Versionen gratis verfügbar)
  • Android Development Tools Plugin für die IDE

Die Applikationen selber werden in Java geschrieben und danach auf der Android Virtual Device (AVD) getestet. Bei Fehlern unterstützt einen der Dalvik Debug Monitor Service (DDMS). Eine View, also ein Template für ein Layout der Applikation, wird in XML definiert. Die zugehörigen Textelemente werden in einem zusätzlichen XML Dokument abgelegt.

Technischer Einblick

Am wichtigsten bei der Entwicklung, egal auf welcher Plattform, ist es zu verstehen wie das System im Hintergrund arbeitet. Durch Linux als Basis können auch viele bekannte Bibliotheken für die eigenen Applikationen verwendet werden. Ein wichtiges Merkmal von Android Systemen ist die Fähigkeit des Multitasking. Dabei wird für jeden Prozess eine Dalvik Virtual Maschine gestartet. Ist eine Applikation nicht mehr sichtbar für den Benutzer wird die Bearbeitung eingestellt. Wird der Arbeitsspeicher knapp werden von einem eigenen Algorithmus nicht mehr gebrauchte Applikationen beendet.
Die einzelnen Komponenten sind lose gekoppelt und ermöglichen so ein Zusammenspiel untereinander auch über Prozessgrenzen hinaus. Man unterteilt die Komponenten in folgende Kategorien:

  • Activity – eine Aktivität die der Benutzer durchführen kann. Sie können auch ineinander verschachtelt werden, werden aber meistens im Vollbildmodus ausgeführt.
  • Service – darunter fallen Hintergrundkomponenten wie das GPS Modul oder die Verwaltung der Netzwerkzugriffe
  • Broadcast Receiver – Benachrichtigungsebene an den Benutzer (Batteriestatus, eingehender Anruf, …)
  • Content Provider – Inhalte die man als Verwalter zur Verfügung stellen möchte

Ein interessanter Trick der bei der Entwicklung nützlich sein kann ist, dass alle Activities neu gestartet werden sobald sich die Bildschirmorientierung ändert. Dies erzielt man im mitgelieferten Simulator durch drücken von Strg + F11 (windows) und hilft ungemein bei der Fehlersuche.
Im sogenannten Activity Stack werden die nach der Reihe gestarteten Applikationen aufgelistet. Eingegebene Daten werden automatisch zwischengespeichert zB Text einer e-mail. Weiters muss man zwischen Home und Back Button unterscheiden. Beim Drücken des Home Buttons wird die aktuelle Applikationen in den Hintergrund gelegt. Beim Drücken des Back Buttons wird der vorherige Zustand der Applikation aufgerufen und eventuelle Eingaben gehen verloren.
Die klaren Vorteile der Entwicklung einer Applikationen auf Android sind das schnellere Multitasking, nur sehr wenige Restriktionen bei der Entwicklung und die volle Nutzbarkeit aller Systemfunktionen durch die Applikation. Durch die große Freiheit und die etwas komplizierte Implementierung kann es allerdings dazu kommen, dass Ressourcen verschwendet werden.

App Verbreitung

Um seine App im Market anbieten zu können erstellt man selbst ein Zertifikat und signiert seine Applikation selbst. Dies ist gleichzetig ein Vor – und ein Nachteil, da man zwar sehr einfach und schnell seine App in den Markt bekommt, man jedoch als Benutzer nie sicher sein kann ob die App wirklich vertrauenswürdig ist. Durch die Möglichkeit seine App selbst signieren zu können kann man diese auch sehr einfach über eine eigene Website oder per e-mail verteilen. Um seine Applikation in den Market laden zu können ist eine einmalige Registrierungsgebühr von 25$ notwendig und vom Erlös der Applikation gehen 30% an Google.

Fazit

Verglichen mit dem schwierigen Einstieg in die iOS – Entwicklung macht man bei Android fast einen Spaziergang bis zur ersten Applikation. Man darf sich jedoch nicht von dem leichten Einstieg täuschen lassen und muss trotzdem auf die Eigenheiten des Systems achten und die Qualität seiner Applikation selber in die Hand nehmen. Was auf jeden Fall für Android spricht ist die leichte und offene Zugänglichkeit.

Links

1 Kommentar

  • steff am 07.12.2010 um 21:57

    der simulator basiert übrigens auf qemu, und des mit hotkey kannte ich noch nicht thx ^^

The comments are closed.