No momento, você está visualizando Sistema Operacional Mobile Android – Arquitetura

Sistema Operacional Mobile Android – Arquitetura

  • Última modificação do post:maio 17, 2025
  • Categoria do post:Android-grunnlag

A arquitetura do sistema Android é organizada em camadas. Cada camada possui um papel bem definido, isto é, cada uma é responsável por realizar determinada função. As camadas do Android são:

  • Camada de Aplicação: onde são executadas as aplicações nativas e não nativas do Android;
  • Camada JAVA API: camada responsável por fornecer recursos de serviços aos desenvolvedores;
  • Camada de Biblioteca: camada que contém as principais bibliotecas C/C++ para o sistema;
  • Camada Runtime: responsável pela execução da plataforma Android;
  • Camada de abstração de hardware (HAL): camada responsável por realizar uma abstração de hardware, isto é, essa camada é responsável por fazer a intermediação entre as necessidades do usuário com o hardware;
  • Camada de kernel Linux: responsável por realizar a ligação entre o hardware e o software.

Vamos explorar cada uma delas nas seções seguintes.

Camada de Aplicação

Esta camada é responsável por executar aplicações sobre a plataforma Android. Essas aplicações podem ser nativas do sistema, por exemplo, um gerenciador de contatos, um calendário, um navegador, dentre outros. 

Camada JAVA API

Esta camada é responsável por fornecer serviços para os aplicativos. Aqui estão as ferramentas necessárias para a criação de aplicativos acessando os recursos do Android. Nessa camada, temos um foco muito grande no reuso de componentes. 

Essa camada disponibiliza recursos para criação de views, gerenciamento de recursos, acesso à agenda, criação de alertas para os usuários, dentre outros recursos. É importante observar que, é nessa camada que o desenvolvedor pode acessar as mesmas funcionalidades dos aplicativos do sistema. Assim, tanto os aplicativos nativos, como os não nativos acessam as funcionalidades do Android

Ainda sobre essa camada, podemos mencionar a classe Activity, que é uma classe pré-definida e muito utilizada por desenvolvedores. Essa classe permite gerenciar o ciclo de vida de todas as atividades.

Nela ainda é possível acessar a gerência de localização, notificação, pacotes, recursos, dentre outros.

Camada de Biblioteca

Esta camada possui as principais bibliotecas C/C++ que são utilizadas pelos recursos do sistema. Estas bibliotecas também podem ser acessadas por desenvolvedores. Elas são: WebkitOpenMAX AL, LibcMedia frameworkOpenGL ES, SQLite, freetypesystem c librariessurface managerlibwebcore, dentre outras. Algumas API facilitam o acesso a essas bibliotecas, como o OpenGL API, que possibilita acessar o OpenGL ES. Assim, podemos observar que os frameworks nativos do Android têm uma boa aplicabilidade.   

Camadas de Runtime

Esta camada é responsável pela execução do Android. Ela cria uma instância da máquina virtual Dalvik

“O Dalvik funciona da seguinte maneira, ao realizar o desenvolvimento de aplicações para o Android, o desenvolvedor vai utilizar a linguagem e todos os seus recursos normalmente, mas depois que o bytecode é compilado, ele é convertido para o formato .dex (Dalvik Executable), que representa a aplicação do Android compilada, então os arquivos .dex e outros recursos como imagens são compactados em um único arquivo com extensão .apk (Android Package File), que representa a aplicação final, pronta para ser distribuída e instalada.”

Assim, o Dalvik realiza uma compilação, isto é, realiza uma tradução do bytecode para um código de máquina, onde o Android está executando. Este código é executado pelo processador do dispositivo. É importante observar que essa tradução ocorre em tempo de execução do aplicativo. 

Camada de Abstração de Hardware

Esta camada é responsável por fornecer interfaces que mostram a capacidade do hardware do dispositivo para a API de maior nível, a qual é utilizada pelo desenvolvedor em suas aplicações. Em palavras mais simples, essa camada é responsável por fornecer interfaces (meios) para que os aplicativos utilizem hardwares específicos tais como câmera e bluetooth. Quando um aplicativo realiza uma chamada de sistema para acessar um hardware, o Android carrega o módulo da biblioteca para esse hardware.

Em suma, abstração de hardware é o meio pelo qual o software possibilita a nós, usuários, utilizar o hardware. É importante observar que essa camada está sobre o Kernel.

Kernel

Esta é a camada mais interna do Android. Sua responsabilidade é a de realizar ligação entre o hardware e o software. Podemos dizer ainda que essa camada visa gerenciar o dispositivo móvel e permitir que os aplicativos sejam processados, bem como garantir que os aplicativos realmente utilizem o hardware. Nesta camada é realizado o gerenciamento de memória RAM, como também o gerenciamento dos processos. Um processo é um programa (aplicativo) rodando.

Kernel do Android foi projetado com base no Kernel 2.6 do Linux, assim, possui as mesmas característica do Kernel do Linux tais como, gestão de processos e segurança