Android
개요
Android는 Google이 개발한 모바일 운영체제로, Linux 커널을 기반으로 하지만 독자적인 런타임, 프레임워크, API 계층을 통해 스마트폰, 태블릿, TV, 웨어러블, 자동차 등 다양한 기기에서 동작한다.
현재 전 세계 모바일 운영체제 시장의 절대 다수를 점유하고 있으며, AOSP(Android Open Source Project)를 중심으로 오픈소스 형태로 배포된다.
Android는 2003년 Android Inc.에 의해 처음 개발되었으며, 2005년 Google에 인수된 이후 2008년 첫 상용 버전(Android 1.0)이 출시되었다. 이후 지속적으로 발전하여 모바일, 웨어러블, TV, 자동차용 변형 버전까지 확장되었다.
기본적으로 Linux 커널 위에 Android Runtime (ART), Binder IPC, HAL(Hardware Abstraction Layer), SurfaceFlinger 그래픽 시스템, Java / Kotlin 기반 SDK로 구성된다.
역사
- 2003년 – Android Inc. 설립
- 2005년 – Google이 Android Inc. 인수
- 2008년 – Android 1.0 (HTC Dream) 출시
- 2011년 – Android 3.0 “Honeycomb” (태블릿 전용 UI)
- 2014년 – Android 5.0 “Lollipop” – ART 런타임 도입
- 2017년 – Android 8.0 “Oreo” – Project Treble, 모듈화
- 2019년 – Android 10 – 제스처 내비게이션, 다크 모드
- 2021년 – Android 12 – Material You 디자인, 개인정보 보호 강화
- 2023년 – Android 14 – 보안 강화, 메모리 효율 개선
- 2024 – Android 15 AI 및 멀티디바이스 통합 강화
기술적 구조
Android는 커널 위에 다층 구조로 설계된 독립 플랫폼이다.
| 계층 | 구성 요소 | 설명 |
|---|---|---|
| 애플리케이션 계층 | Android Apps | Java / Kotlin 기반 앱 환경 |
| 프레임워크 계층 | Activity Manager, View System, Notification, Content Provider | 앱 동작과 UI를 제어하는 핵심 API |
| 런타임 계층 | ART (Android Runtime), Core Libraries | Dalvik VM을 대체, JIT/AOT 혼합 컴파일 |
| 네이티브 라이브러리 | libc, WebKit, OpenGL ES, SQLite, SSL 등 | C/C++ 기반 시스템 라이브러리 |
| 하드웨어 추상화 계층 (HAL) | Camera HAL, Audio HAL, Sensor HAL 등 | 하드웨어 드라이버와 프레임워크 사이의 인터페이스 |
| 커널 계층 | Linux Kernel | 프로세스, 메모리, 파일 시스템, 보안 관리 |
주요 구성 요소
- Linux Kernel – 프로세스, 스레드, 메모리, 네트워크, 드라이버 관리
- ART (Android Runtime) – 앱 실행 엔진, JIT/AOT 하이브리드 컴파일
- Binder IPC – 프로세스 간 통신(IPC) 핵심 메커니즘
- HAL (Hardware Abstraction Layer) – 하드웨어 의존성 분리
- SurfaceFlinger – 그래픽 합성 엔진
- Media Framework – 오디오·비디오 인코딩 및 재생
- Package Manager – 앱 설치 및 권한 관리
- Activity Manager – 앱 생명주기 관리
- SystemUI – 홈, 알림, 상태 표시줄 관리
Android 런타임
초기에는 Dalvik Virtual Machine을 사용했으나, Android 5.0부터 ART(Android Runtime)가 기본으로 채택되었다. ART는 AOT(사전 컴파일) + JIT(실시간 최적화)를 결합하여 성능과 배터리 효율을 동시에 확보했다.
보안
- 앱 격리 – 각 앱은 독립 UID에서 샌드박스 실행
- 권한 시스템 – 명시적 사용자 승인 기반
- Verified Boot – 부팅 체인 무결성 검증
- SELinux – 커널 레벨 접근 제어 정책 적용
- Play Protect – 악성 앱 탐지 및 자동 검사
- SafetyNet / Play Integrity – 시스템 변조 감지
배포 구조
Android는 오픈소스 기반의 AOSP와 Google Mobile Services(GMS)가 포함된 상용 버전으로 나뉜다.
| 구분 | 내용 |
|---|---|
| AOSP | Android Open Source Project, 완전한 오픈 버전 (Google 서비스 없음) |
| GMS 버전 | Play 스토어, Gmail, YouTube 등 Google 독점 서비스 포함 |
| OEM 커스터마이징 | 삼성, 샤오미, 화웨이 등의 독자 UI (One UI, MIUI, EMUI 등) |
버전 역사
| 버전 | 코드네임 | 출시 연도 | 주요 특징 |
|---|---|---|---|
| 1.0 | (무명) | 2008 | 최초 공개, Gmail/Maps 포함 |
| 2.3 | Gingerbread | 2010 | UI 단순화, 성능 향상 |
| 3.0 | Honeycomb | 2011 | 태블릿 전용 UI |
| 4.0 | Ice Cream Sandwich | 2011 | 스마트폰·태블릿 UI 통합 |
| 4.4 | KitKat | 2013 | 메모리 효율 개선 |
| 5.0 | Lollipop | 2014 | ART 런타임, Material Design |
| 6.0 | Marshmallow | 2015 | 권한 시스템 개선 |
| 7.0 | Nougat | 2016 | 멀티 윈도우 |
| 8.0 | Oreo | 2017 | Project Treble (모듈화) |
| 9.0 | Pie | 2018 | 제스처 내비게이션 |
| 10 | (Q) | 2019 | 번호 체계 전환, 다크 모드 |
| 11 | 2020 | 개인정보 보호 강화 | |
| 12 | 2021 | Material You, 동적 테마 | |
| 13 | 2022 | BLE 오디오, 권한 세분화 | |
| 14 | 2023 | 메모리 관리, 보안 개선 | |
| 15 | 2024 | AI 기반 UX 통합, 컨텍스트 인식 |
파생 버전
- Android TV – 스마트 TV용
- Wear OS – 웨어러블 디바이스용
- Android Auto – 차량용 인포테인먼트
- Android Things – IoT 및 임베디드 장치용
- ChromeOS – Android 앱 실행 환경 통합
Android와 Linux의 관계
Android는 Linux 커널을 사용하지만, GNU 유틸리티나 glibc 대신 Bionic libc를 사용하며, 시스템 구조는 일반적인 Linux 배포판과 완전히 다르다.
| 항목 | Android | 일반 Linux |
|---|---|---|
| 커널 | Linux 커널 (AOSP 수정본) | Linux 커널 |
| 사용자 공간 | Bionic libc, ART | glibc, GNU 유틸리티 |
| IPC | Binder | DBus, System V |
| 파일시스템 | ext4, f2fs | ext4, Btrfs 등 |
| 런타임 | ART (Dalvik) | ELF 바이너리 |
| 앱 언어 | Java / Kotlin | C / Python / Shell |
개발
Android의 핵심은 AOSP(Android Open Source Project)로, Google 및 커뮤니티가 협력하여 유지보수한다. 개발자는 Android Studio를 통해 Java/Kotlin 기반으로 앱을 제작하며, NDK를 통해 C/C++ 네이티브 코드도 사용 가능하다.
라이선스
- 커널 – GPLv2 (Linux 커널 기반)
- 사용자 공간 – Apache License 2.0
- 일부 구성요소 – BSD / MIT / MPL 혼합
같이 보기
참고 문헌
- Android Developers – developer.android.com
- AOSP 공식 사이트 – source.android.com
- “Android Internals: A Deep Dive into the Architecture”, 2021
- Google I/O 발표 자료 (2008–2024)
- “The Evolution of Android”, OSNews, 2023