Namenskonventionen für Servicepakete

Namen von Service-Bundles werden in einer Hierarchie definiert.

  • Jede VM (identifiziert durch einen VM-Namen) ist eine einzelne Bereitstellung des Betriebssystems des SDV Core-Profils.

  • Jedes Paket (identifiziert durch einen Paketnamen) kann mehrere Service-Bundles enthalten.

  • Jedes Dienstpaket (identifiziert durch einen Dienstpaketnamen) kann mehrmals auf derselben VM instanziiert werden.

  • Jede Dienstbündelinstanz wird durch einen Dienstbündelinstanznamen identifiziert, der beim Laden zugewiesen wird.

SDV-VM-Name

Der VM-Name ist eine eindeutige Namenskennung, die jeder Bereitstellung eines SDV Core-Profils zugewiesen wird, wie in der Vehicle VM Config (vvmconfig) angegeben. Der VM-Name wird in der Namensgebung als logische Trennung von Diensten entlang der VM-Grenzen in einem Fahrzeug verwendet. Beispiele:

  • cdc
  • mechatronics
  • pcu
  • telematics-unit

Es gelten die folgenden Namensbeschränkungen.

  • Der VM-Name muss mit einem Buchstaben beginnen. [a-z]
  • VM-Name darf nicht mit einem Bindestrich enden
  • Der Name der VM darf nicht länger als 31 Zeichen sein.
  • Alle Zeichen müssen alphanumerische Kleinbuchstaben oder ein Bindestrich [a-z0-9\-] sein.
  • Bindestriche im Namen dürfen nicht mehr als einmal hintereinander vorkommen

Der VM-Name wird zur Kompilierzeit (statische Analyse) und beim Systemstart überprüft, wenn die vvmconfig geladen wird.

Ein Fehler auf Boot-Ebene tritt auf, wenn die Validierung beim Booten fehlschlägt.

SDV-Paketname

Ähnlich wie bei Standard-Android identifiziert der SDV-Paketname ein auf dem System bereitgestelltes Paket eindeutig. Für jeden Paketnamen muss ein eindeutiges APEX bereitgestellt werden. Beispiel:

  • com.android.sdv.datatunnel
  • com.android.sdv.sample.datatunnel
  • com.yourcompany.sdv.adas

Folgende Einschränkungen gelten:

  • Alle SDV-APEX-Dateien, die Partnern gehören, müssen mit com.<companyname>.sdv. beginnen (com.android.sdv. ist für SDV-APEX-Dateien reserviert, die Google gehören).
  • Alle Zeichen müssen alphanumerisch oder ein Unterstrich ([a-z0-9_]) sein.
  • Der Paketname muss mindestens vier durch Punkte getrennte Segmente enthalten.
  • Der Paketname darf nicht mit einem Punkt enden.
  • Der Paketname darf nicht länger als 127 Zeichen sein.
  • Jedes Segment muss mit einem Buchstaben beginnen.
  • Kein Segment darf aufeinanderfolgende Unterstriche enthalten, __.
  • Kein Segment darf mit einem Unterstrich (_) enden.
  • Segmente dürfen nicht leer sein (keine aufeinanderfolgenden Zeiträume).

Name des Dienstpakets

Ähnlich wie bei Standard-Android hat jedes Dienstbündel einen für Menschen lesbaren Namen, der im Paketnamen des zugehörigen Dienstbündels enthalten ist. Beispiel:

  • SomeService
  • ImportantService

Für die Benennung gelten folgende Einschränkungen:

  • Der Name des Dienstpakets MUSS mit einem Großbuchstaben beginnen
  • Der Name des Servicepakets DARF NICHT leer sein.
  • Der Name des Service-Bundles darf NICHT länger als 47 Zeichen sein.
  • Der Name des Servicepakets DARF NICHT mehrere Unterstriche hintereinander enthalten, __
  • Der Name des Dienstpakets darf nicht mit einem Unterstrich beginnen oder enden, _
  • Alle Zeichen MÜSSEN entweder alphanumerisch oder ein Unterstrich sein: [A-Za-z0-9_]

Name der Dienstbündelinstanz

Im Gegensatz zu standardmäßigen Android-Anwendungen können Dienst-Bundles in AAOS SDV mehrmals auf derselben VM installiert und geladen werden. Daher kann dasselbe Service-Bundle mehrere Instanzen haben, die in derselben AAOS SDV-VM ausgeführt werden. Diesen Instanzen wird ein menschenlesbarer Name der Dienstpaketinstanz zugewiesen. Beispiel:

  • front-left
  • front-right
  • main
  • client
  • subscriber

Es gelten folgende Einschränkungen:

  • Der Instanzname muss:

    • Muss mit einem Buchstaben beginnen [a-z]
    • Darf nicht mit einem Bindestrich enden
    • Darf nicht mehr als 47 Zeichen enthalten
    • Eindeutig auf derselben VM für denselben Dienst sein
  • Alle Zeichen müssen alphanumerische Kleinbuchstaben oder ein Bindestrich [a-z0-9\-] sein.

  • Bindestriche dürfen nicht aufeinanderfolgen

  • Jede Dienstinstanz muss einen eindeutigen Instanznamen haben, der beim Starten des Dienstes angegeben oder erstellt wird.

Vollständig qualifizierter Name der Dienstbündelinstanz (Fully Qualified Instance Name, FQIN)

Der Name der SDV-VM, der Paketname, der Name des Service-Bundles und der Name der Service-Bundle-Instanz werden zu einem voll qualifizierten Namen der Service-Bundle-Instanz (Fully Qualified Instance Name, FQIN) kombiniert. Er identifiziert eine Service-Bundle-Instanz fahrzeugweit eindeutig.

