Para responder suas perguntas:
Não conheço nenhuma versão do Android em que o Dalvik não tenha sido invalidado na inicialização. Talvez a versão inicial 1.0 tenha, que eu realmente não sei, tenha passado por Eclair, Froyo, Gingerbread, Ice Cream Sandwich. Você precisa olhar para a árvore de origem e refazê-la novamente para CupCake ou Donut (1.5 e 1.6, respectivamente)
A razão detalhada :)
A razão pela qual o Wipe Cache deve ser usado é porque todos os aplicativos, incluindo os do sistema, têm um arquivo dex anexado a ele. Quando a ROM é inicializada pela primeira vez, o Dalvik do Android passa por cada um desses aplicativos e extrai o arquivo dex e coloque-o no cache /data/dalvik-cache
, agilizando a execução do próprio aplicativo.
A maioria das ROMs tem aplicativos odex , o cache é empacotado no próprio apk como um arquivo externo.
Muitos modders de ROM personalizados teriam esses apks deodex 'd, o que significa que o arquivo dex é substituído e reembalado para facilitar o tema / modificar um apk.
Quando você atualiza uma ROM personalizada e não limpa o cache, os apks da ROM personalizada mais recente têm um arquivo dex diferente anexado a ela e, quando o Dalvik os examina, ele vê o arquivo dex em cache existente no diretório e ignora e, ao executar o aplicativo, você garante um fechamento forçado ou ANR (aplicativo não está respondendo).
Você não está perdendo dados por si só, se estiver usando ClockWorkMod Recovery e Wipe Data estiver selecionado, sim, todas as configurações relacionadas aos aplicativos serão limpas de maneira limpa - consulte /data/app
.
Portanto, você pode limpar o cache, mas não limpar os dados , o que é feito de maneira eficaz, é inserido nos apks mais recentes, nos quais as configurações são mantidas. Esse era um cenário bastante comum nas noites noturnas do CyanogenMod, em que uma compilação de ROM instável / de teste pisca e as configurações mantidas com a limpeza do cache. A milhagem varia de acordo com os aplicativos baixados do mercado (as configurações teriam sido alteradas pelo aumento de versão bastante provável).
Para obter melhores resultados, seria aconselhável executar a limpeza de dados e a limpeza de cache para garantir a integridade e nenhum erro de programa no próprio aplicativo.
Sim, isso significaria que o tempo de inicialização seria mais lento, mas seu momento inicial inicial. Depois disso, seria inicializado mais rápido. Em poucas palavras, limpar explicitamente o próprio cache via CWM realmente ajuda a acelerar e garantir que nenhum resíduo da versão anterior existente possa ser absorvido (agora, neste estágio, estou percebendo sua pergunta com toda a justiça, não visto o Android não executar a invalidação do próprio cache durante a inicialização ao piscar uma nova ROM ..)
Use a fonte Luke seriamente! : D
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
é o código de inicialização para cada tempo de execução do apk. Ele interage com o código C nativo encontrado na dalvik
árvore de diretórios, que contém instruções específicas do chipset para interpretar o bytecode no conjunto de instruções da CPU nativa do apk para o. O ARMv6 é praticamente uma versão hackeada do ARMv5 (que era o chipset original nas versões mais antigas do Android anteriores à Eclair), portanto você não verá o ARMv6 na fonte AOSP do google. O CyanogenMod terá esse ARMv6 em sua fonte.