개요

확장 가능한 UI를 사용하여 자동차에서 정교하고 동적이며 다중 패널 사용자 환경을 빌드합니다. 확장 가능한 UI:

  • 유연한 창 시스템을 제공합니다.

  • 사용자 인터페이스 구현을 위한 호환성 테스트 모음 (CTS)에서 발생하는 엔지니어링 위험, 비용, 복잡성을 최소화합니다.

확장 가능한 UI는 동적 창 배열이 필요한 광범위한 최신 차량용 인포테인먼트 (IVI) 디자인을 지원합니다.

혜택 및 규정 준수

확장 가능한 UI의 이점은 다음과 같습니다.

  • 테스트 위험 감소: 프레임워크는 사전 인증을 받았으며 CTS를 준수하므로 프로그램 주기의 후반에 테스트 실패의 기본 위험이 제거됩니다. 확장 가능한 UI를 사용하면 엔지니어링 노력을 수개월 절약하고 규정 준수를 가속화할 수 있습니다.

  • 더욱 유연한 설계: 수많은 복잡한 기존 자동차 윈도우 모델을 재현할 수 있는 검증된 기능 확장 가능한 UI는 야심차고 차별화된 디자인을 지원합니다.

  • 구현 복잡성 감소: 추상화를 통해 고급 구성 기반 XML 모델로 맞춤 창 관리 로직의 진입 장벽을 낮춥니다.

  • 더 나은 성능: 확장 가능한 UI는 성능이 뛰어난 창 기반으로 빌드되며 표준 Android와 완전히 통합됩니다. 전환이 매끄럽고 최적화할 수 있습니다.

핵심 구성 단위

확장 가능한 UI는 OEM별 코드의 필요성을 최소화하고, 업데이트 가능성을 높이며, 함정을 없애고 인증 문제를 줄여 출시 위험을 줄입니다.

XML 기반 접근 방식은 정확한 위치 지정, Z 순서 충돌, 앱 포커스와 같이 AAOS에서 복잡한 창 시스템을 관리할 때 발생하는 일반적인 문제를 해결합니다.

확장 가능한 UI는 이러한 핵심 빌드 블록을 제공합니다.

패널

패널은 화면의 기본 직사각형 컨테이너입니다. 각 패널은 독립적인 관리를 위해 전용 루트 작업에 매핑됩니다. 패널은 앱 작업 (TaskPanel) 또는 위젯 (DecorPanel)과 같은 뷰 기반 콘텐츠를 호스팅할 수 있습니다. 자세한 내용은 패널 구성을 참고하세요.

변형

변형은 패널의 특정 시각적 상태를 정의하며 bounds (위치 및 크기), visibility, layer (Z 순서), corner 반지름과 같은 속성을 포함합니다. 단일 패널에는 opened, closed, minimized와 같은 변형이 있을 수 있습니다. 자세한 내용은 변형을 사용하여 시각적 상태 디자인을 참고하세요.

Transition

전환은 패널이 현재 상태 fromVariant에서 새 상태 toVariant로 이동하는 방식을 정의합니다. 전환은 Event에 의해 트리거될 수 있으며 상태 변경 중에 패널이 거치는 애니메이션을 정의할 수 있습니다. 패널이 현재 상태에서 toVariant로 이동해야 합니다. 동기화의 경우 모든 전환은 핵심 창 관리자에 의해 애니메이션 처리되고 조정됩니다.

  • 이벤트: UI 변경을 시작하는 트리거입니다. OEM 또는 시스템에서 트리거를 미리 정의할 수 있습니다. 예를 들어 _System_OnHomeEvent, _System_TaskOpenEvent 또는 맞춤 탐색 버튼 누르기입니다.

예를 들어 확장 가능한 UI는 이벤트를 사용하여 전환을 트리거합니다. 이러한 전환은 한 변형에서 다른 변형으로 패널을 애니메이션 처리하여 UI의 동적 변경사항을 표시합니다. 이러한 변경사항은 필요에 따라 콘텐츠를 조정하기 위해 다른 시스템 앱에 전달됩니다. XML에서 UI 관계를 정의하면 다음 작업을 할 수 있습니다.

  • 복잡한 UI 동작 지정: 복잡한 사용자 인터페이스 상호작용을 정의합니다.

  • 창 시스템 정렬: 창 위치 및 레이어링을 제어합니다.

  • 시각적 테마 구현: 일관된 브랜딩과 미적 요소를 적용합니다.

  • 코드 복잡성 감소: 광범위한 맞춤 코드 개발의 필요성을 최소화합니다.

자세한 내용은 전환 구성을 참고하세요.

시스템 UI 버튼

인텐트를 트리거하는 것 외에도 CarSystemBarButtonsevent, selectedEvent, unselectedEvent 속성을 사용하여 탭할 때 ScalableUI 이벤트를 트리거할 수 있습니다.

event은 버튼을 탭할 때 트리거되는 이벤트를 설명합니다. 이벤트를 더 세부적으로 제어해야 하는 경우 selectedEventunselectedEvent 속성을 사용하여 버튼이 선택되거나 선택 해제될 때 각각 트리거할 이벤트를 지정합니다.

시스템 UI를 구현해야 하는 경우

이 섹션에서는 확장 가능한 UI의 최적 사용에 대해 설명합니다.

영구 멀티 패널 레이아웃 만들기

화면의 여러 영역이 특정 기능에 영구적으로 전용인 다중 영역 환경을 만듭니다. 예를 들어 전용 미디어 컨트롤, 온도 조절 스트립, 전체 화면 지도 등이 있습니다.

TaskPanels 사이에 배치해야 하는 뷰 형태의 기본 앱 (예: 탐색)에는 TaskPanels을 사용하고 UI 요소에는 DecorPanels을 사용합니다.

동적 홈 장면 구현

동시에 표시되고 상호작용 가능한 여러 앱 패널로 구성된 장면을 구현합니다. 예를 들어 지도, 미디어 플레이어, 앱 그리드입니다.

관련 패널을 모두 opened 또는 default 홈 변형으로 전환하려면 _System_HomeEvent를 구성하세요.

상황별 오버레이 적용

앱 작업과 함께 애니메이션을 적용할 수 있는 컨텍스트 위젯, 맞춤 브랜딩, 드래그 바와 같은 앱이 아닌 UI 요소를 배치합니다.

순전히 장식용이거나 위젯 호스팅 요소에는 DecorPanels를 사용합니다. 위젯이 완전히 작동하고 실행 가능한 앱을 호스팅하는 경우 Panel > TaskPanel이 최적입니다. 레이어링이 TaskPanel 레이어링과 동기화되어야 하는 경우 뷰 기반 UI 요소에 DecorPanels를 사용합니다.

복잡한 패널 상호작용 설계

앱 패널의 동적 크기 조절 또는 기본 디스플레이 콘텐츠에 따른 계기판 뷰 조정과 같은 고급 사용자 중심 작업을 설계합니다.

특정 비시스템 표준 Transitions을 트리거하도록 맞춤 Events 정의