O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Arquitetura AOSP

O Android Open System Platform (AOSP) é um código-fonte Android publicamente disponível e modificável. Qualquer um pode baixar e modificar o AOSP para seu dispositivo. AOSP fornece uma implementação completa e totalmente funcional da plataforma móvel Android.

Existem dois níveis de compatibilidade para dispositivos implementando AOSP: compatibilidade AOSP e compatibilidade Android. Um dispositivo compatível com AOSP deve estar em conformidade com a lista de requisitos do Documento de Definição de Compatibilidade (CDD) . Um dispositivo compatível com Android deve estar em conformidade com a lista de requisitos no CDD e Requisitos de software do fornecedor (VSR) e testes como os do Vendor Test Suite (VTS) e Compatability Test Suite (CTS) . Para obter mais informações sobre a compatibilidade do Android, consulte o programa de compatibilidade do Android .

arquitetura AOSP

A pilha de software para AOSP contém as seguintes camadas:

Arquitetura de pilha de software AOSP
Figura 1. Arquitetura de pilha de software AOSP.
  • aplicativo Android. Um aplicativo criado exclusivamente usando a API do Android no SDK do Android. A Google Play Store é amplamente usada para encontrar e baixar aplicativos Android, embora existam muitas outras alternativas. Em alguns casos, um fabricante de dispositivo pode querer pré-instalar um aplicativo Android para dar suporte à funcionalidade principal do dispositivo. Se você estiver interessado em desenvolver aplicativos Android, acesse developers.android.com .
  • Aplicativo privilegiado. Um aplicativo criado usando uma combinação das APIs do Android e do sistema. Esses aplicativos devem ser pré-instalados como aplicativos privilegiados em um dispositivo.
  • Aplicativo de fabricação de dispositivos. Um aplicativo criado usando uma combinação de API do Android, API do sistema e acesso direto à implementação da estrutura do Android. Como um fabricante de dispositivo pode acessar diretamente APIs instáveis ​​na estrutura do Android, esses aplicativos devem ser pré-instalados no dispositivo e podem ser atualizados somente quando o software do sistema do dispositivo for atualizado.
  • Estrutura do Android. Um grupo de classes Java, interfaces e outros códigos pré-compilados sobre os quais os aplicativos são construídos. Partes da estrutura são acessíveis publicamente por meio do uso das APIs do Android SDK do Android. Outras partes da estrutura estão disponíveis apenas para OEMs por meio do uso das APIs do sistema Android SDK. O código da estrutura do Android é executado dentro do processo de um aplicativo.
  • SDK do Android. Um kit de desenvolvimento de software para uso na criação de aplicativos que interagem com a estrutura do Android. O Android SDK consiste na API Android, disponível para todos os aplicativos, e na API do sistema, disponível apenas para aplicativos privilegiados. Para obter mais informações sobre a API Android do Android SDK, acesse developers.android.com . Observe que também há um kit de desenvolvimento nativo do Android (NDK) que permite escrever parte do seu aplicativo Android usando código nativo.
  • Serviços do sistema. Os serviços do sistema são componentes modulares e focados, como system_server , SurfaceFlinger e MediaService. A funcionalidade exposta pela API da estrutura do Android se comunica com os serviços do sistema para acessar o hardware subjacente.
  • Tempo de execução do Android (ART). Um ambiente de tempo de execução de aplicativo Java fornecido pelo AOSP. O ART realiza a tradução do bytecode do aplicativo em instruções específicas do processador que são executadas pelo ambiente de tempo de execução do dispositivo.
  • Camada de abstração de hardware (HAL). Um HAL é uma camada de abstração com uma interface padrão para os fornecedores de hardware implementarem. HALs permitem que o Android seja agnóstico sobre implementações de driver de nível inferior. O uso de um HAL permite implementar funcionalidades sem afetar ou modificar o sistema de nível superior.
  • Para obter mais informações, consulte a visão geral do HAL .
  • Daemons e bibliotecas nativas. Os daemons nativos nesta camada incluem init , healthd , logd e storaged . Esses daemons interagem diretamente com o kernel ou outras interfaces e não dependem de uma implementação HAL baseada no espaço do usuário. Bibliotecas nativas nesta camada incluem libc , liblog , libutils , libbinder e libselinux . Essas bibliotecas nativas interagem diretamente com o kernel ou outras interfaces e não dependem de uma implementação HAL baseada no espaço do usuário.
  • Núcleo. A parte central de qualquer sistema operacional, o kernel se comunica com o hardware subjacente em um dispositivo. Sempre que possível, o kernel AOSP é dividido em módulos independentes de hardware e módulos específicos do fornecedor. Para obter uma descrição, incluindo definições, dos componentes do kernel AOSP, consulte a Visão geral do kernel .

Qual é o próximo?

  • Se você é novo no AOSP e deseja iniciar o desenvolvimento, vá para a seção Introdução .
  • Se você quiser saber mais sobre uma camada específica do AOSP, clique no nome da camada na navegação à esquerda e comece com a visão geral dessa camada.