Hay una manera más fácil de explicar por qué Android no puede administrar la RAM de manera eficiente como iOS. Primero, veamos de qué está compuesto Android,
El idioma oficial para el desarrollo de Android es Java. Grandes partes de Android están escritas en Java y sus API están diseñadas para ser llamadas principalmente desde Java. Hay algo llamado GC o recolección de basura en Java. Si bien la codificación de la lógica es una parte más fácil, el GC ralentiza todo y crea lentitud aleatoria en la experiencia general del usuario. porque las aplicaciones de Android usan Java y necesitan toda la RAM adicional para hacer algo llamado recolección de basura.
¿Qué es exactamente GC preguntas?
- ¿Apple realmente está ralentizando su iPhone con las nuevas actualizaciones?
- ¿Qué aplicaciones de iOS, preferiblemente gratuitas, me recomiendan para aprovechar al máximo un iPhone 7?
- ¿Cómo es la aplicación Quora iOS tan liviana (menos de 5 MB)?
- ¿Qué nuevas características de administración de dispositivos móviles trajo iOS 8?
- ¿Qué aplicaciones de mejora del sueño para iOS filtran la luz azul y no requieren jailbreak?
Cuando se ejecuta una aplicación Java típica, está creando nuevos objetos, como cadenas y archivos, pero después de cierto tiempo, esos objetos ya no se usan. GC destruye automáticamente esos objetos y libera memoria, pero no hay certeza cuando GC hace eso. Los recolectores de basura de Android funcionan mejor cuando las aplicaciones de Android tienen de 4 a 8 veces más memoria de la que realmente se necesita para realizar el proceso de recolección de basura. Una vez que deja de tener esa cantidad de memoria libre disponible, el rendimiento comienza a sufrir.
Es por eso que los dispositivos Android necesitan tener el doble de RAM para ejecutar aplicaciones que su iPhone. Evidentemente, más RAM también afecta negativamente la duración de la batería, lo que es parte de por qué los teléfonos Android también necesitan tener baterías más grandes para alcanzar la misma duración de batería que un iPhone 6s.
Para iOS, su sistema operativo no necesita toda la memoria adicional asociada con Java y Android, ya que fue diseñado para evitar este tipo de recolección de basura desde cero. Solo necesita la memoria que está usando. Java usa recolectores de basura (GC) mientras que Objective-C en el iPhone usa el conteo automático de referencias (ARC). Cuando llega el momento de reclamar RAM, ARC le permite liberar automáticamente y eliminar toda la basura de una vez, mientras que GC necesita cazar y recolectar la basura.
Espero que eso explique ¿Por qué Android no puede administrar la RAM tan eficientemente como iOS?