SL4A - Arquitetura Android

A pilha de software Android é composta por diferentes camadas, cada camada manifestando um comportamento bem definido e fornecendo serviços específicos para a camada acima dela. A figura a seguir apresenta uma ampla arquitetura do Android com seus componentes principais.

Kernel do Linux

O Android é construído no código do kernel do Linux modificado para rodar em sistemas embarcados em comparação com o sistema Linux tradicional. Drivers de hardware para muitos dispositivos comuns são integrados ao kernel, garantindo assim a portabilidade do dispositivo. É baseado em um modelo seguro de permissão baseado no usuário, que evita que um aplicativo leia as informações de outro aplicativo ou interfira em sua execução (por exemplo, CPU, memória, dispositivos etc.).

Acesso baseado em ID de grupo a recursos de rede e Bluetooth, logger, alarme, gerenciamento de energia, assassino de pouca memória, mecanismos Binder IPC são alguns aprimoramentos notados no kernel.

Bibliotecas e tempo de execução

Isso forma a segunda camada da arquitetura. Inclui um conjunto de bibliotecas C, C ++ otimizadas para hardware, também chamadas de camada nativa. Os exemplos incluem bibliotecas de mídia, SQLite, SSL, Bionic, WebKit etc.

O Android Runtime é composto por dois componentes diferentes - a VM Dalvik e as bibliotecas principais. O Dalvik VM fornece um ambiente de execução para os aplicativos na plataforma Android. O conjunto de bibliotecas centrais fornece a maioria das funcionalidades disponíveis nas APIs Java.

Framework de aplicação

Esta camada disponibiliza as Bibliotecas como serviços aos aplicativos. Alguns componentes mais importantes dentro desta camada incluem Gerenciador de locais, Gerenciador de recursos, Gerenciador de atividades e Gerenciador de notificações.

Formulários

Por padrão, o Android vem com um rico conjunto de aplicativos, incluindo o navegador, programa SMS, calendário, gerenciador de contatos, mapas, etc. O Google Play oferece alternativas para esses aplicativos, se o usuário desejar.

Blocos de construção

Um aplicativo pode fazer interface com o sistema com quatro blocos de funções. Eles são os seguintes -

  • Activities- As atividades representam uma única tela que o usuário vê ou com a qual interage visualmente. Por exemplo, um aplicativo de email pode ter uma atividade que mostra uma lista de novos emails, outra atividade para escrever um email e outra atividade para ler emails.

  • Services- A maior parte do processamento é feita por esses serviços para seu aplicativo. É a lógica por trás da interface do usuário. Por exemplo, um serviço pode reproduzir música em segundo plano enquanto o usuário está em um aplicativo diferente ou pode buscar dados pela rede sem bloquear a interação do usuário com uma atividade.

  • Broadcast Receivers- Um componente que pode ser registrado para ouvir eventos do sistema ou aplicativo e emitir notificações sobre o mesmo. Uma instância de transmissão originada do sistema é um 'low battery notification'enquanto uma transmissão em nível de aplicativo pode ser um'download successful'notificação.

  • Content Providers- Um provedor de conteúdo gerencia e ajuda você a compartilhar dados entre vários aplicativos. Por exemplo, um provedor de conteúdo pode ser usado para compartilhar os dados dos contatos.

Esses componentes interagem entre si por meio de mensagens chamadas Intents.