Vraag:
Wat zijn de belangrijkste verschillen tussen Android- en iPhone-implementaties van applicatie-multitasking?
rchern
2010-07-15 00:19:32 UTC
view on stackexchange narkive permalink

Wat zijn de belangrijkste verschillen tussen Android- en iPhone-implementaties van multitasking op applicatieniveau?

(Laten we hier alstublieft geen subjectief fanboy-argument van maken?)

Drie antwoorden:
#1
+6
user28
2010-07-15 00:54:55 UTC
view on stackexchange narkive permalink

Dit is geen antwoord op uw vraag, maar het is de moeite waard om te verduidelijken dat beide besturingssystemen volledig multitasken [1] onder de motorkap (voor zover ze meerdere processen kunnen en zullen uitvoeren).

Uw vraag gaat duidelijk over multitasking op applicatieniveau ("kan ik de ene applicatie laten draaien terwijl ik een andere gebruik?"), wat een relatief nieuw gebruik van de term is, en niet altijd goed gedefinieerd is, zelfs als er enkele voor de hand liggende voorbeelden zijn ( zoals luisteren naar Pandora tijdens het lezen van e-mail). In het bijzonder hoeven veel applicaties niet op de achtergrond te worden uitgevoerd om zichzelf aan de gebruiker te presenteren alsof ze nooit zijn gestopt met draaien, zolang ze hun status maar opslaan / herstellen. Toepassingen die periodieke bewerkingen moeten uitvoeren (zoals het controleren van mail of het verschijnen van alarmen) hoeven ook niet continu op de achtergrond te draaien; ze kunnen af ​​en toe worden aangeroepen door het besturingssysteem. Het grote probleem zijn meestal applicaties die op de achtergrond een constante CPU nodig hebben, zoals Pandora.

In het algemeen heeft Apple veel harder gewerkt om continu draaiende achtergrondapplicaties te ontmoedigen of te voorkomen, terwijl Android er meer voor open lijkt te staan. . Maar ze komen samen, aangezien Apple apps zoals Pandora op de achtergrond laat draaien en Android rijkere tools biedt om onnodige achtergrondtaken te ontmoedigen wanneer polling of opgeslagen status voldoende zou zijn.

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

Goed punt. Ik zal mijn vraag aanpassen.
#2
+3
Tom Wright
2010-07-15 00:26:36 UTC
view on stackexchange narkive permalink

Voor zover ik weet.

De multitasking op de iPhone is veel beperkter. De multitask-activiteit moet een van de volgende zijn:

  • Achtergrondaudio
  • VoIP
  • Achtergrondlocatie
  • Pushmeldingen
  • Lokale meldingen
  • Voltooiing van taken
  • Snel schakelen tussen apps

[Bedankt Gizmodo!]

Android daarentegen maakt echte multitasking mogelijk op een vergelijkbare manier als een pc.

Voordat ik ervan wordt beschuldigd een Android-fanboi te zijn, wil ik iets uitleggen. Het iPhone-multitasking-model is meer dan voldoende voor de meeste situaties en vermijdt veel van de problemen (bijv. Geheugengebrek) die gepaard gaan met het Android-systeem.

Echt multitasken? Ik denk niet dat de WebOS- of Symbian-mensen het ermee eens zijn ...
#3
+2
ClashTheBunny
2010-07-15 01:19:06 UTC
view on stackexchange narkive permalink

Android heeft een ander concept van multitasking op toepassingsniveau dan een pc. Er is meer een ontkoppeling tussen gegevens, hoe de gegevens te bekijken en hoe met de gegevens te werken.

U kunt slechts één app-weergave tegelijk openen, maar de bewerking van de gegevens kan worden gaan op de achtergrond. Dit maakt het moeilijk voor applicatie-ontwikkelaars om het aan te laten voelen als de desktop bij het schakelen tussen apps, het afsluiten van apps en het starten van nieuwe apps. Het voelt soms onmogelijk om een ​​app te doden, maar het voelt soms ook alsof het onmogelijk is om naar de ene taak en weer terug te schakelen. Het hangt ervan af hoe de app-ontwikkelaar het heeft gedaan.

U kunt zoveel achtergrondprocessen tegelijk laten lopen, en ze zijn gepland als desktop-apps. De Linux-kernel zal kiezen hoe prioriteit wordt gegeven aan welke geheugen- en CPU-bronnen krijgen. Wanneer de telefoon besluit dat er geen geheugen meer is, begint hij dingen te doden om meer geheugen vrij te maken. Dit wordt anders gedaan dan de manier waarop Linux of de meeste andere besturingssystemen zich normaal gedragen.

De gegevens van een programma zijn altijd beschikbaar. Zolang de app machtigingen heeft om toegang te krijgen tot de gegevens, is deze beschikbaar. Je hebt geen service nodig die op de achtergrond draait om beschikbaar te zijn.

Apple heeft zeer specifieke manieren waarop je kunt multitasken. Ze zijn een subset van de manieren waarop Android dit toestaat. Alleen specifieke soorten apps kunnen op de achtergrond worden uitgevoerd en ze moeten specifiek worden geprogrammeerd om dit te doen.

Een desktop is heel anders dan beide dingen. De weergave, gegevens en logica van gegevensverwerking van elke toepassing zijn vaak aan elkaar vergrendeld. Ik zou zeggen dat WebOS, Symbian en Maemo / Meego hier voorbeelden van zijn op mobiele apparaten. Als een applicatie zijn gegevens en achtergrondverwerking blootstelt aan andere "weergaven", zal het meestal een heel speciale applicatie zijn.

Voor de goede orde, Linux heeft een OOM Killer in al zijn incarnaties, het is niet specifiek voor Android. Op een pc moet je echter zowel je swapruimte als je fysieke RAM verbruiken voordat het dingen begint te doden.
Niet echt, zie: http: //wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 Het is een van de moeilijke dingen als Android niet echt Linux is, omdat het moet worden gepatcht in de kernel om te kunnen werken. . Probeer Dalvik uit te voeren op een standaardkernel en dit zal voorkomen dat u verder gaat.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 2.0-licentie waaronder het wordt gedistribueerd.
Loading...