Índice:
Clark escreve,
O que diabos odex e deodex realmente significam? Eu vejo os termos mencionados em quase todos os threads de ROM personalizados e não consigo encontrar uma resposta que eu possa entender. Espero que o Android Central possa ajudar.
Pergunta incrível, Clark. E acho que podemos responder em termos que a maioria das pessoas entenderá. Como você observou, você vê os termos odex e deodexed em muitos posts de fóruns sobre ROMs personalizadas ou hacks variados para telefones e tablets. É preciso muito trabalho para os desenvolvedores criarem ROMs desodexadas a partir de ROMs "de estoque", como as oferecidas tanto pelos OEMs quanto pelo Google.
Para começar, precisamos saber o que é um arquivo odex. É parte de um aplicativo (o arquivo.apk) que foi pré-criado para fazer com que a Dalvik Virtual Machine carregue mais rapidamente, usando menos recursos. Se você procurar na pasta / system / app / no seu telefone ou tablet Android, verá que quase todos os aplicativos têm um arquivo.apk e um arquivo.odex. Esses arquivos funcionam juntos por meio da Dalvik VM para fazer com que os aplicativos sejam executados como deveriam em nossos dispositivos. Vamos dividir tudo depois do intervalo.
A Dalvik VM
A Dalvik VM é uma grande parte de um sistema Android. É o componente que permite que aplicativos de terceiros escritos em Java sejam executados no seu telefone ou tablet. O próprio sistema inicia o DVM e, quando você pressiona para iniciar um aplicativo, ele funciona. Ele pega os dados dentro dos arquivos.apk e, usando um compilador Just-in-time (JIT), cria as informações em um programa e as executa. Ter partes do código já otimizadas e incorporadas em um arquivo que o DVM pode executar torna o processo mais rápido e utiliza menos recursos. Isso é o que é um arquivo odex.
Arquivos Odex
Os arquivos odex que você vê na pasta do sistema são criados pelas pessoas que escreveram e criaram o próprio aplicativo. Os aplicativos Android são escritos em Java e depois convertidos em bytecode. Em seguida, eles são convertidos dos arquivos.class compatíveis com Java Virtual Machine padrão em um tipo especial de arquivo que a Dalvik VM pode ler. Esses são chamados de arquivos.dex. Quando esses arquivos.dex são colocados fora do restante do código (que está no arquivo.apk), você fica com um arquivo.odex independente.
Existem muitas boas razões para ter arquivos.odex independentes. Eles tornam os tempos de inicialização mais rápidos (especialmente a primeira inicialização), construindo o Dalvik-cache à medida que o sistema é inicializado. Eles também economizam espaço apontando para a estrutura do Android sempre que possível e permitem que o desenvolvedor do aplicativo otimize seus programas. Mas ter arquivos seperate.odex não é muito amigável para hackers.
Deodexing
Deodexar arquivos significa pegar o arquivo.odex independente e o arquivo.apk e reconstruí-los para que todas essas informações pré-construídas do aplicativo fiquem contidas no arquivo.apk em vez de em seu próprio arquivo. Os dados pré-criados para a Dalvik VM agora estão em um arquivo classes.dex dentro do arquivo.apk, como na figura acima. Isso torna os arquivos.apk um pouco maiores e não podem ser pré-carregados quando o sistema é inicializado. Mas eles podem ter engenharia reversa por hackers e temáticos.
Com todo o código e dados do programa em um só lugar, você pode usar ferramentas para "descompactar" o aplicativo e editá-lo da maneira que desejar. É assim que temas e ajustes, como mods de porcentagem de bateria, são feitos para ROMs "de estoque". Depois que um desenvolvedor faz suas alterações, ele reconstrói o arquivo.apk e as alterações podem ser executadas. Isso não afetará nenhuma outra parte do sistema, porque nenhum código ou dado está sendo compartilhado com outros aplicativos.
Qual você deve escolher?
Isso depende muito de você e quais serão suas necessidades, mas sugiro que mostre uma versão deodex sempre que possível. Sim, as ROMs odex inicializam mais rapidamente, mas você realmente só percebe isso na primeira inicialização quando todos os aplicativos do sistema são pré-armazenados em cache pela Dalvik VM. Você também pode economizar um bom espaço usando arquivos odex, mas esse espaço está todo na partição do sistema e não lhe dará espaço para mais aplicativos se o seu telefone ou tablet usar uma partição de aplicativo separada. Com os telefones modernos de hoje, seus processadores com vários núcleos e grandes bancos de RAM, você nem notará tempos de carregamento de aplicativos mais rápidos.
Se você deseja fazer coisas como alterar a barra de status ou o tema TouchWiz ou Sense, precisará de uma ROM deodex. Você também precisará de uma ROM deodex para fazer alguns dos ajustes mais profundos do sistema, como alterar o menu de configurações ou as edições na estrutura. Em suma, se você já desbloqueou o gerenciador de inicialização e fez o root e está pronto para uma ROM personalizada, a escolha de uma versão desodexada é provavelmente a melhor opção. Você ficará surpreso com as coisas que esses desenvolvedores malucos podem criar e certamente encontrará alguns que deseja experimentar.