Visão geral do AOSP

O Android é um sistema operacional para uma ampla gama de dispositivos com diferentes formatos. A documentação e o código-fonte do Android estão disponíveis para todo mundo pelo Android Open Source Project (AOSP). Você pode usar o AOSP para criar variantes personalizadas do SO Android para seus próprios dispositivos.

O AOSP foi desenvolvido para não ter um ponto central de falha que possibilite que alguém do setor restrinja ou controle as inovações de outras pessoas. O AOSP é um produto completo para desenvolvedores, com qualidade de produção e código-fonte aberto para personalização e portabilidade.

Esta seção da documentação ajuda novos desenvolvedores do AOSP a começar a usar a plataforma e a executar tarefas essenciais de desenvolvimento.

Termos obrigatórios

Segue uma lista de termos e definições usados em todo o curso Documentação iniciada. Estude cada definição antes de continuar mais adiante.

Desenvolvedor de apps Android

Desenvolvedores de apps Android criam apps Android ou aplicativos que são executados no Android. Os desenvolvedores de apps podem ser classificados em duas categorias: próprios (1p) e desenvolvedores de apps de terceiros.

Desenvolvedor de apps Android próprio
É aquele que tem acesso às APIs do sistema AOSP e cria apps reservados e de fabricantes de dispositivos.
Desenvolvedor de apps Android de terceiros
É aquele que usa apenas o SDK público do Android para criar apps Android.

Se você deseja desenvolver apps de terceiros para Android, consulte developers.android.com As informações neste site destinam-se apenas às pessoas que trabalham diretamente com o AOSP.

Android Debug Bridge (adb)
Uma ferramenta de linha de comando (adb) que permite que sua estação de trabalho se comunique com um dispositivo virtual, físico ou emulado por software.
Dispositivo compatível com Android
Um dispositivo que pode executar qualquer app criado por desenvolvedores de terceiros usando o SDK e o NDK do Android. Dispositivos compatíveis com Android precisam atender aos requisitos do Documento de definição de compatibilidade (CDD) e ser aprovados no Conjunto de teste de compatibilidade (CTS). Dispositivos compatíveis com Android podem participar do nosso ecossistema que inclui potencial licenciamento da Android Play Store, do pacote de apps e APIs dos Serviços do Google Mobile (GMS) e do uso da marca registrada do Android. Aceitamos todos os usos do código-fonte, mas, para participar do nosso ecossistema, o dispositivo precisa ser compatível com Android. Para mais informações sobre compatibilidade e o CTS, consulte a visão geral do Programa de compatibilidade do Android
Documento de definição de compatibilidade (CDD)
Um documento que enumera os requisitos de software e hardware de um dispositivo compatível com o Android.
Colaborador

Uma pessoa que faz contribuições para o código-fonte do AOSP. Colaboradores podem ser funcionários do Google ou de outras empresas, bem como indivíduos sem afiliação a nenhuma empresa. Todos os colaboradores do AOSP usam as mesmas ferramentas, seguem o mesmo processo de revisão de código e estão sujeitos ao mesmo estilo de programação. Você não precisa ser um colaborador para usar o AOSP; poderá fazer o download do AOSP, modificá-lo de acordo com suas necessidades e implantá-lo em um dispositivo sem contribuir códigos para outras pessoas usarem.

Existem limites para os tipos de contribuições de código que o Google aceita. Por exemplo, talvez você queira contribuir para uma API de aplicativo alternativo, como um ambiente completo baseado em C++. O Google recusaria essa contribuição, já que o Android incentiva que os aplicativos sejam executados no ambiente ART. Da mesma forma, o Google não aceita contribuições como bibliotecas GPL ou LGPL incompatíveis com os objetivos de licenciamento.

Se você tiver interesse em contribuir com código-fonte, entre em contato com o Google antes de iniciar o trabalho.

Conjunto de teste de compatibilidade (CTS)

Um pacote de testes de nível comercial grátis para download como binário ou como fonte no AOSP. O CTS é um pacote de testes de unidade criado para integração no seu fluxo de trabalho diário. O objetivo do CTS é revelar incompatibilidades e garantir que o software permaneça compatível durante todo o processo de desenvolvimento.

Cuttlefish

Um dispositivo virtual Android configurável que pode ser executado remotamente, usando soluções de terceiros em nuvem, como o Google Cloud Engine, e localmente em máquinas Linux x86.

Desenvolvedor

No contexto do AOSP, um desenvolvedor é qualquer pessoa que trabalha com essa versão de código aberto do Android. O termo "desenvolvedor" é usado para se referir genericamente às várias pessoas que podem ler esta documentação, como fabricantes de equipamentos originais (OEMs), fabricantes de celulares, operadoras e criadores de SoC (system on a chip).

Serviços do Google Mobile (GMS)

Uma coleção de APIs e apps Google que podem ser pré-instalados em dispositivos.

Destino

Uma permutação de um dispositivo, como um modelo ou formato específico. Por exemplo, aosp_cf_x86_64_phone-userdebug representa um smartphone x86 de 65 MB com informações de depuração criadas para execução no emulador cuttlefish.

Filosofia de governança

Um grupo de empresas conhecido como a Open Handset Alliance (OHA), liderado pelo Google, criou o Android. Várias empresas (membros originais da OHA e outras) investiram muito no Android. Elas alocaram recursos de engenharia significativos para melhorar o sistema e levar os dispositivos Android ao mercado.

As empresas que investiram no Android fizeram isso porque acreditam nas vantagens de uma plataforma aberta. O Android é intencional e explicitamente uma iniciativa de código aberto, não um software livre. Um grupo de organizações com as mesmas necessidades uniu recursos para colaborar em uma única implementação de um produto compartilhado. Antes de mais nada, a filosofia do Android é pragmática. O objetivo é ter um produto compartilhado que cada colaborador possa ajustar e personalizar.

A personalização descontrolada pode, obviamente, levar a implementações incompatíveis. Para evitar isso, o Android Open Source Project (AOSP) mantém o Programa de compatibilidade do Android, que especifica o que significa ser compatível com o Android e o que é necessário para que os fabricantes de dispositivos conquistem esse status. Qualquer pessoa pode usar o código-fonte do Android para qualquer finalidade, e o Google aceita todos os usos legítimos. No entanto, para participar no ecossistema compartilhado de aplicativos que os membros da OHA estão criando em torno do Android, fabricantes de dispositivos precisam participar do Programa de compatibilidade do Android.

O AOSP é liderado pelo Google, que mantém e desenvolve o sistema. Embora o Android tenha vários subprojetos, o AOSP é estritamente um gerenciamento de projeto. O Google enxerga e gerencia o Android como um produto de software único e holístico, não como uma distribuição, especificação ou coleção de partes substituíveis. A intenção do Google é que os fabricantes levem o Android para um dispositivo, não que eles implementem uma especificação ou organizem uma distribuição.

Qual é a próxima etapa?