Como se diz que o Java é independente da plataforma, então por que não podemos executá-lo diretamente nos dispositivos Android?
Obviamente podemos executar programas escritos em Java no Android, mas não diretamente. Antes do lançamento do "Kotlin" a linguagem oficial para o desenvolvimento do Android , o Java era amplamente utilizado para desenvolver aplicações andróides e mesmo agora continua a ser utilizado.
O procedimento padrão para executar um programa Java é este
O ficheiro ".java" é convertido em ficheiro executável ".class" pelo compilador java e o ficheiro class gerado é independente de qualquer SO, ou seja, pode correr em qualquer SO. Para executar este arquivo de classe você precisa de JVM que é específico para OS.
>p>No Android o cenário é ligeiramente diferenteNo Android nós usamos DVM(Dalvik Virtual Machine) ao invés de JVM(Java Virual Machine)beacuse:-
- JVM foi projetado para Java, mantendo em mente as aplicações Desktop. A maior diferença entre Desktop, e móvel é que os celulares têm quantidade muito limitada de memória (RAM) e menos velocidade de CPU em comparação com desktops e laptops. JVM é muito pesada e requer muita RAM e velocidade da CPU para executar um programa. Uma vez que os celulares podem ' não se pode permitir tanta RAM e CPU, o Android precisa de uma versão mais otimizada e leve da JVM. A DVM foi criada para substituir a JVM. O DVM é destinado a dispositivos embutidos que têm menos memória RAM e velocidade da CPU.
- O JVM é lento porque é baseado em pilha e o DVM é baseado em registro.
P>Dizemos que um aplicativo andróide precisa de quatro arquivos ".class" para ser executado. Esses arquivos de classe são passados pelo compilador DX que combina todos esses arquivos de classe e gera um arquivo "classes.dex" após anexar os pacotes necessários. Este DEX pode ser entendido pela Máquina Virtual Dalvik.
Artigos semelhantes
- Por que a Apple não oferece uma maneira de transferir arquivos diretamente entre iPhones e iPads e outros dispositivos móveis não-Apple?
- Como é possível para um desenvolvedor independente que faz sua própria arte, programação e som, criar individualmente um jogo de sucesso?
- Posso fazer um aplicativo como o Snapchat com C#/Xamarin.forms e executá-lo no iOS e Android? Como?
- A Guerra das Estrelas era para ser um filme independente?