it-swarm-pt.tech

Qual é a diferença entre o DVM e o ART? Por que o DVM foi oficialmente substituído pelo ART no Lollipop?

Desde o Android Lollipop, o Google substituiu o DVM pelo ART porque o ART é mais rápido que o DVM. Existe algum outro motivo para isso?

27
Amit Prajapati

Existem algumas grandes melhorias de desempenho que o ART traz que estavam faltando na Dalvik. Mas todos os profissionais têm alguns contras também. Vou tentar discutir as vantagens e desvantagens aqui.


1) Abordagem de Compilação

Esta é de longe a maior vantagem do ART sobre a Dalvik. O velho Dalvik usou a abordagem Just-In-Time (JIT _ em que a compilação foi feita sob demanda. Todos os arquivos dex foram convertidos em suas respectivas representações nativas somente quando necessário.

Mas ART usa a abordagem Ahead-Of-Time (AOT), na qual os arquivos dex foram compilados antes de serem exigidos. Isso em si melhora maciçamente o desempenho e a duração da bateria de qualquer dispositivo Android.

Por exemplo

No caso da Dalvik, sempre que você tocar em um ícone de aplicativo para abri-lo, os arquivos dex necessários serão convertidos em seus códigos nativos equivalentes. O aplicativo só começará a funcionar quando essa compilação for concluída. Então, o aplicativo não responde até que isso termine.

Além disso, esse processo é repetido toda vez que você abre um aplicativo perdendo ciclos de CPU e um valioso suco de bateria

Mas no caso de ART, sempre que você instalar um aplicativo, todos os arquivos dex são convertidos de uma vez por todas. Assim, a instalação leva algum tempo e o aplicativo ocupa mais espaço do que no Dalvik, mas o desempenho é massivamente melhorado e a duração da bateria é conservada de forma inteligente.


2) tempo de inicialização

No caso do Dalvik, o cache é construído com o tempo que o dispositivo é executado e os aplicativos são usados ​​conforme indicado pela abordagem JIT. Então o tempo de inicialização é muito rápido

Mas no caso de ART, o cache é construído durante a primeira inicialização, então o tempo de inicialização é consideravelmente maior no caso de ART. Você pode ver uma caixa de diálogo "Otimizando aplicativos" às vezes você inicializa.


3) uso do espaço

O espaço usado pelos aplicativos que estão sendo executados no ART é muito mais do que o da Dalvik. Como um aplicativo de 20 MB na Dalvik, leva mais de 35 MB em ART. 

Então se você estiver em um dispositivo de armazenamento baixo, isso pode ser uma grande desvantagem para você. 


4) ART é muito rápido

Como discutido acima, ART é extremamente rápido e suave. Os aplicativos são muito rápidos e responsivos. Qualquer comparação entre Dalvik e ART, certamente fará com que o dispositivo ART ganhe por uma margem significativa.

ART é a resposta para todos aqueles que argumentaram que o iOS é mais rápido e mais suave que o Android e também é mais eficiente em termos de bateria.

77
Aritra Roy

No Android Lolipop, o DVM foi substituído pelo ART. Porque o DVM converte bytecode toda vez que você inicia um aplicativo específico. Mas o ART converte apenas uma vez no momento da instalação do aplicativo. Isso facilita a execução da CPU. ARM é uma arquitetura. Como o MIPS, x86, etc. O DVM/ART é executado sobre o ARM. Ambos não podem substituir um ao outro. Espero que isso limpe sua confusão.

2
kazisami

No Android 4.4 e acima, junto com a Dalvik, o Google lançou um novo Android Runtime chamado "ART".

Diferença entre ART e Dalvik

ART (Android RunTime) tem a principal compilação Ahead-of-Time (AOT),

AOT vs JIT

O formato de aplicativos Android é .apk e todas as classes Java são convertidas em bytecode DEX. O formato de bytecode do DEX é independente da arquitetura do dispositivo e precisa ser traduzido para código de máquina nativo para ser executado no dispositivo. Isso é o mesmo tanto para o ART quanto para os tempos de execução da Dalvik.

Main Difference, ART (Android RunTime) usado compilação Ahead-of-Time (AOT), Dalvik é usado compilação Just-in-Time (JIT)

Com Dalvik, compilação Just-in-Time (JIT) cada vez que o aplicativo é executado, ele converte código de byte dex em código de máquina e em cache.

veja aqui mais detalhes http://androidboost.over-blog.com/2016/10/art-vs-dalvik.html

0
Kamal Kakkar