Quali sono le principali differenze tra le implementazioni Android e iPhone del multitasking delle applicazioni?


9

Quali sono le principali differenze tra le implementazioni del multitasking per Android e iPhone a livello di applicazione?

(Non trasformiamo questo in un argomento fanboy soggettivo per favore?)

Risposte:


6

Questa non è una risposta alla tua domanda, ma vale la pena chiarire che entrambi i sistemi operativi sono completamente multitasking [1] sotto il cofano (nella misura in cui possono e fanno eseguire più processi).

La tua domanda riguarda chiaramente il multitasking a livello di applicazione ("posso lasciare in esecuzione un'applicazione mentre ne utilizzo un'altra?"), Che è un uso relativamente nuovo del termine e non è sempre ben definito, anche se ha qualche ovvio esempi (come ascoltare Pandora durante la lettura di e-mail). In particolare, molte applicazioni non devono essere eseguite in background per presentarsi all'utente come se non avessero mai smesso di funzionare, purché salvino / ripristinino il loro stato. Le applicazioni che devono eseguire operazioni periodiche (come il controllo della posta o la comparsa di allarmi) non devono essere eseguite continuamente in background; possono essere invocati occasionalmente dal sistema operativo. Il grosso problema sono in genere le applicazioni che richiedono CPU costanti mentre sono in background, come Pandora.

In generale, Apple ha lavorato molto più duramente per scoraggiare o prevenire applicazioni in background in esecuzione continua, mentre Android sembra più aperto ad esso. Ma stanno convergendo, poiché Apple consente ad app come Pandora di funzionare in background e Android offre strumenti più ricchi per scoraggiare inutili attività in background quando il polling o lo stato salvato sarebbero sufficienti.

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


1
Buon punto. Modificherò la mia domanda.

3

Per quanto posso dire.

Il multitasking per iPhone è molto più limitato. L'attività multitasking deve essere una delle seguenti:

  • Audio di sottofondo
  • VoIP
  • Posizione di sfondo
  • Le notifiche push
  • Notifiche locali
  • Completamento dell'attività
  • Cambio rapido delle app

[Grazie Gizmodo !]

Android, d'altra parte, consente un vero multitasking in modo simile a un PC.

Prima di essere accusato di essere un fanboi di Android, lasciami spiegare qualcosa. Il modello multitasking dell'iPhone è più che sufficiente per la maggior parte delle situazioni ed evita molti dei problemi (ovvero carenza di memoria) che accompagnano il sistema Android.


Vero multitasking? Non credo che il WebOS o le persone Symbian sarebbero d'accordo ...
Ivo Flipse,

2

Android ha un concetto diverso di multitasking a livello di applicazione rispetto a un PC. Esiste una maggiore disconnessione tra i dati, come visualizzare i dati e come operare sui dati.

Puoi aprire solo una vista per app, ma l'operazione sui dati può essere eseguita in background. Ciò rende difficile per gli sviluppatori di applicazioni far sembrare il desktop quando si passa da un'app all'altra, si esce dall'app e si avviano nuove app. A volte sembra impossibile uccidere un'app, ma a volte sembra anche impossibile passare a un'attività e viceversa. Dipende da come lo sviluppatore dell'app ha fatto.

Puoi avere tutti i processi in background in corso contemporaneamente e sono programmati come app desktop. Il kernel Linux sceglierà come stabilire la priorità di quali risorse ottengono memoria e CPU. Quando il telefono decide che ha esaurito la memoria, inizierà a uccidere le cose per fare più memoria. Ciò avviene diversamente dal modo in cui Linux o la maggior parte degli altri SO si comportano normalmente.

I dati di un programma sono sempre disponibili. Finché l'app dispone delle autorizzazioni per accedere ai dati, è disponibile. Non è necessario un servizio in esecuzione in background per essere disponibile.

Apple ha modi molto specifici in cui puoi multitasking. Sono un sottoinsieme dei modi consentiti da Android. Solo tipi specifici di app possono essere eseguiti in background e devono essere specificamente programmati per farlo.

Un desktop è molto diverso da entrambe queste cose. La vista, i dati e la logica di elaborazione di ogni applicazione sono spesso bloccati insieme. Direi che WebOS, Symbian e Maemo / Meego ne sono esempi sui dispositivi mobili. Se un'applicazione espone i suoi dati e l'elaborazione in background ad altre "viste", tenderà ad essere un'applicazione molto speciale.


Per la cronaca, Linux ha un OOM Killer in tutte le sue incarnazioni, non è specifico per Android. Tuttavia, su un PC devi consumare lo spazio di swap e la RAM fisica prima che inizi a uccidere le cose.

Non proprio, vedi: wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 È una delle cose difficili di Android che non è davvero Linux in quanto ha bisogno di questo patch nel kernel per funzionare. Prova a eseguire Dalvik su un kernel stock e questo ti impedirà di procedere.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.