Android ArchiArquitetura: Camadas, Estrutura, Componente

⚡ Resumo Inteligente

Android ArchiA arquitetura é uma pilha de software em camadas que separa as responsabilidades em quatro níveis principais: a camada de aplicação, a estrutura de aplicação e a camada de arquitetura. Android Ambiente de execução com bibliotecas principais e o kernel do Linux. Cada camada resolve problemas distintos e pode ser atualizada independentemente.

  • 📱 Camada de aplicação: A camada superior contém aplicativos voltados para o usuário, como Início, Contatos, Mensagens, E-mail e Navegador.
  • 🧰 Estrutura da aplicação: Java APIs como Activity Manager, Window Manager e Content Provider expõem recursos do dispositivo para desenvolvedores de aplicativos.
  • ⚙️ Ambiente de execução e bibliotecas: O Android O ambiente de execução (ART) executa o código do aplicativo, com suporte para C/C++ bibliotecas como SQLite, OpenGL e WebKit.
  • ???? Kernel Linux: A base fornece drivers de dispositivo, gerenciamento de memória e gerenciamento de processos para o hardware.
  • 🧱 Design em camadas: A separação de responsabilidades permite que cada camada seja desenvolvida, atualizada e corrigida sem afetar as outras.
  • ???? Drivers de hardware: Drivers do kernel para USB, Bluetooth, Wi-Fi, tela e áudio se conectam. Android aos componentes físicos.

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 O Android foi desenvolvido por meio de esforços colaborativos massivos e investimentos de muitas empresas. A principal empresa por trás do desenvolvimento do Android é a [nome da empresa]. GoogleOutras empresas incluem fabricantes de dispositivos como Samsung e LG; fabricantes de processadores como Intel e ARM, para citar apenas algumas.

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. Aplicação
  2. Estrutura de aplicação
  3. Android Tempo de execução e bibliotecas principais
  4. Linux Kernel

Developing Um sistema operacional para dispositivos móveis apresenta uma série de desafios. O uso dessa arquitetura em camadas garante que diferentes problemas sejam decompostos 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 Aplicação

Android Aplicação
Android Aplicação

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 O dispositivo requer um Gmail Conta. Configurando. 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: Swiping Deslizar o dedo para baixo na tela expõe a gaveta de notificações. Ela exibe eventos de aplicativos que o usuário deve conhecer. Acima da notificação, há um conjunto de atalhos para algumas configurações comuns do dispositivo que os usuários podem ativar ou desativar. Essas configurações incluem opções para ativar e desativar vários componentes de hardware, como Bluetooth e Wi-Fi. Pressionar e segurar esses eventos permite navegar até a página de configurações.

Essa camada também é chamada de camada do usuário, em contraste com as camadas abaixo, que são otimizadas principalmente para o desenvolvimento de aplicativos. Os desenvolvedores de aplicativos criam e personalizam as experiências de seus aplicativos nessa 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 pelos fabricantes de dispositivos. Google equipes do Android ou terceiros que desejam usar o Android código-fonte para seu produto ou pesquisa.

Estrutura de aplicação

O 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.

O 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 em um jogo, pararping Música tocando 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

Um aplicativo Android geralmente inclui mais do que apenas código. Ele também contém 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 mantém track de 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 e roteadores.

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 do Linux é um software testado e aprovado que tem sido usado em desenvolvimento.ping 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 o sistema operacional em segundo plano.ping os componentes de hardware ativos. Um exemplo é keeping a tela ativa durante a leitura de um livro para garantir que o usuário não seja interrompido. Outro exemplo é o keeping Os componentes de áudio são ativados quando se ouve música em segundo plano.

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 e encerrar processos.ping, encerrando ou finalizando 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.

Perguntas Frequentes

Dalvik era AndroidO ambiente de execução original do .NET utilizava compilação just-in-time (JIT) de arquivos Dex. O ART substituiu essa técnica pela compilação ahead-of-time (AOT), proporcionando inicialização mais rápida do aplicativo e melhor eficiência da bateria em dispositivos modernos.

Não. Android É baseado no kernel do Linux, que gerencia drivers, memória e processos, mas não é uma distribuição Linux. Android Adiciona seu próprio ambiente de execução, estrutura e bibliotecas acima do kernel.

Android Os aplicativos são escritos principalmente em Java e Kotlin usando as APIs do framework. As camadas inferiores, incluindo as bibliotecas principais e o Kernel do Linux, são escritas em C e C++ para desempenho.

EQUIPAMENTOS Android Os dispositivos executam IA integrada para assistentes de voz, aprimoramentos de câmera, previsão de texto e otimização de bateria. Hardware dedicado para processamento neural e APIs de aprendizado de máquina aceleram essas tarefas de forma eficiente no dispositivo.

Sim. A IA pode explicar cada camada, resumir como um componente como o Gerenciador de Atividades funciona e responder a perguntas adicionais com exemplos. Isso torna a arquitetura em camadas mais fácil de entender para iniciantes.

Resuma esta postagem com: