Android 구조 (Android Architecture)
Jan 25, 2026
핵심 개념
섹션 제목: “핵심 개념”Open Handset Alliance(Google 주도)가 개발한 모바일 운영체제로, Linux 커널 위에 계층화된 소프트웨어 스택을 제공한다. 다양한 모바일 플랫폼에서 실행되며 오픈소스로 빠르게 인기를 얻었다.
Android 아키텍처
섹션 제목: “Android 아키텍처” 애플리케이션 사용자 앱 계층
Android 프레임워크 앱 개발을 위한 API
ART VM + JNI 런타임 환경
네이티브 라이브러리 SQLite, OpenGL, SSL 등
HAL Hardware Abstraction Layer
Bionic 표준 C 라이브러리
Linux 커널 수정된 Linux 커널
하드웨어 물리적 장치
ART (Android RunTime)
섹션 제목: “ART (Android RunTime)”| 특성 | 설명 |
|---|---|
| 목적 | 제한된 메모리와 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 (Java Native Interface)
섹션 제목: “JNI (Java Native Interface)”- 가상 머신을 우회하여 특정 하드웨어 기능에 직접 접근 가능
- 단점: JNI로 작성된 프로그램은 일반적으로 다른 하드웨어 장치로 이식 불가
네이티브 라이브러리
섹션 제목: “네이티브 라이브러리”| 라이브러리 | 용도 |
|---|---|
| webkit | 웹 브라우저 개발 |
| SQLite | 데이터베이스 지원 |
| SSL | 네트워크 보안 (Secure Socket Layer) |
| OpenGL | 그래픽 |
| media framework | 멀티미디어 |
HAL (Hardware Abstraction Layer)
섹션 제목: “HAL (Hardware Abstraction Layer)”- 물리 하드웨어를 추상화
- 카메라, GPS 칩, 센서 등에 대해 일관된 뷰 제공
- 개발자가 다양한 하드웨어 플랫폼에서 이식 가능한 프로그램 작성 가능
Bionic
섹션 제목: “Bionic”Google이 Android용으로 개발한 표준 C 라이브러리 (glibc 대신 사용):
- glibc보다 작은 메모리 풋프린트
- 느린 모바일 CPU에 최적화
- GPL 라이선스 우회 가능
Linux 커널 수정 사항
섹션 제목: “Linux 커널 수정 사항”- 전력 관리 지원 강화
- 메모리 관리/할당 변경
- Binder: 새로운 형태의 IPC (프로세스 간 통신) 추가
트레이드오프
섹션 제목: “트레이드오프”| 장점 | 단점 |
|---|---|
| 오픈소스로 빠른 확산 | 파편화 (다양한 버전/기기) |
| 다양한 하드웨어 지원 | 보안 이슈 |
| AOT 컴파일로 효율적 실행 및 전력 절약 | 설치 시 컴파일 시간 증가 |
| HAL로 하드웨어 독립적 앱 개발 가능 |
관련 개념
섹션 제목: “관련 개념”- 하이브리드 시스템 (Hybrid Systems) - Android가 속하는 여러 구조를 결합한 운영체제 분류
- Darwin - macOS/iOS의 하이브리드 커널 환경으로, Android와 다른 접근 방식
- 모놀리식 구조 (Monolithic Structure) - Android의 기반인 Linux 커널이 채택한 구조
- 계층적 접근 (Layered Approach) - Android 아키텍처가 적용한 소프트웨어 스택 계층화 방식
- Linux 시스템 구조 - Android의 기반이 되는 Linux 커널의 전체 아키텍처
- Operating System Concepts, 10th Edition, Chapter 2, p.89-91