Articles

De ce trebuie să șterg Dalvik Cache?

Pentru a vă răspunde la întrebări:

  • Nu cunosc nicio versiune Android în care Dalvik să nu fi fost invalidat la pornire. Poate că versiunea inițială 1.0 avea asta, chiar nu știu, am trecut prin Eclair, Froyo, Gingerbread, Ice Cream Sandwich. Trebuie să te uiți în arborele de surse și să faci un rebase înapoi la CupCake sau Donut (1.5 și 1.6 respectiv)

  • Motivul detaliat 🙂

Motivul pentru care trebuie folosit Wipe Cache este că toate apk-urile, inclusiv cele de sistem, au atașat un fișier dex, atunci când ROM-ul este pornit pentru prima dată, Dalvik-ul lui Android trece prin fiecare dintre aceste apk-uri și extrage fișierul dex din el și îl plasează în cache /data/dalvik-cache, accelerând astfel execuția aplicației în sine.

Majoritatea ROM-urilor au apk-uri care sunt odex ‘ed, memoria cache este inclusă în apk-ul propriu-zis ca fișier extern.

Mulți modificatori de ROM-uri personalizate ar avea acele apk-uri deodex ‘d, ceea ce înseamnă că fișierul dex este înlocuit și reambalat pentru a face mai ușor de tematizat/modificat un apk.

Când flash-uiți un ROM personalizat și nu ați șters memoria cache, apk-urile mai noi ale ROM-urilor personalizate vor avea atașat un fișier dex diferit, iar atunci când Dalvik trece prin ele, vede fișierul dex existent în memoria cache găsit în director și îl sare, apoi, când rulați aplicația, vi se garantează o închidere forțată sau ANR (Application Not Responding).

Nu pierdeți date în sine, dacă folosiți ClockWorkMod Recovery, iar Wipe Data este selectat, atunci da, toate setările referitoare la aplicații sunt șterse în mod curat – uitați-vă în /data/app.

Așa că puteți Wipe Cache, dar nu Wipe Data, ceea ce se face efectiv, este strecurat în apk-urile mai noi în loc, în care are setările păstrate. Acesta a fost un scenariu destul de comun cu CyanogenMod nightlies, în care un build ROM instabil / de testare este flashat, iar setările reținute cu cache wipe. Kilometrajul va varia în funcție de aplicațiile descărcate de pe piață (setările ar fi fost schimbate de versiunea bump destul de probabil).

Pentru cele mai bune rezultate ar fi înțelept să efectuați atât Wipe Data, cât și Wipe Cache pentru a asigura integritatea și lipsa erorilor de program în cadrul aplicației în sine.

Da, acest lucru ar însemna că timpul de pornire ar fi mai lent, dar momentul său inițial o dată oprit. După aceea ar porni mai repede. Într-adevăr, într-o coajă de nucă, ștergerea în mod explicit a cache-ului în sine prin CWM ajută de fapt să accelereze și să se asigure că nu există reziduuri de la versiunea anterioară în loc, care ar putea obține munged în (Acum, în acest stadiu, sunt realizând întrebarea dvs. așa că, în mod corect, nu au văzut de fapt Android nu efectuează invalidarea cache-ului în sine la pornire atunci când flashing un nou ROM..).

Utilizați sursa Luca serios! 😀

frameworks/base/core/java/com/android/internal/os/ZygoteInit.java este codul de pornire pentru fiecare runtime apk. Acesta interacționează cu codul C nativ care se găsește în arborele de directoare dalvik care conține instrucțiuni specifice chipset-ului pentru a interpreta bytecode-ul din cadrul apk-ului în setul de instrucțiuni nativ al CPU-ului. ARMv6 este destul de mult o versiune piratată a ARMv5 (care a fost chipset-ul original în versiunile mai vechi de Android înainte de Eclair), așa că nu veți vedea ARMv6 în sursa AOSP de la Google. CyanogenMod va avea acel ARMv6 în sursa lor.

.