AOSP 코드는 공식 출시에 병합되기 전에 여러 브랜치를 거칩니다. 그림 1은 이 출시 수명 주기의 다양한 단계를 보여줍니다.
그림 1. AOSP 출시 수명 주기
수명 주기의 단계는 다음과 같습니다.
업스트림 프로젝트 코드는
main
라는 외부 개발 브랜치로 흐릅니다.업스트림 프로젝트는 AOSP가 코드를 가져오는 오픈소스 프로젝트입니다. Google은 Linux 커널 및 WebKit과 같은 프로젝트 외에도 ART, Android SDK 도구, Bionic과 같은 일부 반자동 Android 프로젝트를 AOSP로 이전합니다. 일부 업스트림 프로젝트에는 직접 참여할 수 있습니다. 자세한 내용은 업스트림 프로젝트에 기여를 참고하세요.
외부 개발 브랜치는 기기용으로 다운로드하여 수정하는 브랜치입니다. 이 브랜치에서 다음 버전의 AOSP에 코드를 기여할 수 있습니다.
업로드되고 main에 포함되도록 승인된 변경사항은 기본 브랜치를 사용하는 모든 사용자에게 자동으로 제공됩니다.
기본에 대한 승인된 변경사항은 자동으로 Google의 내부 개발 브랜치로 전달됩니다. 이 브랜치는 Google 내에서만 액세스할 수 있으며 Google은 다음 출시를 위한 새로운 기능을 추가합니다.
대략 분기마다 내부 개발 브랜치에서 내부 출시 브랜치가 생성됩니다. 이 브랜치는 AOSP의 다음 출시를 위한 모든 코드를 나타냅니다. Google은 버그 수정 및 성능 개선을 위해 이 출시 브랜치에서 변경사항을 체리피킹할 수 있습니다 .
특정 시점에 내부 출시 브랜치의 코드는 외부 개발 브랜치 (
main
)와 다시 병합하기 위해 업스트림으로 푸시되고 공개 AOSP 호스트에서 출시 브랜치의 읽기 전용 사본을 만드는 데 사용됩니다.