Android Archiestrutura: Camadas de Aplicação, Estrutura, Componente

Android o lançamento inicial do sistema operacional foi no ano de 2008. Mesmo em seu início, a equipe por trás do sistema operacional o construiu sobre os ombros de gigantes. Além da interface do usuário que o Android O OS apresenta-se ao nível da superfície, é composto por múltiplas camadas. Essas camadas incluem código personalizado e tecnologias de código aberto que estão em desenvolvimento contínuo há décadas.

Android foi desenvolvido por meio de esforços colaborativos e investimentos massivos de muitas empresas. A principal empresa por trás do desenvolvimento do Android é o Google. Outras empresas incluem fabricantes de dispositivos como Samsung, LG; fabricantes de processadores como Intel e ARM, mas para citar alguns.

Quando falamos sobre Android arquitetura, queremos dizer como o Android O sistema foi projetado, segmentado em camadas e construído para funcionar como um sistema. Construir um sistema tão complexo requer uma estruturação cuidadosa para garantir que todos os componentes trabalhem juntos de forma coesa. Sua arquitetura garante que os muitos componentes funcionem como um todo sem travar.

Camadas

A seguir estão as camadas que compõem o Android arquitetura conforme rotulado no diagrama:

  1. Solicitações
  2. Estrutura de aplicação
  3. Android Tempo de execução e bibliotecas principais
  4. Linux Kernel

O desenvolvimento de um sistema operacional para dispositivos móveis apresenta uma série de desafios. O uso dessa arquitetura em camadas garante que diferentes problemas sejam divididos e resolvidos em diferentes níveis.

Uma arquitetura em camadas ajuda a separar preocupações e garante que os desenvolvedores de software Android não tenham que lidar com problemas de baixo nível a cada passo. Em vez disso, eles podem se concentrar na entrega de valor comercial relacionado à camada em que estão trabalhando.

Os desenvolvedores estão trabalhando para fazer com que os aplicativos não precisem se preocupar com a implementação da estrutura do aplicativo. Esse trabalho é deixado para os desenvolvedores de sistemas que trabalham na estrutura do aplicativo.

Os desenvolvedores do Application Framework trabalham com base na experiência do desenvolvedor e não precisam se preocupar com drivers de baixo nível. Engenheiros de sistemas de baixo nível podem se concentrar completamente em componentes de baixo nível, como Bluetooth ou drivers de áudio e similares.

AndroidA estrutura em camadas do torna possível aplicar atualizações com correções de bugs ou melhorias em cada camada por conta própria. Isso garante que as alterações nas camadas não interfiram umas nas outras. Isso permite que pessoas que trabalham em um nível diferente do sistema operacional obstruam umas às outras à medida que novas atualizações e lançamentos são feitos.

Android Solicitações

Android Solicitações
Android Solicitações

Esta é a camada com a qual os usuários finais interagem. É nesta camada que os desenvolvedores de aplicativos publicam seus aplicativos para execução.

Android, por padrão, vem com um conjunto de aplicativos que tornam os dispositivos Android utilizáveis ​​desde o início.

  1. Home: A página inicial em Android consiste em ícones de inicialização para aplicativos comumente usados ​​aos quais o usuário final pode desejar acesso rápido. Você pode iniciar os aplicativos clicando nos inicializadores desses aplicativos. No topo da tela, você tem widgets que mostram rede, nível de bateria, data e hora.
  2. Contactos: Android, por padrão, fornece um meio de armazenar e recuperar contatos. As informações de contato são compartilhadas entre outros aplicativos para aprimorar a funcionalidade.
  3. mensagens: Android fornece a capacidade de enviar e receber mensagens SMS.
  4. Email: Android vem com suporte nativo para serviços de e-mail. Configurando um Android dispositivo requer uma conta do Gmail. A configuração do Gmail ativa outros componentes dependentes de e-mail em Android dispositivos. Alguns recursos dependentes de e-mail incluem mecanismos de segurança e recuperação. Outro recurso dependente de e-mail é o acesso à Play Store, um mercado para Android aplicações.
  5. Browser: Android vem com um navegador padrão.
  6. Gaveta de notificação: Deslizar para baixo na tela expõe a gaveta de notificação. Ele fornece eventos de aplicativo dos quais o usuário deve estar ciente. Acima da notificação há um conjunto de atalhos para algumas configurações de dispositivo comumente usadas que os usuários podem alternar. Essas configurações incluem ativar e desativar vários componentes de hardware, como Bluetooth e Wifi. Manter esses eventos pressionados nos permite navegar até sua página de configurações.

