EDITAR: Después de haber leído la respuesta de Dianne Hackborn (ingeniero sénior de Android) y Bob Lee (CTO de Square) a esta respuesta a continuación, estoy convencido de que la información a continuación es bastante equivocada y debe tomarse con un gran grano de sal.
–
Encontré la mejor respuesta a esta pregunta: https://plus.google.com/10083827…
- ¿Qué documentación está involucrada en el desarrollo de aplicaciones móviles?
- ¿Cómo es legal instalar bloatware en teléfonos móviles que no se pueden desinstalar?
- ¿El Mobile One Plus 5 está sobrevalorado?
- ¿Cómo desbloqueo el gestor de arranque en Xperia C2305?
- ¿Qué versión de Android es adecuada para virtualbox?
Aquí hay parte de esto:
La causa principal
No son pausas de GC. No es porque Android ejecuta bytecode e iOS ejecuta código nativo. Es porque en iOS toda la representación de la interfaz de usuario se produce en un subproceso de interfaz de usuario dedicado con prioridad en tiempo real . Por otro lado, Android sigue el modelo tradicional de procesamiento de PC que ocurre en el hilo principal con prioridad normal.
Esta no es una diferencia abstracta o académica. Puedes verlo por ti mismo. Tome su iPad o iPhone más cercano y abra Safari. Comience a cargar una página web compleja como Facebook. A la mitad de la carga, coloque el dedo en la pantalla y muévalo. Todo el renderizado se detiene instantáneamente. El sitio web literalmente nunca se cargará hasta que retire su dedo. Esto se debe a que el subproceso de la interfaz de usuario está interceptando todos los eventos y representando la interfaz de usuario en prioridad en tiempo real.
Si repite este ejercicio en Android, notará que el navegador intentará animar la página y renderizar el HTML, y hará un trabajo ‘correcto’ en ambos. En Android, este es un caso en el que un eficiente procesador de doble núcleo realmente ayuda, por eso el Galaxy S II es famoso por su suavidad.
En iOS, cuando se instala una aplicación desde la tienda de aplicaciones y coloca el dedo en la pantalla, la instalación se detiene instantáneamente hasta que finaliza todo el procesamiento. Android intenta hacer ambas cosas con la misma prioridad, por lo que la velocidad de fotogramas sufre. Una vez que notes que esto sucede, lo verás en todas partes en un teléfono Android. ¿Por qué el desplazamiento en la aplicación Películas es lento? Debido a que las miniaturas de portadas de películas se agregan dinámicamente a la lista de películas a medida que se desplaza hacia abajo, mientras que en iOS se agregan perezosamente después de que se detiene todo el desplazamiento.