このセクションでは、この用語とコンセプトを使用します。
CarAppServiceCarAppServiceは、抽象Serviceクラスです。アプリがホストによって検出、管理されるためには、このクラスを実装し、エクスポートする必要があります。アプリのCarAppServiceは、createHostValidatorを使用してホスト接続が信頼できることを検証し、次いで、onCreateSessionを使用して接続ごとにSessionインスタンスを提供します。- ホスト
ホストは、ライブラリの API によって提供される、アプリを車で実行するための機能を実装するバックエンド コンポーネントです。ホストは、アプリの検出とそのライフサイクルの管理、モデルのビューへの変換、ユーザー操作のアプリへの通知にいたるまで、幅広いサービスを提供します。
モバイル デバイスでは、このホストは Android Auto によって実装されます。Android Automotive OS では、このホストはシステムアプリとしてインストールされます。
- モデルとテンプレート
ユーザー インターフェースは、モデル オブジェクトのグラフで表されます。モデル オブジェクトは、帰属するテンプレートで許可されているさまざまな方法で配置できます。テンプレートとは、グラフでルートとして機能するモデルのサブセットです。
モデルには、テキストや画像の形式でユーザーに表示される情報と、このような情報の見た目の各部分を構成する属性が含まれています。たとえば、テキストの色や画像のサイズなどです。
ホストは、モデルを、ドライバーの注意散漫に関する基準に則したデザインのビューに変換し、さまざまな車の画面の要素や入力モダリティなど、詳細な処理を行います。
ScreenScreenは、ライブラリによって提供されるクラスであり、アプリはこのクラスを実装して、ユーザーに表示されるインターフェースを管理します。Screenにはライフサイクルがあり、画面の表示時に表示されるテンプレートをアプリが送信するために使用されます。また、ScreenインスタンスをScreenスタックにプッシュ(push)し、ポップ(pop)して、テンプレート フローの制限事項を満たしていることを確認することもできます。SessionSessionは抽象クラスであり、アプリはCarAppService.onCreateSessionを使用してこのクラスを実装し、結果を返す必要があります。Sessionは、車の画面に情報を表示するためのエントリ ポイントとして機能します。Sessionには、車の画面にアプリの現在の状態(アプリが表示されているか、非表示になっているかなど)を通知するライフサイクルがあります。Sessionが開始されると(アプリの初回起動時など)、ホストはonCreateScreenメソッドを使用して、どの最初のScreenを表示するかを尋ねます。- テンプレートの制限事項
テンプレートに応じて、そのモデルのコンテンツに制限が課されます。たとえば、リスト テンプレートには、ユーザーに提示できるアイテムの数に制限があります。
テンプレートには、タスクのフローを形成するためにテンプレートを接続する方法に対しても制限があります。たとえば、アプリが画面スタックにプッシュできるテンプレートは最大 5 つです。詳細については、テンプレートの制限事項をご覧ください。