Um Ihre Fragen zu beantworten:
Mir ist keine Android-Version bekannt, bei der der Dalvik beim Booten nicht ungültig wurde. Vielleicht hatte die ursprüngliche Version 1.0, die ich wirklich nicht kenne, Eclair, Froyo, Gingerbread, Ice Cream Sandwich durchgegangen. Sie müssen in den Quelltextbaum schauen und ihn auf CupCake oder Donut (1.5 bzw. 1.6) zurücksetzen.
Der detaillierte Grund :)
Der Grund, warum der Wipe-Cache verwendet werden muss, ist, dass an alle Apks, einschließlich System-Apks, eine Dex- Datei angehängt ist. Wenn das ROM zum ersten Mal gestartet wird, durchläuft der Dalvik von Android jede einzelne dieser Apks und extrahiert sie die Dex-Datei daraus und legen Sie sie in den Cache, /data/dalvik-cache
wodurch die Ausführung der App selbst beschleunigt wird.
Die meisten ROMs haben Apks, die odexed sind , der Cache wird in der Apk selbst als externe Datei gebündelt.
Viele benutzerdefinierte ROM-Modder haben diese Apks deodex 'd, was bedeutet, dass die Dex-Datei ersetzt und neu gepackt wird, um das Designen / Ändern einer Apk zu vereinfachen.
Wenn Sie ein benutzerdefiniertes ROM flashen und den Cache nicht geleert haben, ist an die apk- Datei des neueren benutzerdefinierten ROM eine andere Dex- Datei angehängt. Wenn der Dalvik diese durchläuft, wird die im Verzeichnis und gespeicherte Dex-Datei angezeigt Überspringt es, wird beim Ausführen der App garantiert, dass die Anwendung geschlossen wird oder ANR (Application Not Responding).
Sie verlieren keine Daten per se, wenn Sie ClockWorkMod Recovery verwenden und Daten löschen ausgewählt haben. Ja, alle Einstellungen in Bezug auf die Apps werden sauber gelöscht /data/app
.
Sie können also den Cache löschen, aber nicht die Daten löschen. Das, was effektiv gemacht wird, wird in die neueren Apks eingefügt, in denen die Einstellungen beibehalten werden. Dies war ein weit verbreitetes Szenario bei CyanogenMod-Nightlies, bei dem ein unstable / testing-ROM-Build geflasht wird und die Einstellungen beim Löschen des Caches beibehalten werden. Der Kilometerstand hängt davon ab, welche Apps vom Markt heruntergeladen wurden (die Einstellungen hätten sich mit hoher Wahrscheinlichkeit je nach Version geändert).
Für beste Ergebnisse ist es ratsam, sowohl Wipe Data als auch Wipe Cache auszuführen , um die Integrität und keine Programmfehler in der App selbst sicherzustellen.
Ja, das würde bedeuten, dass die Startzeit langsamer sein würde, aber der anfängliche einmalige Moment. Danach würde es schneller booten. Kurz gesagt, das explizite Löschen des Caches selbst über CWM beschleunigt ihn tatsächlich und stellt sicher, dass keine Rückstände aus der vorherigen Version vorhanden sind, die eingedrungen sein könnten Android hat festgestellt, dass der Cache beim Booten beim Flashen eines neuen ROMs nicht entwertet wird.)
Nehmen Sie die Quelle Luke ernst! : D
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
ist der Boot-Code für jede apk-Laufzeit. Es interagiert mit dem nativen C-Code im dalvik
Verzeichnisbaum, der spezifische Chipset-Anweisungen enthält, um den Bytecode im Befehlssatz von apk to native CPU zu interpretieren. ARMv6 ist so ziemlich eine gehackte Version von ARMv5 (das war der ursprüngliche Chipsatz in den älteren Android-Versionen vor Eclair), so dass Sie ARMv6 in der AOSP-Quelle von Google nicht sehen werden. CyanogenMod wird dieses ARMv6 in seiner Quelle haben.