¿Cuáles son las principales diferencias entre las implementaciones de Android y iPhone de la multitarea de aplicaciones?


9

¿Cuáles son las principales diferencias entre las implementaciones de multitarea de Android y iPhone a nivel de aplicación?

(¿No vamos a convertir esto en un argumento subjetivo fanboy por favor?)

Respuestas:


6

Esta no es una respuesta a su pregunta, pero vale la pena aclarar que ambos sistemas operativos son totalmente multitarea [1] bajo el capó (en la medida de lo posible y ejecutan múltiples procesos).

Su pregunta es claramente sobre la multitarea a nivel de aplicación ("¿puedo dejar una aplicación en ejecución mientras uso otra?"), Que es un uso relativamente nuevo del término, y no siempre está bien definido, incluso si tiene algo obvio ejemplos (como escuchar a Pandora mientras lee un correo electrónico). Específicamente, muchas aplicaciones no necesitan ejecutarse en segundo plano para presentarse al usuario como si nunca hubieran dejado de ejecutarse, siempre que guarden / restauren su estado. Las aplicaciones que deben realizar operaciones periódicas (como revisar el correo o abrir alarmas) tampoco necesitan ejecutarse continuamente en segundo plano; pueden ser invocados ocasionalmente por el sistema operativo. El gran problema suele ser aplicaciones que necesitan CPU constante mientras están en segundo plano, como Pandora.

En general, Apple ha trabajado mucho más para desalentar o prevenir las aplicaciones en segundo plano que se ejecutan continuamente, mientras que Android parece más abierto. Pero están convergiendo, ya que Apple permite que aplicaciones como Pandora se ejecuten en segundo plano y Android proporciona herramientas más ricas para desalentar las tareas innecesarias en segundo plano cuando el sondeo o el estado guardado serían suficientes.

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


1
Buen punto. Editaré mi pregunta.

3

Por lo que yo puedo decir.

La multitarea del iPhone es mucho más restringida. La actividad multitarea debe ser una de las siguientes:

  • Audio de fondo
  • VoIP
  • Ubicación de fondo
  • Notificaciones push
  • Notificaciones locales
  • La terminación de la tarea
  • Cambio rápido de aplicaciones

[Gracias Gizmodo !]

Android, por otro lado, permite una verdadera multitarea de una manera similar a una PC.

Antes de ser acusado de ser un fanboi de Android, déjame explicarte algo. El modelo multitarea de iPhone es más que suficiente para la mayoría de las situaciones y evita muchos de los problemas (es decir, escasez de memoria) que acompañan al sistema Android.


Verdadero multitarea? No creo que la gente de WebOS o Symbian esté de acuerdo ...
Ivo Flipse

2

Android tiene un concepto diferente de multitarea a nivel de aplicación que una PC. Hay más desconexión entre los datos, cómo verlos y cómo operar con los datos.

Solo puede tener una vista de aplicación abierta a la vez, pero la operación de los datos puede realizarse en segundo plano. Esto hace que sea difícil para los desarrolladores de aplicaciones hacer que se sienta como el escritorio cuando se cambia de una aplicación a otra, se cierra y se inician nuevas aplicaciones. A veces se siente imposible matar una aplicación, pero a veces también se siente imposible cambiar a una tarea y regresar nuevamente. Depende de cómo lo hizo el desarrollador de la aplicación.

Puede tener tantos procesos en segundo plano al mismo tiempo, y se programan como aplicaciones de escritorio. El kernel de Linux elegirá cómo priorizar cuáles obtienen recursos de memoria y CPU. Cuando el teléfono decide que no tiene memoria, comenzará a matar cosas para generar más memoria. Esto se hace de manera diferente a como se comportan normalmente Linux o la mayoría de los otros sistemas operativos.

Los datos de un programa siempre están disponibles. Mientras la aplicación tenga permisos para acceder a los datos, estará disponible. No necesita un servicio que se ejecute en segundo plano para que esté disponible.

Apple tiene formas muy específicas en las que puedes realizar múltiples tareas. Son un subconjunto de las formas en que Android lo permite. Solo los tipos específicos de aplicaciones pueden ejecutarse en segundo plano y deben programarse específicamente para hacerlo.

Un escritorio es muy diferente de ambas cosas. La vista, los datos y la lógica de procesamiento de datos de cada aplicación a menudo están bloqueados. Diría que WebOS, Symbian y Maemo / Meego son ejemplos de esto en dispositivos móviles. Si una aplicación expone sus datos y el procesamiento en segundo plano a otras "vistas", tenderá a ser una aplicación muy especial.


Para el registro, Linux tiene un OOM Killer en todas sus encarnaciones, no es específico de Android. Sin embargo, en una PC, debe consumir su espacio de intercambio y su RAM física antes de que comience a matar cosas.

En realidad no, vea: wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 Es una de las cosas difíciles de Android que no es realmente Linux, ya que necesita esta revisión en el Kernel para ejecutarse. Intente ejecutar Dalvik en un kernel de stock y esto evitará que continúe.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.