O código do AOSP navega por diferentes ramificações antes de ser combinado em um lançamento oficial. A Figura 1 mostra as diferentes etapas do ciclo de vida do lançamento.
Figura 1. Ciclo de vida de lançamento do AOSP.
Estas são 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 que fornece código para o AOSP. 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 SDK do Android e o Bionic, para o AOSP. Você pode contribuir diretamente com alguns projetos upstream. Para saber mais, consulte Contribuir com um projeto upstream.
A ramificação de desenvolvimento externo é o que você baixa e modifica no dispositivo. É ela que você poderá usar para contribuir com o código da próxima versão do AOSP.
As mudanças que são enviadas e aprovadas para inclusão na ramificação principal ficam automaticamente disponíveis para todo mundo.
As mudanças aprovadas para a ramificação principal fluem automaticamente para a ramificação de desenvolvimento interno do Google. Essa ramificação só pode ser acessada no Google, e é onde adicionamos novos recursos para o próximo lançamento.
A cada trimestre, aproximadamente, uma ramificação de lançamento interno é criada usando a ramificação de desenvolvimento interno. Ela representa todo o código para o próximo lançamento do AOSP. O Google pode fazer cherry-pick de mudanças nessa ramificação de lançamento para resolver bugs e melhorar o desempenho.
Em algum momento, o código na ramificação de lançamento interno é enviado upstream para voltar para a ramificação de desenvolvimento externo (
main
), onde é usado para criar uma cópia somente leitura de uma ramificação de lançamento no host público do AOSP.