
이 글에서는 차량용 인포테인먼트 시스템을 구동하는 안드로이드 오토모티브 OS(AAOS)의 아키텍처를 자세히 살펴보겠습니다. 이전 글에서는 안드로이드 오토와 안드로이드 오토모티브의 차이점에 대해 논의했습니다.
안드로이드 OS에 대한 자료는 풍부하지만, AAOS 아키텍처를 구체적으로 다루는 자료는 드뭅니다. 이 글은 AAOS 아키텍처를 더 잘 이해하고자 하는 개발자와 관리자를 위해 작성되었으며, AAOS 소스 트리의 다양한 모듈의 계층 구조와 프로젝트 경로에 초점을 맞춥니다.
■ AAOS Architecture Overview
안드로이드 오토모티브 OS의 아키텍처는 여러 계층으로 구성되어 있으며, 각 계층은 고유한 책임과 구성 요소를 가지고 있습니다. 각 계층을 살펴보면서 더 자세히 이해해 보겠습니다.

1. Application Layer
애플리케이션 레이어는 사용자가 차량의 인포테인먼트 디스플레이를 통해 인포테인먼트 시스템과 상호 작용하는 영역입니다. 이 레이어는 다음과 같은 주요 구성 요소로 이루어져 있습니다.
packages/apps/Car/SystemUI 에 있는 코드
• 차량 런처 앱: 일반적인 안드로이드 런처와 유사하게 앱, 위젯을 로드하고 인포테인먼트 시스템의 전체 레이아웃을 관리합니다.
• 차량 시스템 UI: 상태 표시줄, 내비게이션 바 및 기타 시스템 수준 UI 요소와 같은 차량별 시스템 인터페이스를 처리합니다.
packages/apps/Car/libs/car-ui-lib 에 있는 코드
• 차량 UI 라이브러리(car-ui-lib): 애플리케이션 개발자가 사용자 인터페이스를 구축할 수 있도록 설계된 재사용 가능한 UI 툴킷입니다. 미리 정의된 테마, 레이아웃, 터치 및 로터리 컨트롤에 최적화된 버튼을 제공하여 안드로이드 오토모티브 디자인 원칙을 준수하면서 자동차 앱을 더 쉽게 개발할 수 있도록 지원합니다.
• OEM 앱 및 시스템 앱: OEM(Original Equipment Manufacturer) 앱은 자동차 제조업체에서 제공하는 맞춤형 앱이며, 시스템 앱에는 전화 걸기 또는 미디어 플레이어와 같은 필수 서비스가 포함됩니다.
• 타사 앱: Google Play 스토어에서 다운로드할 수 있는 앱입니다.
2. Framework Layer
프레임워크 계층은 Android 시스템의 핵심으로, 앱 개발을 위한 API와 필수 서비스를 제공합니다. 또한 Android Automotive OS 배포를 위해 설계된 최상위 API인 Car API도 포함됩니다.
Car API
Car API를 통해 개발자는 앱에서 자동차 관련 기능에 접근할 수 있습니다. 하드웨어 속성, 차량 상태 정보, UX 제한 및 전원 관리 기능에 접근할 수 있습니다.
이 API는 필요한 자동차 기능을 갖춘 기기만 특정 자동차 관련 메서드를 호출할 수 있도록 하여 자동차 관련 기능이 없는 기기에서 오류가 발생하는 것을 방지합니다.
3. Service Layer
서비스 계층은 핵심 시스템 서비스와 네이티브 라이브러리가 위치하는 곳입니다. 이 계층에는 시스템과 애플리케이션에 필수적인 기능을 제공하는 차량 라이브러리(car-lib)가 포함됩니다. 또한 Android 시스템과 차량 하드웨어 간의 통신을 가능하게 하는 차량 관리자(Car Manager)와 차량 서비스(Car Service)도 포함됩니다.
3.1 Car Managers
차량 관리자는 플랫폼 라이브러리로 구현된 API입니다. 다양한 차량 데이터 및 기능에 대한 구조화된 접근을 제공합니다. 예를 들면 다음과 같습니다.
• CarPropertyManager: 연료량, 속도, 배터리 상태와 같은 차량 속성 데이터를 관리합니다.
• CarPowerManager: 절전 모드 및 기타 전원 기능을 포함하여 차량의 전원 상태를 제어합니다.
• CarSensorManager: 차량 센서와 연동하여 타이어 공기압, 안전벨트 상태와 같은 데이터를 가져옵니다.
• 코드 위치: packages/services/Car/car-lib
3.2 CarService
CarService는 차량 속성을 래핑하고 애플리케이션에 일련의 API를 노출하는 핵심 시스템 서비스입니다. 차량의 미디어 시스템, 실내 온도 설정 등을 제어하는 중요한 차량 기능에 대한 접근을 제공합니다. 시스템 서비스로 구현된 이 서비스는 com.android.car라는 이름의 영구 시스템 앱에서 실행됩니다. dumpsys car_service와 같은 도구를 사용하여 서비스를 디버깅할 수 있습니다.
코드는 packages/services/Car/service 경로에 있습니다.
4. Vehicle Hardware Abstraction Layer (VHAL)
차량 하드웨어 추상화 계층(VHAL)은 차량 데이터 관리에 중요한 역할을 합니다. 차량 버스에서 나오는 신호(예: 속도, 난방 제어 설정)를 추상화하여 차량 속성으로 저장합니다. 이러한 속성은 차량 신호가 변경될 때 자동으로 변경되거나 Android 애플리케이션을 통해 프로그래밍 방식으로 조작할 수 있습니다.
VHAL은 IVehicle이라는 인터페이스를 제공하여 시스템이 다양한 차량 모델에서 일관되게 차량 속성과 상호 작용할 수 있도록 합니다. 이 추상화 계층 덕분에 시스템은 하드웨어와 직접 상호 작용하지 않고도 실내 온도 조절, 속도 모니터링 및 기타 차량 설정을 더 쉽게 관리할 수 있습니다.
5. Linux Kernel
AAOS의 기반에는 디스플레이, 카메라, Bluetooth 및 오디오와 같은 하드웨어 드라이버를 관리하는 기본 기능을 제공하는 Linux 커널이 있습니다. 이러한 드라이버는 자동차 기기에서 안드로이드 런타임이 원활하게 작동하는 데 매우 중요합니다.
결론
안드로이드 오토모티브 OS(AAOS)는 첨단 인포테인먼트 시스템을 차량에 통합하려는 자동차 제조업체들이 선호하는 플랫폼으로 빠르게 자리 잡고 있습니다. 모듈식의 유연한 아키텍처를 갖춘 AAOS는 사용자 경험을 향상시킬 뿐만 아니라 자동차 개발자가 맞춤형 솔루션을 개발할 수 있도록 지원하는 포괄적인 도구 모음을 제공합니다.
https://proandroiddev.com/mastering-android-automotive-os-architecture-expert-guide-33b7fa73bf8c
'Project ES > : : AAOS' 카테고리의 다른 글
| VPU_Wrapper (0) | 2026.02.20 |
|---|---|
| .bp (BluePrint) (0) | 2026.02.20 |
| [AAOS Audio] 오디오 포커스 (0) | 2026.02.09 |
| [AAOS Audio] Intro (0) | 2026.02.09 |
| AOSP 빌드 불필요 파일 정리 옵션 (0) | 2026.02.05 |