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

Android Studio for Platform(ASfP)は、Android Automotive Operating System(AAOS)Software Defined Vehicle(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: 最新のプロダクション リリース。ほとんどのユーザーにおすすめです。
    • Canary: 最新の機能を搭載した早期アクセス ビルド。安定性が低い可能性があります。
  3. ダウンロード ページに記載されているインストール手順に沿ってインストールします。

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

AAOS SDV プロジェクトを設定する手順は次のとおりです。

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

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

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

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

    • プロジェクトを開いていない場合は、[Welcome] 画面で [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-trunk_staging-userdebug)。使用可能なターゲットについて詳しくは、ターゲットを選択するをご覧ください。

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

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

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

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

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

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

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

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

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

デバッグとテスト

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

利用可能な統合

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

Cuttlefish プラグイン

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

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

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

Cuttlefish デバイスを作成する

新しいデバイスを作成する手順は次のとおりです。

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

  2. [+] アイコンをクリックして、[Create Cuttlefish Device] を選択します。

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

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

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

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

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

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

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

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

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

VSIDL の Language Server Protocol

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

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

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 を押すと、ファイルが自動的に再フォーマットされ、インデントと間隔が統一されます。