Android Architecture는 안드로이드 애플리케이션이 어떻게 구성되고 동작하는지를 계층적으로 설명하는 구조이다.
역할에 따라 4가지 계층으로 구분할 수 있다.

1. Linux Kernel 계층
Linux Kernel은 가장 하위 계층으로 안드로이드 OS의 기반이 된다.
다양한 하드웨어 컴포넌트 ( 카메라, 블루투스, 키보드 등)에 대한 저수준 장치 드라이버 포함
메모리 관리, 프로세스 관리, 네트워크, 보안 기능 등 핵심 시스템 기능을 제공한다.
2. Libraries & Android Runtime 계층
Libraries
안드로이드 OS의 주요 기능을 제공하는 기본 라이브러리 집합
- SQLite : 데이터베이스 기능 지원
- WebKit : 웹 브라우징 기능
- OpenGL ES : 그래픽 처리
- Surface Manager : 화면 디스플레이 관리
- Media Framework : 오디오/비디오 처리 등
Android Runtime (ART)
Android 애플리케이션이 실행되는 가상 머신 환경
- Core Libraries: 자바 언어 기반의 앱 개발을 지원하는 핵심 라이브러리
- ART(Android Runtime): 각 앱은 자신만의 프로세스와 ART 인스턴스 내에서 실행됨
- ART는 저전력, 저성능 모바일 환경에 최적화된 가상 머신
- Dalvik VM의 후속 버전으로 성능, 메모리 효율성, 디버깅, 모니터링 기능 향상
3. Application Framework 계층
앱 개발자가 안드로이드 OS의 기능을 사용할 수 있도록 다양한 API와 시스템 서비스 제공
앱과 시스템의 다리 역할을 한다.
- ActivityManager: 앱 생명주기 관리
- WindowManager: 창 관리
- ContentProviders: 앱 간 데이터 공유
- LocationManager: 위치 정보 제공
- NotificationManager: 알림 표시 등
4. Applications 계층
실제로 사용자가 사용하는 앱들이 포함되는 계층
애플리케이션은 Application Framework를 통해 시스템 기능에 접근
안드로이드 애플리케이션 실행 과정
사용자 → 앱 터치
→ Application Framework가 실행 요청
→ ART가 앱 코드 실행
→ Libraries로 필요한 기능 호출
→ Linux Kernel이 모든 리소스를 배분하고 제어
