⬅️ 이전     🏠 분류 목차

안드로이드 아키텍처

안드로이드 아키텍처

안드로이드 운영체제는 계층적 구조로 설계되어 있으며, 각 계층은 명확한 역할과 책임을 가지고 있습니다.

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)

사용자가 직접 사용하는 애플리케이션들입니다.

기본 애플리케이션:

  • 전화, 메시지, 연락처
  • 웹 브라우저, 이메일
  • 카메라, 갤러리
  • 음악 플레이어, 비디오 플레이어
  • 설정, 파일 관리자

⬅️ 이전

서브목차