Laut einer der großartigen Antworten auf diese Frage muss Android die APK- und OBB-Dateien jeder Anwendung dekomprimieren, bevor die App ausgeführt werden kann.
Wird diese Dekomprimierung jedes Mal durchgeführt, wenn eine App ausgeführt wird, vorausgesetzt, sie wurde aus dem Prozesscache von Android verschoben?
Ja und nein. Android-Apps werden nicht in das Dateisystem dekomprimiert, wenn sie ausgeführt werden müssen. Stattdessen werden sie selektiv dekomprimiert und von der virtuellen Dalvik-Maschine in den Arbeitsspeicher/RAM eingelesen . Diese Dekomprimierung ist ein sehr einfacher, schneller, nicht prozessorintensiver Prozess, sodass dem System kein wirklicher Overhead hinzugefügt wird. Bei der ersten Installation gibt es einige Optimierungen durch die Dalvik-VM, hauptsächlich Verknüpfungen zu nativen Bibliotheken auf dem Android-System zu den internen APK-Bibliotheken, und dies wird im Dalvik-Cache als optimierte Dex-Datei (.odex) gespeichert.
[Nebenbemerkung, deshalb dauert der erste Start eines Telefons länger, da das System Odex-Dateien für jede App erstellen muss, die keine Odex-Datei hat. System-Apps werden normalerweise so erstellt, dass sie vom Hersteller einen Odex haben]
Ein APK hat eine vordefinierte Struktur, einschließlich Dateilisten, Ressourcen, Assets, Bibliotheken, Dex (Java-Klassendateien, die in das ausführbare Dalvik-Format konvertiert wurden) usw. Das System dekomprimiert und liest diese Dateien in den Speicher und folgt dem darin enthaltenen Code. Dieser Code teilt ihm mit, wann die anderen Dateien dekomprimiert und geladen werden sollen.
Es landet nie auf der Festplatte, geht direkt in den Speicher.
SudoSUroot
adb logcat -v long
und wenn Ihr Telefon hochfährt, nachdem das Startbild verschwunden ist und der Startbildschirm angezeigt wird, oder direkt davor ... Sie werden eine Menge sehr schneller Informationen sehen, die alle Sounddateitypen wie diesen oder welchen Datentyp auch immervorbis/obb
haben dekomprimiert werden. Es dauert wahrscheinlich etwa eine Minute, vielleicht weniger.