Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Ta funkcja umożliwia partnerom wybranie sposobu synchronizacji czasu: z Androida Automotive Operating System (AAOS) lub z systemów pojazdów z Androidem.
Aby zapewnić wysoką jakość implementacji, możesz skonfigurować AAOS tak, aby używał jednej z 2 nowych właściwości VHAL opisanych poniżej w celu skutecznego propagowania wartości. Użyj opcji:
ANDROID_EPOCH_TIME do korzystania z Androida jako źródła informacji na potrzeby VHAL obsługuje tę właściwość tylko do zapisu, która przekazuje zmiany czasu
z Androida do innych systemów pojazdu, takich jak jednostki sterujące elektronicznie
(ECU) i moduł sterujący nadwoziem (BCM).
EXTERNAL_CAR_TIME, aby nie używać Androida jako źródła informacji. W tym przypadku VHAL obsługuje tylko do odczytuEXTERNAL_CAR_TIME, która przekazuje zmiany czasu z innych systemów pojazdu (takich jak ECU i BCM) do Androida.
AAOS udostępnia też konfigurowalny element TimeDetectorStrategy, który pomaga nadawać priorytety różnym źródłom czasu w Androidzie.
Android jest źródłem informacji o czasie
Gdy Android jest używany jako źródło czasu, producenci OEM mogą synchronizować inne systemy samochodowe (w tym ECU i BCM) z czasem Androida.
Aby to zrobić, implementacja VHAL musi obsługiwać właściwość ANDROID_EPOCH_TIMEtylko do zapisu. Android publikuje aktualizację usługi, odczytując czas systemowy zarówno podczas uruchamiania, jak i za każdym razem, gdy zmieni się źródło czasu na urządzeniu.
Android nie jest źródłem danych podstawowych (ground truth) dotyczących czasu
Jeśli Android nie jest używany jako źródło czasu, możesz zsynchronizować czas Androida, aby był on źródłem wiarygodnych danych o czasie (np. z ECU lub BCM). W takim przypadku implementacja VHAL musi obsługiwać usługę tylko do odczytu EXTERNAL_CAR_TIME i publikować aktualizacje tej usługi, gdy tylko źródło czasu zmieni się lub ponownie skalibrować zegar.
Producenci OEM muszą też zapewnić:
Wartości config_autoTimeSourcesPriority znajdują się w komórce core/res/res/values/config.xml.
Właściwość config_enableExternalCarTimeToExternalTimeSuggestion w konfiguracjach nakładki CarServices packages/services/Car/service/res/values/config.xml ma wartość true.
external ma odpowiedni priorytet w konfiguracji TimeDetectorStrategy. Więcej informacji znajdziesz w artykule GNSS Time Detection (w języku angielskim).
Przykład:
<!-- 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>
Szczegóły implementacji na Androidzie
Gdy obsługiwana jest właściwość VHAL ANDROID_EPOCH_TIME, następuje ten proces:
TimeHalService (w CarServices) odbiera transmisję z systemu Android dla Intent.ACTION_TIME_CHANGED.
TimeHalService publikuje aktualizację właściwości VHAL:
ANDROID_EPOCH_TIME.
VHAL może rozpowszechniać otrzymaną wartość czasu do różnych jednostek ECU lub BCM.
Gdy obsługiwana jest właściwość VHAL EXTERNAL_CAR_TIME, następuje ten proces:
VHAL aktualizuje właściwość EXTERNAL_CAR_TIME.
TimeHalService (w CarServices) odczytuje usługę za pomocą subskrypcji.
TimeHalService tworzy i wysyła ExternalTimeSuggestion do TimeManager.
TimeManager przekazuje sugestię do TimeDetectorService.
TimeDetectorService używa TimeDetectorStrategy do wyboru nowego czasu systemowego.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Configure AAOS time sources\n\nThis feature enables partners to choose how to synchronize time, whether from the Android\nAutomotive Operating System (AAOS) **or** from vehicular systems to Android.\nTo ensure quality implementations, you can configure AAOS to use one of the two new VHAL properties\ndescribed below to propagate the values effectively. Use:\n\n- `ANDROID_EPOCH_TIME` to **use** Android as the source of truth for time. The VHAL supports this *write-only* property, which communicates time changes from Android to other vehicular systems, such as the Electronic Control Units (ECU) and the Body Control Module (BCM).\n- `EXTERNAL_CAR_TIME` to **not use** Android as the source of truth for time. In this case, the VHAL supports the *read-only* `EXTERNAL_CAR_TIME` property, which communicates time changes from other vehicular systems (such as ECUs and BCM) to Android.\n\n| **Warning:** If you opt to support both properties (not recommended), the VHAL must **never** publish values to `EXTERNAL_CAR_TIME` that are dependent on `ANDROID_EPOCH_TIME`.\n\nAAOS also provides a configurable `TimeDetectorStrategy` to help you prioritize\ndifferent time sources within Android.\n\n### Android is the source of truth for time\n\nWhen Android is used as the source of time, OEMs can synchronize other car systems (including\nECUs and a BCM) with Android time.\n\nTo do so, the VHAL implementation must support the *write-only* property\n`ANDROID_EPOCH_TIME` property. Android publishes an update to the property by reading\nsystem time, both at boot time and whenever the time source in Android is changed.\n\n### Android is not the source of truth for time\n\nWhen Android is **not** used as the source of time, you can synchronize Android time\nto be the source of truth for time (for example, with an ECU or the BCM). In this case, the\nVHAL implementation must support the read-only property `EXTERNAL_CAR_TIME` and publish\nupdates to this property whenever the source of time changes or recalibrates the clock.\n\nOEMs must also ensure that:\n\n- The `config_autoTimeSourcesPriority` values are contained in `core/res/res/values/config.xml`.\n- The `config_enableExternalCarTimeToExternalTimeSuggestion` property in the CarServices overlay configs `packages/services/Car/service/res/values/config.xml` is set to `true`.\n- `external` time has the appropriate priority in the `TimeDetectorStrategy` configuration. To learn more, see [GNSS Time Detection](/devices/tech/connect/time/gnss-time-detection#implement). For example: \n\n ```scdoc\n \u003c!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list take precedence over lower ones.\n See com.android.server.timedetector.TimeDetectorStrategy for available sources. --\u003e\n \u003cstring-array name=\"config_autoTimeSourcesPriority\"\u003e\n \u003citem\u003eexternal\u003c/item\u003e\n \u003citem\u003egnss\u003c/item\u003e\n \u003citem\u003enetwork\u003c/item\u003e\n \u003citem\u003etelephony\u003c/item\u003e\n \u003c/string-array\u003e\n ```\n\n| The VHAL implementation must **not** publish updates for the natural progression of time.\n\nAndroid internal implementation details\n---------------------------------------\n\nThe following flow takes place when the `ANDROID_EPOCH_TIME` VHAL property is\nsupported:\n\n1. `TimeHalService` (in CarServices) receives a broadcast from the Android system for `Intent.ACTION_TIME_CHANGED`.\n2. `TimeHalService` publishes an update to the VHAL Property `ANDROID_EPOCH_TIME`.\n3. The VHAL can propagate the time value received to various ECUs and/or BCM units.\n\nThe following flow takes place when the `EXTERNAL_CAR_TIME` VHAL property is\nsupported:\n\n1. VHAL updates the `EXTERNAL_CAR_TIME` property.\n2. `TimeHalService` (in CarServices) reads the property through a subscription.\n3. `TimeHalService` creates and sends an `ExternalTimeSuggestion` to `TimeManager`.\n4. `TimeManager` forwards the suggestion to `TimeDetectorService`.\n5. `TimeDetectorService` uses `TimeDetectorStrategy` to choose a new system time."]]