| ⬅️ 이전 | 🏠 분류 목차 |
안드로이드 아키텍처
안드로이드 아키텍처
안드로이드 운영체제는 계층적 구조로 설계되어 있으며, 각 계층은 명확한 역할과 책임을 가지고 있습니다.
1. 리눅스 커널 (Linux Kernel)
안드로이드의 가장 하위 계층으로, 하드웨어 추상화와 시스템 리소스 관리를 담당합니다.
주요 기능:
- 하드웨어 드라이버 관리: 디스플레이, 카메라, 센서, 네트워크 등 하드웨어 장치 제어
- 메모리 관리: 프로세스별 메모리 할당 및 관리
- 프로세스 관리: 멀티태스킹 환경에서 프로세스 스케줄링
- 보안: 파일 시스템 권한, 사용자 권한 관리
- 네트워킹: TCP/IP 스택, 무선 네트워크 지원
2. 하드웨어 추상화 계층 (HAL - Hardware Abstraction Layer)
하드웨어와 상위 소프트웨어 계층 사이의 인터페이스를 제공합니다.
역할:
- 하드웨어 제조사별 차이점을 추상화하여 일관된 API 제공
- 카메라, 오디오, 센서 등의 하드웨어 기능을 표준화된 인터페이스로 제공
- 새로운 하드웨어 추가 시 상위 계층 수정 없이 HAL만 수정하면 됨
3. 네이티브 라이브러리 (Native Libraries)
C/C++로 작성된 네이티브 라이브러리들로, 성능이 중요한 기능들을 담당합니다.
주요 라이브러리:
- SQLite: 데이터베이스 관리
- WebKit: 웹 브라우저 엔진
- OpenGL ES: 3D 그래픽 렌더링
- Media Framework: 오디오/비디오 재생 및 녹화
- Surface Manager: 화면 표시 관리
4. 안드로이드 런타임 (Android Runtime)
안드로이드 애플리케이션이 실행되는 환경을 제공합니다.
구성 요소:
- Dalvik Virtual Machine (DVM): 안드로이드 4.4 이전 버전에서 사용
- Android Runtime (ART): 안드로이드 5.0부터 기본 런타임으로 사용
- AOT(Ahead-of-Time) 컴파일로 성능 향상
- 메모리 사용량 최적화
- 배터리 수명 개선
5. 애플리케이션 프레임워크 (Application Framework)
안드로이드 애플리케이션 개발을 위한 고수준 API를 제공합니다.
주요 컴포넌트:
- Activity Manager: 애플리케이션 생명주기 관리
- Window Manager: 화면 레이아웃 및 윈도우 관리
- Content Providers: 데이터 공유 및 접근
- View System: UI 구성 요소
- Notification Manager: 알림 시스템
- Package Manager: 애플리케이션 설치 및 관리
6. 애플리케이션 (Applications)
사용자가 직접 사용하는 애플리케이션들입니다.
기본 애플리케이션:
- 전화, 메시지, 연락처
- 웹 브라우저, 이메일
- 카메라, 갤러리
- 음악 플레이어, 비디오 플레이어
- 설정, 파일 관리자
서브목차