Android - Arquitetura

O sistema operacional Android é uma pilha de componentes de software que é aproximadamente dividida em cinco seções e quatro camadas principais, conforme mostrado abaixo no diagrama de arquitetura.

Kernel Linux

Na parte inferior das camadas está o Linux - Linux 3.6 com aproximadamente 115 patches. Isso fornece um nível de abstração entre o hardware do dispositivo e contém todos os drivers de hardware essenciais, como câmera, teclado, monitor etc. Além disso, o kernel lida com todas as coisas em que o Linux é realmente bom, como rede e uma vasta gama de drivers de dispositivo , que facilitam a interface com o hardware periférico.

Bibliotecas

No topo do kernel Linux, há um conjunto de bibliotecas, incluindo o motor de navegador Web de código aberto WebKit, a biblioteca bem conhecida libc, banco de dados SQLite que é um repositório útil para armazenamento e compartilhamento de dados de aplicativos, bibliotecas para reproduzir e gravar áudio e vídeo, SSL bibliotecas responsáveis ​​pela segurança da Internet, etc.

Bibliotecas Android

Esta categoria engloba as bibliotecas baseadas em Java que são específicas para o desenvolvimento Android. Exemplos de bibliotecas nesta categoria incluem as bibliotecas de estrutura de aplicativo, além daquelas que facilitam a construção da interface do usuário, desenho gráfico e acesso ao banco de dados. Um resumo de algumas das principais bibliotecas Android disponíveis para o desenvolvedor Android é o seguinte -

  • android.app - Fornece acesso ao modelo de aplicativo e é a base de todos os aplicativos Android.

  • android.content - Facilita o acesso ao conteúdo, publicação e troca de mensagens entre aplicativos e componentes de aplicativos.

  • android.database - Usado para acessar dados publicados por provedores de conteúdo e inclui classes de gerenciamento de banco de dados SQLite.

  • android.opengl - Uma interface Java para a API de renderização de gráficos 3D OpenGL ES.

  • android.os - Fornece aplicativos com acesso a serviços padrão do sistema operacional, incluindo mensagens, serviços do sistema e comunicação entre processos.

  • android.text - Usado para renderizar e manipular texto na tela de um dispositivo.

  • android.view - Os blocos de construção fundamentais das interfaces de usuário do aplicativo.

  • android.widget - Uma rica coleção de componentes de interface de usuário pré-construídos, como botões, rótulos, visualizações de lista, gerenciadores de layout, botões de rádio, etc.

  • android.webkit - Um conjunto de classes destinadas a permitir que os recursos de navegação na web sejam integrados aos aplicativos.

Tendo coberto as bibliotecas centrais baseadas em Java no tempo de execução do Android, agora é hora de voltar nossa atenção para as bibliotecas baseadas em C / C ++ contidas nesta camada da pilha de software Android.

Android Runtime

Esta é a terceira seção da arquitetura e está disponível na segunda camada da parte inferior. Esta seção fornece um componente chave chamadoDalvik Virtual Machine que é uma espécie de Java Virtual Machine especialmente projetada e otimizada para Android.

O Dalvik VM usa recursos básicos do Linux, como gerenciamento de memória e multi-threading, que é intrínseco à linguagem Java. A VM Dalvik permite que cada aplicativo Android seja executado em seu próprio processo, com sua própria instância da máquina virtual Dalvik.

O Android runtime também fornece um conjunto de bibliotecas principais que permitem aos desenvolvedores de aplicativos Android escrever aplicativos Android usando a linguagem de programação Java padrão.

Framework de aplicação

A camada Application Framework fornece muitos serviços de nível superior para aplicativos na forma de classes Java. Os desenvolvedores de aplicativos têm permissão para usar esses serviços em seus aplicativos.

A estrutura do Android inclui os seguintes serviços principais -

  • Activity Manager - Controla todos os aspectos do ciclo de vida do aplicativo e da pilha de atividades.

  • Content Providers - Permite que os aplicativos publiquem e compartilhem dados com outros aplicativos.

  • Resource Manager - Fornece acesso a recursos incorporados sem código, como strings, configurações de cores e layouts de interface do usuário.

  • Notifications Manager - Permite que os aplicativos exibam alertas e notificações para o usuário.

  • View System - Um conjunto extensível de visualizações usado para criar interfaces de usuário do aplicativo.

Formulários

Você encontrará todos os aplicativos Android na camada superior. Você escreverá seu aplicativo para ser instalado apenas nesta camada. Exemplos de tais aplicativos são Contatos, Livros, Navegador, Jogos, etc.