Oskar Welzl: Weblog zur Homepage

N900: Klingeltöne und Multitasking

Insider sind was Tolles. In Bezug aufs N900 ist Marco Barisione ein solcher. Zwar arbeitet er nicht direkt bei Nokia, aber bei Collabora - einem Unternehmen, das seit Jahren Maemo-Komponenten entwickelt.

In seinem jüngsten Blog-Eintrag macht er seinem Unmut über den Typ Anwender Luft, der immer alles besser weiß und nach dem Motto „Das kann doch nicht so schwer sein!“ die Entwickler beleidigt. Als konkretes Beispiel zeigt er auf, warum es am N900 nicht möglich ist, einzelnen Kontakten individuelle Klingeltöne zuzuweisen:

Im Gegensatz zu einfachen Telefonen ohne Multitasking (iPhone, Android, S40) mußten die Entwickler bei Maemo gewährleisten, daß ein Anruf auch dann signalisiert wird, wenn das Gerät völlig ausgelastet ist: Speicher voll, Auslagerungsspeicher voll, CPU auf 100%. In so einer Situation Speicher freizuschaufeln, ein beliebiges Audiofile von der (sehr langsamen) Speicherkarte zu holen, zu analysieren, die richtigen Codecs zu laden, zu dekomprimieren und schließlich zu spielen … diese Verzögerung im Sekundenbereich wollte man nicht riskieren. Daher arbeitet das N900 hier anders: Der eine vom User festgesetzte Klingelton wird vorab als unkomprimiertes Audiofile im schnell zugänglichen Root-Filesystem abgelegt. Der Code zum abspielen dieser Datei bleibt im RAM und kann weder ausgelagert noch entfernt werden. Effekt: Die Audiowiedergabe startet sofort.

Theoretisch wäre es natürlich möglich, alle vom User definierten Klingeltöne auf diese Art vorzubereiten. Damit wäre aber der sehr knapp bemessene Speicherplatz auf der Root-Partition bei vielen Kunden sehr schnell belegt. In der Praxis ist das nicht vertretbar. Daher: Ein Klingelton für alle und basta.

Marco Barisione erklärt nicht, wie z.B. Symbian als ebenfalls echtes Multitasking-Betriebssystem das gleiche Problem löst … oder wie es bei MeeGo sein wird. Er gesteht auch zu, daß die Anforderung „Sofort läuten bei 100%iger Systemauslastung“ für die tägliche Praxis fast zu streng ist. Genau das, so erklärt er, macht aber den Unterschied im Spielraum zwischen einer offiziellen Nokia-Lösung und Programmen von Dritten aus: Nokia muß auch diesen unwahrscheinlichen Fall berücksichtigen und das System darauf ausrichten. Die Programmierer der diversen Applikationen, die genau diese Funktion nachrüsten, müssen das nicht. Sie können sich darauf verlassen, daß a) das N900 in der Regel ohnehin nicht so extrem ausgelastet ist und b) eine Verzögerung selbst von 2-3 Sekunden bei der Rufsignalisierung für die meisten Anwender vertretbar bleibt.

So erklärt das der Profi. Ich finde diesen Blick hinter die Kulissen spannend. Alles Mögliche hätte ich als Ursache für dieses fehlende Feature vermutet, aber sicher nicht die Tatsache, das der Klingelton aus Performance-Gründen „auf Vorrat“ gehalten wird. Jetzt möcht ich nur mehr wissen, warums bei Symbian trotz Multitasking geht. Wer erklärt mir das? ;)

 
Weitere Links zu …
GNU/Linux:
development