Cantitatea ideală de RAM de care au nevoie telefoanele pentru multitasking-ul lor fără probleme este un subiect destul de dezbătut. Apple se descurcă cu o dimensiune mai mică a iPhone-urilor sale, care este adesea mai utilizabilă decât soluțiile Android. De asemenea, nu veți găsi niciun fel de gestionare a memoriei RAM pe iPhone, în timp ce Android are propria sa funcție dedicată pentru aceasta.
Dacă mergeți, de exemplu, în telefoanele Samsung Galaxy la Setări -> Îngrijirea dispozitivului, vei găsi aici un indicator RAM cu informații despre cât spațiu este liber și cât este ocupat. După ce faceți clic pe meniu, puteți vedea câtă memorie ocupă fiecare aplicație și aveți, de asemenea, opțiunea de a șterge memoria aici. Funcția RAM Plus se află și aici. Semnificația sa este că va mușca un anumit număr de GB din stocarea internă, pe care o va folosi pentru memoria virtuală. Vă puteți imagina așa ceva pe iOS?
Smartphone-urile se bazează pe RAM. Le servește pentru a stoca sistemul de operare, pentru a lansa aplicații și, de asemenea, pentru a stoca unele dintre datele lor în memoria cache și în memoria tampon. Astfel, RAM trebuie organizată și gestionată în așa fel încât aplicațiile să poată rula fără probleme, chiar dacă le arunci în fundal și le deschizi din nou după un timp.
Swift vs. Java
Dar atunci când porniți o nouă aplicație, trebuie să aveți spațiu liber în memorie pentru a o încărca și a rula. Dacă nu este cazul, locul trebuie eliberat. Prin urmare, sistemul va opri cu forță unele procese care rulează, cum ar fi aplicațiile care au început deja. Cu toate acestea, ambele sisteme, adică Android și iOS, funcționează diferit cu RAM.
Sistemul de operare iOS este scris în Swift, iar iPhone-urile nu au nevoie să recicleze memoria folosită din aplicațiile închise înapoi în sistem. Acest lucru se datorează modului în care este construit iOS, deoarece Apple are control deplin asupra acestuia, deoarece rulează doar pe iPhone-urile sale. În schimb, Android este scris în Java și este folosit pe multe dispozitive, așa că trebuie să fie mai universal. Când aplicația este terminată, spațiul ocupat este returnat sistemului de operare.
Cod nativ vs. JVM
Când un dezvoltator scrie o aplicație iOS, o compilează direct în cod care poate rula pe procesorul iPhone-ului. Acest cod se numește cod nativ deoarece nu necesită interpretare sau mediu virtual pentru a rula. Android, pe de altă parte, este diferit. Când codul Java este compilat, acesta este convertit în cod intermediar Java Bytecode, care este independent de procesor. Prin urmare, poate rula pe procesoare diferite de la diferiți producători. Acest lucru are avantaje uriașe pentru compatibilitatea între platforme.
Desigur, există și un dezavantaj. Fiecare combinație de sistem de operare și procesor are nevoie de un mediu cunoscut sub numele de Java Virtual Machine (JVM). Dar codul nativ are performanțe mai bune decât codul executat prin JVM, așa că utilizarea JVM pur și simplu crește cantitatea de RAM utilizată de aplicație. Deci, aplicațiile iOS folosesc mai puțină memorie, în medie 40%. De aceea, Apple nu trebuie să-și echipeze iPhone-urile cu atât de multă memorie RAM ca și dispozitivele Android.
Nu sunt tocmai un expert, dar îmi voi descrie perspectiva din perspectiva unui utilizator care a folosit Android timp de 15 ani și acum are 2 luni la iPhone 13 mini. Pe Android cu memorie de 8GB (cel mai recent Samsung S21, Flip3) de obicei mă întorceam după un anumit timp la aplicația lansată anterior și încă era încărcată în RAM, așa că nu a pornit de la capăt și am putut relua fără probleme de unde am rămas. Pe de altă parte, chiar și cu 8 GB de memorie, am „doborât” toate aplicațiile o dată pe săptămână pentru a șterge memoria RAM, deoarece sistemul a început să încetinească cu memoria plină. Nu am o problemă cu încetinirea pe iPhone, dar pe de altă parte, trebuie să spun că atunci când folosesc aplicații aproape identice, dimpotrivă, mi se întâmplă în mod regulat ca atunci când revin la o aplicație lansată anterior, se incarca complet din nou si nu pot continua lin de unde am ramas .
Care varianta este mai buna? Greu de spus... Uciderea aplicațiilor pe Android și ștergerea RAM este o chestiune de două clicuri. Încărcarea din nou a întregii aplicații pe iPhone nu necesită atât de mult timp, așa că nu contează atât de mult... Desigur, ideal ar fi să ai mai multă RAM pe iPhone și multitasking ca pe Android :-D
La naiba, e din nou prost. În primul rând, Android nu a mai fost făcut în Java de mult timp, pentru asta este Kotlin. Garbage collector se ocupă de memorie, care este cea mai simplă din iOS, care există chiar și cu dezavantajele sale. Totul este că iOS omoara aplicațiile imediat ce le scoți de pe ecran. Acest lucru eliberează memorie la fel ca în Linux când tastați kill pid al unui proces. De aceea, durează atât de mult pentru a deschide browserul și a reveni la lucrarea anterioară. Acest articol este o traducere textuală a unui articol vechi de X ani de la un fanatic iOS fără cunoștințe de programare. Da, desigur, gestionarea memoriei este în principal responsabilitatea programatorului, ceea ce face aplicația. Dacă tușește pe el, există o scurgere de memorie în lume și pqk poți avea X Gb de memorie și tot e inutil. Și într-un moment în care multe aplicații sunt doar WebView, acest lucru este foarte simplu, pentru că ea însăși mănâncă ce poate. Articolul e o prostie, gunoi.
Android nu mai folosește jvm, ci dvm. Și în plus, apoi îl compilează într-un executabil nativ
Java este încă în Android.