모바일 앱을 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>
요소가 있는 경우:
<application ...>
...
<uses-feature android:name="android.hardware.type.automotive" ...>
...
</application>
- 다음
<meta-data>
요소가 포함된<activity>
매니페스트 요소가 있는 경우
<meta-data android:name="distractionOptimized" android:value="true">
이러한 조건 중 하나가 앱에 적용되지만 활동을 디스플레이 호환성 모드로 실행하려면 앱 매니페스트에 다음 <meta-data>
요소를 추가하면 됩니다.
<application ...>
...
<meta-data android:name="android.software.car.display_compatibility" android:value="true"/>
...
</application>
호환성 모드에서 앱 테스트
호환성 모드에서 앱을 테스트하려면 호환성 모드가 있는 일반 시스템 이미지를 사용하면 됩니다.
기기 지원 결정
Android Automotive OS 호환성 모드를 지원하는 기기는 android.software.car.display_compatibility
시스템 기능을 선언해야 합니다. 이 기능을 지원하는 기기를 확인하려면 Play Console의 기기 카탈로그를 사용하세요.