Android Automotive OS 호환성 모드

모바일 앱을 Android Automotive OS 기기로 가져오는 프로세스를 간소화하기 위해 일부 자동차에는 기존 모바일 앱을 자동차로 가져올 때 발생하는 일반적인 문제를 해결하는 호환성 모드가 제공됩니다.

이 호환성 모드는 자동차 지원 모바일 앱 프로그램에서 사용되지만, 해당 프로그램에 속하지 않는 앱도 이 모드에서 실행할 수 있습니다.

호환성 모드 이해

Android Automotive OS 호환성 모드는 Android Automotive OS에서 실행될 때 모바일 기기용으로 빌드된 앱의 사용자 환경을 개선하기 위해 일부 차량에서 사용할 수 있는 소프트웨어 기능입니다.

뒤로 탐색

다른 폼 팩터와 달리 Android Automotive OS 기기에는 하드웨어 또는 소프트웨어 뒤로 어포던스가 있어야 한다는 요구사항이 없습니다. 호환성 모드는 하드웨어 버튼, 소프트웨어 버튼, 동작과 같은 시스템 제공 뒤로 어포던스를 요구하여 이 문제를 해결합니다. 즉, 호환성 모드가 있는 기기만 타겟팅하는 경우 앱에서 자체 뒤로 탐색 컨트롤을 제공할 필요가 없습니다.

앱에서 UI에 뒤로 어포던스를 제공하지 않더라도 사용자는 이전 화면으로 돌아갈 수 있습니다.
사용자가 이전 화면으로 돌아갈 수 없습니다.

안전 영역 렌더링

자동차에서는 시스템 표시줄과 디스플레이 컷아웃과 같은 소프트웨어 및 하드웨어 요소로 인해 주로 모바일 기기용 앱을 개발할 때 이루어진 가정이 무효화될 수 있습니다. 호환성 모드는 안전한 영역 내에서 앱을 렌더링하여 이 문제를 해결합니다.

밀도 조정

자동차의 상호작용 거리는 다른 대형 화면 기기보다 크기 때문에 자동차에서 실행할 때 터치 타겟과 글꼴 크기가 권장되는 것보다 작은 경우가 많습니다. 호환성 모드는 OEM이 앱을 렌더링할 때 사용되는 DPI 확장 계수를 지정할 수 있도록 하여 이 문제를 해결합니다.

활동 수명 주기

주차된 앱에 Android Automotive OS 지원 추가에 설명된 대로 자동차가 운전 모드로 전환되면 OS에서 운전자의 주의가 분산되는 것을 줄이기 위해 앱의 활동을 자동으로 차단합니다. 호환성 모드가 있는 기기에서 OEM의 차단 UI는 투명해서는 안 됩니다. 따라서 차단되면 앱이 더 이상 표시되지 않고 중지됨 수명 주기 상태로 전환됩니다.

호환성 모드 구성

기본적으로 기기에서 지원하는 경우 앱의 활동은 호환성 모드로 실행됩니다. android.hardware.type.automotive 기능의 <uses-feature> 요소가 매니페스트에 있으면 활동이 호환성 모드로 실행되지 않습니다.

<manifest ...>
  ...
  <uses-feature android:name="android.hardware.type.automotive" ...>
  ...
</manifest>

앞서 설명한 <uses-feature> 요소와 관계없이 활동이 디스플레이 호환성 모드에서 실행되도록 하려면 앱의 매니페스트에 다음 <meta-data> 요소를 추가하면 됩니다.

<application ...>
  ...
  <meta-data android:name="android.software.car.display_compatibility" android:value="true"/>
  ...
</application>

호환성 모드에서 앱 테스트

호환성 모드에서 앱을 테스트하려면 호환성 모드가 적용된 일반 시스템 이미지 또는 Pixel Tablet의 Android Automotive OS 시스템 이미지를 사용하면 됩니다.

기기 지원 결정

Android Automotive OS 호환 모드를 지원하는 기기는 android.software.car.display_compatibility 시스템 기능을 선언해야 합니다. 이 기능을 지원하는 기기를 확인하려면 Play Console의 기기 카탈로그를 사용하세요.