Esta camada também é chamada de nível de usuário em contraste com as camadas abaixo que são principalmente ajustadas para desenvolvimento de aplicativos. Os desenvolvedores de aplicativos criam e personalizam as experiências para seus aplicativos nesta camada. As camadas abaixo da camada de aplicativo não são personalizadas pelos desenvolvedores de aplicativos. Elas são consideradas parte da camada do sistema. Essas camadas são personalizadas por fabricantes de dispositivos, equipes do Google Android ou terceiros que desejam usar o Android código-fonte para seu produto ou pesquisa.

Estrutura de aplicação

A Android O sistema operacional expõe as bibliotecas e recursos subjacentes do Android dispositivo que está usando um Java API. Isto é o que é conhecido como Android estrutura. A estrutura expõe um meio seguro e uniforme de utilizar Android recursos do dispositivo.

Estrutura de aplicação
Estrutura do aplicativo

1) Gerenciador de atividades

Os aplicativos usam o Android componente de atividade para apresentar um ponto de entrada para o aplicativo. Android Atividades são os componentes que abrigam a interface do usuário com a qual os usuários do aplicativo interagem. À medida que os usuários finais interagem com o Android dispositivo, eles iniciam, param e alternam entre vários aplicativos. Cada evento de navegação desencadeia a ativação e desativação de muitas atividades nos respectivos aplicativos.

A Android ActivityManager é responsável pelo comportamento previsível e consistente durante as transições de aplicativos. O ActivityManager fornece um espaço para os criadores de aplicativos fazerem com que seus aplicativos reajam quando o Android O SO realiza ações globais. Os aplicativos podem ouvir eventos como rotação de dispositivos, destruição de aplicativos devido à falta de memória, um aplicativo sendo deslocado para fora de foco e assim por diante.

Alguns exemplos de como os aplicativos podem reagir a essas transições incluem pausar a atividade de um jogo, interromper a reprodução de música durante uma chamada telefônica.

2) Gerenciador de janelas

Android pode determinar informações de tela para determinar os requisitos necessários para criar janelas para aplicativos. Windows são os slots onde podemos visualizar a interface de usuário do nosso aplicativo. Android usa o gerenciador de janelas para fornecer essas informações aos aplicativos e ao sistema enquanto eles são executados, para que possam se adaptar ao modo em que o dispositivo está sendo executado.

O Window Manager ajuda a fornecer uma experiência de aplicativo personalizada. Os aplicativos podem preencher a tela inteira para uma experiência envolvente ou compartilhar a tela com outros aplicativos. Android permite isso permitindo múltiplas janelas para cada aplicativo.

3) Gerenciador de localização

Os mais Android os dispositivos são equipados com dispositivos GPS que podem obter a localização do usuário usando informações de satélite que podem atingir a precisão dos medidores. Os programadores podem solicitar permissão de localização dos usuários, fornecer localização e experiências conscientes.

Android também é capaz de utilizar tecnologias sem fio para enriquecer ainda mais os detalhes de localização e aumentar a cobertura quando os dispositivos estão em espaços fechados. Android fornece esses recursos sob a égide do Location-Manager.

4) Gerente de Telefonia

Os mais Android dispositivos desempenham um papel fundamental na telefonia. Android usa o TelephoneManager para combinar componentes de hardware e software para fornecer recursos de telefonia. Os componentes de hardware incluem peças externas, como cartão SIM, e peças de dispositivos, como microfone, câmera e alto-falantes. Os componentes de software incluem componentes nativos, como teclado de discagem, lista telefônica e perfis de toque. Usando o TelephoneManager, um desenvolvedor pode estender ou ajustar a funcionalidade de chamada padrão.

5) Gerente de Recursos

