Android
Android는 Google을 중심으로 개발되는 Linux 배포판이자 모바일 운영체제 플랫폼이다. 스마트폰을 중심으로 시작했지만 현재는 태블릿, 폴더블, TV, 자동차, 웨어러블과 다양한 특수 목적 기기에서도 사용된다. Android의 공개 소스 기반은 Android Open Sourc...
Android는 Google을 중심으로 개발되는 Linux 배포판이자 모바일 운영체제 플랫폼이다. 스마트폰을 중심으로 시작했지만 현재는 태블릿, 폴더블, TV, 자동차, 웨어러블과 다양한 특수 목적 기기에서도 사용된다. Android의 공개 소스 기반은 Android Open Source Project(AOSP)이며, 기기 제조사와 개발자는 AOSP를 이용해 자체 Android 운영체제 변형을 만들 수 있다.
Android는 일반적인 데스크톱 Linux 배포판과 상당히 다른 사용자 공간을 구성한다. 하부에는 Linux 커널이 존재하지만 그 위에는 Android용 네이티브 데몬과 라이브러리, HAL, ART, 시스템 서비스, Android Framework와 애플리케이션 계층이 배치된다. AOSP는 이 전체 구성을 하나의 완전한 Android 플랫폼 구현으로 제공한다.
Android 애플리케이션은 일반적인 Linux 데스크톱 프로그램과 달리 Android Framework가 제공하는 구성 요소와 생명 주기 모델을 중심으로 동작한다. 대표적인 구성 요소에는 Activity, Service, BroadcastReceiver와 ContentProvider가 있으며, 애플리케이션은 각각 별도의 Linux 사용자 ID와 프로세스를 부여받는 샌드박스 모델을 기본적으로 사용한다.
Android 호환 기기는 Compatibility Definition Document(CDD)의 요구사항을 따르고 Compatibility Test Suite(CTS) 등의 테스트를 통과해야 한다. AOSP 자체를 수정하여 사용하는 것은 자유롭지만 Android 생태계와의 공식적인 호환성은 이러한 별도의 호환성 체계를 통해 관리된다.
역사
Android Inc.
Google의 인수
Open Handset Alliance
Android 공개
Android 1.0
HTC Dream
초기 Android
디저트 코드명
스마트폰 시장의 성장
태블릿 지원
Android 4.x
Material Design
Android 5.0 이후
현대 Android
Android Open Source Project
AOSP
소스 코드
개발 모델
라이선스
Google의 역할
Open Handset Alliance
AOSP와 상용 Android
Google Mobile Services
AOSP 기반 운영체제
Linux 기반 구조
Linux 커널
Android Common Kernel
커널 변경 사항
Generic Kernel Image
커널 모듈
장치 드라이버
프로세스 관리
메모리 관리
네트워크
전원 관리
보안 기능
시스템 아키텍처
전체 구조
커널
네이티브 데몬과 라이브러리
Hardware Abstraction Layer
Android Runtime
시스템 서비스
Android Framework
시스템 애플리케이션
사용자 애플리케이션
Hardware Abstraction Layer
HAL
HAL 인터페이스
AIDL HAL
HIDL
Binderized HAL
Vendor 구현
하드웨어 드라이버와의 연결
네이티브 사용자 공간
Bionic
init
logd
healthd
storaged
libbinder
libutils
liblog
libselinux
Binder
프로세스 간 통신
Binder 드라이버
Binder 객체
Binder 스레드
AIDL
시스템 서비스
애플리케이션과 Binder
Android Runtime
Dalvik
ART
DEX
OAT
Zygote
AOT 컴파일
JIT 컴파일
가비지 컬렉션
프로파일 기반 최적화
Android Framework
Framework API
System API
Activity Manager
Package Manager
Window Manager
Resource Manager
Notification Manager
Location Manager
Connectivity Service
Telephony
Media Framework
애플리케이션 모델
애플리케이션 프로세스
사용자 ID
샌드박스
Activity
Service
BroadcastReceiver
ContentProvider
Intent
애플리케이션 생명 주기
백그라운드 실행
AndroidManifest.xml
애플리케이션 정보
구성 요소 선언
권한
Intent Filter
SDK 버전
하드웨어 요구사항
소프트웨어 요구사항
사용자 인터페이스
View 시스템
XML 레이아웃
Activity
Fragment
Jetpack Compose
Material Design
Material You
다크 테마
화면 밀도
다양한 화면 크기
폴더블
멀티 윈도
애플리케이션 개발
Android SDK
Android Studio
Gradle
Kotlin
Java
C
C++
Android NDK
Jetpack
Android Emulator
ADB
디버깅
테스트
애플리케이션 패키지
APK
Android App Bundle
DEX
리소스
네이티브 라이브러리
애플리케이션 서명
설치
업데이트
애플리케이션 배포
Android Market
Google Play
서드파티 앱 스토어
사이드로딩
기업용 배포
시스템 애플리케이션
특권 애플리케이션
보안
Linux 사용자 기반 격리
애플리케이션 샌드박스
권한 모델
런타임 권한
SELinux
Seccomp
Verified Boot
Android Verified Boot
파일 기반 암호화
애플리케이션 서명
Keystore
보안 업데이트
보안 패치 수준
저장소
내부 저장소
외부 저장소
앱별 저장소
Scoped Storage
SQLite
SharedPreferences
Storage Access Framework
파일 기반 암호화
파일 시스템과 파티션
boot
init_boot
system
system_ext
product
vendor
odm
data
metadata
recovery
동적 파티션
부팅 과정
Boot ROM
부트로더
Android Verified Boot
Linux 커널
init
Zygote
system_server
SystemUI
Launcher
그래픽
Surface
SurfaceFlinger
WindowManager
Hardware Composer
Skia
OpenGL ES
Vulkan
EGL
그래픽 드라이버
디스플레이 합성
오디오와 멀티미디어
AudioFlinger
Audio HAL
MediaCodec
Codec2
카메라
Camera HAL
영상
오디오
미디어 코덱
DRM
네트워크와 통신
TCP/IP
Wi-Fi
이동통신
Bluetooth
NFC
UWB
USB
VPN
테더링
위성 통신
전원과 자원 관리
프로세스 상태
프로세스 우선순위
Low Memory Killer
lmkd
Doze
App Standby
JobScheduler
백그라운드 제한
배터리 관리
시스템 업데이트
OTA
A/B 업데이트
Virtual A/B
동적 파티션
Project Mainline
APEX
Google Play 시스템 업데이트
보안 업데이트
Project Treble
도입 배경
시스템과 Vendor의 분리
Vendor Interface
VINTF
HAL 안정성
Vendor Test Suite
Android 업데이트에 미친 영향
기기 호환성
Android Compatibility Program
Compatibility Definition Document
Compatibility Test Suite
Vendor Test Suite
API 호환성
Android 호환 기기
AOSP 호환 기기
Google Mobile Services 인증
기기 제조사
Google
Samsung Electronics
Xiaomi
OPPO
vivo
Motorola
Sony
기타 제조사
Android 기기 종류
스마트폰
태블릿
폴더블
Android TV
Google TV
Android Automotive
Android Auto
Wear OS
임베디드와 특수 목적 기기
버전
Android 1.x
Android 2.x
Android 3.x
Android 4.x
Android 5.x
Android 6.x
Android 7.x
Android 8.x
Android 9
Android 10
Android 11
Android 12
Android 13
Android 14
Android 15
Android 16
Android 17
파생 운영체제
LineageOS
GrapheneOS
/e/OS
CalyxOS
Fire OS
기타 AOSP 기반 운영체제
Android와 Linux
Linux 커널의 사용
일반 Linux 배포판과의 차이
사용자 공간
Bionic과 glibc
Android 애플리케이션 환경
Linux 애플리케이션 호환성
Android의 Linux 생태계 내 위치
생태계
Google Play
Google Mobile Services
Android SDK
Android 개발자 생태계
OEM
이동통신사
애플리케이션 생태계
영향
스마트폰 시장
모바일 애플리케이션 생태계
Linux 보급
오픈 소스 생태계
임베디드 기기
모바일 하드웨어 산업
관련 문서
Linux
Linux Kernel
Android Open Source Project
Google
Open Handset Alliance
Android Runtime
Google Play