Páginas

terça-feira, 6 de novembro de 2012

entendendo o que e Dalvik


Dalvik é um processo da máquina virtual (VM) desenvolvida pela Google onde foi escrita por Dan Bornstein e outros engenheiros da Google e fez uma homenagem a uma vila de pescador situada em Eyafjörõur (Islândia) chamada de Dalvík, na qual moravam alguns antepassados de Bornstein.  A Dalvik veio junto com o lançamento da SDK do Android no final de 2007. Criada com base na especificação POSIX para sistema operacional UNIX onde o intuito de “Reinventar a roda” era de melhorar no gerenciamento de processo e isolamento de thread.
Por que “reinventar a roda” Google?
Infelizmente J2ME é bastante limitada pelo motivo de alguns aparelhos não suportarem tecnologias como: gráfico 3D, SIP e Bluetooth. Isso torna um incomodo para desenvolvedores da plataforma, visto que dependendo do aplicativo o mesmo não será compatível com alguns aparelhos.  Então, a frase “write once, run anywhere” não se encaixa perfeitamente no J2ME. Outro item importante que a Google destacou sobre não ter adotado o J2ME foi a especificação JSR (Java Specification Request) que é um processo bastante burocrático e necessário para que sejam inseridos novos recursos na plataforma. Em contra partida, a Google tem o controle completo e pode impulsionar a adoção de novas funcionalidades em uma forma mais rápida e simples.
Extensão .Dex
Quando se trabalha com J2EE, ou seja, quando se é compilado uma Classe.java,  a JVM (Java Virtual Machine) interpreta o código .java e gera o código .class. Isso siginifica que cada classe Java resulta em um arquivo. Se você possuir um arquivo Java com o modificador de acesso da classe como  publicuma classe estática interna e três classes anônimas; o processo de saída de compilação vai resultar em 5 
arquivos .class. Sobre a plataforma Android os arquivos .java também são convertido para .class e através de uma ferramenta chamada de “dx” são convertidos para a extensão .dex que é interpretada pela VMD (Virtual Machine Dalvik). Considerando que um arquivo .class contém apenas uma classe o arquivo .dexcontém várias classes, de modo a reduzir o tamanho do arquivo e operações de I / O (entrada e saída), e acelerar a velocidade de busca. O arquivo .dex foi otimizado para o uso de memória e o designer principal é impulsionado para o compartilhamento de dados. O diagrama abaixo compara o formato de arquivo .class interpretado pela JVM e o .dex interpretado pela DVM (Dalvik Virtual Machine).
Tamaho de um arquivo Dex
O arquivo do tipo .dex como já foi dito anteriormente, armazena todos os .class em um único arquivo ao ser compilado.  O motivo dessa junção é reduzir o tamanho do arquivo .dex. Isso é possível porque cada arquivo .class tem pools de constantes onde a maioria deles é redundante. Com todas os arquivos .classjuntos, os pools de constantes redundantes são removidos, e apenas uma única cópia é necessário.Com essa consolidação,  a DVM é capaz de aumentar o seu desempenho, eliminando a capacidade descompactar um arquivo jar com os seus .class redundantes. Abaixo, uma tabela onde mostra a diferença de um arquivo jar comprimido e descomprimido e também um aquivo .dex descomprimido.
Otimizando um arquivo .Dex
O Android Package Tool (APT) compacta os arquivos .dex e o androidManifeste.xml como binário e cria uma extensão .apk. Após a geração do arquivo .apk que já podem ser disponibilizados para os dispositivos com Android, os arquivos .dex são otimizados antes da execução. Os arquivos são otimizados e salvos para uma região de cache onde são convertidos para um tipo de extensão customizada chamada de .dey . Compilado uma vez, a DVM(Dalvik Virtual Machine) executa o arquivo .dey diretamente se a estrutura de pacotes da aplicação não mudar.
Conclusão
A Google criou a máquina virtual Dalvik com o intuito de melhorar em certos pontos onde a JVM falha quando o assunto é “Mobile” sendo assim, os pontos fortes que a Dalvik tem são, desempenho, seguraça e tem a total liberdade para evoluir o Android sem a necessidade da especificação JSR (Java Specification Request)da Oracle que é bastante burocrática.

credito droidbrasil

Nenhum comentário:

Postar um comentário