Android app geralmente vem com mais do que apenas código. Eles também possuem outros recursos como ícones, arquivos de áudio e vídeo, animações, arquivos de texto e similares. Android ajuda a garantir que haja acesso eficiente e ágil a esses recursos. Também garante que os recursos certos sejam entregues aos usuários finais. Por exemplo, os arquivos de texto do idioma adequado são usados ​​ao preencher campos nos aplicativos.

6) Ver Sistema

Android também fornece um meio de criar facilmente componentes visuais comuns necessários para a interação do aplicativo. Esses componentes incluem widgets como botões, suportes de imagens como ImageView, componentes para exibir uma lista de itens como ListView e muito mais. Os componentes são pré-fabricados, mas também personalizáveis ​​para atender às necessidades e à marca do desenvolvedor de aplicativos.

7) Gerenciador de Notificações

O Gerenciador de Notificações é responsável por informar Android usuários de eventos de aplicativos. Ele faz isso fornecendo aos usuários sinais visuais, sonoros ou vibratórios, ou uma combinação deles, quando ocorre um evento. Esses eventos têm gatilhos externos e internos. Alguns exemplos de gatilhos internos são eventos de status de bateria fraca que acionam uma notificação para mostrar bateria fraca. Outro exemplo são os eventos especificados pelo usuário, como um alarme. Alguns exemplos de gatilhos externos incluem novas mensagens ou novas redes wifi detectadas.

Android fornece um meio para programadores e usuários finais ajustarem o sistema de notificações. Isso pode ajudar a garantir que eles possam enviar e receber eventos de notificação da maneira que melhor se adapte a eles e aos seus ambientes atuais.

8) Gerenciador de pacotes

Android também fornece acesso a informações sobre aplicativos instalados. Android monitora informações do aplicativo, como eventos de instalação e desinstalação, permissões solicitadas pelo aplicativo e utilização de recursos, como consumo de memória.

Essas informações podem permitir que os desenvolvedores façam com que seus aplicativos ativem ou desativem funcionalidades dependendo dos novos recursos apresentados pelos aplicativos complementares.

9) Provedor de conteúdo

Android possui uma maneira padronizada de compartilhar dados entre aplicativos no dispositivo usando o provedor de conteúdo. Os desenvolvedores podem usar o provedor de conteúdo para expor dados a outros aplicativos. Por exemplo, eles podem tornar os dados do aplicativo pesquisáveis ​​em aplicativos de pesquisa externos. Android ele próprio expõe dados como dados de calendário, dados de contato e similares usando o mesmo sistema.

Android Tempo de execução e bibliotecas principais/nativas

Android Tempo de execução e bibliotecas principais/nativas
bibliotecas

1) Android Runtime

Android atualmente usa Android Runtime (ART) para executar código de aplicativo. O ART é precedido pelo Dalvik Runtime que compilou o código do desenvolvedor para arquivos Dalvik Executable (arquivos Dex). Esses ambientes de execução são otimizados para a plataforma Android, levando em consideração as restrições de processador e memória em dispositivos móveis.

O tempo de execução traduz o código escrito pelos programadores em código de máquina que faz cálculos e utiliza componentes do framework Android para fornecer funcionalidade. Android hospeda vários aplicativos e componentes do sistema, cada um executado em seus processos.

Bibliotecas principais

Neste segmento, discutiremos algumas das principais bibliotecas que estão presentes no Android sistema operacional.

2) Estrutura de Mídia

Android também oferece suporte nativo a codecs de mídia populares, facilitando o uso de aplicativos criados no Android plataforma para usar/reproduzir componentes multimídia prontos para uso.

3) SQLite

Android também tem um SQLite banco de dados que permite que os aplicativos tenham funcionalidade de banco de dados nativa muito rápida, sem a necessidade de bibliotecas de terceiros.

4) Tipo livre

Android vem com um mecanismo de fonte rápido e flexível pré-instalado. Isso possibilita que os desenvolvedores de aplicativos estilizem os componentes de seus aplicativos e forneçam uma experiência rica que comunique a intenção do desenvolvedor.

5) OpenGL

Android também vem com o sistema gráfico OpenGL. É uma biblioteca C que ajuda Android use componentes de hardware na renderização em tempo real de gráficos 2D e 3D.

6) SSL

Android também vem com uma camada de segurança integrada para permitir a comunicação segura entre aplicativos em Android e outros dispositivos, como servidores, outros dispositivos móveis, roteadores 6.

