Was sind die Hauptunterschiede zwischen Android- und iPhone-Implementierungen von Anwendungs-Multitasking?


9

Was sind die Hauptunterschiede zwischen Android- und iPhone-Implementierungen von Multitasking auf Anwendungsebene?

(Lassen Sie uns dies bitte nicht in ein subjektives Fanboy-Argument verwandeln.)

Antworten:


6

Dies ist keine Antwort auf Ihre Frage, aber es sollte klargestellt werden, dass beide Betriebssysteme vollständig Multitasking [1] unter der Haube ausführen (sofern sie mehrere Prozesse ausführen können).

Ihre Frage bezieht sich eindeutig auf Multitasking auf Anwendungsebene ("Kann ich eine Anwendung laufen lassen, während ich eine andere verwende?"), Was eine relativ neue Verwendung des Begriffs ist und nicht immer genau definiert ist, selbst wenn es offensichtlich ist Beispiele (wie das Hören von Pandora beim Lesen von E-Mails). Insbesondere müssen viele Anwendungen nicht im Hintergrund ausgeführt werden, um sich dem Benutzer so zu präsentieren, als hätten sie nie aufgehört zu laufen, solange sie ihren Status speichern / wiederherstellen. Anwendungen, die regelmäßige Vorgänge ausführen müssen (z. B. das Überprüfen von E-Mails oder das Aufrufen von Alarmen), müssen auch nicht kontinuierlich im Hintergrund ausgeführt werden. Sie können gelegentlich vom Betriebssystem aufgerufen werden. Das große Problem sind normalerweise Anwendungen wie Pandora, die im Hintergrund eine konstante CPU benötigen.

Im Allgemeinen hat Apple viel härter daran gearbeitet, kontinuierlich laufende Hintergrundanwendungen zu unterbinden oder zu verhindern, während Android dafür offener zu sein scheint. Sie konvergieren jedoch, da Apple Apps wie Pandora im Hintergrund ausführen lässt und Android umfangreichere Tools bereitstellt, um unnötige Hintergrundaufgaben zu vermeiden, wenn Abfragen oder gespeicherter Status ausreichen würden.

[1] http://en.wikipedia.org/wiki/Computer_multitasking


1
Guter Punkt. Ich werde meine Frage bearbeiten.

3

Soweit ich sagen kann.

Das iPhone Multitasking ist viel eingeschränkter. Die Multitasking-Aktivität muss eine der folgenden sein:

  • Hintergrund-Audio
  • VoIP
  • Hintergrundlage
  • Mitteilungen
  • Lokale Benachrichtigungen
  • Aufgabenerfüllung
  • Schnelle App-Umschaltung

[Danke Gizmodo !]

Android hingegen ermöglicht echtes Multitasking auf ähnliche Weise wie ein PC.

Bevor ich beschuldigt werde, ein Android-Fanboi zu sein, möchte ich etwas erklären. Das iPhone-Multitasking-Modell ist für die meisten Situationen mehr als ausreichend und vermeidet viele Probleme (z. B. Speichermangel), die mit dem Android-System einhergehen.


Echtes Multitasking? Ich glaube nicht, dass die Leute von WebOS oder Symbian zustimmen würden ...
Ivo Flipse

2

Android hat ein anderes Konzept für Multitasking auf Anwendungsebene als ein PC. Es gibt eher eine Trennung zwischen Daten, dem Anzeigen der Daten und dem Bearbeiten der Daten.

Es kann immer nur eine App-Ansicht geöffnet sein, aber der Vorgang für die Daten kann im Hintergrund ausgeführt werden. Dies macht es für Anwendungsentwickler schwierig, sich beim Wechseln zwischen Apps, Beenden von Apps und Starten neuer Apps wie ein Desktop zu fühlen. Es fühlt sich manchmal unmöglich an, eine App zu beenden, aber manchmal fühlt es sich auch unmöglich an, zu einer Aufgabe und wieder zurück zu wechseln. Es hängt davon ab, wie der App-Entwickler es gemacht hat.

Sie können so viele Hintergrundprozesse gleichzeitig ausführen, und sie sind wie Desktop-Apps geplant. Der Linux-Kernel entscheidet, wie priorisiert werden soll, welche Speicher- und CPU-Ressourcen erhalten. Wenn das Telefon feststellt, dass nicht genügend Speicher vorhanden ist, werden Dinge getötet, um mehr Speicher zu schaffen. Dies geschieht anders als Linux oder die meisten anderen Betriebssysteme normalerweise.

Die Daten eines Programms sind immer verfügbar. Solange die App über Berechtigungen zum Zugriff auf die Daten verfügt, ist sie verfügbar. Sie benötigen keinen Dienst, der im Hintergrund ausgeführt wird, damit er verfügbar ist.

Apple hat sehr spezielle Möglichkeiten, wie Sie Multitasking durchführen können. Sie sind eine Teilmenge der Möglichkeiten, die Android zulässt. Im Hintergrund können nur bestimmte Arten von Apps ausgeführt werden, und sie müssen speziell dafür programmiert werden.

Ein Desktop unterscheidet sich stark von diesen beiden Dingen. Die Ansicht, Daten und Datenverarbeitungslogik jeder Anwendung sind häufig miteinander verbunden. Ich würde sagen, dass WebOS, Symbian und Maemo / Meego Beispiele dafür auf Mobilgeräten sind. Wenn eine Anwendung ihre Daten- und Hintergrundverarbeitung anderen "Ansichten" aussetzt, handelt es sich in der Regel um eine ganz besondere Anwendung.


Für die Aufzeichnung hat Linux einen OOM Killer in all seinen Inkarnationen, es ist nicht Android-spezifisch. Auf einem PC müssen Sie jedoch sowohl Ihren Swap-Speicher als auch Ihren physischen Arbeitsspeicher belegen, bevor er anfängt, Dinge zu töten.

Nicht wirklich, siehe: wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 Es ist eines der schwierigen Dinge , wenn Android nicht wirklich Linux ist, da es für die Ausführung in den Kernel gepatcht werden muss. Versuchen Sie, Dalvik auf einem Standardkernel auszuführen, damit Sie nicht fortfahren können.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.