O código do AOSP passa por diferentes ramificações antes de ser combinado em uma versão oficial. A Figura 1 mostra as várias etapas desse ciclo de vida de lançamento.
Figura 1. Ciclo de vida da versão do AOSP.
Confira a seguir as etapas do ciclo de vida:
O código do projeto upstream flui para a ramificação de desenvolvimento externo, chamada
main
.Um projeto upstream é um projeto de código aberto do qual o AOSP extrai código. Além de projetos como o kernel do Linux e o WebKit, o Google migra alguns projetos Android semiautônomos, como o ART, as ferramentas do Android SDK e o Bionic para o AOSP. É possível contribuir diretamente com alguns projetos upstream. Para mais detalhes, consulte Contribuir para um projeto upstream.
A ramificação de desenvolvimento externa é o que você baixa e modifica para o dispositivo. É nela que você pode contribuir com código para a próxima versão do AOSP.
As mudanças que são enviadas e aprovadas para inclusão na principal ficam disponíveis automaticamente para todos que usam a ramificação principal.
As mudanças aprovadas no principal fluem automaticamente para a ramificação de desenvolvimento interno do Google. Essa ramificação só é acessível no Google e é onde o Google adiciona novos recursos para a próxima versão.
A cada trimestre, uma ramificação de lançamento interna é criada na ramificação de desenvolvimento interna. Essa ramificação representa todo o código da próxima versão para o AOSP. O Google pode escolher as mudanças neste branch de lançamento para corrigir bugs e melhorar o desempenho .
Em algum momento, o código na ramificação de lançamento interno é enviado para mesclar com a ramificação de desenvolvimento externo (
main
) e é usado para criar uma cópia somente leitura de uma ramificação de lançamento no host público do AOSP.