サービス バンドルの命名規則

サービス バンドル名は階層構造で定義されます。

  • VMVM 名 で識別)は、SDV Core プロファイルのオペレーティング システムの単一のデプロイです。

  • パッケージパッケージ名 で識別)には、複数のサービス バンドルを含めることができます。

  • サービス バンドルサービス バンドル名 で識別)は、同じ VM 上で複数回インスタンス化できます。

  • サービス バンドル インスタンス は、ロード時に割り当てられたサービス バンドル インスタンス名 で識別されます。

SDV VM 名

VM 名は、Vehicle VM Config(vvmconfig)で指定されているように、SDV Core プロファイルの各デプロイに付加される一意の名前識別子です。VM 名は、車両内の VM 境界に沿ってサービスを論理的に分離する名前付けに使用されます。次に例を示します。

  • cdc
  • mechatronics
  • pcu
  • telematics-unit

次の命名規則が適用されます。

  • VM 名は文字 [a-z] で始める必要があります
  • VM 名の末尾をハイフンにすることはできません
  • VM 名は 31 文字以下にする必要があります
  • 使用できる文字は英小文字とハイフンのみ([a-z0-9\-]
  • 名前のハイフンは 2 つ以上連続して使用できません

VM 名は、コンパイル時(静的分析)と vvmconfig のロード時のシステム起動時に一意であることが確認されます。

起動時の検証に失敗すると、起動レベルのエラーが発生します。

SDV パッケージ名

標準の Android と同様に、SDV パッケージ名は、システムにデプロイされたパッケージを一意に識別します。パッケージ名ごとに一意の APEX を指定する必要があります。 例:

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

次の制限が適用されます。

  • パートナー所有の SDV APEX はすべて com.<companyname>.sdv. (com.android.sdv. は Google 所有の SDV APEX 用に予約されています)。
  • 使用できる文字は英数字とアンダースコアのみ([a-z0-9_]
  • パッケージ名には、ピリオドで区切られた 4 つ以上のセグメントを含める必要があります。
  • パッケージ名の末尾をピリオドにすることはできません。
  • パッケージ名は 127 文字以下にする必要があります。
  • 各セグメントは文字で始める必要があります。
  • セグメントに連続するアンダースコア(__)を含めることはできません。
  • セグメントの末尾をアンダースコア(_)にすることはできません。
  • セグメントを空にすることはできません(連続するピリオドは使用できません)。

サービス バンドル名

標準の Android と同様に、各サービス バンドルには人が読める名前が付けられます。この名前は、属するパッケージ名で名前空間が設定されます。例:

  • SomeService
  • ImportantService

次の命名規則が適用されます。

  • サービス バンドル名の先頭は大文字にする必要があります
  • サービス バンドル名を空にすることはできません
  • サービス バンドル名は 47 文字以下にする必要があります
  • サービス バンドル名に連続するアンダースコア(__)を含めることはできません
  • サービス バンドル名の先頭または末尾をアンダースコア(_)にすることはできません
  • 使用できる文字は英数字とアンダースコアのみ([A-Za-z0-9_]

サービス バンドル インスタンス名

標準の Android アプリケーションとは異なり、AAOS SDV のサービス バンドルは、同じ VM に複数回インストールしてロードできます。そのため、同じサービス バンドルで、同じ AAOS SDV VM 内に複数のインスタンスを実行できます。 これらのインスタンスには、人が読めるサービス バンドル インスタンス名 が割り当てられます。 例:

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

次の制限が適用されます。

  • インスタンス名は次の条件を満たす必要があります。

    • 文字 [a-z] で始める
    • 末尾をハイフンにしない
    • 47 文字以下にする
    • 同じサービスに対して同じ VM 上で一意にする
  • 使用できる文字は英小文字とハイフンのみ([a-z0-9\-]

  • ハイフンを連続して使用することはできません

  • 各サービス インスタンスには、一意のインスタンス名(サービスの起動時に指定または作成)が必要です。

サービス バンドル インスタンスの完全修飾名(FQIN)

SDV VM 名、パッケージ名、サービス バンドル名、サービス バンドル インスタンス名を組み合わせて、サービス バンドル インスタンスの完全修飾された名前(FQIN)を作成します。これにより、サービス バンドル インスタンスを車両全体で一意に識別できます。

例:

  • 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

パッケージが異なるサービス バンドルに同じサービス バンドル名を付けることができます。たとえば、同じ SDV VM (mechatronics)にデプロイされた次の 2 つのサービス バンドル(それぞれの FQIN で識別)には、同じサービス バンドル名 TirePressure が付けられています。

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

この例では、2 つのサービス バンドルが異なるパッケージ(1 つは com.yourcompany1.sdv.adas、もう 1 つは com.yourcompany2.sdv.adas)にあるため、名前の衝突は発生しません。

トピック名

トピックは、特定のメッセージ タイプに対して車両全体で一意の文字列で識別されます。

トピック名の例:

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

制限事項:

  • 英数字またはハイフン([a-z0-9\-])にする必要があります。
  • 先頭は英文字でなければなりません。
  • 127 文字以下にする必要があります。

チャンネル名

チャンネルは名前文字列で識別されます。

チャンネル名の例:

  • main-control
  • high-priority
  • background

制限事項:

  • 英数字またはハイフン([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.IComponentHandler
  • com.android.sdv.datatunnel.IComponentHandler
  • com.yourcompany.sdv.adas.TirePressure
  • com.android.sdv.cluster.IWheelInfoCallback
  • com.android.sdv.cluster.ISeatAlignmentCallback

概要

命名要件を次の表にまとめます。

項目 上限 使用できる文字 ケースの種類
FQIN 256 文字 VM 名、パッケージ名、サービス バンドル名、サービス バンドル インスタンス名で構成されます。 小文字
SDV VM 名 30 文字
  • 文字 a-z で始める必要があります。
  • 末尾をハイフン(-)にすることはできません。
  • 使用できる文字は英小文字とハイフンのみ(a-z0-9\-
  • ハイフンを 2 つ以上連続して使用することはできません。
小文字
SDV パッケージ名 127 文字
  • 4 つ以上のセグメントを含める必要があります。
  • 先頭は英文字でなければなりません。
  • セグメントに連続するアンダースコアを含めることはできません。
  • セグメントの末尾をアンダースコアにすることはできません。
  • セグメントを空にすることはできません。
  • 使用できる文字は英小文字とハイフンのみ(a-z0-9\-
小文字
サービス バンドル名 30 文字
  • 先頭は大文字にする必要があります。
  • 空にすることはできません。
  • 連続するアンダースコア(__)を含めることはできません。
  • 先頭または末尾をアンダースコア(_)にすることはできません。
  • 使用できる文字は英数字とアンダースコアのみ(A-Za-z0-9_
大文字と小文字の併用
サービス バンドル インスタンス名 48 文字
  • 文字 a-z で始める必要があります。
  • 末尾をハイフン(-)にすることはできません。
  • 同じサービスに対して同じ VM 上で一意にする必要があります。
  • 使用できる文字は英小文字とハイフンのみ(a-z0-9\-
  • ハイフンを連続して使用することはできません。
小文字
トピック名 127 文字
  • 文字 a-z で始める必要があります。
  • 使用できる文字は英小文字とハイフンのみ(a-z0-9\-
小文字
チャンネル名 127 文字
  • 文字 a-z で始める必要があります。
  • 使用できる文字は英小文字とハイフンのみ(a-z0-9\-
小文字
サービス ユニット名 48 文字
  • 文字 a-z で始める必要があります。
  • 末尾をハイフン(-)にすることはできません。
  • 使用できる文字は英小文字とハイフンのみ(a-z0-9\-
  • ハイフンを 2 つ以上連続して使用することはできません。
小文字