Das Android-Betriebssystem auf dem Asus eeePad

Datum: 14. Jan. 2012
Beginn der Vortragsreihe

Ort:
Badertscher + Co. AG
Zentweg 13 (2. Stock)
3006 Bern

An diesem Workshop wird das Android-Betriebssystem vorgestellt und eine Auswahl der nachstehend aufgelisteter Apps demonstriert:

 

Freitag, 30. März 2012
Workshop vom 14.1.2012

mehr durch Klicken auf den Titel

Anmelden



Warum das iPad und das iPhone Multitasking nicht unterstützt
von Robert Love, April 2010)

(Quelle: http://blog.rlove.org/2010/04/why-ipad-and-iphone-dont-support.html)
- frei ins Deutsche übersetzt von HB9CZV)

Warum unterstützt das iPad und iPhone das Multitasking nicht ?
Die Antwort ist nicht so, wie Sie denken.

Es gibt viele Missverständnis betr. der Unterstützung für Multitasking
des iPhones und seines grösseren Bruders, dem iPad.

Im folgenden ist meine Analyse der Situation dargestellt. Ich bin nicht eingeweiht in alle Insider-Informationen von Apple. Ausserdem sind meine Aussagen sicherlich gefärbt durch meine Kenntnisse und Arbeiten am Android. Ich will auch keinen Vergleich mit meinem Google-spezifisches Wissen anstellen.

Zunächst einmal: natürlich unterstützen iPhone und iPad das Multitasking.
(Zeitpunkt 2010). Beide Geräte basieren auf modernen, leistungsfähigen Betriebssysteme, die Unterstützung für präemptiven Multitasking bieten (heutiger Standard, wie ein Betriebssystem arbeitet, indem es nach einer bestimmten Zeit einen Prozess zugunstern eines andern suspendiert). Tatsächlich laufen auf der System-Ebene viele Prozesse (quasi) gleichzeitig. Und einige von Apple bereitgestellten Anwendungen wie Musik-Player laufen klar im Multitasking.

Lassen Sie uns also die 'Beanstandung' neu definieren:
Was in der Wirklichkeit nicht unterstützt wird, ist die Möglichkeit der Multitasking- Anwendungen von Drittanbietern.

Das System fördert eine Philosophie, bei der Anwendung beendet werden, sobald sie den Vordergrund verlassen. In gewisser Weise ist dies sinnvoll. Die iPad und das iPhone Benutzeroberflächen sind einzelne Fenster (Windows) und einzelne Dokumente.
Die Beendung von Hintergrund-Task mag wohl für eine ganze Reihe von Anwendungsfällen recht gut funktionieren.

Apple sagt, sie bieten keine Unterstützung für Multitasking, weil dies die Stabilität des Systems beeinträchtigen und zu einer höheren Belastung der Batterie führen würde.
Dies ist eindeutig falsch. Das iPad hat grosse Rechenleistung und genügend Batteriekapazität.

Ein Gerücht ist, dass Apple sich wird fügen müssen, Multitasking in einer zukünftigen Version des Betriebssystems einzubauen. Dieses Gerücht ist wahrscheinlich wahr.
Wird Apple es irgendwie bewerkstelligen, Anwendungen im Hintergrund ohne Batterieverbrauch laufen zu lassen ? Natürlich nicht. Diese Ausreden sind leeres Stroh !

Der wahre Grund, dass die iPad und iPhone es nicht erlauben, Anwendungen von Drittanbietern im Multitasking zu betreiben ist wahrscheinlich komplexer und technischer Natur.

Bitte haben Sie etwas Geduld mit mir !

Sowohl iPad als auch iPhone sind mobile Geräte und haben wenig Speicher (256 MB in der aktuellen Version). Und sie haben keine Festplatte. Keine Festplatte bedeutet, kein Swap file (Auslagerungsspeicher). Begrenzter Speicher und kein Swap bedeuten Verzicht auf den Luxus von scheinbar unendlichem Speicher, wie dies ein modernes System mit Swap hat. Speicherverbrauch ist somit eine entscheidende Systemlimitation. Wie die meisten Systeme, behelfen sich auch iPad und iPhone mit einem sog. Out of Memory - Mechanismus durch das Schliessen von Anwendungen, die zuviel Speicher verwenden .

Im Gegensatz zu den meisten Systemen, wissen die Anwendungen, die für das iPad und iPhone entwickelt wurden, wie viel Speicher sie zur Verfügung haben und sind so ausgelegt, innerhalb dieser Einschränkungen zu arbeiten. Das ist ein klassisches Memory-Management in Embedded-Programmierung. Kein Swap - fester Speicher ist zur Verfügung. Mit dem muss man auskommen.

