La cantidad ideal de RAM que necesitan los teléfonos para realizar múltiples tareas sin problemas es un tema bastante debatido. Apple se las arregla con un tamaño más pequeño en sus iPhones, que a menudo son más utilizables que las soluciones de Android. Tampoco encontrarás ningún tipo de gestión de la memoria RAM en el iPhone, mientras que Android tiene su propia función dedicada a ello.
Si vas, por ejemplo, en teléfonos Samsung Galaxy a Ajustes -> Cuidado del dispositivo, encontrarás un indicador de memoria RAM con información de cuánto espacio hay libre y cuánto está ocupado. Después de hacer clic en el menú, puede ver cuánta memoria está ocupando cada aplicación y también tiene la opción de borrar la memoria aquí. La función RAM Plus también se encuentra aquí. Su significado es que extraerá una cierta cantidad de GB del almacenamiento interno, que utilizará como memoria virtual. ¿Te imaginas algo así en iOS?
Los teléfonos inteligentes dependen de la RAM. Les sirve para almacenar el sistema operativo, ejecutar aplicaciones y también para almacenar algunos de sus datos en la memoria caché y buffer. Por lo tanto, la RAM debe organizarse y administrarse de tal manera que las aplicaciones puedan ejecutarse sin problemas, incluso si las deja en segundo plano y las vuelve a abrir después de un tiempo.
Rápido vs. Java
Pero al iniciar una nueva aplicación, es necesario tener espacio libre en la memoria para cargarla y ejecutarla. De no ser así, se deberá dejar libre la plaza. Por lo tanto, el sistema finalizará por la fuerza algunos procesos en ejecución, como las aplicaciones que ya se han iniciado. Sin embargo, ambos sistemas, es decir, Android e iOS, funcionan de manera diferente con la RAM.
El sistema operativo iOS está escrito en Swift y los iPhone en realidad no necesitan reciclar la memoria usada de las aplicaciones cerradas al sistema. Esto se debe a la forma en que está construido iOS, porque Apple tiene control total sobre él ya que sólo se ejecuta en sus iPhone. Por el contrario, Android está escrito en Java y se utiliza en muchos dispositivos, por lo que debe ser más universal. Cuando finaliza la aplicación, el espacio que ocupó se devuelve al sistema operativo.
Código nativo vs. JVM
Cuando un desarrollador escribe una aplicación para iOS, la compila directamente en un código que puede ejecutarse en el procesador del iPhone. Este código se denomina código nativo porque no requiere interpretación ni entorno virtual para ejecutarse. Android, en cambio, es diferente. Cuando se compila el código Java, se convierte en código intermedio Java Bytecode, que es independiente del procesador. Por lo tanto, puede ejecutarse en distintos procesadores de distintos fabricantes. Esto tiene enormes ventajas para la compatibilidad multiplataforma.
Por supuesto, también hay una desventaja. Cada combinación de sistema operativo y procesador necesita un entorno conocido como Máquina Virtual Java (JVM). Pero el código nativo funciona mejor que el código ejecutado a través de la JVM, por lo que usar la JVM simplemente aumenta la cantidad de RAM utilizada por la aplicación. Entonces, las aplicaciones de iOS usan menos memoria, en promedio un 40%. Esta es también la razón por la que Apple no tiene que equipar sus iPhones con tanta RAM como lo hace con los dispositivos Android.
No soy exactamente un experto, pero describiré mi perspectiva desde la perspectiva de un usuario que ha usado Android durante 15 años y ahora lleva 2 meses con el iPhone 13 mini. En Android con 8 GB de memoria (más recientemente Samsung S21, Flip3), generalmente regresaba después de un cierto tiempo a la aplicación iniciada anteriormente y todavía estaba cargada en la RAM, por lo que no comenzó de nuevo y pude continuar sin problemas donde estaba. Parado. Por otro lado, incluso con 8 GB de memoria, "derribaba" todas las aplicaciones una vez a la semana para borrar la RAM, porque el sistema empezaba a ralentizarse con la memoria llena. No tengo ningún problema con la ralentización en el iPhone, pero por otro lado, tengo que decir que cuando uso aplicaciones casi idénticas, por el contrario, me pasa regularmente que cuando vuelvo a una aplicación iniciada anteriormente, se carga completamente nuevamente y no puedo continuar sin problemas donde lo dejé.
¿Qué opción es mejor? Es difícil de decir... Eliminar aplicaciones en Android y borrar la RAM es cuestión de dos clics. Cargar toda la aplicación nuevamente en el iPhone no lleva tanto tiempo, así que no importa tanto... Por supuesto, sería ideal tener más RAM en el iPhone y realizar múltiples tareas como en Android :-D
Mierda, es estúpido otra vez. Por un lado, Android no se ha hecho en Java desde hace mucho tiempo, para eso está Kotlin. De la memoria se encarga el recolector de basura, que es el más sencillo de iOS, que existe incluso con sus desventajas. El problema es que iOS elimina las aplicaciones tan pronto como las quitas de la pantalla. Esto libera memoria como en Linux cuando escribes kill pid de un proceso. Por eso se tarda tanto en abrir el navegador y volver al trabajo anterior. Este artículo es una traducción literal de un artículo de hace X años escrito por un fanático de iOS sin conocimientos de programación. Sí, por supuesto, la gestión de la memoria es principalmente responsabilidad del programador, de lo que hace la aplicación. Si tose sobre ello, hay una pérdida de memoria en el mundo y pqk puedes tener X Gb de memoria y aún así es inútil. Y en un momento en el que muchas aplicaciones son sólo WebView, esto es muy sencillo, porque él mismo come lo que puede. El artículo es una tontería, una basura.
Android ya no usa jvm, sino dvm. Y además, luego lo compila en un ejecutable nativo.
Java todavía está en Android.