マニフェストの [components] セクション
[components] セクションは、interactive(対話型)コンポーネント、service(サービス)コンポーネント、task(タスク)コンポーネントなど、このパッケージにバンドルされているアプリケーションコンポーネントを宣言します。
アプリケーションコンポーネントは単一のユーザーワークフローとインタラクションを具体化しており、これを起動することで単一のインスタンスをいつでも維持でき、新しいインスタンスを作成することもできます。各コンポーネントの複数のインスタンスを作成して、各インスタンスに独自の状態を維持させ、ライフサイクルの状態を個別に遷移させることができます。
ほとんどのアプリケーションパッケージは、少なくとも1つのアプリケーションコンポーネントで構成されていますが、ライブラリのみのパッケージでコンポーネントを一切含まない場合もあります。アプリケーションパッケージ内の各コンポーネントが存在する場合はこのセクションで宣言します。マニフェスト内では、同じタイプのコンポーネントを複数個宣言することができます。
[components]
[[components.interactive]]
# 対話型コンポーネントの構成(0個以上を定義します)
[[components.service]] # このタイプのコンポーネントを0個以上定義します
# サービスコンポーネントの構成(0個以上を定義します)
[[components.task]] # このタイプのコンポーネントを0個以上定義します
# タスクコンポーネントの構成(0個以上を定義します)
[[components.interactive]]
必須
interactiveタイプのコンポーネントは、エンドユーザーが対話できるようにします。このコンポーネントはグラフィックコンテンツを表示し、キーボードなどのユーザー入力に応答します。アプリを起動したり、Amazonアプリストアに申請したりするには、categoriesセクションにcom.amazon.category.mainが登録されている必要があります。
フィールド
id(文字列、必須): コンポーネントの一意の識別子。慣例により、コンポーネントは<パッケージID>.<コンポーネント名>の形式で表します。idとして指定する文字列は、パッケージIDに関する次のルールに従う必要があります。- 使用できる文字:大文字の
A~Z、小文字のa~z、数字の0~9、ドット.とアンダースコア_ - 逆引きDNS表記、
<パッケージID>.<コンポーネント名>(各セグメントの先頭は文字)を使用します。
- 使用できる文字:大文字の
categories(文字列の配列、機能統合の場合は必須): アプリケーションパッケージ内のさまざまなコンポーネントのカテゴリー分類のリスト。カテゴリーに指定する文字列はcom.amazon.category.<カテゴリー名>の形式で表します。ここで、<カテゴリー名>は、Vegaシステムに定義されているコンポーネントカテゴリーの定義済みリストです。categoriesに指定できる値は次のとおりです。com.amazon.category.main: コンポーネントをアプリケーションパッケージのデフォルトである対話型コンポーネントとして宣言します。このカテゴリーは、VegaシステムがパッケージIDまたは製品のASINに基づいてアプリを起動する際にデフォルトコンポーネントを見つけるために使用されます。マニフェストでは、mainとして宣言する必要がある対話型コンポーネントは1つだけです。また、マニフェストは、HomeランチャーまたはAmazonアプリストアのアプリからアプリを正常に起動させるためにも必要です。com.amazon.category.caf: Alexa Voice Serviceと対話する機能エージェントとしてコンポーネントを宣言します。com.amazon.category.kepler.media: コンポーネントをVegaのメディア操作の対象として宣言します。com.amazon.category.launcher: コンポーネントをデバイスのランチャーアプリケーションとして宣言します。このカテゴリーはシステムアプリケーション専用であり、他のアプリに使用するとエラーになります。
categories = [ "com.amazon.category.main" ]launch-type(文字列、任意): システムがライフサイクルの管理に使用するコンポーネントの起動動作を記述します。指定できる値は以下のとおりです。new-instance: 新しいインスタンスが既存のアプリケーションプロセスコンテナに作成され、同じメモリスペースを共用します。new-instanceは、launch-typeの値を設定しない場合のデフォルトになります。new-container: 新しいインスタンスが、新しいプロセスコンテナに作成され、プロセスを既存のインスタンスと共用しません。このため、各コンポーネントインスタンスは切り離されています。singleton: アプリケーションコンポーネントの実行中のインスタンスは1つだけ作成されます。新しい呼び出しを行った場合でも、既存のインスタンスが必ず参照されます。この同一インスタンスがバックスタックに存在し続けます。-
singleton-per-display: マルチディスプレイシナリオの場合に、アプリケーションコンポーネントの実行中のインスタンスがディスプレイごとに1つ作成されます。同じディスプレイで新規起動を行った場合でも、そのディスプレイの既存インスタンスが参照されます。シングルディスプレイの場合は、singleton-per-displayは起動タイプsingletonと同じ動作になります。launch-type = "singleton"
-
timeout-secs(数値、任意): フォアグラウンドコンポーネントインスタンスの非アクティブ時のタイムアウト値(秒単位)。指定する値は正の整数である必要があります。指定しない場合、タイムアウトはシステムデフォルトに設定されます。タイムアウト時に、非アクティブなフォアグラウンドコンポーネントがバックグラウンドに送られ、lifespanの値に基づいてバックスタック内で次となるコンポーネントがフォアグラウンドに移動します。timeout-secs = 30 lifespan(文字列、任意): コンポーネントインスタンスの存続時間に関するポリシーです。フォアグラウンドの既存のコンポーネントインスタンスがタイムアウトまたは終了した後に、当該のコンポーネントインスタンスをフォアグラウンドに戻す必要があるかどうかを設定します。フォアグラウンドで最後に残っていたコンポーネントの存続時間と同じか、より長い存続時間を持つアプリケーションコンポーネントが、バックスタックから選択されます。lifespanに指定できる値は以下のとおりです。permanent: コンポーネントインスタンスは、明示的なユーザーアクションに基づいてのみ終了されます。permanentは、lifespanの値を設定しない場合のデフォルトになります。long: コンポーネントインスタンスが長い間(数分から数時間以上)実行されます。short: コンポーネントインスタンスが数秒から数分間、実行されます。-
transient: コンポーネントインスタンスが画面上でごく短い間フォーカスを取得します。しかし、すぐに直前のインスタンスが再びフォーカスされます。lifespan = "permanent"
-
runtime-module(文字列、任意): コンポーネントの実行に必要なランタイムモジュール。このフィールドは、システムが、コンポーネントをインスタンス化する前に必要なライブラリをプロセスに事前に読み込むために使用されます。定義しない場合は、コンポーネント用にネイティブランタイムが設定されます。Vegaシステムで現在利用できるランタイムモジュールは/com.amazon.Vega.Vegascript.runtime.loader_2@IVegaScript_2_0、または/com.amazon.Vega.runtime.Vegascript_2@IVegaScriptです。runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"runtime-moduleの設定についての詳細を確認してください。
[[components.service]]
任意
サービスタイプのコンポーネントは、対話可能なインターフェイスをエンドユーザーに提供せず、バックグラウンドでオペレーションを実行します。
フィールド
id(文字列、必須): コンポーネントの一意の識別子。慣例により、コンポーネントは<パッケージID>.<コンポーネント名>の形式で表します。idとして指定する文字列は、パッケージIDに関する次のルールに従う必要があります。- 使用できる文字:大文字の
A~Z、小文字のa~z、数字の0~9、ドット.とアンダースコア_ - 逆引きDNS表記、
<パッケージID>.<コンポーネント名>(各セグメントの先頭は文字)を使用します。
- 使用できる文字:大文字の
categories(文字列の配列、機能統合の場合は必須): アプリケーションパッケージ内のさまざまなコンポーネントのカテゴリー分類のリスト。カテゴリーに指定する文字列はcom.amazon.category.<カテゴリー名>の形式で表します。ここで、<カテゴリー名>は、Vegaシステムに定義されているコンポーネントカテゴリーの定義済みリストです。categoriesに指定できる値は次のとおりです。-
com.amazon.category.kepler.media: コンポーネントをVegaのメディア操作の対象として宣言します。categories = [ "com.amazon.category.kepler.media" ]
-
launch-type(文字列、任意): システムがライフサイクルの管理に使用するコンポーネントの起動動作を記述します。指定できる値は以下のとおりです。singleton: このコンポーネントの単一のインスタンスが、このコンポーネントのすべてのクライアントアプリケーションプロセスで使用されます。singletonは、launch-typeの値を設定しない場合のデフォルトになります。-
singleton-per-application: クライアントアプリケーションパッケージごとに、このコンポーネントの新しいインスタンスが1つ割り当てられます。launch-type = "singleton-per-application"
-
runtime-module(文字列、任意): コンポーネントの実行に必要なランタイムモジュール。このフィールドは、システムが、コンポーネントをインスタンス化する前に必要なライブラリをプロセスに事前に読み込むために使用されます。定義しない場合は、コンポーネント用にネイティブランタイムが設定されます。Keplerシステムで現在利用できるランタイムモジュールは/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0、または/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0です。このランタイムモジュールは、KeplerScript 2.0フレームワーク(React Native 0.72)で開発されたコンポーネントに使用してください。タスクやサービスコンポーネントがどの対話型コンポーネントともプロセスを共有しない場合は、headlessのランタイムモジュールを使用する必要があります。runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"runtime-moduleの設定についての詳細を確認してください。
[[components.task]]
任意
タスクタイプのコンポーネントは、バックグラウンドで一定時間、作業を実行します。
フィールド
id(文字列、必須): コンポーネントの一意の識別子。慣例により、コンポーネントは<パッケージID>.<コンポーネント名>の形式で表します。idとして指定する文字列は、パッケージIDに関する次のルールに従う必要があります。- 使用できる文字:大文字の
A~Z、小文字のa~z、数字の0~9、ドット.とアンダースコア_ - 逆引きDNS表記、
<パッケージID>.<コンポーネント名>(各セグメントの先頭は文字)を使用します。
- 使用できる文字:大文字の
categories(文字列の配列、機能統合の場合は必須): アプリケーションパッケージ内のさまざまなコンポーネントのカテゴリー分類のリスト。カテゴリーに指定する文字列はcom.amazon.category.<カテゴリー名>の形式で表します。ここで、<カテゴリー名>は、Vegaシステムに定義されているコンポーネントカテゴリーの定義済みリストです。categoriesに指定できる値は次のとおりです。com.amazon.category.kepler.media: コンポーネントをVegaのメディア操作の対象として宣言します。
-
runtime-module(文字列、任意): コンポーネントの実行に必要なランタイムモジュール。このフィールドは、システムが、コンポーネントをインスタンス化する前に必要なライブラリをプロセスに事前に読み込むために使用されます。定義しない場合は、コンポーネント用にネイティブランタイムが設定されます。Vegaシステムで現在利用できるランタイムモジュールは/com.amazon.Vega.Vegascript.runtime.loader_2@IVegaScript_2_0、または/com.amazon.Vega.headless.runtime.loader_2@IVegaScript_2_0です。このランタイムモジュールは、KeplerScript 2.0フレームワーク(React Native 0.72)で開発されたコンポーネントに使用してください。タスクやサービスコンポーネントがどの対話型コンポーネントともプロセスを共有しない場合は、headlessのランタイムモジュールを使用する必要があります。runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"runtime-moduleの設定についての詳細を確認してください。
Last updated: 2025年9月30日

