Toda vez que você baixa o pacote (que na realidade é um OS baseado no Linux Kernel 2.6 por exemplo e o Android que acaba por assim dizer ser chamado de interface visual, roda em uma máquina virtual chamada por assim dizer roda em uma máquina virtual Dalvik.
O Linux é responsável por gerenciar a memória, os processos, os threads e a segurança dos arquivos e pastas, além de redes e drivers (ai que mora o desafio, escrever para os hardwares).
Cada aplicativo dispara um novo processo no sistema operacional (que lembrando é um Linux). Alguns exibem alguma coisa na tela e outros rodam em segundo plano.
Bom já o Dalvik é uma máquina virtual roda as aplicações escritas em Java para Android (só que o Android não tem a JVM - Java Virtual Machine) e sim a tal Dalvik que faz quase a mesma coisa.
por exemplo, ao desenvolver uma aplicação para Android, você vai escrever em Java (se pensar no Android Studio ou mesmo no Eclipse o netbeans). Depois que suas .class são compiladas estas é convertida para .dex (Dalvik Executable), que representa uma aplicação Android Compilada. Mas ainda não acabou, esta vendo como tudo é personalizado e dá um trabalhão.
Agora os arquivos .dex e outros recursos como sons, imagens, textos, etc. são fechado em um único pacote com extensão .apk (Android Package File) que é a aplicação final, pronta para instalar no seu dispositivo.
O Android Studio faz isso ( .dex e .apk) automaticamente em segundo plano e você nem vê acontecer, só a barra de progresso executando.
Espero ter de certa forma esclarecido porque é tão custoso fazer uma atualização de um OS que tem inúmeros hardwares diferentes e pouca gente que escreve Drivers para eles (se comparado com PC).
Outro detalhe importante, para compilar uma versão Android tem que rodar em Linux ou Mac OS, a Google recomenda um OS Linux no PC com no mínimo 200GB, isso mesmo 200GB de espaço para baixar o OS Android para reescrevê-lo e o ubuntu 14.0 para o Marshmallow, 8GB RAM e se for Virtual Box por exemplo dobre tudo, Ubuntu 14, 400GB de espaço em disco e pelo menos 16GB de RAM. é muita máquina para poder compilar um OS. Há claro e um baita conhecimento de Linux, do Kernel é fundamental, se não você não consegue fazer nada.
Nenhum comentário:
Postar um comentário