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 public, uma classe estática interna e três classes anônimas; o processo de saída de compilação vai resultar em 5
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