콘텐츠로 이동

Android 구조 (Android Architecture)

Jan 25, 2026

Open Handset Alliance(Google 주도)가 개발한 모바일 운영체제로, Linux 커널 위에 계층화된 소프트웨어 스택을 제공한다. 다양한 모바일 플랫폼에서 실행되며 오픈소스로 빠르게 인기를 얻었다.

애플리케이션 사용자 앱 계층
Android 프레임워크 앱 개발을 위한 API
ART VM + JNI 런타임 환경
네이티브 라이브러리 SQLite, OpenGL, SSL 등
HAL Hardware Abstraction Layer
Bionic 표준 C 라이브러리
Linux 커널 수정된 Linux 커널
하드웨어 물리적 장치
특성설명
목적제한된 메모리와 CPU를 가진 모바일 기기에 최적화된 가상 머신
컴파일 방식AOT (Ahead-of-Time) 컴파일 - 설치 시 .dex 파일을 네이티브 기계어로 컴파일
장점더 효율적인 앱 실행, 전력 소비 감소
vs JIT많은 Java VM이 JIT(Just-in-Time) 사용, ART는 AOT 사용
1 Java 소스
.java 파일 작성
2 .class
Java 바이트코드로 컴파일
3 .dex
Dalvik Executable 형식으로 변환
4 네이티브 코드
설치 시 AOT 컴파일
  • 가상 머신을 우회하여 특정 하드웨어 기능에 직접 접근 가능
  • 단점: JNI로 작성된 프로그램은 일반적으로 다른 하드웨어 장치로 이식 불가
라이브러리용도
webkit웹 브라우저 개발
SQLite데이터베이스 지원
SSL네트워크 보안 (Secure Socket Layer)
OpenGL그래픽
media framework멀티미디어
  • 물리 하드웨어를 추상화
  • 카메라, GPS 칩, 센서 등에 대해 일관된 뷰 제공
  • 개발자가 다양한 하드웨어 플랫폼에서 이식 가능한 프로그램 작성 가능

Google이 Android용으로 개발한 표준 C 라이브러리 (glibc 대신 사용):

  • glibc보다 작은 메모리 풋프린트
  • 느린 모바일 CPU에 최적화
  • GPL 라이선스 우회 가능
  • 전력 관리 지원 강화
  • 메모리 관리/할당 변경
  • Binder: 새로운 형태의 IPC (프로세스 간 통신) 추가
장점단점
오픈소스로 빠른 확산파편화 (다양한 버전/기기)
다양한 하드웨어 지원보안 이슈
AOT 컴파일로 효율적 실행 및 전력 절약설치 시 컴파일 시간 증가
HAL로 하드웨어 독립적 앱 개발 가능
  • Operating System Concepts, 10th Edition, Chapter 2, p.89-91