Was würde aber passieren, wenn Anwendungen von Drittanbietern Multitasking zur Verfügung hätten ?

Einige Anzahl Anwendungen würden im Hintergrund laufen. Aber jede Anwendung wurde geschrieben unter der Voraussetzung, sie habe Zugang zu einer festen Speichergröße . Wenn also die Anwendungen im Hintergrund zu viel Speicher verbrauchen, müsste das Betriebssystem sie beenden. Der BenutzerIn würde erwarten, er/sie könnte ohne weiteres wieder auf eine alte Anwendung zurückgreifen und sie würde immer noch so laufen, wie sie verlassen wurde. Der BenutzerIn würde sicherlich nicht erwarten, dass Anwendungen einfach stoppen - jedes Mal, wenn eine neue Anwendung ausgeführt wird - und Status und sogar Daten sind verloren.

Einfach ausgedrückt, der Grund, weshalb iPad und iPhone Multitasking nicht unterstützen, ist der, weil es schwer ist, Multitasking in einem System ohne Swap - und mit einer begrenzten Speichergrösse zu realisieren. Apple könnte Multitasking sofort mit einigen wenigen Codezeilen erlauben - aber die Anwendungen würden laufend beendet. Und dies ist keine sehr nützliche Feature !

Also, wie wird Apple die Unterstützung für Multitasking leisten ?

Wahrscheinlich ähnlich wie dies Android ermöglicht. Die Android-Plattform wurde von Grund auf für den Einsatz auf Handys und andere Embedded-Geräte konzipiert. Daher bauten wir einem Mechanismus ein, bei dem Anwendungen ihren Status retten können, einschließlich des aktuellen System-Zustandes. Durch diesen 'Statussicherungs-Mechanismus', den wir als Bundles bezeichnen, können Android-Anwendungen tatsächlich so betrieben werden, als ob sie 'stateless' wären (Zustandslosigkeit).

Die Realisierung von Multitasking auf Android ist einfach. Wie das iPad und iPhone haben wir ein leistungsfähiges, modernes Betriebssystem (Android in diesem Fall, basierend auf dem Linux-Kernel). Im Gegensatz zu iPad und iPhone, haben wir auch 'Bundles', das den Status von Apps speichern kann. Android's 'OOM Killer' speichert Anwendungen im Hintergrund und ist in der Lage, sie in der zuletzt verwendeten Reihenfolge zu stoppen. Wenn der Benutzer wieder auf seine Anwendung schaltet, die suspendiert wurde, lädt Bundels den Zustand der Anwendung wieder. Der ganze Prozess geschieht nahtlos. Da Android diesen 'state-saving framework' aufweist, ist Multitasking möglich, auch auf einem Gerät mit begrenzter Speicherkapazität und ohne Swap (Ein/Auslagerung von Programmsegmenten).

Zusammenfassung:
iPad und iPhone unterstützen kein Multitasking, nicht weil es die Batterielebensdauer beeinträchtigen würde, sondern weil es schwierig ist, Multitasking zu realisieren auf einem 'swapless', 'Embedded' -Gerät ohne Plattform-Unterstützung für die ordnungsgemässe Abarbeitung der Apps. Es ist wahrscheinlich, dass Apple die erforderliche Funktionalität in einer zukünftigen Version des Betriebssystems einbaut. Bis dahin genießen Sie Ihren 'giant iPhone'. Oder 'rock a Nexus One', welches Multitasking aufweist.

(Anmerkung: Nexus One ist ein Smartphone, das am 5. Januar 2010 von Google der Öffentlichkeit vorgestellt wurde. Gebaut wird das Gerät von der HTC Corporation. Der Nachfolger mit der Bezeichnung Nexus S kam in Europa etwa im Februar/März 2011 auf den Markt und wird nun von Samsung produziert)


Anmerkung HB9CZV:

Inzwischen hat Apple mit dem iOS 4 ein Pseudo-Multitasking herausgebracht.
Allerdings müssen dabei die Apps durch die Entwickler angepasst werden.

Es ist erstaunlich, dass sogar Webportale wie z.B. iPhoneWelt das Problem nicht erkannt haben und schreiben (7.12.2011):
'Multitasking erfordert zwei Dinge: einen Prozessor, der die Arbeit bewältigt und zusätzliche Leistung in Form von Strom. Jeder zusätzliche Prozessortakt und jeder Task verlangt nach Energie'

Ablauf einerActivity (ist Teil einer App)

Prinzipschema des Linux-Kernel