안녕하세요. 메로나입니다.
오늘은 AOSP를 공부하겠습니다.
AOSP(Android Open Source Project)란?
- 구글이 개발한 안드로이드 운영체제의 오픈 소스 버전
- 누구나 안드로이드 소스 코드를 다운로드하고, 수정하고, 커스텀 버전을 만들 수 있음
AOSP 목적
- 안드로이드 운영체제의 개방성 유지
- OEM(제조사) 및 개발자들이 자유롭게 안드로이드를 수정할 수 있도록 제공
- 스마트폰, 태블릿, 스마트 TV 등 다양한 디바이스에서 활용 가능
AOSP의 주요 구성 요소
- Linux Kernel
- 안드로이드는 리눅스 커널을 기반으로 동작
- 커널은 디바이스 드라이버, 메모리 관리, 프로세스 관리 등의 기능을 수행
- Native Libraries
- Bionic libc: 안드로이드의 표준 C 라이브러리
- SQLite: 데이터베이스 저장용
- WebKit: 웹 브라우저 엔진
- OpenGL ES -> 3D 그래픽 렌더링
- Android Runtime(ART & Dalvik)
- 안드로이드는 JAVA 기반 실행
- JAVA 코드를 실행하기 위해 Android Runtime과 과거의 Dalvik VM을 사용
- 최신 버전은 ART(Android Runtime)가 기본 실행 환경
- Application Framework
- Activity Manager: 앱의 생명주기 관리
- Window Manage: UI 창 관리
- Content Providers: 앱 간 데이터 공유
- View System: UI 구성 요소
- System App
- AOSP에는 전환, 메시지, 연락처, 카메라, 브라우저 같은 기본적인 시스템 앱이 포함
- 구글의 play store, gmail, google map 등은 AOSP에 포함되지 않음
AOSP 소스 코드 다운로드 및 빌드 방법
- Git 기반으로 관리됨
- 구글에서 공식적으로 소스 코드를 제공
1. 필요한 패키지 설치 (Ubuntu 기준)
sudo apt-get update
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev \
ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
2. Repo 도구 다운로드 및 설정
mkdir ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
3. AOSP 소스 다운로드
mkdir aosp
cd aosp
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r1
repo sync -j4 # 병렬 다운로드 (속도 빠르게)
4. AOSP 빌드
source build/envsetup.sh
lunch aosp_arm-eng # ARM 에뮬레이터 빌드 설정
make -j$(nproc) # CPU 코어 개수만큼 병렬 빌드
참고 문헌
https://source.android.com/?hl=ko
Android 오픈소스 프로젝트 | Android Open Source Project
Android는 세계를 하나로 묶어줍니다. 기기를 실행할 운영체제로 오픈소스 Android 운영체제를 사용하세요. 복사
source.android.com
https://source.android.com/docs/setup/download/downloading?hl=ko
소스 다운로드 | Android 오픈소스 프로젝트 | Android Open Source Project
소스 다운로드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 소스 트리는 Google에서 호스팅하는 Git 저장소에 있습니다. Git 저장소에는 소스 변경사항
source.android.com
간단하게 AOSP 맛보기로 공부해보았는데 직접 해보는 것이 가장 좋은 것 같다는 생각이 듭니다.
그럼 20000~
'Android' 카테고리의 다른 글
| [Android] NDK(Native Development Kit) (0) | 2025.04.06 |
|---|---|
| [Android] Context (0) | 2025.04.06 |
| [Android] 안드로이드 리다이렉션 처리 (0) | 2025.02.28 |
| [Android] 미디어 프로젝션(Media Projection) (0) | 2025.02.27 |
| [Android] Android App Bundle(AAB) (0) | 2025.01.26 |