Per rispondere alle tue domande:
Non sono a conoscenza di alcuna versione di Android in cui Dalvik non è stato invalidato all'avvio. Forse la versione iniziale 1.0 aveva che, davvero non lo so, sono passati attraverso Eclair, Froyo, Gingerbread, Ice Cream Sandwich. Devi guardare l'albero dei sorgenti e rimodificarlo su CupCake o Donut (rispettivamente 1.5 e 1.6)
Il motivo dettagliato :)
Il motivo per cui è necessario utilizzare Wipe Cache è perché tutti gli apk, compresi gli apk di sistema, hanno un file dex collegato ad esso, quando la ROM viene avviata per la prima volta, Dalvik di Android passa attraverso ognuno di quegli apk ed estrae il file dex da esso e posizionarlo nella cache /data/dalvik-cache
accelerando così l'esecuzione dell'app stessa.
La maggior parte delle ROM ha apk che sono odex 'ed, la cache è raggruppata nell'apk stesso come file esterno.
Molti modder ROM personalizzati avrebbero quegli apk deodex 'd, il che significa che il file dex viene sostituito e riconfezionato per rendere più semplice il tema / modifica di un apk.
Quando si esegue il flashing di una ROM personalizzata e non si cancella la cache, gli apk della ROM personalizzata più recente avranno un file dex diverso allegato e quando il Dalvik li attraversa, vede il file dex memorizzato nella cache trovato nella directory e la salta, quindi quando si esegue l'app, si garantisce una chiusura forzata o ANR (applicazione che non risponde).
Non stai perdendo dati di per sé, se si utilizza ClockWorkMod Recovery e Wipe Data è selezionato, quindi sì, tutte le impostazioni relative alle app vengono cancellate in modo pulito - guardare dentro /data/app
.
Quindi puoi cancellare la cache ma non cancellare i dati , ciò che viene fatto in modo efficace, viene inserito negli apk più recenti, in cui sono conservate le impostazioni. Questo era uno scenario abbastanza comune con i nightly CyanogenMod in cui è stata eseguita la flashing di una build ROM instabile / test e le impostazioni sono state mantenute con la cancellazione della cache. Il chilometraggio varierà a seconda delle app scaricate dal mercato (le impostazioni sarebbero probabilmente cambiate in base al bump della versione).
Per ottenere risultati ottimali, è consigliabile eseguire sia Wipe Data che Wipe Cache per garantire integrità e nessun errore di programma all'interno dell'app stessa.
Sì, ciò significherebbe che il tempo di avvio sarebbe più lento, ma il suo momento iniziale una tantum. Dopo questo sarebbe l'avvio più veloce. In poche parole, cancellare esplicitamente la cache stessa tramite CWM aiuta effettivamente ad accelerarla e a garantire che non vi siano residui della versione precedente in atto che potrebbero essere confusi visto Android non esegue l'invalidazione della cache stessa all'avvio durante il flashing di una nuova ROM ..)
Usa la fonte Luke sul serio! : D
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
è il codice di avvio per ogni runtime apk. Interagisce con il codice C nativo trovato nella dalvik
struttura di directory che contiene istruzioni specifiche del chipset per interpretare il bytecode all'interno dell'apk al set di istruzioni della CPU nativa. ARMv6 è praticamente una versione compromessa di ARMv5 (che era il chipset originale nelle versioni precedenti di Android prima di Eclair), quindi non vedrai ARMv6 nella fonte AOSP da google. CyanogenMod avrà quel ARMv6 nella loro fonte.