Les noms des packs de services sont définis dans une hiérarchie.
Chaque VM (identifiée par un nom de VM) est un déploiement unique du système d'exploitation du profil SDV Core.
Chaque package (identifié par un nom de package) peut contenir plusieurs packs de services.
Chaque pack de services (identifié par un nom de pack de services) peut être instancié plusieurs fois sur la même VM.
Chaque instance de pack de services est identifiée par un nom d'instance de pack de services attribué au moment du chargement.
Nom de la VM SDV
Le nom de la VM est un identifiant unique associé à chaque déploiement d'un profil SDV Core , comme spécifié dans la configuration de la VM du véhicule (vvmconfig). Le nom de la VM est utilisé dans la dénomination comme séparation logique des services le long des limites de la VM dans un véhicule. Voici quelques exemples :
cdcmechatronicspcutelematics-unit
Les restrictions de dénomination suivantes s'appliquent.
- Le nom de la VM doit commencer par une lettre
[a-z]. - Le nom de la VM ne doit pas se terminer par un trait d'union.
- Le nom de la VM ne doit pas dépasser 31 caractères.
- Tous les caractères doivent être alphanumériques minuscules ou un trait d'union
[a-z0-9\-]. - Les traits d'union dans le nom ne doivent pas apparaître consécutivement plus d'une fois.
Le nom de la VM est vérifié pour s'assurer qu'il est unique lors du temps de compilation (analyse statique) et du démarrage du système lorsque le vvmconfig est chargé.
Une erreur au niveau du démarrage se produit lorsque la validation au moment du démarrage échoue.
Nom du package SDV
Comme pour Android standard, le nom du package SDV identifie de manière unique un package déployé sur le système. Un APEX unique doit être fourni pour chaque nom de package. Exemple :
com.android.sdv.datatunnelcom.android.sdv.sample.datatunnelcom.yourcompany.sdv.adas
Les restrictions suivantes s'appliquent :
- Tous les APEX SDV appartenant à des partenaires doivent être précédés de
com.<companyname>.sdv.(com.android.sdv.est réservé aux APEX SDV appartenant à Google). - Tous les caractères doivent être alphanumériques ou un trait de soulignement
[a-z0-9_]. - Le nom du package doit contenir au moins quatre segments délimités par un point.
- Le nom du package ne doit pas se terminer par un point.
- Le nom du package ne doit pas dépasser 127 caractères.
- Chaque segment doit commencer par une lettre.
- Aucun segment ne peut comporter de traits de soulignement consécutifs,
__. - Aucun segment ne peut se terminer par un trait de soulignement,
_. - Les segments ne doivent pas être vides (pas de points consécutifs).
Nom du pack de services
Comme pour Android standard, chaque pack de services possède un nom lisible, qui est placé dans l'espace de noms du nom de package auquel il appartient. Exemple :
SomeServiceImportantService
Les restrictions de dénomination suivantes s'appliquent :
- Le nom du pack de services DOIT commencer par une lettre majuscule.
- Le nom du pack de services NE DOIT PAS être vide.
- Le nom du pack de services NE DOIT PAS dépasser 47 caractères.
- Le nom du pack de services NE DOIT PAS comporter de traits de soulignement consécutifs,
__. - Le nom du pack de services NE DOIT PAS commencer ni se terminer par un trait de soulignement,
_. - Tous les caractères DOIVENT être alphanumériques ou un trait de soulignement,
[A-Za-z0-9_].
Nom de l'instance de pack de services
Contrairement aux applications Android standards, les packs de services dans AAOS SDV peuvent être installés et chargés plusieurs fois sur la même VM. Par conséquent, le même pack de services peut avoir plusieurs instances en cours d'exécution dans la même VM AAOS SDV. Ces instances reçoivent un nom d'instance de pack de services lisible. Exemple :
front-leftfront-rightmainclientsubscriber
Les restrictions suivantes s'appliquent :
Le nom de l'instance doit :
- commencer par une lettre
[a-z]; - ne pas se terminer par un trait d'union ;
- ne pas dépasser 47 caractères ;
- être unique sur la même VM pour le même service.
- commencer par une lettre
Tous les caractères doivent être alphanumériques minuscules ou un trait d'union
[a-z0-9\-].Les traits d'union ne doivent pas apparaître consécutivement.
Chaque instance de service doit avoir un nom d'instance unique (fourni ou créé au démarrage du service).
Nom complet de l'instance de pack de services (FQIN)
Le nom de la VM SDV, le nom du package, le nom du pack de services et le nom de l'instance de pack de services sont combinés dans un nom complet de l'instance de pack de services (FQIN). Il identifie de manière unique une instance de pack de services à l'échelle du véhicule.
Voici quelques exemples :
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
Les packs de services de différents packages peuvent avoir le même nom de pack de services. Par exemple, ces deux packs de services (identifiés par leurs FQIN respectifs), déployés dans la même VM SDV (mechatronics), ont le même nom de pack de services TirePressure :
mechatronics:com.yourcompany1.sdv.adas.TirePressure/defaultmechatronics:com.yourcompany2.sdv.adas.TirePressure/default
Dans cet exemple, aucune collision de noms ne se produit, car les deux packs de services se trouvent dans des packages différents (l'un dans com.yourcompany1.sdv.adas et l'autre dans com.yourcompany2.sdv.adas).
Nom du sujet
Les sujets sont identifiés par des chaînes uniques dans le véhicule pour un type de message donné.
Exemples de noms de sujets :
left-tirefront-windowengine-coolant-temp
Restrictions:
- Doit être alphanumérique ou un trait d'union,
[a-z0-9\-]. - Doit commencer par une lettre.
- Ne doit pas dépasser 127 caractères.
Nom de la chaîne
Les chaînes sont identifiées par une chaîne de nom.
Exemples de noms de chaînes :
main-controlhigh-prioritybackground
Restrictions:
- Doit être alphanumérique ou un trait d'union,
[a-z0-9\-]. - Doit commencer par une lettre.
- Ne doit pas dépasser 127 caractères.
Nom de l'unité de service
Les développeurs de packs de services interagissent principalement avec les sujets et
les chaînes. Les noms des unités de service sont un détail d'implémentation sous-jacent et sont principalement rencontrés lors de l'utilisation d'outils de débogage tels que dumpsys.
Lorsque les unités de service sont enregistrées auprès de la découverte de services SDV, elles doivent fournir un nom d'unité de service. Ce nom d'unité de service est disponible au moment de la découverte de services. Ces exemples montrent des noms d'unités de service avec des FQIN :
( 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 )
Noms des types d'unité
Les noms des types d'unité sont égaux aux noms de types Protobuf (complets). Exemple :
com.android.sdv.datatunnel.IComponentHandlercom.android.sdv.datatunnel.IComponentHandlercom.yourcompany.sdv.adas.TirePressurecom.android.sdv.cluster.IWheelInfoCallbackcom.android.sdv.cluster.ISeatAlignmentCallback
Résumé
Les exigences de dénomination sont résumées dans le tableau suivant :
| Élément | Limite | Caractères autorisés | Type de demande |
|---|---|---|---|
| FQIN | 256 caractères | Composé du nom de la VM, du nom du package, du nom du pack de services et du nom de l'instance de pack de services. | Minuscules |
| Nom de la VM SDV | 30 caractères |
|
Minuscules |
| Nom du package SDV | 127 caractères |
|
Minuscules |
| Nom du pack de services | 30 caractères |
|
Majuscules et minuscules |
| Nom de l'instance de pack de services | 48 caractères |
|
Minuscules |
| Nom du sujet | 127 caractères |
|
Minuscules |
| Nom de la chaîne | 127 caractères |
|
Minuscules |
| Nom de l'unité de service | 48 caractères |
|
Minuscules |