Was ist Dalvik-Cache?

Bei der Installation von benutzerdefinierten ROMs empfehlen die meisten, den Dalvik-Cache zu leeren. Was genau ist der Dalvik-Cache?

Antworten (2)

Der Dalvik-Cache ist der Satz gespeicherter .dex-Dateien. Eine .dex-Datei ist im Grunde eine kompilierte Bytecode-Version einer App, die für die Dalvik Virtual Machine erstellt wurde, auf der Android-Apps ausgeführt werden. Es ähnelt der Java Virtual Machine und hat .class-Dateien gespeichert.

Ist es also normal, dass ein frisch installiertes ROM mit gelöschtem Dalvik-Cache lange braucht, um das erste Mal zu booten? weil ParanoidAndroid sich sicher seine süße Zeit nimmt; fünf Minuten und Zählen.
@badp Ja, meine ersten Bootvorgänge waren oft so lang mit verschiedenen ROMs. Ich würde jedoch nicht zu lange warten, bevor ich annehme, dass etwas nicht stimmt.

Sehr aufschlussreiche Informationen zu dalvik-cacheat stackoverflow aus renommierten Quellen gefunden (Mitarbeiter von Google, die an der Plattform für virtuelle Maschinen von Dalvik gearbeitet haben).

Unten ist die Zusammenfassung davon, mehr aus der Perspektive des Android-Benutzers in (hoffentlich) einfachen Worten.

Wo befindet sich der Dalvik-Cache auf meinem Android-Gerät?

Auf einem typischen Android-Gerät gibt es ein Verzeichnis namens dalvik-cache. Da Android auf Linux basiert, verwendet es eine Dateisystemstruktur des Linux-Kernels. Daher befindet sich dieses Verzeichnis im /dataOrdner. Der Pfad zum Zugriff auf diesen Dalvik-Cache auf einem Android-Gerät lautet also/data/dalvik-cache

Was ist der Zweck des Dalvik-Cache?

Wenn ein Benutzer eine neue Anwendung auf Android installiert, führt Android einige Änderungen und Optimierungen an der Datei dieser Anwendung durch dex(die Datei, die den gesamten Dalvik-Bytecode für die Anwendung enthält). Anschließend wird die resultierende odex(optimierte Dex-)Datei im /data/dalvik-cacheVerzeichnis zwischengespeichert, sodass der Optimierungsprozess nicht jedes Mal durchgeführt werden muss, wenn eine Anwendung geladen wird.

Was ist, wenn ich den Dalvik-Cache lösche?

Es gibt keine Auswirkung, außer dass die nächste Ladezeit einer App erhöht wird, da sie neu erstellt wird. Das Laden einer Anwendung dauert also länger, da sie ihren Dalvik-Cache neu erstellen muss. Daher ist es in Ordnung, bei der Installation von benutzerdefinierten ROMs zu löschen dalvik-cache, da das System sie sowieso mit einer neuen Partition neu erstellt.

Als zusätzliche Anmerkung: Ab Android 4.4 (KitKat) hat Google eine neue Android Runtime namens ART eingeführt , die letztendlich die Dalvik Virtual Machine ersetzen wird. Quelle

Die ART, die denselben Bytecode und dieselben .dexDateien verwendet, kompiliert die dex-Datei in nativen Code. Dieser kompilierte Code wird jetzt gespeichertdalvik-cache