b.zekjur.net
Android hat mich ;-). Ich möc… (2010-10-15)
Android hat mich ;-). Ich möchte kurz darauf eingehen, warum ich gewechselt habe.
Mein altes (erstes) Smartphone, das Nokia N900, habe ich mir gekauft, weil ich
damit viele Aufgaben erledigen kann, für die ich sonst verschiedene Geräte
brauchte: SIP-Telefon, MP3-Player (man kann sich auch in der Bahn mal einen
Film anschauen, das funktioniert ziemlich gut), Telefon, mobiler IRC- und
Webclient, Navigationssystem. Am wichtigsten allerdings war, dass ich darauf
eigene Anwendungen entwickeln konnte. Ich suchte zu der Zeit eine mobile Lösung
mit Tastatur und Touchscreen, auf der ich selbst Code für einfache
TODO-Listen-Programme, Tagesplaner, etc. schreiben konnte. Das N900 schien mir
dafür eine gute Wahl.
Die Maemo-Platform, mit der das N900 betrieben wird, ist eine Debian-basierte
Linux-Distribution (was mir natürlich sehr sympathisch ist), die in Sachen
Hardware-Zugriff ziemlich viel Spielraum bietet. Die verfügbaren
Entwicklungswerkzeuge sind die Sprachen C, C++, Python (andere Sprachen sind
möglich, werden aber nicht wirklich unterstützt, das ergibt also wenig Sinn)
sowie eine komplette Changeroot-Umgebung, die auf einem Xephyr-X-Server die
Software des Gerätes entweder nativ (x86) oder emuliert (qemu-arm) laufen
lässt. Später (nachdem Qt 4.6 im Firmware-Upgrade PR1.2 mitgeliefert wurde)
stieß dann noch der QtCreator hinzu. Die Verfügbarkeit von C/C++ war einer der
Gründe, weswegen ich mich damals für das N900 entschied (ich mag Java nicht
sonderlich, man kommt bei Android, der einzigen Alternative, um Java aber nicht
drumrum).
Nach ca. 5 Monaten, in denen ich mich ausgiebig mit der Entwicklung für Maemo
beschäftigt habe (auf vielen Ebenen), habe ich die Bilanz gezogen, dass ich
Android als Alternative nochmal evaluieren muss. Die Gründe (stichpunktartig),
die mich dazu bewegten:
-
Das Maemo-SDK hat einige Probleme. Es läuft z.B. nur auf 32-Bit-Systemen,
die Installation ist viel zu kompliziert und einige Software läuft anders als
auf dem Gerät (man hat nicht wirklich eine 1:1-Umgebung). Das Kompilieren via
qemu-arm ist sehr langsam.
-
Die Libraries und APIs sind in einem Umbruch durch die Umstellung auf Qt,
beispielsweise zieht
liblocation
einen Rattenschwanz an shared
libraries nach sich, die (in Kombination mit Qt für die GUI) eine Anwendung
schnell in den zweistelligen Sekundenbereich (!) bei der Ladezeit rutschen
lassen.
-
Qt (in der auf Maemo angepassten Version) fehlt viel Funktionalität, die man
auf mobilen Geräten erwarten würde (Location-Integration, Bearer-Management,
Gestenerkennung, …)
-
Das N900 an sich reagiert oftmals nicht flüssig genug. Das hat mehrere Gründe:
Zum Einen ist das User Interface oftmals einfach schlecht designed
(beispielsweise die Settings-Anwendung, die Menüpunkte schon anzeigt, obwohl
sie noch ca. 3 Sekunden zum Laden braucht) und langsam, zum anderen ist das
Gerät mit so wenig Arbeitsspeicher ausgestattet, dass es zum Swappen kommt. Wie
man sich leicht ausmalen kann, hat man total verloren, sobald man auf den
Flashspeicher swappen muss. Durch das nicht auf wenig Arbeitsspeicher
ausgelegte OS sowie einigen Memory Leaks (hier ist der integrierte Browser
hervorzuheben) führt das dazu, dass man alle paar Tage rebooten sollte.
Eine ganz besonders ärgerliche Stelle für diese Art von Problemen ist die
Telefonie-Anwendung, die natürlich auch für eingehende Telefonate gestartet
wird. Diese braucht zunächst mal relativ lange zum Starten. Man bemerkt also
bei einem neuen Anruf zunächst, dass sich das Display einschaltet, dann die
Vibration, dann den Klingelton und danach das Starten der Anwendung, was ca. 2
Sekunden dauert. Anschließend rotiert das Fenster ein- bis zweimal, wobei sich
alle Bedienelemente einmal wild durch die Gegend verschieben. Das macht es zum
Glücksfall, ein Telefonat innerhalb von 5 Sekunden (!) anzunehmen. Dieselbe
Situation hat man auch beim Auflegen – da drückt man drei- bis viermal wild
aufs Display, bis das reagiert.
-
Es gibt einige Probleme mit dem Nokia-Management, was die Entscheidungen
bezüglich Maemo angeht. Dazu gehören beispielsweise die Entscheidung, viele
Komponenten im Basissystem nicht frei/offen zu machen (das Austauschen des
Lockscreens ist dadurch beispielsweise viel zu schwierig oder das
Implementieren von Gruppen für das Adressbuch schlicht nicht möglich), aber
auch mangelnde Responsivität auf Bugreports (Bugreport als Beispiel)
oder die ganze Meego-Geschichte (Nachfolgebetriebssystem, was auf dem N900
nicht offiziell unterstützt wird).
Weiterhin sprechen folgende Punkte für Android:
-
Die schiere Anzahl an Entwicklern und Anwendungen ist sicherlich ein Pluspunkt.
Natürlich kann man anmerken, dass bei soviel Masse die Qualität auf der Strecke
bleibt und dass es auf Maemo mehr Open-Source-Anwendungen als auf Android gibt
(ich habe das nicht verifiziert, ist nur eine Vermutung). Nichtsdestotrotz
bringt eine große Anzahl an Entwicklern natürlich einen regen Austausch mit,
was zu einer großen Anzahl an Tutorials, bereits gestellen Fragen und
Codebeispielen führt.
-
Das SDK ist deutlich einfacher aufzusetzen und zu benutzen. Die starke
Integration in Eclipse mag zunächst als Nachteil erscheinen (wenn man Eclipse
nicht mag), ist aber doch ganz angenehm (ein Plugin installieren, die Developer
Tools entpacken und dann geht in Eclipse wenigstens schonmal alles).
-
Die Zeit von der Idee zu einer Anwendung bis sie tatsächlich läuft ist deutlich
kürzer als bei Maemo. Man muss sich nicht mit so vielen Kleinigkeiten
aufhalten, da alles aus einer Hand kommt (zumindest solange man bei den
mitgelieferten Klassen bleibt). Insgesamt hat es mich (ohne vorherige Erfahrung
mit Androidentwicklung und mit minimalen Java-Kentnissen) ca. 48h gekostet, bis
meine Anwendung zufriedenstellend lief (eine einfache TODO-Liste mit CouchDB
als Backend).
-
Das User-Interface ist deutlich flüssiger als bei Maemo. Um mal ein paar
konkrete Beispiele zu nennen: Androids Media Gallery ist deutlich schneller als
der Bildbetrachter unter Maemo, das Scrollen auf Websites funktioniert
flüssiger und das Wechseln der Orientierung geht deutlich schneller von
statten.
Außerdem ist die
Bedienung angenehmer, was mehrere Ursachen hat. Beispielsweise befindet sich
bei Maemo der Button um zwischen offenen Fenstern zu wechseln und neue
Programme zu starten links oben in der Ecke – ausgerechnet dort, wo der
Touchscreen am schlechtesten zu bedienen ist. Bei Android hingegen gibt es für
einige Aktionen, wie beispielsweise das Aufklappen der Notification Area oder
des Programmstarters, einen gewissen Spielraum, damit man auch bei schnellen
und unpräzisen Bewegungen ans Ziel kommt.
-
Die Verzahnung von Anwendungen über Intents gefällt mir sehr gut. Dadurch kann
auf bestehende Funktionalität anderer Software zurückgegriffen werden und man
hat insgesamt deutlich mehr Konsistenz und Integration (beispielsweise kann man
selektierten Text als neuen Eintrag in meine TODO-Anwendung laden).
Mein derzeitiges Android-Telefon ist das Motorola Milestone (vergleichsweise
günstig, Hardware-Tastatur, sofort verfügbar). Sofern das HTC Desire Z seine
Nutzer nicht auch so sehr gängelt wie dessen Branding-Version T-Mobile G2 (in
den USA), werde ich vermutlich darauf umsteigen, sobald es auf dem Markt ist.
Impressum