
O Android já foi tema de vários artigos da VIVASEMFIO. Para quem não conhece, trata-se de um grande projeto que envolve empresas como T-Mobile, HTC, Qualcomm e Motorola, todas lideradas pela Google. Descrito como a primeira plataforma para dispositivos móveis verdadeiramente aberta (baseada em Linux) e abrangente, o Android está começando a conquistar os desenvolvedores de todo o mundo.
Todos que já visitaram a página do Android com o objetivo de aprender a criar aplicações para esta plataforma, além de encontrarem um kit de desenvolvimento, certamente observaram a atenção que a Google deu a Arquitetura do Android. De fato, não há como criar qualquer aplicação sem antes conhecer um pouco da Arquitetura da plataforma. Pensando nisso, resolvemos escrever este artigo.
Aplicações
O Android contêm um conjunto de aplicativos centrais como um cliente de e-mail, programa para SMS (Short Message Service), calendário, mapas, navegador e gerenciador de contatos. Tudo feito em Java.
Framework de Aplicações
A arquitetura deste framework foi desenvolvida para simplificar a reutilização dos componentes. Desta forma qualquer desenvolvedor pode construir um aplicativo e disponibilizar suas “capacidades”, permitindo que elas sejam utilizadas por outros programas. Vale lembrar que o desenvolvedor tem acesso total à mesma estrutura de APIs usada nos aplicativos centrais, podendo, desta forma, aproveitá-las conforme achar conveniente.
Bibliotecas
O sistema inclui um conjunto de bibliotecas C/C++ usadas por diversos componentes do Android. Essas bibliotecas permitem trabalhar com arquivos de mídia comuns como MPEG4, H.264, MP3, AAC, AMR, JPG e PNG. Componentes como o Surface Manager permitem a exibição de conteúdo tanto em 2D como em 3D. Há, inclusive, uma biblioteca 3D cuja implementação foi baseada no famoso OpenGL (Open Graphics Library). Basicamente o OpenGL é um conjunto de várias funções que fornecem acesso a praticamente todos os recursos do hardware de vídeo. Para completar, foi disponibilizado também o SQLite, um poderoso e leve banco de dados relacional.
Android Runtime
Cada aplicação do Android roda em seu próprio processo e cada processo é uma instância da máquina virtual Dalvik, criada para que o dispositivo possa rodar múltiplas máquinas virtuais eficientemente. Os arquivos são executados no formato Dalvik Executable (.dex) e são otimizados para ocupar uma pequena fatia de memória. Os arquivos são criados por um compilador Java, que converte o resultado no formato .dex.
Kernel do Linux
O Android usa o linux versão 2.6 para serviços essenciais do sistema, como segurança, gerenciamento de memória, gerenciamento de processos, rede e drivers. O kernel do linux também funciona como uma camada de abstração entre o hardware do dispositivo e o resto do conjunto de softwares que são desenvolvidos em paralelo.
Bom trabalho a todos!
Au revoir