Konwencje nazewnictwa pakietów usług

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:

  • cdc
  • mechatronics
  • pcu
  • telematics-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.datatunnel
  • com.android.sdv.sample.datatunnel
  • com.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:

  • SomeService
  • ImportantService

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-left
  • front-right
  • main
  • client
  • subscriber

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.
  • 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/instance1
  • cdc:com.android.sdv.datatunnel.SomeService/instance2
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-left
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-right
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/rear-right
  • pcu: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/default
  • mechatronics: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-tire
  • front-window
  • engine-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-control
  • high-priority
  • background

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.IComponentHandler
  • com.android.sdv.datatunnel.IComponentHandler
  • com.yourcompany.sdv.adas.TirePressure
  • com.android.sdv.cluster.IWheelInfoCallback
  • com.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
  • Musi zaczynać się od litery a-z.
  • Nie może kończyć się łącznikiem (-).
  • Znaki muszą być małymi literami, cyframi lub łącznikami (a-z0-9\-).
  • Łączniki nie mogą występować po sobie więcej niż raz.
Małe litery
Nazwa pakietu SDV 127 znaków
  • Musi zawierać co najmniej 4 segmenty.
  • 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.
  • Znaki muszą być małymi literami lub łącznikami (a-z0-9\-).
Małe litery
Nazwa pakietu usług 30 znaków
  • Musi zaczynać się od wielkiej litery.
  • Nie może być pusta.
  • Nie może zawierać następujących po sobie podkreśleń (__).
  • Nie może zaczynać się ani kończyć podkreśleniem (_).
  • Znaki muszą być alfanumeryczne lub podkreśleniami (A-Za-z0-9_).
Mieszane wielkości liter
Nazwa instancji pakietu usług 48 znaków
  • Musi zaczynać się od litery (a-z).
  • Nie może kończyć się łącznikiem (-).
  • Musi być unikalna na tej samej maszynie wirtualnej w przypadku tej samej usługi.
  • Znaki muszą być małymi literami lub łącznikami (a-z0-9\-).
  • Łączniki nie mogą występować po sobie.
Małe litery
Nazwa tematu 127 znaków
  • Musi zaczynać się od litery (a-z).
  • Znaki muszą być małymi literami, cyframi lub łącznikami (a-z0-9\-).
Małe litery
Nazwa kanału 127 znaków
  • Musi zaczynać się od litery (a-z).
  • Znaki muszą być małymi literami, cyframi lub łącznikami (a-z0-9\-).
Małe litery
Nazwa jednostki usługi 48 znaków
  • Musi zaczynać się od litery (a-z).
  • Nie może kończyć się łącznikiem (-).
  • Znaki muszą być małymi literami lub łącznikami (a-z0-9\-).
  • Łączniki nie mogą występować po sobie więcej niż raz.
Małe litery