SDV 開発用の IDE をセットアップする

Android Studio for Platform(ASfP)は、Android Automotive オペレーティング システム(AAOS)ソフトウェア定義車両(SDV)プロジェクトなど、Android プラットフォームの開発に推奨される統合開発環境(IDE)です。ASfP には、コードの編集、ビルド、デバッグ、テストのための豊富なツールセットが用意されています。

  • AI を活用したアシスタンス(Gemini)
  • Rust、C、C++、Java 言語のサポート
  • AAOS SDV 開発に役立つ統合(Cuttlefish エミュレータのサポートや VSIDL 言語のサポートなど)

Android Studio for Platform をインストールする

ASfP をインストールするには:

  1. Android Studio for Platform をダウンロードします。

  2. ニーズに最適なバージョンを選択します。

    • Stable: 最新のプロダクション リリース。ほとんどのユーザーにおすすめします
    • カナリア版: 最新機能を搭載した早期アクセス版ですが、安定性が低い可能性があります。
  3. ダウンロード ページに記載されているインストール手順に沿って操作します。

AAOS SDV プロジェクトをセットアップする

AAOS SDV プロジェクトを設定するには:

  1. AAOS SDV ソースコード リポジトリにアクセスでき、ローカル チェックアウトを初期化して同期していることを確認します。ソースへのアクセスとリポジトリの初期化の詳細については、ダウンロード、ビルド、実行をご覧ください。

  2. Android Studio for Platform を起動します。

  3. 初めて使用する場合は、設定ウィザードに沿って開発環境をカスタマイズします。

  4. 新しいプロジェクトを作成します。

    • プロジェクトを開いていない場合は、ウェルカム画面で [New] をクリックします。
    • すでにプロジェクトを開いている場合は、[Open] をクリックするか、メニューから [ASfP] > [Project] > [Import ASfP Project] を選択します。
  5. ウィザードでプロジェクト構成の詳細を入力します。

    • Repo checkout: ローカル AAOS SDV ソースコードのチェックアウトのルートへの絶対パスを指定します(例: /path/to/sdv_source)。

    • lunch target: Cuttlefish での AAOS SDV 開発に適した lunch ターゲットを入力します(例: sdv_core_cf-aosp_current-userdebug)。利用可能なターゲットについて詳しくは、ターゲットを選択するをご覧ください。

    • Project sources: プロジェクトに含める初期ディレクトリまたはモジュールを指定します。または、フォルダ アイコンをクリックしてファイル システム ブラウザを開き、ディレクトリを選択します。ディレクトリやモジュールを多く選択しすぎると、IDE のインデックス登録と検索のパフォーマンスに影響するため、関連するディレクトリやモジュールのみを含めてください。

    • 言語サポート: サポート対象言語として Rust と C++ を選択します。

    • Project name: プロジェクトにわかりやすい名前を付けます。

    • セットアップを完了する: [完了] をクリックします。ASfP により、プロジェクト構造と .asfp-project 構成ファイルが作成されます。

ASfP は初期同期プロセスを自動的に開始します。ASfP は、ソースコードを分析し、Soong ビルドシステムを使用して依存関係を解決し、コード インテリジェンス機能に必要な情報をビルドします。特に初回同期には、かなりの時間がかかることがあります。

プロジェクトをカスタマイズする

プロジェクト ルートの .asfp-project ファイルを使用すると、さらにカスタマイズできます。このファイルを編集して、次のことができます。

  • ディレクトリとモジュールを追加または削除する。
  • C++ や Rust などの他の言語のサポートを有効にします(Java と Kotlin はデフォルトです)。
  • ビルドフラグを構成します。

構成ファイルを変更するには、[ASfP] > [Project] > [Open Config] を選択します。使用可能な構成オプションについては、プロジェクトの概要をご覧ください。

デバッグとテスト

ASfP でコードをデバッグしてテストするには、プラットフォーム コードをデバッグするatest でプラットフォーム コードをテストするをご覧ください。

利用可能な統合

ASfP には、VSIDL での Cuttlefish と Language Server Protocol(LSP)のサポートなど、AAOS SDV 開発に役立つ統合機能がいくつか用意されています。

Cuttlefish プラグイン

Cuttlefish プラグインを使用すると、ユーザーは ASfP から直接ローカル Cuttlefish デバイスを作成して実行できます。

プラグインをインストールする

Cuttlefish プラグインは ASfP にプリインストールされており、セットアップは不要です。このプラグインでは、デバイスに Cuttlefish ツールがインストールされている必要があります。必要に応じて、手順に沿って Cuttlefish ツールをインストールします。

Cuttlefish デバイスを作成する

