안드로이드 소프트웨어 관리

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Android 오픈 소스 프로젝트(AOSP)는 OEM 및 기타 기기 구현자가 이식하고 자체 하드웨어에서 실행할 수 있는 완전한 소프트웨어 스택을 유지 관리합니다. Android의 품질을 유지하기 위해 Google은 전임 엔지니어, 제품 관리자, 사용자 인터페이스 디자이너, 품질 보증 테스터 및 최신 기기를 출시하는 데 필요한 기타 모든 역할에 기여했습니다.

따라서 현재 안정적인 Android 버전과 불안정한 실험 작업을 명확하게 구분하기 위해 여러 코드 라인을 유지 관리합니다. Android 코드라인의 오픈 소스 관리 및 유지 관리를 더 큰 제품 개발 주기로 전환합니다.

AOSP 코드 관리

아래 차트는 AOSP 코드 관리 및 릴리스 이면의 개념을 보여줍니다.

코드라인 다이어그램
그림 1. AOSP 코드 및 릴리스
  1. 언제든지 Android 플랫폼의 최신 릴리스가 있습니다. 이것은 일반적으로 트리의 가지 형태를 취합니다.
  2. 장치 빌더 및 기여자는 현재 최신 릴리스로 작업하고, 버그를 수정하고, 새 장치를 출시하고, 새 기능을 실험하는 등의 작업을 수행합니다.
  3. 이와 동시에 Google은 제품의 요구 사항과 목표에 따라 Android 플랫폼 및 프레임워크의 다음 버전에서 내부적으로 작업합니다. 우리는 우리가 가야 한다고 생각하는 방향으로 Android를 밀어붙이도록 사양이 선택된 주력 기기의 기기 파트너와 협력하여 Android의 다음 버전을 개발합니다.
  4. n+1번째 버전이 준비되면 공개 소스 트리에 게시되고 새로운 최신 릴리스가 됩니다.

약관 및 주의사항

  • 릴리스 는 1.5 또는 8.1과 같은 Android 플랫폼의 공식 버전에 해당합니다. 플랫폼의 릴리스는 AndroidManifest.xml 파일의 SdkVersion 필드에 있는 버전에 해당하며 소스 트리의 frameworks/base/api 내에 정의됩니다.
  • 업스트림 프로젝트는 Android 스택이 코드를 가져오는 오픈 소스 프로젝트입니다. Linux 커널 및 WebKit과 같은 프로젝트 외에도 ART, Android SDK 도구 및 Bionic과 같은 일부 반자율 Android 프로젝트를 업스트림 프로젝트로 계속 마이그레이션합니다. 일반적으로 이러한 프로젝트는 전적으로 공개 트리에서 개발됩니다. 일부 업스트림 프로젝트의 경우 개발자가 업스트림 프로젝트에 직접 기여합니다. 자세한 내용은 업스트림 프로젝트 를 참조하십시오. 두 경우 모두 스냅샷은 주기적으로 릴리스로 가져옵니다.
  • 항상 릴리스 코드라인(git에서 둘 이상의 분기로 구성될 수 있음)은 주어진 Android 플랫폼 버전에 대한 유일한 정식 소스 코드로 간주됩니다. 장치를 구축하는 OEM 및 기타 그룹은 릴리스 분기에서만 가져와야 합니다.
  • 실험적인 코드라인은 커뮤니티의 변경 사항을 캡처하여 안정성을 염두에 두고 반복할 수 있도록 설정됩니다.
  • 안정적인 것으로 입증된 변경 사항은 결국 릴리스 분기로 가져옵니다. 이는 버그 수정, 애플리케이션 개선 및 플랫폼의 API에 영향을 주지 않는 기타 변경 사항에만 적용됩니다.
  • 변경 사항은 필요에 따라 업스트림 프로젝트(Android 업스트림 프로젝트 포함)에서 릴리스 분기로 가져옵니다.
  • n+1 번째 버전(프레임워크 및 플랫폼 API의 다음 주요 버전)은 Google에서 내부적으로 개발했습니다. 자세한 내용은 비공개 코드라인 을 참조하세요.
  • 변경 사항은 필요에 따라 업스트림, 릴리스 및 실험 분기에서 Google의 비공개 분기로 가져옵니다.
  • 다음 버전의 플랫폼 API가 안정화되고 완전히 테스트되면 Google은 다음 플랫폼 버전(특히 새 SdkVersion )의 릴리스를 중단합니다. 이는 공개 릴리스 분기가 되는 내부 코드라인과 새로운 현재 플랫폼 코드라인에 해당합니다.
  • 새 플랫폼 버전이 삭제되면 해당 실험 코드라인이 동시에 생성됩니다.

비공개 코드라인

위의 소스 관리 전략에는 Google이 현재 공개 버전의 Android에 집중하기 위해 비공개로 유지하는 코드라인이 포함되어 있습니다.

OEM 및 기타 기기 제작업체는 당연히 최신 버전의 Android가 탑재된 기기를 출시하기를 원합니다. 마찬가지로 응용 프로그램 개발자는 필요한 것보다 더 많은 플랫폼 버전을 처리하기를 원하지 않습니다. 한편, 구글은 플랫폼이자 제품으로서의 안드로이드의 전략적 방향에 대한 책임을 진다. 우리의 접근 방식은 Android 관련 지적 재산의 보호를 보호하면서 기능을 구동하는 소수의 주력 기기에 중점을 둡니다.

결과적으로 Google은 제3자의 기밀 정보를 자주 소유하고 있으며 적절한 보호를 받을 때까지 민감한 기능을 공개하지 않아야 합니다. 또한 한 번에 너무 많은 플랫폼 버전이 존재하는 경우 플랫폼에 실제 위험이 있습니다. 이러한 이유로 우리는 현재 공개된 안정적인 Android 버전에 중점을 두도록 오픈 소스 프로젝트(타사 기여 포함)를 구성했습니다. 플랫폼의 다음 버전에 대한 심층 개발은 공식 릴리스가 될 준비가 될 때까지 비공개로 진행됩니다.

우리는 많은 기여자들이 이 접근 방식에 동의하지 않는다는 것을 알고 있으며 그들의 관점을 존중합니다. 그러나 이것이 우리가 가장 좋다고 생각하는 접근 방식이며 Android용으로 구현하기로 선택한 접근 방식입니다.