O Android Open Source Project (AOSP) mantém uma pilha completa de software para ser portada por OEMs e outros implementadores de dispositivos e executada em seu próprio hardware. Para manter a qualidade do Android, o Google contribuiu em tempo integral com engenheiros, gerentes de produto, designers de interface de usuário, testadores de garantia de qualidade e todas as outras funções necessárias para lançar dispositivos modernos no mercado.
Conseqüentemente, mantemos uma série de linhas de código para separar claramente a atual versão estável do Android do trabalho experimental instável. Implementamos a administração e manutenção de código aberto das linhas de código do Android no ciclo maior de desenvolvimento de produtos.
Gerenciamento de código AOSP
O gráfico abaixo descreve os conceitos por trás do gerenciamento e lançamentos de código AOSP.
- A qualquer momento, há uma versão mais recente da plataforma Android. Isso normalmente assume a forma de um galho da árvore.
- Os criadores e colaboradores de dispositivos trabalham com a versão mais recente, corrigindo bugs, lançando novos dispositivos, experimentando novos recursos e assim por diante.
- Paralelamente, o Google trabalha internamente na próxima versão da plataforma e framework Android de acordo com as necessidades e objetivos do produto. Desenvolvemos a próxima versão do Android trabalhando com um parceiro em um dispositivo principal cujas especificações são escolhidas para levar o Android na direção que acreditamos que ele deveria seguir.
- Quando a versão n+1 estiver pronta, ela será publicada na árvore de fontes públicas e se tornará a nova versão mais recente.
Termos e advertências
- Um lançamento corresponde a uma versão formal da plataforma Android, como 1.5 ou 8.1. Uma versão da plataforma corresponde à versão no campo
SdkVersion
dos arquivosAndroidManifest.xml
e definida emframeworks/base/api
na árvore de origem. - Um projeto upstream é um projeto de código aberto do qual a pilha do Android extrai código. Além de projetos como o kernel Linux e WebKit, continuamos a migrar alguns projetos Android semiautônomos, como ART, as ferramentas Android SDK e Bionic para funcionarem como projetos upstream. Geralmente, esses projetos são desenvolvidos inteiramente na árvore pública. Para alguns projetos upstream, os desenvolvedores contribuem diretamente para o projeto upstream. Para obter detalhes, consulte Projetos upstream . Em ambos os casos, os instantâneos são periodicamente inseridos nas versões.
- Em todos os momentos, uma linha de código de lançamento (que pode consistir em mais de uma ramificação no git) é considerada o único código-fonte canônico para uma determinada versão da plataforma Android. OEMs e outros grupos que constroem dispositivos devem extrair apenas de uma ramificação de lançamento.
- Linhas de código experimentais são estabelecidas para capturar mudanças da comunidade para que possam ser iteradas visando a estabilidade.
- As alterações que se mostram estáveis são eventualmente colocadas em um branch de lançamento. Isso se aplica apenas a correções de bugs, melhorias de aplicativos e outras alterações que não afetam as APIs da plataforma.
- As alterações são inseridas nas ramificações de lançamento dos projetos upstream (incluindo os projetos upstream do Android), conforme necessário.
- A versão n+1 (a próxima versão principal das APIs da estrutura e da plataforma) é desenvolvida internamente pelo Google. Para obter detalhes, consulte Linhas de código privadas .
- As alterações são extraídas das ramificações upstream, de lançamento e experimentais para a ramificação privada do Google, conforme necessário.
- Quando as APIs da plataforma para a próxima versão forem estabilizadas e totalmente testadas, o Google interromperá o lançamento da próxima versão da plataforma (especificamente, uma nova
SdkVersion
). Isso corresponde à linha de código interna sendo transformada em um branch de lançamento público e à nova linha de código da plataforma atual. - Quando uma nova versão da plataforma é cortada, uma linha de código experimental correspondente é criada ao mesmo tempo.
Linhas de código privadas
A estratégia de gerenciamento de fontes acima inclui uma linha de código que o Google mantém privada para focar a atenção na versão pública atual do Android.
OEMs e outros fabricantes de dispositivos desejam naturalmente enviar dispositivos com a versão mais recente do Android. Da mesma forma, os desenvolvedores de aplicativos não querem lidar com mais versões de plataforma do que o necessário. Enquanto isso, o Google mantém a responsabilidade pela direção estratégica do Android como plataforma e produto. Nossa abordagem se concentra em um pequeno número de dispositivos principais para impulsionar recursos e, ao mesmo tempo, garantir proteções de propriedade intelectual relacionadas ao Android.
Como resultado, o Google frequentemente possui informações confidenciais de terceiros e deve abster-se de revelar recursos confidenciais até garantir as proteções adequadas. Além disso, existem riscos reais para a plataforma se existirem demasiadas versões de plataforma ao mesmo tempo. Por essas razões, estruturamos o projeto de código aberto (incluindo contribuições de terceiros) para focar na versão estável do Android, atualmente pública. O desenvolvimento profundo na próxima versão da plataforma ocorre em privado até que esteja pronto para se tornar um lançamento oficial.
Reconhecemos que muitos colaboradores discordam desta abordagem e respeitamos os seus pontos de vista. No entanto, esta é a abordagem que consideramos melhor e que escolhemos implementar para Android.