Android

TechPedia

개요

AndroidGoogle이 개발한 모바일 운영체제로, 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는 오픈소스 기반의 AOSPGoogle 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와 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