Para responder a sus preguntas:
-
No conozco ninguna versión de Android en la que el Dalvik no se haya invalidado en el arranque. Tal vez la versión inicial 1.0 tenía que, realmente no sé, han pasado por Eclair, Froyo, Gingerbread, Ice Cream Sandwich. Tienes que buscar en el árbol de fuentes y volver a basarte en CupCake o Donut (1.5 y 1.6 respectivamente)
-
La razón detallada :)
La razón por la que el Borrar la caché es porque todos los apks, incluidos los del sistema, tienen un dex Cuando la ROM se inicia por primera vez, el Dalvik de Android revisa todas y cada una de esas aplicaciones, extrae el archivo dex y lo coloca en la caché. /data/dalvik-cache
acelerando así la ejecución de la propia aplicación.
La mayoría de las ROMs tienen apks que son odex 'ed, la caché se incluye en el propio apk como un archivo externo.
Muchos modders de ROMs personalizadas tendrían esos apks deodex 'd, lo que significa que el archivo dex es reemplazado y reempaquetado para hacer más fácil la tematización/modificación de un apk.
Cuando flasheas una ROM personalizada, y no limpias la caché, los apk's de las ROMs personalizadas más nuevas tendrán un dex adjunto, y cuando el Dalvik los revisa, ve el archivo dex existente en caché que se encuentra en el directorio, y se lo salta, entonces cuando ejecutas la aplicación, tienes garantizado un cierre forzado o ANR (Application Not Responding).
Usted no está perdiendo datos en sí, si se utiliza ClockWorkMod Recovery, y Borrar datos está seleccionado, entonces sí, todos los ajustes relacionados con las aplicaciones se borran limpiamente - mira en /data/app
.
Así que puedes Borrar la caché pero no Borrar datos , lo que se hace efectivamente, es encajar los apks más nuevos en su lugar, en el que tiene la configuración retenida. Esto era un escenario bastante común con nightlies CyanogenMod donde una construcción inestable / prueba de ROM se parpadea, y los ajustes retenidos con la limpieza de la caché. El kilometraje variará dependiendo de lo que las aplicaciones descargadas desde el mercado (ajustes habría cambiado por la versión bump bastante probable).
Para obtener los mejores resultados, sería conveniente realizar ambos Borrar datos y Borrar la caché para garantizar la integridad y la ausencia de errores de programa dentro de la propia aplicación.
Sí, eso significaría que el tiempo de arranque sería más lento, pero su momento inicial de apagado. Después de eso sería el arranque más rápido. Realmente en una cáscara de nuez, limpiando explícitamente la memoria caché en sí a través de CWM en realidad ayuda a acelerar y asegurar ningún residuo de la versión anterior en el lugar que podría conseguir munged pulg (Ahora en esta etapa, me estoy dando cuenta de su pregunta por lo que en toda la justicia, no han visto realmente Android no realizar la invalidación de la memoria caché en sí en el arranque al parpadear una nueva ROM ..)
Utiliza la fuente Luke en serio! :D
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
es el código de arranque para cada apk runtime. Interactúa con el código C nativo que se encuentra en el dalvik
que contiene instrucciones específicas del chipset para interpretar el bytecode dentro del apk al conjunto de instrucciones nativas de la CPU. ARMv6 es más o menos una versión hackeada de ARMv5 (que era el chipset original en las versiones más antiguas de Android antes de Eclair), por lo que no verá ARMv6 en la fuente AOSP de google. CyanogenMod tendrá ese ARMv6 en su fuente.