2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
AOSP 개요
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Android는 여러 폼 팩터를 사용하는 다양한 기기를 위한 운영체제입니다. Android의 문서 및 소스 코드는 Android 오픈소스 프로젝트(AOSP)로 누구나 사용할 수 있습니다. AOSP를 사용하여 자체 기기의 Android OS 맞춤 변형을 만들 수 있습니다.
AOSP는 한 업체가 다른 업체의 혁신을 제한하거나 통제하는 '장애'가 발생하지 않도록 설계되었습니다. 따라서 AOSP는 완전한 프로덕션 품질의 개발자 제품이며 소스 코드가 맞춤설정과 포팅이 가능하도록 공개되어 있습니다.
문서의 이 섹션은 새로운 AOSP 개발자가 플랫폼을 시작하고 필수 개발 작업을 실행하는 데 도움이 됩니다.
필수 용어
다음은 시작하기 문서 전체에서 사용되는 용어 및 정의 목록입니다. 계속 진행하기 전에 각 정의를 살펴봐야 합니다.
- Android 앱 개발자
Android 앱 개발자는 Android 앱 또는 Android에서 실행되는 애플리케이션을 작성합니다. 앱 개발자는 두 가지로 분류됩니다. 퍼스트 파티 (1p) 앱 개발자와 서드 파티 (3p) 앱 개발자입니다.
- Android 퍼스트 파티 앱 개발자
- AOSP 시스템 API에 액세스할 수 있고 권한이 있는 앱과 기기 제조업체 앱을 작성하는 Android 앱 개발자입니다.
- Android 서드 파티 앱 개발자
- Android의 공개 SDK만 사용하여 Android 앱을 만드는 Android 앱 개발자입니다.
Android용 서드 파티 앱을 개발하려면 developers.android.com
을 참고하세요. 이 웹사이트의 정보는 AOSP를 직접 사용하는 개발자만을 대상으로 합니다.
- Android 디버그 브리지 (adb)
- 워크스테이션이 가상 기기나 소프트웨어 에뮬레이션 기기, 실제 기기와 통신할 수 있는 명령줄 도구(
adb
)입니다.
- Android 호환 기기
- Android SDK 및 NDK를 사용하여 서드 파티 개발자가 작성한 서드 파티 앱을 실행할 수 있는 기기입니다. Android 호환 기기는 호환성 정의 문서(CDD)의 요구사항을 준수하고 호환성 테스트 모음(CTS)을 통과해야 합니다. Android 호환 기기는 Android 생태계에 참여할 수 있습니다. 여기에는 Android Play 스토어의 잠재적 라이선스와 Google 모바일 서비스(GMS) 애플리케이션 및 API 모음 관련 잠재적 라이선스, Android 상표 사용이 포함됩니다. 누구나 Android 소스 코드를 사용할 수 있지만 Android 생태계의 일부로 간주되려면 기기가 Android와 호환되어야 합니다. 호환성 및 CTS에 관한 자세한 내용은 Android 호환성 프로그램 개요를 참고하세요.
- 호환성 정의 문서(CDD)
- Android 호환 기기의 하드웨어 및 소프트웨어 요구사항이 나와 있는 문서입니다.
- 기여자
AOSP 소스 코드에 기여한 사람입니다. 기여자는 Google 직원, 다른 회사 직원, 회사와 제휴하지 않은 개인일 수 있습니다. 모든 AOSP 기여자는 동일한 도구를 사용하고 동일한 코드 검토 과정을 따르며 동일한 코딩 스타일을 따릅니다. 기여자가 되어야 AOSP를 사용할 수 있는 것은 아닙니다. 다른 사람이 사용하도록 코드를 기여하지 않아도 AOSP를 다운로드하고 필요에 따라 수정한 후 기기에 배포할 수 있습니다.
Google에서 허용하는 코드 기여의 유형에는 제한이 있습니다. 예를 들어 전체 C++ 기반 환경과 같은 대체 애플리케이션 API를 기여할 수 있습니다. Android는 ART 런타임에서 애플리케이션을 실행하도록 권장하므로 Google은 이러한 기여를 거부합니다. 마찬가지로 라이선스 목표와 호환되지 않는 GPL 또는 LGPL 라이브러리와 같은 기여도 허용되지 않습니다.
소스 코드 기여에 관심이 있다면 작업을 시작하기 전에 Google에 문의하세요.
- 호환성 테스트 모음(CTS)
AOSP에서 바이너리로 또는 소스로 다운로드할 수 있는 상용 등급의 무료 테스트 모음입니다. CTS는 일상 워크플로에 통합되도록 설계된 일련의 단위 테스트입니다. CTS의 목적은 비호환성을 발견하고 개발 과정 내내 소프트웨어의 호환성을 유지하는 것입니다.
- Cuttlefish
Google Cloud Engine과 같은 서드 파티 클라우드 서비스를 사용하여 원격으로 실행할 수 있고 Linux x86 시스템에서 로컬로 실행할 수 있는 구성 가능한 가상 Android 지원 기기입니다.
- 개발자
AOSP 맥락에서 개발자는 어떤 방식으로든 AOSP를 사용하는 모든 사람입니다. '개발자'라는 용어는 OEM, 핸드셋 제조업체, 이동통신사, 단일 칩 시스템(SoC) 제작자 등 이 문서를 읽을 수도 있는 다양한 사람을 일반적으로 지칭하는 데 사용됩니다.
- GMS(Google 모바일 서비스)
기기에 사전 설치할 수 있는 Google 앱 및 API 모음입니다.
- 타겟
특정 모델이나 폼 팩터와 같은 기기의 순열입니다. 예를 들어 aosp_cf_x86_64_only_phone-userdebug
는 cuttlefish 에뮬레이터에서 실행되도록 설계되고 디버깅 정보가 포함된 x86 65MB 휴대전화를 나타냅니다.
거버넌스 철학
Google에서 이끄는 Open Handset Alliance로 알려진 기업들이 Android를 처음 만들었습니다. 현재 OHA의 초기 회원사를 비롯한 많은 기업에서 Android에 집중적으로 투자하고 있습니다. 이들 기업에서는 Android를 개선하고 Android 기기를 시장에 출시할 수 있도록 상당한 엔지니어링 리소스를 할당해 왔습니다.
오픈 플랫폼의 필요성이 이러한 투자를 이끄는 원동력이었습니다. Android는 처음부터 분명하게 오픈소스 프로젝트(무료 소프트웨어와는 다름)로 진행되었으며, 동일한 필요를 느낀 한 그룹의 기업들이 리소스를 모아 공유 제품을 하나로 구현하기 위해 협업해 왔습니다. 무엇보다 Android의 철학은 실용성입니다. 각 참여업체가 맞춤설정할 수 있는 공유 제품을 만드는 것이 Android의 목표입니다.
물론 무분별한 맞춤설정이 호환되지 않는 구현으로 이어질 수 있습니다.
비호환성을 방지하기 위해 AOSP(Android 오픈소스 프로젝트)는 Android 호환성 프로그램을 유지해오고 있습니다. 이 프로그램에서는 Android 호환의 의미와 기기 제조업체에 호환 가능한 상태를 이루는 데 필요한 사항을 상세히 설명합니다. 누구나 어떤 목적으로든 Android 소스 코드를 사용할 수 있으며 Google에서는 합법적인 모든 사용을 환영합니다. 하지만 OHA 회원이 Android를 중심으로 빌드하는 애플리케이션의 공유 생태계에 참여하려면 기기 제조업체는 Android 호환성 프로그램에 참여해야 합니다.
AOSP는 Android를 유지하고 추가로 개발하는 Google에서 주도합니다. Android는 여러 하위 프로젝트로 구성되지만, AOSP에서는 프로젝트 관리만 다룹니다.
Google에서는 Android를 배포, 사양, 교체 가능한 부품이 아닌 하나의 전체적인 소프트웨어 제품으로 보고 관리합니다. Google에서는 기기 제조업체가 사양 구현이나 배포 관리를 담당하는 것이 아닌 Android를 기기로 포팅하는 환경을 구축하기를 바랍니다.
다음 단계
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[null,null,["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# AOSP overview\n\n*Android* is an operating system for a wide array of devices with different\nform factors. The documentation and source code for Android is available to\nanyone as the *Android Open Source Project (AOSP)*. You can use\nAOSP to create custom variants of the Android OS for your own devices.\n\nAOSP is designed so that there's no central point of failure, where one\nindustry player restricts or controls the innovations of another. Therefore,\nAOSP is a full, production-quality developer product with source code open for\ncustomization and porting.\n\nThis section of documentation helps new AOSP developers get started with the\nplatform and to perform essential development tasks.\n\nRequired terms\n--------------\n\nFollowing is a list of terms and definitions used throughout the Getting\nStarted documentation. You should study each definition before continuing\nfurther.\n\n*Android app developer*\n\n: Android app developers writes *Android apps* or applications that run on\n Android. There are two classification of app developers: first-party (1p) and\n third-party (3p) app developers.\n\n *Android first-party app developer*\n : An Android app developer that has access to AOSP System APIs and writes\n privileged and device manufacturer apps.\n\n *Android third-party app developer*\n : An Android app developer who solely uses Android's public SDK to create\n Android apps.\n\nIf you want to develop third-party apps for Android, refer to\n[`developers.android.com`](https://developer.android.com/). The information on\nthis website is solely for those working directly with AOSP.\n\n*Android debug bridge (adb)*\n: A command-line tool (`adb`) that allows your workstation communicate with a\n virtual, software-emulated, or physical device.\n\n*Android-compatible device*\n: A device that can run any third-party app written by third-party developers\n using the Android SDK and NDK. Android-compatible devices must adhere to the\n requirements of the\n [Compatibility Definition Document (CDD)](#cdd) and pass the\n [Compatibility Test Suite (CTS)](#cts). Android-compatible\n devices are eligible to participate in the Android ecosystem which includes\n potential licensure of the Android Play Store, potential licensure the\n [Google Mobile Services (GMS)](#gms) suite of\n applications and APIs, and use of the Android trademark. Anyone is welcome to\n use the Android source code, but to be considered part of the Android ecosystem,\n a device must be Android-compatible. For further information on compatibility\n and CTS, see the\n [Android Compatibility Program overview](/docs/compatibility/overview)\n\n*Compatibility Definition Document (CDD)*\n: A document that enumerates the software and hardware requirements for an\n Android-compatible device.\n\n*Contributor*\n\n: A person who makes contributions to the AOSP source code. Contributors\n can be employees of Google, employees from other companies, and individuals\n with no company affiliation. Every AOSP contributor uses the same tools, follows\n the same code review process, and is subject to the same coding style. You\n don't have to be a contributor to use AOSP; you can download AOSP,\n modify it for your own needs, and deploy it on a device without contributing\n code for others to use.\n\n There are limits to the type of code contributions Google accepts. For example,\n you might want to contribute an alternative application API, such as a full\n C++-based environment. Google would decline that contribution because Android\n encourages applications to be run in the ART runtime. Similarly, Google doesn't\n accept contributions such as GPL or LGPL libraries that are incompatible with\n licensing goals.\n\n If you are interested in contributing source code,\n [contact Google](/docs/setup/community) prior to beginning work.\n\n*Compatibility Test Suite (CTS)*\n\n: A free, commercial-grade test suite, available for download as a binary or as\n source in AOSP. The CTS is a set of unit tests designed to be integrated into\n your daily workflow. CTS's intent is to reveal incompatibilities, and ensure\n that the software remains compatible throughout the development process.\n\n*Cuttlefish*\n\n: A configurable virtual Android-powered device that can run remotely, using\n third-party cloud offerings, such as Google Cloud Engine, and locally on Linux\n x86 machines.\n\n*Developer*\n\n: In the context of AOSP, a developer is anyone who works with AOSP in any\n way. The term \"developer\" is used to generically refer to the various people who\n might read this documentation, such as original equipment manufacturers\n (OEMs), handset makers, carriers, and System-on-a-Chip (SoC) creators.\n\n*Google Mobile Services (GMS)*\n\n: A collection of Google apps and APIs that can be pre-installed on devices.\n\n*Target*\n\n: A permutation of a device, such as a specific model or form factor. For\n example, `aosp_cf_x86_64_only_phone-userdebug` represents a x86 65MB phone with\n debugging information that is designed to run on the cuttlefish emulator.\n\nGovernance philosophy\n---------------------\n\nA group of companies known as the Open Handset Alliance (OHA), led by Google,\noriginated Android. Today, many companies---both original members of the OHA and\nothers---have invested heavily in Android. These companies have allocated\nsignificant engineering resources to improve Android and bring Android devices\nto market.\n\nThe companies that have invested in Android have done so because they believe an\nopen platform is necessary. Android is intentionally and explicitly an open\nsource effort (as opposed to free software); a group of organizations with\nshared needs has pooled resources to collaborate on a single implementation of a\nshared product. First and foremost, the Android philosophy is pragmatic. The\nobjective is a shared product that each contributor can tailor and customize.\n\nOf course, uncontrolled customization can lead to incompatible implementations.\nTo prevent incompatibility, the Android Open Source Project (AOSP) maintains\nthe\n[Android Compatibility program](/docs/compatibility/overview),\nwhich spells out what it means to be Android-compatible and what's required of\ndevice builders to achieve that status. Anyone can use the Android source code\nfor any purpose, and Google welcomes all legitimate uses. However, to take part\nin the shared ecosystem of applications OHA members are building around Android,\ndevice builders must participate in the Android Compatibility program.\n\nAOSP is led by Google, who maintains and further develops Android. Although\nAndroid consists of multiple subprojects, AOSP is strictly project management.\nGoogle views and manage Android as a single, holistic software product, not a\ndistribution, specification, or collection of replaceable parts. Google's intent\nis that device builders port Android to a device; they don't implement a\nspecification or curate a distribution.\n\nWhat's next?\n------------\n\n- If you're new to AOSP and want to run through a tutorial on AOSP\n development, proceed with [AOSP tutorial](/docs/setup/start).\n\n- If you believe that your device needs to be Android-compatible, refer to the\n [Android Compatibility program](/docs/compatibility/overview).\n\n- If you want to learn about the background of AOSP, including Google's\n participation in the platform, see\n [AOSP frequently asked questions](/docs/setup/about/faqs)."]]