이 기능을 사용하면 Android Automotive 운영체제(AAOS) 또는 차량 시스템 중 어느 곳에서 Android로 시간을 동기화할 지 파트너가 선택할 수 있습니다. 고품질 구현을 위해 아래 설명된 새로운 VHAL 속성 2가지 중 하나를 사용하도록 AAOS를 구성하여 값을 효과적으로 전파할 수 있습니다. 다음 2가지를 사용합니다.
ANDROID_EPOCH_TIME
은 Android를 시간 정보 소스로 사용합니다. VHAL은 Android에서 다른 차량 시스템(예: 전자 제어 장치(ECU), 차체 제어 모듈(BCM))으로 시간 변경사항을 전달하는 이 쓰기 전용 속성을 지원합니다.EXTERNAL_CAR_TIME
은 Android를 시간 정보 소스로 사용하지 않습니다. 이런 경우 VHAL은 다른 차량 시스템(예: ECU, BCM)에서 Android로 시간 변경사항을 전달하는 읽기 전용EXTERNAL_CAR_TIME
속성을 지원합니다.
AAOS는 Android 내에서 다양한 시간 소스의 우선순위를 지정할 수 있는 구성 가능한 TimeDetectorStrategy
도 제공합니다.
시간 정보 소스인 Android
Android가 시간 소스로 사용될 때 OEM은 다른 자동차 시스템(ECU, BCM 등)을 Android 시간과 동기화할 수 있습니다.
이렇게 하려면 VHAL 구현이 쓰기 전용 속성 ANDROID_EPOCH_TIME
속성을 지원해야 합니다. Android는 부팅할 때와 Android의 시간 소스가 변경될 때마다 시스템 시간을 읽어 속성 업데이트를 게시합니다.
시간 정보 소스가 아닌 Android
Android가 시간 소스로 사용되지 않을 때는 Android 시간이 시간 정보 소스가 되도록 동기화할 수 있습니다(예: ECU나 BCM 사용). 이런 경우 VHAL 구현은 읽기 전용 속성 EXTERNAL_CAR_TIME
을 지원하고 시간 소스가 시계를 변경하거나 재보정할 때마다 이 속성 업데이트를 게시해야 합니다.
또한 OEM은 다음을 확인해야 합니다.
config_autoTimeSourcesPriority
값이core/res/res/values/config.xml
에 포함됩니다.- CarServices 오버레이 구성
packages/services/Car/service/res/values/config.xml
의config_enableExternalCarTimeToExternalTimeSuggestion
속성이true
로 설정됩니다. - 외부 시간이
TimeDetectorStrategy
구성에서 적절한 우선순위를 가집니다. 자세한 내용은 GNSS 시간 감지를 참고하세요. 예를 들면 다음과 같습니다.<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list take precedence over lower ones. See com.android.server.timedetector.TimeDetectorStrategy for available sources. --> <string-array name="config_autoTimeSourcesPriority"> <item>external</item> <item>gnss</item> <item>network</item> <item>telephony</item> </string-array>
Android 내부 구현 세부정보
다음 흐름은 ANDROID_EPOCH_TIME
VHAL 속성이 지원될 때 실행됩니다.
- CarServices의
TimeHalService
가 Android 시스템에서Intent.ACTION_TIME_CHANGED
의 브로드캐스트를 수신합니다. TimeHalService
가 VHAL 속성ANDROID_EPOCH_TIME
업데이트를 게시합니다.- VHAL은 수신한 시간 값을 다양한 ECU 또는 BCM 장치에 전파할 수 있습니다.
다음 흐름은 EXTERNAL_CAR_TIME
VHAL 속성이 지원될 때 실행됩니다.
- VHAL은
EXTERNAL_CAR_TIME
속성을 업데이트합니다. - CarServices의
TimeHalService
는 구독을 통해 속성을 읽습니다. TimeHalService
는ExternalTimeSuggestion
을 만들어TimeManager
로 전송합니다.TimeManager
는 이 추천을TimeDetectorService
로 전달합니다.TimeDetectorService
는TimeDetectorStrategy
를 사용하여 새로운 시스템 시간을 선택합니다.