ASfP での Rust のサポート

概要

Rust は、パフォーマンスと安全性(特にメモリ安全性)に重点を置いた最新のシステム プログラミング言語です。Rust は、重要なシステム コンポーネントを開発するための C/C++ のより安全な代替手段として、Android エコシステムでますます重要になっています。セキュリティと安定性が向上します。

このページでは、Android オープンソース プロジェクト(AOSP)プロジェクト内で Rust 開発をサポートするために、Android Studio for Platform(ASfP)を設定する手順について説明します。

前提条件

  • ASfP Installed: ASfP がインストールされ、実行されていることを確認します。
  • プラットフォームのチェックアウト: マシンで動作する AOSP プラットフォームのチェックアウトが必要です。

Rust のサポートを有効にする

ASfP プロジェクトで Rust サポートを有効にする手順は次のとおりです。

  1. Rust を有効にする

    • 設定ウィザードで新しいプロジェクトを作成する際に、Rust のチェックボックスをオンにするだけです。
    新しいプロジェクト設定ウィザードの Rust チェックボックス。
    新しいプロジェクト設定ウィザードの Rust チェックボックス。
    • 既存のプロジェクトの場合は、.asfp-project 構成に移動して、other_languagesrust を追加します。
        other_languages:
          -   cpp
          -   rust
        ```
    
    <figure>
          <img src="/studio/platform/images/1-modify_asfp_project_languages.png" alt="Modifying the .asfp-project file to add rust to other_languages" class="screenshot">
          <figcaption>Adding Rust support in the <code>.asfp-project</code> file.</figcaption>
        </figure>
    
  1. プロジェクトを同期する:

    • 上記の手順を完了したら、プロジェクトの同期をトリガーして、すべての変更が適用され、IDE が Rust プロジェクトを認識するようにする必要があります。[File] > [Sync Project] に移動します。

成功を確認する

これらの手順を完了すると、次のようになります。

  • プロジェクト ビュー(ソース iml の下)に rust-project.json が表示されます。このファイルは、分析中に Soong によって生成され、リポジトリのルートにシンボリック リンクされます。これは、LSP が言語サービスを提供するために必要です。このファイルを直接編集しないでください。代わりに、Soong が処理するように再同期してください。

    念のため、.asfp-project 構成の other_languagesrust が存在することを確認してください。

    rust-project.json が生成されていることを確認します。
    rust-project.json が生成されていることを確認します。
  • IDE で Rust 固有の機能(下記で説明)が有効になっていることを確認します。

Rust IDE の主な機能

  • コード補完: 他のモジュールの項目など、Rust コードのインテリジェントな候補を取得します。

    Rust のクロスモジュール コード補完の例
    別の Rust モジュールの項目を提案するコード補完。

  • ナビゲーション: 定義にすばやく移動し、プロジェクト全体で Rust シンボルの使用箇所を見つけます。

    Rust コード ナビゲーションの例
    Rust シンボルの定義に移動する。
    Rust の使用箇所の検索の例
    Rust シンボルのすべての使用箇所を検索します。

  • ツールチップ: 記号にカーソルを合わせると、型情報とドキュメントが表示されます。

    Rust ツールチップの例
    別のモジュールの Rust シンボルの型情報を表示するツールチップ。

  • インレイ ヒント: エディタで型情報やその他のコンテキスト ヒントを直接表示します。

    Rust インレイ ヒントの例
    コード内の型情報を表示するインレイ ヒント。

  • 構造ビュー: [Structure] ツール ウィンドウ([View] > [Tool Windows] > [Structure])を使用して、Rust ファイルの構造をナビゲートします。

    Rust の構造ビューの例
    Rust ファイルのアウトラインを表示する構造ツール ウィンドウ。

  • リファクタリング: シンボルを安全に名前変更し、すべての使用箇所を更新します。

    Rust のシンボル名変更リファクタリングの例
    Rust シンボルの名前を変更し、そのすべての参照を更新します。

  • リアルタイム分析: Rust コードのエラーと警告に関するフィードバックを即座に取得します。

    Rust のリアルタイム コード分析の例
    Rust コードのリアルタイム エラーと警告を表示する IDE。