Quelles sont les principales différences entre les implémentations Android et iPhone du multitâche d'application?

9

Quelles sont les principales différences entre les implémentations Android et iPhone du multitâche au niveau de l'application?

(Ne transformons pas cela en argument fanboy subjectif s'il vous plaît?)


la source

Réponses:

6

Ce n'est pas une réponse à votre question, mais il vaut la peine de préciser que les deux systèmes d'exploitation sont entièrement multitâches [1] sous le capot (dans la mesure où ils peuvent et exécutent plusieurs processus).

Votre question porte clairement sur le multitâche au niveau de l'application ("puis-je laisser une application en cours d'exécution tout en en utilisant une autre?"), Qui est une utilisation relativement nouvelle du terme, et qui n'est pas toujours bien défini, même s'il a une certaine évidence des exemples (comme écouter Pandora en lisant un e-mail). Plus précisément, de nombreuses applications n'ont pas besoin de s'exécuter en arrière-plan pour se présenter à l'utilisateur comme si elles n'avaient jamais cessé de fonctionner, tant qu'elles sauvegardent / restaurent leur état. Les applications qui doivent effectuer des opérations périodiques (comme la vérification des e-mails ou l'apparition d'alarmes) n'ont pas besoin de fonctionner en continu en arrière-plan; ils peuvent être invoqués occasionnellement par le système d'exploitation. Le gros problème est généralement les applications qui nécessitent un processeur constant en arrière-plan, comme Pandora.

En général, Apple a travaillé beaucoup plus dur pour décourager ou empêcher les applications d'arrière-plan fonctionnant en continu, tandis qu'Android semble plus ouvert. Mais ils convergent, car Apple permet à des applications comme Pandora de s'exécuter en arrière-plan et Android fournit des outils plus riches pour décourager les tâches d'arrière-plan inutiles lorsque l'interrogation ou l'état enregistré suffit.

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


la source
1
Bon point. Je vais modifier ma question.
3

Autant que je sache.

Le multitâche iPhone est beaucoup plus restreint. L'activité multitâche doit être l'une des suivantes:

  • Audio d'arrière-plan
  • VoIP
  • Emplacement d'arrière-plan
  • Notifications push
  • Notifications locales
  • Achèvement de la tâche
  • Changement rapide d'application

[Merci Gizmodo !]

Android, d'autre part, permet un véritable multitâche d'une manière similaire à un PC.

Avant d'être accusé d'être un fanboi Android, laissez-moi vous expliquer quelque chose. Le modèle multitâche de l'iPhone est plus que suffisant pour la plupart des situations et évite de nombreux problèmes (c'est-à-dire des pénuries de mémoire) qui accompagnent le système Android.


la source
Vrai multitâche? Je ne pense pas que les gens de WebOS ou Symbian seraient d'accord ...
Ivo Flipse
2

Android a un concept différent du multitâche au niveau de l'application qu'un PC. Il y a plus de déconnexion entre les données, comment afficher les données et comment opérer sur les données.

Vous ne pouvez ouvrir qu'une seule vue d'application à la fois, mais l'opération sur les données peut se faire en arrière-plan. Il est donc difficile pour les développeurs d'applications de se sentir comme un ordinateur de bureau lors du basculement entre les applications, de la fermeture des applications et du démarrage de nouvelles applications. Il semble parfois impossible de tuer une application, mais il semble parfois impossible de passer à une tâche et de revenir. Cela dépend de la façon dont le développeur de l'application l'a fait.

Vous pouvez avoir autant de processus d'arrière-plan en cours, et ils sont planifiés comme des applications de bureau. Le noyau Linux choisira comment hiérarchiser ceux qui obtiennent de la mémoire et des ressources CPU. Lorsque le téléphone décide qu'il n'y a plus de mémoire, il commence à tuer des choses pour créer plus de mémoire. Cela se fait différemment de la façon dont Linux ou la plupart des autres systèmes d'exploitation se comportent normalement.

Les données d'un programme sont toujours disponibles. Tant que l'application est autorisée à accéder aux données, elles sont disponibles. Vous n'avez pas besoin d'un service exécuté en arrière-plan pour qu'il soit disponible.

Apple a des moyens très spécifiques pour effectuer plusieurs tâches. Ils constituent un sous-ensemble des moyens qu'Android autorise. Seuls certains types d'applications peuvent s'exécuter en arrière-plan et doivent être spécifiquement programmés pour le faire.

Un bureau est très différent de ces deux choses. La vue, les données et la logique de traitement de chaque application sont souvent verrouillées. Je dirais que WebOS, Symbian et Maemo / Meego en sont des exemples sur les appareils mobiles. Si une application expose ses données et son traitement en arrière-plan à d'autres "vues", elle aura tendance à être une application très spéciale.


la source
Pour mémoire, Linux a un OOM Killer dans toutes ses incarnations, il n'est pas spécifique à Android. Cependant, sur un PC, vous devez consommer votre espace de swap ainsi que votre RAM physique avant qu'il ne commence à tuer des choses.
Pas vraiment, voir: wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 C'est l'une des choses difficiles à propos d'Android n'étant pas vraiment Linux dans la mesure où il a besoin de cela patché dans le noyau pour fonctionner. Essayez d'exécuter Dalvik sur un noyau de stock et cela vous empêchera de continuer.