Casa > Q > Qual É A Diferença Entre O Art E O Dalvik No Android?

Qual é a diferença entre o ART e o Dalvik no Android?

Desde suas primeiras versões de lançamento, como "Cupcake" (1.5) e "Donut" (1.6), até o atual "KitKat" (4.4), o Android tem mantido uma arquitetura baseada em camadas. Começando por baixo, ele inclui: "Linux Kernel", "Libraries and Android Runtime", "Application Framework", e "Application" .
Cada aplicativo Android roda em sua própria máquina virtual (VM), que é chamada de "Dalvik". No Android 4.4, juntamente com o Dalvik, o Google introduziu experimentalmente um novo Android Runtime chamado "ART". Os usuários do Android podem facilmente alternar entre Dalvik e ART em "Settings" / "Developer options" / "Select runtime", no qual um diálogo mostra. O ART é atualmente lançado para fins de experimentação e teste. Neste momento, você pode ver problemas e até mesmo falhas no aplicativo. Os trabalhos ativos de desenvolvimento e otimização ainda estão em andamento. Mas o Google deixa bem claro: ART irá eventualmente substituir Dalvik como o Android Runtime.

Nas seções seguintes, vamos dar uma olhada interna nas diferenças entre os dois Android Runtimes.

AOT vs JIT
Aplicações Android vêm no formato de arquivo .apk, com classes Java convertidas em bytecode DEX. O formato DEX bytecode é independente da arquitetura do dispositivo e precisa ser traduzido para código de máquina nativo para ser executado no dispositivo. Isto é o mesmo tanto para o ART quanto para os tempos de execução Dalvik.

A mudança mais significativa de Dalvik para ART é que Dalvik é baseado na compilação Just-in-Time (JIT), enquanto ART é baseado na compilação Ahead-of-Time (AOT).

Com o compilador Dalvik JIT, cada vez que o aplicativo é executado, ele traduz dinamicamente uma parte do bytecode Dalvik em código de máquina. Conforme a execução avança, mais bytecode é compilado e colocado em cache. Por outro lado, ART é equipado com um compilador Ahead-of-Time. Durante a fase de instalação do aplicativo, ele traduz estaticamente o bytecode DEX em código de máquina e armazena no armazenamento do dispositivo. Este é um evento único que acontece quando o aplicativo é instalado no dispositivo.

p>Performance
O benefício mais importante do tempo de execução do ART sobre o tempo de execução Dalvik é que o aplicativo roda mais rápido no ART. Como o bytecode DEX foi traduzido em código de máquina durante a instalação, não é necessário tempo extra para compilá-lo durante o tempo de execução. O aplicativo inicia mais rápido também quando iniciado com ART pela mesma razão.

Porque o Dalvik requer memória extra para o cache de código JIT, um aplicativo ocupa uma área de memória menor quando roda em ART.

Duração da bateria
Com o tempo de execução do Dalvik, a compilação do JIT é vinculada à CPU. Por causa da compilação AOT, ART libera a CPU da tradução do bytecode DEX para o código da máquina durante a execução da aplicação, reduzindo assim o consumo de energia. Usando ART leva a uma maior duração da bateria, que é o intervalo de tempo quando uma recarga de bateria é necessária.

>p>P>Tempo de instalação
Porque o compilador AOT traduz o bytecode DEX em código de máquina durante a instalação do aplicativo, um aplicativo leva mais tempo para ser instalado em um dispositivo com tempo de execução ART. Considerando os benefícios de uma execução mais rápida e menor tempo de lançamento, discutimos na seção anterior, este tempo extra que acontece apenas uma vez durante a instalação do aplicativo vale bem a pena.

P>Storage Footprint
Com o tempo de execução do ART, o compilador AOT traduz o bytecode DEX do aplicativo em código de máquina e o armazena no armazenamento do dispositivo. O binário pré-compilado ocupa mais espaço do que o bytecode DEX. Assim, resulta em uma maior área de armazenamento em comparação com o tempo de execução Dalvik.

De Formenti

O Skype é o melhor serviço gratuito de chat por vídeo? :: Como ligar um calendário mestre do Google com sub-calendários (também Google) de forma a que as actualizações propagam