新しいデバイスを作成するには:

  1. デバイス マネージャーのツール ウィンドウを開くには、[Tools] > [Device Manager] を選択するか、デバイス マネージャーが右側のパネルにすでにピン留めされている場合は、[Running Devices] アイコンをクリックします。

  2. + アイコンをクリックして、[Cuttlefish デバイスを作成] を選択します。

  3. 新しい Cuttlefish デバイスを構成します。Cuttlefish デバイスは次の 2 つの方法で作成できます。

    • ローカルの Android ソースツリー チェックアウトから:

      • 起動構成に対応するビルド ターゲットのパスを選択します(詳しくは、ターゲットを選択するをご覧ください)。
      • ホストパスを選択します。
      • 必要に応じて、利用可能なデバイス構成を選択するか、デフォルトの構成として [なし] を選択します。
    • 正規設定から(このオプションを使用して、単一の設定から複数のデバイスを作成します):

      • デバイス構成へのパスを選択します。
      • 必要に応じて、構成オプションをオーバーライドするオーバーライド フラグを指定します。
  4. Cuttlefish デバイスが作成され、デバイス マネージャーの実行中のデバイスのリストに追加されるまで待ちます。

  5. [Running Devices] メニューから Cuttlefish デバイスを選択します。

Device Manager でデバイスの横にある停止アイコンまたは開始アイコンをクリックして、個々の Cuttlefish デバイスを開始または停止できます。

Cuttlefish デバイスのページにアクセスする

Cuttlefish プラグインには、Cuttlefish Device ページを表示するツール ウィンドウがあり、画面ミラーリング機能にアクセスできます。

Cuttlefish ツール ウィンドウを開くには、左側のパネルにある ... アイコンをクリックして、[Cuttlefish] を選択します。または、[ヘルプ] > [アクションを検索] メニュー項目で Cuttlefish を検索することもできます。

VSIDL の言語サーバー プロトコル

VSIDL では、LSP は ASfP で VSIDL ファイル(.vsidl 拡張子)を操作する際の開発ワークフローを改善するための豊富な IDE 機能を提供します。

セマンティック構文のハイライト表示

LSP サーバーは、VSIDL ファイルの構文のハイライト表示を提供します。

  • 機能: キーワード(service_bundlepublisher)、フィールド(package:message:)、リテラルをハイライト表示します。

  • 試す方法: VSIDL ファイルを開きます。ファイルは、構造キーワードとユーザー定義の識別子を区別するために色分けされています。

ライブ診断(エラーと警告)

LSP サーバーはファイルを継続的に検証し、問題をリアルタイムで報告します。

  • 機能: カタログ全体とその依存関係で構文エラー、無効な型参照、その他のエラーを検出します。

  • 試す方法: メッセージ名(TiiirePressure など)にタイプミスを入れます。スペルミスのある単語の下に赤い波線が表示されます。単語にカーソルを合わせるとエラー メッセージが表示されます。また、IDE の下部にある [Problems] ツール ウィンドウで、エラーの完全なリストを確認することもできます。

ナビゲーション機能とインテリジェンス機能を使用して、VSIDL カタログのさまざまな部分間の関係を調べることができます。

  • 自動補完: Ctrl+Space を押すと、キーワード、protobuf メッセージ、RPC サービス、トピック、チャネルの候補が表示されます。キーワード候補には、その目的を説明する短い説明が補完メニューに直接表示されます。LSP は、publisherserver などのブロックのスマート スニペットも提供し、ワークフローを高速化します。

  • 定義に移動: Ctrl キーを押しながら、メッセージ、サービス、トピック、チャンネルの参照をクリック(または Ctrl+B キーを押す)すると、別の VSIDL ファイルまたは protobuf ファイルにある場合でも、そのソース定義に直接移動できます。

  • 参照を検索する: publishersubscriberserverclient のいずれかのキーワードにカーソルを置き、Alt+Shift+F7 を押して、すべての出現箇所を検索します。

  • ホバー情報: カーソルを型またはプロパティに移動します(または Ctrl+Q を押します)。ツールチップが表示され、ドキュメント コメント(存在する場合)が表示されます。

構造的特徴

LSP サーバーは、大きな VSIDL ファイルの構造の管理とナビゲーションに役立ちます。

  • ドキュメントのシンボル(アウトライン): Ctrl+F12 キーを押すと、クイック ナビゲーションのツールチップが表示されます。また、Structure ツール ウィンドウ(Ctrl+Alt+7)を開くと、ファイル内のすべてのバンドルとユニットのツリービューが表示されます。

  • 折りたたみ範囲: ガター(行番号の横)にある > アイコンまたは V アイコンをクリックして、service_bundle やマッピング定義などの大きな論理ブロックを折りたたんだり展開したりします。

  • ドキュメントのフォーマット: Ctrl+Alt+L キーを押すと、ファイルが自動的に再フォーマットされ、インデントとスペーシングが統一されます。