Nazwy pakietów usług są zdefiniowane w hierarchii.
Każda maszyna wirtualna (identyfikowana przez nazwę maszyny wirtualnej) to pojedyncze wdrożenie systemu operacyjnego profilu SDV Core.
Każdy pakiet (identyfikowany przez nazwę pakietu) może zawierać wiele pakietów usług.
Każdy pakiet usług (identyfikowany przez nazwę pakietu usług) może być wielokrotnie instancjonowany na tej samej maszynie wirtualnej.
Każda instancja pakietu usług jest identyfikowana przez nazwę instancji pakietu usług przypisaną podczas wczytywania.
Nazwa maszyny wirtualnej SDV
Nazwa maszyny wirtualnej to unikalny identyfikator nazwy dołączony do każdego wdrożenia profilu SDV Core zgodnie z konfiguracją maszyny wirtualnej pojazdu (vvmconfig). Nazwa maszyny wirtualnej jest używana w nazewnictwie jako logiczne rozdzielenie usług w granicach maszyny wirtualnej w pojeździe. Przykłady:
cdcmechatronicspcutelematics-unit
Obowiązują te ograniczenia dotyczące nazewnictwa:
- Nazwa maszyny wirtualnej musi zaczynać się od litery
[a-z]. - Nazwa maszyny wirtualnej nie może kończyć się łącznikiem.
- Nazwa maszyny wirtualnej nie może mieć więcej niż 31 znaków.
- Wszystkie znaki muszą być małymi literami, cyframi lub łącznikami
[a-z0-9\-]. - Łączniki w nazwie nie mogą występować po sobie więcej niż raz.
Nazwa maszyny wirtualnej jest weryfikowana pod kątem unikalności podczas kompilacji (analiza statyczna) i uruchamiania systemu, gdy wczytywana jest konfiguracja maszyny wirtualnej pojazdu.
Gdy weryfikacja podczas uruchamiania się nie powiedzie, wystąpi błąd na poziomie uruchamiania.
Nazwa pakietu SDV
Podobnie jak w przypadku standardowego Androida nazwa pakietu SDV jednoznacznie identyfikuje pakiet wdrożony w systemie. Dla każdej nazwy pakietu należy podać unikalny APEX. Przykład:
com.android.sdv.datatunnelcom.android.sdv.sample.datatunnelcom.yourcompany.sdv.adas
Obowiązują te ograniczenia:
- Wszystkie APEX-y SDV należące do partnera powinny mieć prefiks
com.<companyname>.sdv.(com.android.sdv.jest zarezerwowany dla APEX-ów SDV należących do Google). - Wszystkie znaki muszą być alfanumeryczne lub podkreśleniami
[a-z0-9_]. - Nazwa pakietu musi zawierać co najmniej 4 segmenty oddzielone kropkami.
- Nazwa pakietu nie może kończyć się kropką.
- Nazwa pakietu nie może mieć więcej niż 127 znaków.
- Każdy segment musi zaczynać się od litery.
- Żaden segment nie może zawierać następujących po sobie podkreśleń
__. - Żaden segment nie może kończyć się podkreśleniem
_. - Segmenty nie mogą być puste (nie mogą zawierać następujących po sobie kropek).
Nazwa pakietu usług
Podobnie jak w przypadku standardowego Androida każdy pakiet usług ma nazwę zrozumiałą dla użytkowników, która jest w przestrzeni nazw pakietu, do którego należy. Przykład:
SomeServiceImportantService
Obowiązują te ograniczenia dotyczące nazewnictwa:
- Nazwa pakietu usług MUSI zaczynać się od wielkiej litery.
- Nazwa pakietu usług NIE MOŻE być pusta.
- Nazwa pakietu usług NIE MOŻE mieć więcej niż 47 znaków.
- Nazwa pakietu usług NIE MOŻE zawierać następujących po sobie podkreśleń
__. - Nazwa pakietu usług NIE MOŻE zaczynać się ani kończyć podkreśleniem
_. - Wszystkie znaki MUSZĄ być alfanumeryczne lub podkreśleniami
[A-Za-z0-9_].
Nazwa instancji pakietu usług
W przeciwieństwie do standardowych aplikacji na Androida pakiety usług w AAOS SDV można instalować i wczytywać wielokrotnie na tej samej maszynie wirtualnej. Dzięki temu ten sam pakiet usług może mieć wiele instancji działających w tej samej maszynie wirtualnej AAOS SDV. Te instancje mają przypisaną nazwę instancji pakietu usług zrozumiałą dla użytkowników. Przykład:
front-leftfront-rightmainclientsubscriber
Obowiązują te ograniczenia:
Nazwa instancji musi:
- zaczynać się od litery
[a-z]. - nie kończyć się łącznikiem.
- nie mieć więcej niż 47 znaków.
- być unikalna na tej samej maszynie wirtualnej w przypadku tej samej usługi.
- zaczynać się od litery
Wszystkie znaki muszą być małymi literami, cyframi lub łącznikami
[a-z0-9\-].Łączniki nie mogą występować po sobie.
Każda instancja usługi musi mieć unikalną nazwę instancji (podaną lub utworzoną podczas uruchamiania usługi).
Pełna i jednoznaczna nazwa instancji pakietu usług (FQIN)
Nazwa maszyny wirtualnej SDV, nazwa pakietu, nazwa pakietu usług i nazwa instancji pakietu usług są łączone w pełną i jednoznaczną nazwę instancji pakietu usług (FQIN). Jednoznacznie identyfikuje ona instancję pakietu usług w całym pojeździe.
Oto kilka przykładów:
cdc:com.android.sdv.datatunnel.SomeService/instance1cdc:com.android.sdv.datatunnel.SomeService/instance2mechatronics:com.yourcompany.sdv.adas.TirePressure/front-leftmechatronics:com.yourcompany.sdv.adas.TirePressure/front-rightmechatronics:com.yourcompany.sdv.adas.TirePressure/rear-rightpcu:com.android.sdv.cluster.InfoProvider/acceleration
Pakiety usług w różnych pakietach mogą mieć tę samą nazwę pakietu usług. Na przykład te 2 pakiety usług (identyfikowane przez odpowiednie FQIN-y) wdrożone w tej samej maszynie wirtualnej SDV (mechatronics) mają tę samą nazwę pakietu usług TirePressure:
mechatronics:com.yourcompany1.sdv.adas.TirePressure/defaultmechatronics:com.yourcompany2.sdv.adas.TirePressure/default
W tym przykładzie nie występuje konflikt nazw, ponieważ 2 pakiety usług znajdują się w różnych pakietach (jeden w com.yourcompany1.sdv.adas, a drugi w com.yourcompany2.sdv.adas).
Nazwa tematu
Tematy są identyfikowane przez ciągi znaków, które są unikalne w całym pojeździe w przypadku danego typu wiadomości.
Przykładowe nazwy tematów:
left-tirefront-windowengine-coolant-temp
Ograniczenia:
- Musi zawierać znaki alfanumeryczne lub łączniki
[a-z0-9\-]. - Musi zaczynać się od litery.
- Nie może mieć więcej niż 127 znaków.
Nazwa kanału
Kanały są identyfikowane przez ciąg znaków.
Przykładowe nazwy kanałów:
main-controlhigh-prioritybackground
Ograniczenia:
- Musi zawierać znaki alfanumeryczne lub łączniki
[a-z0-9\-]. - Musi zaczynać się od litery.
- Nie może mieć więcej niż 127 znaków.
Nazwa jednostki usługi
Programiści pakietów usług wchodzą w interakcję głównie z tematami i
kanałami. Nazwy jednostek usług są szczegółami implementacji i są spotykane głównie podczas korzystania z narzędzi do debugowania, takich jak dumpsys.
Jednostki usług zarejestrowane w SDV Service Discovery muszą podać nazwę jednostki usługi. Ta nazwa jednostki usługi jest dostępna podczas wykrywania usługi. Te przykłady pokazują nazwy jednostek usług z FQIN-ami:
( cdc:com.android.sdv.adas.Service1/default-inst , tp-provider )( cdc:com.yourcompany.sdv.adas.TirePressure/instance1 , tp-provider-1 )( mech:com.yourcompany.sdv.adas.TirePressure/instance2 , tp-instance )
Nazwy typów jednostek
Nazwy typów jednostek są równe (pełnym i jednoznacznym) nazwom typów Protobuf. Przykład:
com.android.sdv.datatunnel.IComponentHandlercom.android.sdv.datatunnel.IComponentHandlercom.yourcompany.sdv.adas.TirePressurecom.android.sdv.cluster.IWheelInfoCallbackcom.android.sdv.cluster.ISeatAlignmentCallback
Podsumowanie
Wymagania dotyczące nazewnictwa zostały podsumowane w tej tabeli:
| Element | Limit | Dozwolone znaki | Rodzaj osłony |
|---|---|---|---|
| FQIN | 256 znaków | Składa się z nazwy maszyny wirtualnej, nazwy pakietu, nazwy pakietu usług i nazwy instancji pakietu usług. | Małe litery |
| Nazwa maszyny wirtualnej SDV | 30 znaków |
|
Małe litery |
| Nazwa pakietu SDV | 127 znaków |
|
Małe litery |
| Nazwa pakietu usług | 30 znaków |
|
Mieszane wielkości liter |
| Nazwa instancji pakietu usług | 48 znaków |
|
Małe litery |
| Nazwa tematu | 127 znaków |
|
Małe litery |
| Nazwa kanału | 127 znaków |
|
Małe litery |
| Nazwa jednostki usługi | 48 znaków |
|
Małe litery |