7) LPG

Android vem com uma biblioteca gráfica implementada em código de baixo nível que renderiza gráficos de forma eficiente para a plataforma Android. Ele funciona com os componentes de nível superior do Android quadro Android pipeline gráfico.

8) Libc

O núcleo do Android contém bibliotecas escritas em C e C++, que são linguagens de baixo nível destinadas ao uso incorporado que ajudam a maximizar o desempenho. Libc fornece um meio de expor funcionalidades de sistema de baixo nível, como Threads, Sockets, IO e similares, para essas bibliotecas.

9) Kit Web

Este é um mecanismo de navegador de código aberto usado como base para construir navegadores. O padrão Android navegador anterior à versão 4.4 KitKat o usa para renderizar páginas da web. Ele permite que desenvolvedores de aplicativos renderizem componentes da web no sistema de visualização usando WebView. Isso permite que os aplicativos integrem componentes da web em suas funcionalidades.

10) Gerenciador de superfície

O gerenciador de superfície é responsável por garantir a renderização suave das telas do aplicativo. Ele faz isso compondo gráficos 2D e 3D para renderização. Ele ainda permite isso fazendo buffer fora da tela.

Linux Kernel

O componente raiz do Android O sistema é o kernel Linux. É a peça fundamental que permite que todos Androidfuncionalidade do.

Linux Kernel

O Kernel Linux é um software testado em batalha que tem sido usado no desenvolvimento sistemas operacionais para dispositivos de ampla gama, desde supercomputadores até pequenos gadgets. Possui capacidades de processamento limitadas, como pequenos dispositivos em rede para a Internet das Coisas (IoT).

O Kernel do Linux pode ser ajustado para atender às especificações do dispositivo para possibilitar que os fabricantes façam Android dispositivos com capacidades diferentes para combinar com a experiência do usuário.

Com relação à Android, o Kernel é responsável por muitas funcionalidades fundamentais, incluindo, mas não se limitando a estas:

  1. Drivers de dispositivo
  2. Gerenciamento de memória
  3. Gerenciamento de processos

Vamos expandir algumas das funcionalidades:

Drivers de dispositivos

O Kernel do Linux abriga os drivers necessários para possibilitar que o sistema operacional funcione com diferentes componentes de hardware. Esses drivers fornecem uma interface padrão com a qual os componentes de hardware de diferentes fabricantes podem trabalhar.

Isso permite que os fabricantes de dispositivos forneçam diferentes componentes, como componentes Bluetooth, componentes Wifi e componentes de câmera. Desde que os fabricantes correspondam às Android especificações padrão, a integração é perfeita.

1) Driver USB

O Linux também fornece Android com um meio de interface com dispositivos USB. Os dispositivos modernos vêm com diferentes portas USB, incluindo USB 2.0 e novas versões de USB, incluindo USB-C. Esses drivers possibilitam usar a porta USB para carregar, transferir dados ao vivo, como registros do Android dispositivos e interagir com o android sistema de arquivos.

2) Driver Bluetooth

O kernel do Linux fornece suporte para interface com componentes de hardware Bluetooth. Ele fornece uma maneira de ler e gravar dados recebidos de frequências de rádio Bluetooth suportadas. Também oferece um conjunto de facilidades para Android para configurar o Bluetooth.

3) Driver Wi-Fi

O kernel Linux fornece drivers para integrar os componentes de hardware da rede WiFi. Componentes WiFi incorporados em dispositivos móveis permitem Android dispositivos para se conectar a redes wifi. O driver permite que os componentes wifi transmitam redes wifi e criem pontos de acesso.

4) Driver de vídeo

Android torna possível a interface com componentes de exibição. Para a maioria dos dispositivos, o componente de interface é uma tela de toque LCD. Ele permite suporte para configuração e desenho de pixels.

5) Driver de áudio

Android dispositivos geralmente vêm com componentes de hardware para entrada e saída de áudio. Drivers de áudio no kernel permitem o Android sistema para usar o áudio recebido desses componentes e também produzir saída de áudio.

6) Gerenciador de energia

Os mais Android dispositivos são usados ​​enquanto desconectados das tomadas elétricas. Portanto, eles dependem de baterias para alimentá-los durante grande parte de seu uso. O Linux Kernel vem com um sistema de gerenciamento de energia configurável para atender às necessidades dos dispositivos que o utilizam.

