https://source.android.com/docs/setup/about?hl=ko
Android OS 공식 문서를 정리한 글입니다.
AOSP 개요
AOSP – Android Open Source Project
Android의 문서 및 소스 코드는 Android 오픈소스 프로젝트로 누구나 사용 가능
AOSP를 사용하여 자체 기기의 Android OS 맞춤 변형 가능
필수 용어
Android 앱 개발자
- Android 앱 또는 Android에서 실행되는 애플리케이션을 작성
1. Android 퍼스트 파티 앱 개발자
: AOSP 시스템 API에 액세스할 수 있고 권한이 있는 앱과 기기 제조업체 앱을 작성하는 Android 앱 개발자
2. Android 서드 파티 앱 개발자
: Android의 공개 SDK만 사용하여 Android 앱을 만드는 Android 앱 개발자
: Android용 서드 파티 앱을 개발하려면 developers.android.com 을 참고
Android 디버그 브리지(adb)
- 워크스테이션이 가상 기기나 소프트웨어 에뮬레이션 기기, 실제 기기와 통신할 수 있는 명령줄 도구 (adb)
Android 호환 기기
- Android SDK 및 NDK를 사용하여 서드 파티 개발자( Android 의 공개 SDK 만 사용하여 Android 앱을 만드는 개발자 ) 가 작성한 서드 파티 앱을 실행할 수 있는 기기
- Android 호환 기기는 호환성 정의 문서(CDD)의 요구사항을 준수하고 호환성 테스트 모음(CTS)을 통과해야함.
- Android 호환 기기는 Android 생태계에 참여할 수 있음
- 여기에는 Android Play 스토어의 잠재적 라이선스와 Google 모바일 서비스(GMS) 애플리케이션 및 API 모음 관련 잠재적 라이선스, Android 상표 사용이 포함
- 누구나 Android 소스 코드를 사용할 수 있지만 Android 생태계의 일부로 간주되려면 기기가 Android와 호환되어야 함.
승인자
- 플랫폼의 기술 및 설계에 상당히 기여한 AOSP 커뮤니티의 숙련된 회원
- 코드 검토 과정에서 승인자는 변경사항을 포함할지 결정
- 프로젝트 책임자(일반적으로 Google에서 고용)가 승인자를 선택하며 특정 AOSP 부분에서 전문성을 입증하는 경우 인증자를 승인자 지위로 승진시키기도 함.
호환성 정의 문서(CDD)
- Android 호환 기기의 하드웨어 및 소프트웨어 요구사항이 나와 있는 문서입니다.
기여자
- AOSP 소스 코드에 기여한 사람
- 기여자는 Google 직원, 다른 회사 직원, 회사와 제휴하지 않은 개인일 수 있음
- 모든 AOSP 기여자는 동일한 도구를 사용하고 동일한 코드 검토 과정을 따르며 동일한 코딩 스타일을 따름.
- 기여자가 되어야 AOSP를 사용할 수 있는 것은 아님.
- 다른 사람이 사용하도록 코드를 기여하지 않아도 AOSP를 다운로드하고 필요에 따라 수정한 후 기기에 배포할 수 있음.
참고: AOSP에는 커밋한 사용자 개념이 없음. 승인자의 승인을 얻기 위해 누구나 AOSP에 기여를 제출할 수 있음.
Google에서 허용하는 코드 기여의 유형에는 제한이 있음.
- 예로 전체 C++ 기반 환경과 같은 대체 애플리케이션 API를 기여할 수 있음.
- Android는 ART 런타임에서 애플리케이션을 실행하도록 권장하므로 Google은 이러한 기여를 거부
- 마찬가지로 라이선스 목표와 호환되지 않는 GPL 또는 LGPL 라이브러리와 같은 기여도 허용되지 않음.
호환성 테스트 모음(CTS)
- AOSP에서 바이너리로 또는 소스로 다운로드할 수 있는 상용 등급의 무료 테스트 모음
- CTS는 일상 워크플로에 통합되도록 설계된 일련의 단위 테스트
- CTS의 목적은 비호환성을 발견하고 개발 과정 내내 소프트웨어의 호환성을 유지하는 것
Cuttlefish
- Google Cloud Engine과 같은 서드 파티 클라우드 서비스를 사용하여 원격으로 실행할 수 있고 Linux x86 시스템에서 로컬로 실행할 수 있는 구성 가능한 가상 Android 지원 기기
개발자
- AOSP 맥락에서 개발자는 어떤 방식으로든 AOSP를 사용하는 모든 사람
- '개발자' 라는 용어는 OEM, 핸드셋 제조업체, 이동통신사, 단일 칩 시스템(SoC) 제작자 등 이 문서를 읽을 수도 있는 다양한 사람을 일반적으로 지칭하는 데 사용됨.
GMS(Google 모바일 서비스)
- 기기에 사전 설치할 수 있는 Google 앱 및 API 모음입니다.
타겟
- 특정 모델이나 폼 팩터와 같은 기기의 순열
- 예를 들어 aosp_cf_x86_64_phone-userdebug는 cuttlefish 에뮬레이터에서 실행되도록 설계되고 디버깅 정보가 포함된 x86 65MB 휴대전화를 나타냄.
인증자
- AOSP 변경사항을 다운로드하고 인증하는 Android 커뮤니티의 소중한 기여자
- AOSP에 상당한 양의 고품질 코드를 제출하면 인증자가 되도록 프로젝트 책임자가 요청할 수 있음.