Pentru a înțelege cum funcționează memoria în Android, trebuie să înțelegeți întâi cum funcționează memoria RAM în general.
Atunci când deschidem o aplicație sau un fișier, acestea sunt încărcate în RAM, dar nu întotdeauna în forma în care sunt pe suportul de stocare. Atunci când deschidem o aplicație, ea nu este copiată direct de pe suportul de stocare, ci trebuie să se facă în memorie toate legăturile cu API-ul utilizat, cu bibliotecile de funcții externe, inițializare de date, obiecte grafice... adică multe operații care durează și de aceea pornirea de la 0 durează mai mult.
Tocmai pentru a preveni toate aceste operații costisitoare (atât ca și timp cât și putere de procesare și baterie), Android încarcă în avans aplicațiile și procesele cele mai utilizate, și păstrează în memorie aplicațiile deschise , chiar și când nu le mai folosim. Astfel accelerează deschiderea lor ulterioară.
Prin aceasta vedem un grad de ocupare a memoriei RAM mai mare (în general 60-80%) și multă lume își face griji. Dar toate aceste aplicații sunt suspendate în memorie și nu fac nimic, nu consumă resurse, iar dacă este nevoie de mai multă memorie pentru o aplicație, ele sunt eliminate imediat din RAM și eliberează memoria. Deci cu ele sau fără ele în RAM, tehnic, la fel de mult RAM este disponibil pentru aplicațiile active. De aceea eliminarea lor manuală din memorie nu ajută cu nimic, din contră, face să fie nevoie de procesare în plus și de baterie atunci când Android sau noi le deschidem din nou.
Singura situație în care este benefică eliminarea unei aplicații din memorie este dacă are ceva bug care duce la utilizarea excesivă a memoriei, sau are date eronate. Dar și în acest caz este mai benefică o repornire a telefonului.
Nu trebuie confundate aplicațiile care rulează în fundal (active/running) cu cele suspendate în RAM (cached).
Aici puteți vedea cum folosiți modulul Memory Guardian din Good Guardians pentru a vedea ce aplicații sunt în RAM și în ce stadiu sunt ele:
https://eu.community.samsung.com/t5/aplicații-și-servicii/good-guardians-ghid-de-utilizare-p2/td-p/1...
Tipuri de memorie în Android
Memoria RAM este folosită pentru a stoca instrucțiunile și datele care sunt trimise către procesor (prin intermediul a mai multor tipuri de memorie cache). Orice aplicație activă (instrucțiunile active din ea) și toate datele utilizate în mod curent trebuie să fie în RAM, altfel nu pot fi accesate de către procesor. Tot în memoria RAM pot fi diferite zone tampon (buffers) pentru comunicarea cu, sau între diferite alte componente (GPU, stocare, rețea...).
Multe dintre instrucțiunile și datele stocate în RAM nu sunt utilizate frecvent și acestea ocupă inutil memoria. Memoria este împărțită în pagini de anumite dimensiuni pentru a fi gestionată mai ușor. Astfel o aplicație, sau un fișier încărcat în memorie ocupă mai multe pagini de memorie, dar nu toate aceste pagini sunt folosite atunci când facem ceva. De exemplu dacă deschidem aplicația Camera să facem poze, codul specific funcțiilor video este posibil să nu fie folosit și să fie într-o altă pagină. Uneori nu sunt folosite procese întregi o anumită vreme.
În acest caz, pentru a elibera mai multă memorie, Android folosește un algoritm de compresie (ca și la arhivele zip) și comprimă toate aceste pagini neutilizate recent, tot în memoria RAM, dar așa ocupă mai puțin spațiu (cam jumătate în general, dar poate fi mai mult sau mai puțin, exact ca și în cazul arhivelor zip).
Această colecție de date comprimate se numește ZRAM (care nu este o zonă din RAM cum cred mulți).
Avantajul acestei metode este că se obține mai multă memorie RAM liberă, dar este necesară procesare suplimentară atât la comprimare cât și la restaurare.
În general la 8GB RAM, ZRAM este setat implicit la 4GB. Dar aceasta este dimensiunea maximă pe care o poate ocupa. Dacă este nevoie de mai mult RAM, în primul rând din ZRAM sunt eliminate datele.
Trebuie știut că acest tip de memorie nu este în RAM ci este o partiție pe suportul de stocare. Nu este o invenție a lui Samsung (doar modul implementarea este propriu), ci este o funcție a lui ZRAM din linux (pe care este construit și Android). În realitate ea se numește "ZRAM writeback".
Dacă acele pagini de memorie neutilizate sunt puse în ZRAM, unele dintre ele nu sunt folosite ore sau zile întregi, și în acest caz tot ocupă inutil RAM. Mai sunt situațiile în care unele pagini nu pot fi comprimate (de exemplu un jpeg sau un film). În ambele situații dacă RAM plus este activ, aceste pagini sunt copiate pe spațiul de stocare exact așa cum sunt în RAM. Avantajul în acest caz este că nu mai ocupă memorie, iar dacă este nevoie de acele date, ele sunt copiate înapoi exact în forma în care erau deja în RAM (fără a mai fi nevoie de inițializare).
Din din câte am văzut în RAM plus sunt puse pagini care nu au fost folosite ore întregi (posibil 24 de ore), și în plus există o limită de scriere într-un interval de 24 de ore (9GB/24 de ore în general). Mulți confundă RAM plus cu VRAM, sau swapfile din Windows, dar singura asemănare este că se face pe suportul de stocare. Diferența mare este în schimb că în VRAM se copiază pagini direct din RAM (nu din ZRAM), oricând nu mai este memorie suficientă, pe când în RAM plus se pun doar pagini vechi din ZRAM.
Dacă Android nu mai are memorie suficientă, eliberează din ZRAM, și dacă tot nu ajunge, închide aplicațiile mai vechi, dar nu copiază în RAM plus dacă acele pagini nu sunt mai vechi. Din câte am văzut, setarea dimensiunii RAM Plus afectează și dimensiunea maximă pentru ZRAM.
Cu RAM Plus au fost probleme în Android 12 pentru că managerul de memorie avea doar două liste de pagini, pagini utilizate recent, și pagini neutilizate recent, și astfel nu făcea diferență între paginile neutilizate de câteva secunde și cele neutilizate de mai multe ore (de aici au apărut părerile negative despre această funcție). În Android 13 a fost remediată această problemă și au introdus mai multe liste, pe generații, făcând astfel diferența între vechimi diferite.
La o utilizare moderată, cu aplicații puține și care nu consumă memorie multă, sau dacă telefonul este repornit zilnic, RAM Plus nu face nicio diferență. Dar dacă telefonul este repornit rar și folosim multe aplicații, cu RAM Plus activ este disponibilă mai multă memorie liberă. Din câte am văzut în log, în RAM plus se adună în timp destul de multe procese (părți din ele) care nu sunt utilizate aproape niciodată.
Trebuie să fiţi utilizator înregistrat pentru a adăuga un comentariu aici. Dacă v-aţi înregistrat deja, vă rugăm să vă autentificaţi. Dacă încă nu v-aţi înregistrat, vă rugăm să vă înregistraţi şi să vă autentificaţi.