Telefonul optimizează aplicațiile la fiecare restart – de ce

Telefonul optimizează aplicațiile la fiecare restart – de ce
Cuprins

Pe un telefon cu Android 14, cum ar fi un Motorola Moto G84, la fiecare repornire apare un ecran cu mesajul „Android pornește… Se optimizează aplicația 1 din 1″ sau, în alte cazuri, „Se optimizează aplicația 1 din 127″. Ecranul rămâne activ între 5 și 20 de minute, iar telefonul nu poate fi folosit în acest interval. Si ați observat si voi pe telefoanele voastre așa ceva, mai mult ca sigur.

Comportamentul nu apare doar după o actualizare de sistem sau după o resetare din fabrică, ci la fiecare pornire obișnuită, inclusiv după o simplă repornire manuală. Bara de progres avansează lent, uneori pare să se blocheze pe o anumită aplicație, apoi continuă.

După finalizare, telefonul funcționează normal, dar la următoarea repornire procesul se repetă identic. Nici notificările, nici setările nu semnalează vreo problemă, iar în meniul de actualizări sistemul apare ca fiind la zi, cu patch-ul de securitate aplicat.

Ce face sistemul în timpul ecranului de optimizare

Când Android afișează mesajul de optimizare, rulează în fundal un proces de compilare anticipată a aplicațiilor. Codul fiecărei aplicații instalate este stocat într-un format intermediar, iar la pornire sistemul îl transformă într-un format optimizat, adaptat procesorului specific al telefonului.

Această transformare este gestionată de un utilitar intern care citește fișierele fiecărei aplicații și generează variante compilate, stocate separat într-o zonă de memorie internă dedicată. Scopul este ca aplicațiile să pornească mai rapid și să consume mai puține resurse la utilizare.

În condiții normale, compilarea se face o singură dată: după instalarea aplicației, după o actualizare a ei sau după o actualizare a sistemului de operare. Rezultatul compilării este păstrat pe disc și reutilizat la fiecare pornire ulterioară, fără a mai fi necesar ecranul de optimizare.

gCând acest ecran apare la fiecare restart, înseamnă că rezultatul compilării nu se păstrează între reporniri sau că procesul de compilare eșuează în mod repetat pentru cel puțin o aplicație.

De ce procesul se repetă la fiecare pornire?

Mecanismul de compilare anticipată generează pentru fiecare aplicație un fișier optimizat pe care îl stochează într-un director intern al sistemului. Dacă acest fișier lipsește la momentul pornirii, sistemul lansează din nou compilarea. Fișierul poate lipsi din mai multe motive tehnice distincte.

Primul este un spațiu de stocare insuficient. Fișierele optimizate ocupă loc pe partiția de date a telefonului. Când memoria internă scade sub un anumit prag, sistemul nu reușește să scrie aceste fișiere sau le șterge imediat după generare pentru a elibera spațiu.

Pragul implicit este în jurul a 500 MB libehri, sub care mecanismele de curățare automată devin agresive. În acest scenariu, compilarea se finalizează aparent cu succes, dar rezultatul ei nu supraviețuiește repornirii.

Al doilea motiv este eșecul compilării pentru o aplicație specifică. Utilitarul de compilare poate întâmpina o eroare fatală la procesarea codului unei anumite aplicații, moment în care se oprește fără a produce fișierul optimizat.

La următoarea pornire, sistemul detectează absența fișierului și reîncearcă compilarea, care eșuează din nou în același punct. Acest ciclu se repetă indefinit. Aplicațiile care au provocat cel mai frecvent acest comportament includ versiuni vechi sau deteriorate ale unor aplicații preinstalate sau ale unor aplicații descărcate din surse externe.

Un al treilea scenariu implică o actualizare incompletă a modulului care gestionează compilarea. Începând cu Android 14, acest modul face parte dintr-o componentă actualizabilă separat prin Magazinul Play.

Dacă actualizarea se aplică parțial sau dacă versiunea modulului intră în conflict cu versiunea curentă a sistemului, procesul de compilare poate fi forțat să ruleze de la zero la fiecare pornire, ignorând fișierele deja generate.

Legătura cu aplicațiile instalate din surse externe

