サービス バンドル名は階層構造で定義されます。
各 VM (VM 名 で識別)は、SDV Core プロファイルのオペレーティング システムの単一のデプロイです。
各パッケージ (パッケージ名 で識別)には、複数のサービス バンドルを含めることができます。
各サービス バンドル (サービス バンドル名 で識別)は、同じ VM 上で複数回インスタンス化できます。
各サービス バンドル インスタンス は、ロード時に割り当てられたサービス バンドル インスタンス名 で識別されます。
SDV VM 名
VM 名は、Vehicle VM Config(vvmconfig)で指定されているように、SDV Core プロファイルの各デプロイに付加される一意の名前識別子です。VM 名は、車両内の VM 境界に沿ってサービスを論理的に分離する名前付けに使用されます。次に例を示します。
cdcmechatronicspcutelematics-unit
次の命名規則が適用されます。
- VM 名は文字
[a-z]で始める必要があります - VM 名の末尾をハイフンにすることはできません
- VM 名は 31 文字以下にする必要があります
- 使用できる文字は英小文字とハイフンのみ(
[a-z0-9\-]) - 名前のハイフンは 2 つ以上連続して使用できません
VM 名は、コンパイル時(静的分析)と vvmconfig のロード時のシステム起動時に一意であることが確認されます。
起動時の検証に失敗すると、起動レベルのエラーが発生します。
SDV パッケージ名
標準の Android と同様に、SDV パッケージ名は、システムにデプロイされたパッケージを一意に識別します。パッケージ名ごとに一意の APEX を指定する必要があります。 例:
com.android.sdv.datatunnelcom.android.sdv.sample.datatunnelcom.yourcompany.sdv.adas
次の制限が適用されます。
- パートナー所有の SDV APEX はすべて
com.<companyname>.sdv.(com.android.sdv.は Google 所有の SDV APEX 用に予約されています)。 - 使用できる文字は英数字とアンダースコアのみ(
[a-z0-9_]) - パッケージ名には、ピリオドで区切られた 4 つ以上のセグメントを含める必要があります。
- パッケージ名の末尾をピリオドにすることはできません。
- パッケージ名は 127 文字以下にする必要があります。
- 各セグメントは文字で始める必要があります。
- セグメントに連続するアンダースコア(
__)を含めることはできません。 - セグメントの末尾をアンダースコア(
_)にすることはできません。 - セグメントを空にすることはできません(連続するピリオドは使用できません)。
サービス バンドル名
標準の Android と同様に、各サービス バンドルには人が読める名前が付けられます。この名前は、属するパッケージ名で名前空間が設定されます。例:
SomeServiceImportantService
次の命名規則が適用されます。
- サービス バンドル名の先頭は大文字にする必要があります
- サービス バンドル名を空にすることはできません
- サービス バンドル名は 47 文字以下にする必要があります
- サービス バンドル名に連続するアンダースコア(
__)を含めることはできません - サービス バンドル名の先頭または末尾をアンダースコア(
_)にすることはできません - 使用できる文字は英数字とアンダースコアのみ(
[A-Za-z0-9_])
サービス バンドル インスタンス名
標準の Android アプリケーションとは異なり、AAOS SDV のサービス バンドルは、同じ VM に複数回インストールしてロードできます。そのため、同じサービス バンドルで、同じ AAOS SDV VM 内に複数のインスタンスを実行できます。 これらのインスタンスには、人が読めるサービス バンドル インスタンス名 が割り当てられます。 例:
front-leftfront-rightmainclientsubscriber
次の制限が適用されます。
インスタンス名は次の条件を満たす必要があります。
- 文字
[a-z]で始める - 末尾をハイフンにしない
- 47 文字以下にする
- 同じサービスに対して同じ VM 上で一意にする
- 文字
使用できる文字は英小文字とハイフンのみ(
[a-z0-9\-])ハイフンを連続して使用することはできません
各サービス インスタンスには、一意のインスタンス名(サービスの起動時に指定または作成)が必要です。
サービス バンドル インスタンスの完全修飾名(FQIN)
SDV VM 名、パッケージ名、サービス バンドル名、サービス バンドル インスタンス名を組み合わせて、サービス バンドル インスタンスの完全修飾された名前(FQIN)を作成します。これにより、サービス バンドル インスタンスを車両全体で一意に識別できます。
例:
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
パッケージが異なるサービス バンドルに同じサービス バンドル名を付けることができます。たとえば、同じ SDV VM
(mechatronics)にデプロイされた次の 2 つのサービス バンドル(それぞれの FQIN で識別)には、同じサービス バンドル名
TirePressure が付けられています。
mechatronics:com.yourcompany1.sdv.adas.TirePressure/defaultmechatronics:com.yourcompany2.sdv.adas.TirePressure/default
この例では、2 つのサービス バンドルが異なるパッケージ(1 つは com.yourcompany1.sdv.adas、もう 1 つは
com.yourcompany2.sdv.adas)にあるため、名前の衝突は発生しません。
トピック名
トピックは、特定のメッセージ タイプに対して車両全体で一意の文字列で識別されます。
トピック名の例:
left-tirefront-windowengine-coolant-temp
制限事項:
- 英数字またはハイフン(
[a-z0-9\-])にする必要があります。 - 先頭は英文字でなければなりません。
- 127 文字以下にする必要があります。
チャンネル名
チャンネルは名前文字列で識別されます。
チャンネル名の例:
main-controlhigh-prioritybackground
制限事項:
- 英数字またはハイフン(
[a-z0-9\-])にする必要があります。 - 先頭は英文字でなければなりません。
- 127 文字以下にする必要があります。
サービス ユニット名
サービス バンドルのデベロッパーは、主に トピック と
チャンネルを操作します。サービス ユニット名は基盤となる実装の詳細であり、主に dumpsys などのデバッグツールを使用する場合に発生します。
サービス ユニットは、SDV Service Discovery に登録する際に、サービス ユニット名 を指定する必要があります。このサービス ユニット名は、サービス検出時に使用できます。次の例は、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 )
ユニットタイプ名
ユニットタイプ名は、Protobuf タイプ名(完全修飾)と同じです。例:
com.android.sdv.datatunnel.IComponentHandlercom.android.sdv.datatunnel.IComponentHandlercom.yourcompany.sdv.adas.TirePressurecom.android.sdv.cluster.IWheelInfoCallbackcom.android.sdv.cluster.ISeatAlignmentCallback
概要
命名要件を次の表にまとめます。
| 項目 | 上限 | 使用できる文字 | ケースの種類 |
|---|---|---|---|
| FQIN | 256 文字 | VM 名、パッケージ名、サービス バンドル名、サービス バンドル インスタンス名で構成されます。 | 小文字 |
| SDV VM 名 | 30 文字 |
|
小文字 |
| SDV パッケージ名 | 127 文字 |
|
小文字 |
| サービス バンドル名 | 30 文字 |
|
大文字と小文字の併用 |
| サービス バンドル インスタンス名 | 48 文字 |
|
小文字 |
| トピック名 | 127 文字 |
|
小文字 |
| チャンネル名 | 127 文字 |
|
小文字 |
| サービス ユニット名 | 48 文字 |
|
小文字 |