La quantitat ideal de RAM que necessiten els telèfons per a la seva multitasca sense problemes és un tema força debatut. Apple s'aconsegueix amb una mida més petita als seus iPhones, que sovint és més utilitzable que les solucions d'Android. Tampoc trobareu cap tipus de gestió de memòria RAM a l'iPhone, mentre que Android té la seva pròpia funció dedicada per a això.
Si aneu, per exemple, als telèfons Samsung Galaxy a Configuració -> Cura del dispositiu, aquí trobareu un indicador de memòria RAM amb informació sobre quant espai està lliure i quant està ocupat. Després de fer clic al menú, podeu veure quanta memòria ocupa cada aplicació, i també teniu l'opció d'esborrar la memòria aquí. La funció RAM Plus també es troba aquí. El seu significat és que mossegarà un cert nombre de GB de l'emmagatzematge intern, que utilitzarà per a la memòria virtual. Us imagineu alguna cosa així a iOS?
Els telèfons intel·ligents depenen de la memòria RAM. Els serveix per emmagatzemar el sistema operatiu, per llançar aplicacions i també per emmagatzemar algunes de les seves dades a la memòria cau i al buffer. Per tant, la memòria RAM s'ha d'organitzar i gestionar de manera que les aplicacions puguin funcionar sense problemes, encara que les deixeu caure en segon pla i les torneu a obrir al cap d'un temps.
Swift vs. Java
Però quan inicieu una aplicació nova, heu de tenir espai lliure a la memòria per carregar-la i executar-la. Si no és així, s'haurà de desallotjar la plaça. Per tant, el sistema finalitzarà força alguns processos en execució, com ara aplicacions que ja s'han iniciat. Tanmateix, ambdós sistemes, és a dir, Android i iOS, funcionen de manera diferent amb la memòria RAM.
El sistema operatiu iOS està escrit en Swift i els iPhones no necessiten reciclar la memòria usada de les aplicacions tancades al sistema. Això es deu a la forma en què està construït iOS, perquè Apple en té un control total, ja que només s'executa als seus iPhones. En canvi, Android està escrit en Java i s'utilitza en molts dispositius, per la qual cosa ha de ser més universal. Quan s'acaba l'aplicació, l'espai que ocupava es retorna al sistema operatiu.
Codi natiu vs. JVM
Quan un desenvolupador escriu una aplicació per a iOS, la compile directament en codi que es pot executar al processador de l'iPhone. Aquest codi s'anomena codi natiu perquè no requereix cap interpretació ni entorn virtual per executar-se. Android, en canvi, és diferent. Quan es compila el codi Java, es converteix en codi intermedi Java Bytecode, que és independent del processador. Per tant, pot funcionar amb diferents processadors de diferents fabricants. Això té grans avantatges per a la compatibilitat entre plataformes.
Per descomptat, també hi ha un inconvenient. Cada combinació de sistema operatiu i processador necessita un entorn conegut com a màquina virtual Java (JVM). Però el codi natiu funciona millor que el codi executat a través de la JVM, de manera que l'ús de la JVM simplement augmenta la quantitat de RAM utilitzada per l'aplicació. Així, les aplicacions d'iOS utilitzen menys memòria, de mitjana un 40%. També és per això que Apple no ha d'equipar els seus iPhones amb tanta memòria RAM com ho fa amb els dispositius Android.
No sóc exactament un expert, però descriuré la meva perspectiva des de la perspectiva d'un usuari que ha utilitzat Android durant 15 anys i ara fa 2 mesos a l'iPhone 13 mini. A l'Android amb 8 GB de memòria (el més recent Samsung S21, Flip3) normalment tornava després d'un temps determinat a l'aplicació llançada anteriorment i encara estava carregada a la memòria RAM, de manera que no va tornar a començar i vaig poder reprendre sense problemes on vaig deixat. D'altra banda, fins i tot amb 8 GB de memòria, vaig "derrocar" totes les aplicacions un cop a la setmana per esborrar la memòria RAM, perquè el sistema va començar a frenar amb la memòria plena. No tinc cap problema amb l'alentiment de l'iPhone, però d'altra banda, haig de dir que quan utilitzo aplicacions gairebé idèntiques, al contrari, em passa habitualment que quan torno a una aplicació llançada anteriorment, es torna a carregar completament i no puc continuar sense problemes on ho vaig deixar.
Quina opció és millor? Difícil de dir... Matar aplicacions a Android i esborrar la memòria RAM és qüestió de dos clics. Tornar a carregar l'aplicació sencera a l'iPhone no requereix tant de temps, així que no importa tant... Això sí, seria ideal tenir més memòria RAM a l'iPhone i fer multitasca com a Android :-D
Merda, torna a ser estúpid. Per una banda, Android no s'ha fet a Java des de fa molt de temps, per això serveix Kotlin. El col·lector d'escombraries s'encarrega de la memòria, que és la més senzilla d'iOS, que existeix fins i tot amb els seus inconvenients. Tot és que iOS mata les aplicacions tan bon punt les treu de la pantalla. Això allibera memòria igual que a Linux quan escriviu kill pid d'un procés. És per això que es triga tant a obrir el navegador i tornar al treball anterior. Aquest article és una traducció textual d'un article de X anys d'un fanàtic d'iOS sense coneixements de programació. Sí, és clar, la gestió de la memòria és principalment responsabilitat del programador, el que fa l'aplicació. Si el tos, hi ha una fuga de memòria al món i pqk pots tenir X Gb de memòria i encara és inútil. I en un moment en què moltes aplicacions són només WebView, això és molt senzill, perquè ell mateix menja el que pot. L'article és una tonteria, escombraries.
Android ja no fa servir jvm, sinó dvm. I, a més, després el compila en un executable natiu
Java encara està a Android.