as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

開発者モードの有効化

開発者モードの有効化

開発者モードを使用すると、デバイス上のアプリ開発機能が有効になります。アプリのテスト、セキュアシェルへのアクセス、パッケージの管理、コンポーネントのデバッグ、ファイルシステムへのアクセスが可能です。アプリの開発、パッケージのデプロイ、パフォーマンスのモニタリング、アプリのデバッグ、コンポーネント管理に使用できます。

Fire TV Stickで開発者モードを構成する方法については、開発者モードの構成を参照してください。

開発者モードの状態

開発者モードの動作には、有効、認証、無効の各状態があります。

有効状態

有効状態では、vshシェルアクセス、vpmによるパッケージ管理、コンポーネントデバッグ機能など、すべての開発者機能が有効になります。

認証状態

認証状態は、有効化処理中に開発者モードへのアクセスがシステムによって検証されていることを示します。

無効状態

無効状態では、機能へのアクセスが標準ユーザー機能のみに制限されます。

開発ツール

開発者モードでは、パッケージのデプロイ、コンポーネント管理、ファイル操作に不可欠なツールにアクセスできます。これらは開発ワークフローにおいて重要なツールであり、適切なコンテキストと適切な権限で使用する必要があります。ツールの詳細とその適切な使用方法を理解することで、開発を効率的に行い、よくある問題を回避することができます。一部のツールは、シェルの種類とデバイス構成によって機能が異なる場合があります。

Vega CLI

Vegaコマンドラインインターフェイス(CLI)コマンドは、デバイスにおけるパッケージのインストール、アンインストール、管理に使用します。以下のパッケージ操作が可能です。

# インストール
kepler device install-app --packagePath my-package.vpkg

# パッケージの一覧表示
kepler device installed-packages

# パッケージの情報
kepler device run-cmd --command 'vpm info <パッケージID>'

# アンインストール
kepler device uninstall-app --appName <コンポーネントID>

Amazon以外のパッケージ(com.amazonプレフィックスが付いていないパッケージ)のみをサイドロードできます。

コンポーネント管理

アプリコンポーネントを起動、一覧表示、終了するには、kepler deviceのコンポーネント管理コマンドを使用します。主なコマンドは以下のとおりです。

# 起動
kepler device launch-app -appName <コンポーネントID>

# コンポーネントの一覧表示
kepler device running-apps

# 終了
kepler device terminate-app --appName <コンポーネントID>

ファイル操作

開発マシンとデバイス間でファイルを転送するには、ファイル操作を使用します。デフォルトシェルでは/tmpディレクトリへのアクセスのみが許可されますが、コンポーネントシェルでは特定の/tmp/scratch/<パッケージID>ディレクトリにアクセスできます。転送後は必ずファイルのアクセス権を確認します。また、デバイスのストレージを維持するため、不要になった一時ファイルは削除します。ファイルパスでは大文字と小文字が区別されることに注意してください。

ファイルを削除するときは、次の点に注意してください。

  1. デフォルトの開発シェルから/tmpにプッシュされたファイルのみを削除します。
  2. 以下の操作を行って、特定のコンポーネントシェル内で/tmp/scratch/<パッケージID>にあるファイルを削除します。

    • kepler exec vda shell -t component-id com.myorg.myapp.mainコマンドを使用して、コンポーネントシェルに入る
    • /scratchディレクトリ(コンポーネントシェル内の/tmp/scratch/<パッケージID>のバインドマウント)に移動する
     sh(com.myorg.myapp.main):/$ cd scratch
     sh(com.myorg.myapp.main):/scratch$ rm -rf <ファイル名>
    

    デフォルトシェルプッシュ

     # デフォルトシェルにプッシュします
     kepler device copy-to --source <ソース> --destination /tmp/
    
     # ファイルを表示します
     kepler device shell
     sh(com.amazon.dev.shell):/$ ls -al /tmp
    

    コンポーネントシェルプッシュ

    
     kepler device copy-to --source <ソース> --destination /tmp/scratch/<パッケージID>/
    
     例:
     (hostmachine)% kepler device copy-to --source myfile_cloud.sh --destination /tmp/scratch/com.myorg.myapp   
    
     # コンポーネントの一覧を見つけます
     kepler device installed-apps
    
     出力の例: 
     com.myorg.myapp.main         
     com.myorg.otad.main          
     com.myorg.dev.shell.service  
    
     # デバイスにインストールされたパッケージの一覧を見つけます
     kepler device installed-packages
    
     出力の例:
     com.myorg.myapp
     com.myorg.test.lifecycleobserver
     com.myorg.TESSERACT.TEST
     com.myorg.sm-sample.client
     com.myorg.samplepkg
     com.myorg.security.manager.unprivileged-test
     com.myorg.nmunprivileged.task
     com.myorg.messaging.mr33.okidl.ac
    
     # コンポーネントシェルを起動します
     (hostmachine)% kepler exec vda shell -t component-id com.myorg.myapp.main 
    
     # プッシュされたファイルを表示します
     sh(com.myorg.myapp):/$ ls -al scratch/
    
     出力の例:
     total 4
     drwxr-xr-x  2 app_user app_user  60 2024-07-16 03:03 .
     drwxr-xr-x 19 app_user app_user 400 2024-07-16 03:03 ..
     -rwxrwxrwx  1 app_user 30086    650 2024-07-16 03:03 myfile_cloud.sh
    

    デバイスからプル

     # デバイスからプルします
     kepler device copy-from -o <デバイスパス> -s <ローカルパス>
    

ベストプラクティス

開発者モードを使用するときは、意図しないシステム変更を防ぐため、通常の開発ワークフローの一貫として次のプラクティスに従います。

  • Amazon以外のパッケージIDを持つアプリのみをサイドロードします(パッケージIDの先頭がcom.amazonではないことを確認します)。
  • タスクに必要な最低限のアクセスレベルを使用します。
  • 最小権限の原則に従います。
  • 自分のアクションがデバイスの安定性とセキュリティに影響を及ぼす可能性があることに注意します。

トラブルシューティングとサポート

開発中に問題が発生した場合は、影響を受けている領域(シェルアクセス、パッケージ管理、コンポーネント起動、ファイル操作)を特定することから始めます。問題の主な原因として、権限の誤りやデバイス状態の制限などが挙げられます。

次の表に記載されている解決策で問題が解決しない場合は、loggingctl logを使用して関連するログを収集してから、サポートを受けてください。

よくある問題

問題 考えられる原因 解決策 予防策
パッケージのインストールが失敗する ディレクトリの間違い、または形式の問題。 /tmpの場所とパッケージ形式を確認します。 パッケージのガイドラインに従います。
コンポーネントの起動に関する問題 マニフェストエントリが見つからない。 マニフェストの構成とコンポーネントIDを確認します。 適切なマニフェストエントリを含めます。

デバッグツール

loggingctl logを使用してシステムログを収集し、コンポーネントの状態をモニタリングします。各デバッグツールには、デバイスの状態に基づいた特定のアクセスレベルがあります。

ツール 目的 必要なアクセスレベル 一般的なユースケース
loggingctl システムログとコンポーネントログ シェルの種類により異なる デバッグクラッシュ、動作の検証。
vlcm list コンポーネントのモニタリング デフォルトシェル 実行中のコンポーネントの追跡、状態の確認。
ps -efZ プロセスとセキュリティコンテキスト コンポーネントシェル 権限の確認、プロセスの状態の確認。

Last updated: 2025年9月30日