Some examples:

  • 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

Dienstbündel in verschiedenen Paketen können denselben Dienstbündelnamen haben. Die beiden Dienstbündel (identifiziert durch ihre jeweiligen FQINs), die in derselben SDV-VM (mechatronics) bereitgestellt werden, haben beispielsweise denselben Dienstbündelnamen TirePressure:

  • mechatronics:com.yourcompany1.sdv.adas.TirePressure/default
  • mechatronics:com.yourcompany2.sdv.adas.TirePressure/default

In diesem Beispiel kommt es zu keinem Namenskonflikt, da sich die beiden Dienstbündel in verschiedenen Paketen befinden (eines in com.yourcompany1.sdv.adas und das andere in com.yourcompany2.sdv.adas).

Name des Themas

Themen werden durch Strings identifiziert, die für einen bestimmten Nachrichtentyp im gesamten Fahrzeug eindeutig sind.

Beispiele für Themennamen:

  • left-tire
  • front-window
  • engine-coolant-temp

Einschränkungen:

  • Muss alphanumerisch oder ein Bindestrich ([a-z0-9\-]) sein.
  • Muss mit einem Buchstaben beginnen.
  • Darf nicht länger als 127 Zeichen sein.

Kanalname

Kanäle werden durch einen Namensstring identifiziert.

Beispiele für Kanalnamen:

  • main-control
  • high-priority
  • background

Einschränkungen:

  • Muss alphanumerisch oder ein Bindestrich ([a-z0-9\-]) sein.
  • Muss mit einem Buchstaben beginnen.
  • Darf nicht länger als 127 Zeichen sein.

Name der Einheit der Telefongesellschaft

Entwickler von Service-Bundles interagieren hauptsächlich mit Themen und Channels. Dienstunit-Namen sind ein zugrunde liegendes Implementierungsdetail und werden hauptsächlich bei der Verwendung von Debugging-Tools wie dumpsys verwendet.

Wenn Dienst-Units bei SDV Service Discovery registriert werden, muss ein Name der Dienst-Unit angegeben werden. Dieser Name ist zum Zeitpunkt der Dienstermittlung verfügbar. In den folgenden Beispielen sehen Sie Namen von Dienst-Units mit FQINs:

  • ( 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 )

Namen von Einheitstypen

Namen von Einheitstypen entsprechen (voll qualifizierten) Protobuf-Typnamen. Beispiel:

  • 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

Zusammenfassung

Die Benennungsanforderungen sind in der folgenden Tabelle zusammengefasst:

Element Limit Zulässige Zeichen Falltyp
FQIN 256 Zeichen Besteht aus VM-Name, Paketname, Dienstbündelname und Dienstbündelinstanzname. Kleinschreibung
SDV-VM-Name 30 Zeichen
  • Muss mit einem Buchstaben beginnen a-z.
  • Darf nicht mit einem Bindestrich (-) enden.
  • Die Zeichen müssen alphanumerische Kleinbuchstaben oder ein Bindestrich (a-z0-9\-) sein.
  • Bindestriche dürfen nicht mehr als einmal hintereinander vorkommen.
Kleinschreibung
SDV-Paketname 127 Zeichen
  • Muss mindestens vier Segmente enthalten.
  • Muss mit einem Buchstaben beginnen.
  • Kein Segment darf aufeinanderfolgende Unterstriche enthalten.
  • Kein Segment darf mit einem Unterstrich enden.
  • Segmente dürfen nicht leer sein.
  • Die Zeichen müssen kleingeschrieben sein oder ein Bindestrich (a-z0-9\-) sein.
Kleinschreibung
Name des Dienstpakets 30 Zeichen
  • Muss mit einem Großbuchstaben beginnen.
  • Darf nicht leer sein.
  • Darf keine aufeinanderfolgenden Unterstriche (__) enthalten.
  • Darf nicht mit einem Unterstrich (_) beginnen oder enden.
  • Die Zeichen müssen alphanumerisch oder Unterstriche (A-Za-z0-9_) sein.
Gemischte Groß-/Kleinschreibung
Name der Dienstbündelinstanz 48 Zeichen
  • Muss mit einem Buchstaben (a-z) beginnen.
  • Darf nicht mit einem Bindestrich (-) enden.
  • Muss auf derselben VM für denselben Dienst eindeutig sein.
  • Die Zeichen müssen kleingeschrieben sein oder ein Bindestrich (a-z0-9\-) sein.
  • Bindestriche dürfen nicht mehrmals hintereinander stehen.
Kleinschreibung
Name des Themas 127 Zeichen
  • Muss mit einem Buchstaben (a-z) beginnen.
  • Die Zeichen müssen alphanumerische Kleinbuchstaben oder Bindestriche (a-z0-9\-) sein.
Kleinschreibung
Kanalname 127 Zeichen
  • Muss mit einem Buchstaben (a-z) beginnen.
  • Die Zeichen müssen alphanumerische Kleinbuchstaben oder Bindestriche (a-z0-9\-) sein.
Kleinschreibung
Name der Einheit der Telefongesellschaft 48 Zeichen
  • Muss mit einem Buchstaben (a-z) beginnen.
  • Darf nicht mit einem Bindestrich (-) enden.
  • Die Zeichen müssen kleingeschrieben sein oder ein Bindestrich (a-z0-9\-) sein.
  • Bindestriche dürfen nicht mehr als einmal hintereinander vorkommen.
Kleinschreibung