Android O sistema operacional usa o gerenciador de energia para tornar outros componentes do dispositivo conscientes da energia. Isso é feito transmitindo vários estados relacionados ao poder. Esses estados são Espera, Suspensão e Bateria Fraca. Sobre Android, o gerenciador de energia é ajustado para o modo de suspensão padrão para garantir a vida útil máxima da bateria.

O Power Manager expõe meios para os aplicativos reagirem a diferentes modos de energia. Os aplicativos também podem alterar seu comportamento para corresponder ao estado de energia atual do dispositivo.

Um aplicativo também pode solicitar a alteração das políticas de energia padrão. Os aplicativos podem alcançar a funcionalidade desejada, como manter os componentes de hardware ativos. Um exemplo é manter a tela ativa ao ler um livro para garantir que o usuário não seja interrompido. Outro exemplo é manter os componentes de áudio ligados ao ouvir música de fundo.

7) Memória Flash

Os mais Android dispositivos usam memória flash como meio de armazenamento. A memória flash é rápida e ocupa menos espaço, tornando-a perfeita para dispositivos pequenos. O kernel do Linux fornece um meio para Android dispositivos para ler e escrever na memória flash. Ele fornece um meio de particionar a memória de forma que o sistema operacional e outros aplicativos possam compartilhar o recurso de memória de maneira fácil e eficiente.

8) Fichário

Android hospeda muitos aplicativos e componentes do sistema que são executados em seus processos. Na maioria dos casos, estes processos devem ser isolados uns dos outros para evitar interferências e corrupção de dados. No entanto, há casos em que desejamos passar dados de um processo para outro.

O kernel Linux permite a funcionalidade de compartilhamento de dados fornecendo drivers de ligação. Os drivers Binder permitem a comunicação entre processos, IPC. O uso de processos IPC pode descobrir outros processos e compartilhar informações.

Gerenciamento de memória

Outra responsabilidade do Kernel Linux é o gerenciamento de memória. À medida que diferentes aplicativos são executados, o Kernel garante que o espaço de memória que eles usam não entre em conflito e se sobrescreva.

Também ajuda a garantir que todos os aplicativos em execução tenham memória adequada para funcionar, garantindo que nenhum aplicativo ocupe muito espaço.

Gerenciamento de processos

Cada aplicativo em Android é executado em um processo. O Kernel também é responsável por gerenciar processos. Isso significa que ele é responsável por criar, pausar, interromper, encerrar ou encerrar processos.

O Kernel permite várias funcionalidades, como executar vários processos ao mesmo tempo, comunicar-se entre processos, executar processos em segundo plano e assim por diante.

Como cada processo requer seu próprio espaço de memória para funcionar corretamente, o Kernel garante que os espaços de memória alocados para cada processo sejam protegidos de outros processos. Também garante que recursos como RAM alocados aos processos são liberados quando os processos são encerrados.

O Kernel Linux também é responsável por distribuir o trabalho aos processadores presentes no dispositivo. Isso torna possível maximizar o desempenho de dispositivos com múltiplos núcleos, pois aplicativos diferentes terão processos executados em núcleos diferentes.

O kernel do Linux realiza mais tarefas ocultas, incluindo reforçar a segurança.

Resumo

  • Android a arquitetura é organizada em camadas.
  • Cada camada resolve um conjunto único de problemas.
  • Os usuários finais interagem com aplicativos na camada de aplicativo
  • Os desenvolvedores de aplicativos desenvolvem aplicativos para serem usados ​​na camada de Aplicativo. Eles fazem isso usando ferramentas e abstrações fornecidas pelo Application Framework.
  • Android A camada Framework simplifica o acesso a componentes de baixo nível criando uma API sobre bibliotecas nativas.
  • Android Runtime e Core-Libraries usam linguagens de baixo nível junto com otimizações para dispositivos móveis. Isso garante que o código escrito pelos desenvolvedores de aplicativos funcione sem problemas, apesar Android restrições do dispositivo.
  • Na parte inferior do Android pilha de software é o kernel do Linux. Ele faz interface com os componentes de hardware comuns em Android dispositivos.