Aplicațiile instalate prin fișiere descărcate manual, nu prin Magazinul Play, au o structură internă care poate diferi de cea așteptată de utilitarul de compilare. Versiunile modificate ale unor aplicații sau aplicațiile compilate pentru o arhitectură de procesor diferită de cea a telefonului pot provoca erori la compilare, fără ca aceste erori să fie vizibile pentru utilizator.

Sistemul afișează pur și simplu bara de progres, încearcă compilarea, eșuează la aplicația respectivă și trece mai departe. La următoarea pornire, procesul se reia de la capăt pentru aceeași aplicație.

Aplicațiile preinstalate de producător pot genera un comportament similar dacă au primit o actualizare prin Magazinul Play care nu este compatibilă cu versiunea de sistem de pe telefon.

Producătorii personalizează Android și includ propriile lor versiuni ale unor aplicații, iar o actualizare generică din Magazinul Play poate introduce o incompatibilitate pe care utilitarul de compilare nu o poate rezolva.

Rolul patch-urilor de securitate și al actualizărilor de sistem

După aplicarea unui patch de securitate lunar, sistemul invalidează o parte din fișierele optimizate existente, considerându-le potențial incompatibile cu modificările aduse. Acest lucru este normal și declanșează o singură rundă de reoptimizare la prima pornire de după actualizare.

Dacă însă actualizarea a modificat și componente interne ale modulului de compilare sau dacă a introdus modificări la nivelul cadrului de securitate al aplicațiilor, invalidarea se poate repeta la fiecare pornire ulterioară.

Actualizările modulelor de sistem distribuite prin Magazinul Play (componente precum Serviciile Google Play sau modulul de conectivitate) pot și ele să declanșeze o reoptimizare. Aceste actualizări se aplică independent de actualizările de sistem ale producătorului și pot ajunge pe telefon în momente imprevizibile.

Dacă două astfel de actualizări se aplică în succesiune rapidă, sistemul poate intra într-un ciclu în care fiecare pornire detectează o modificare și relansează compilarea.

Diferența dintre optimizarea completă și cea parțială

Mesajul de pe ecran indică numărul de aplicații procesate. Când ecranul afișează „1 din 1″, o singură aplicație necesită recompilare, iar procesul durează de obicei sub 5 minute.

Acest scenariu indică aproape sigur o aplicație cu probleme specifice. Când ecranul afișează un număr mare, cum ar fi „1 din 127″, sistemul recompilează toate aplicațiile de pe telefon, un comportament similar cu cel de după o actualizare majoră de sistem sau o resetare din fabrică.

Diferența este relevantă din punct de vedere tehnic. Recompilarea unei singure aplicații sugerează un fișier optimizat corupt sau o eroare recurentă la compilarea acelei aplicații specifice.

Recompilarea tuturor aplicațiilor sugerează o problemă la nivel de sistem: fie o invalidare globală a memoriei intermediare de compilare, fie un spațiu de stocare insuficient care împiedică păstrarea fișierelor optimizate între reporniri.

Pe telefoanele cu Android 14 și versiuni ulterioare, modulul de compilare poate rula și în fundal, după pornirea completă a telefonului, folosind resurse limitate ale procesorului. Această optimizare în fundal produce fișiere de calitate superioară celor generate la pornire, deoarece se bazează pe profiluri de utilizare reale ale aplicațiilor.

Dacă optimizarea în fundal este împiedicată sistematic (de exemplu, prin modul de economisire a bateriei activat permanent sau prin restricțiile de activitate în fundal), sistemul se bazează exclusiv pe compilarea de la pornire, care este mai lentă și mai puțin eficientă.

🔧 Verifică-ți telefonul

Scris de

Cosmin

Fondator și editor Androidro.ro din 2012. Am testat sute de telefoane Android de-a lungul anilor, cu focus pe Samsung, Xiaomi și Google Pixel. Specializat în troubleshooting Android, ghiduri pas-cu-pas și optimizare baterie. Telefonul meu actual: Samsung Galaxy S22 Ultra.

Vezi toate articolele →
← Articolul anterior Cum verifici dacă telefonul are ultimul patch de securitate Android Articolul următor → Telefonul se încălzește fără utilizare activă – servicii implicate

Comentarii (0)

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *