概要
Rust は、パフォーマンスと安全性(特にメモリ安全性)に重点を置いた最新のシステム プログラミング言語です。Rust は、重要なシステム コンポーネントを開発するための C または C++ のより安全な代替手段として、Android エコシステムでますます重要になっています。セキュリティと安定性の向上を実現します。
このページでは、Android オープンソース プロジェクト(AOSP)プロジェクト内で Rust 開発をサポートするために、Android Studio for Platform(ASfP)を設定する方法について説明します。
前提条件
- ASfP がインストールされている: ASfP がインストールされ、実行されていることを確認します。
- プラットフォームのチェックアウト: マシンで動作する AOSP プラットフォームのチェックアウトが必要です。
Rust のサポートを有効にする
ASfP プロジェクトで Rust サポートを有効にする手順は次のとおりです。
Rust を有効にする
- セットアップ ウィザードで新しいプロジェクトを作成するときに、[Rust] のチェックボックスをオンにします。
新しいプロジェクト設定ウィザードの Rust チェックボックス。 - 既存のプロジェクトの場合は、
.asfp-project構成ファイルを開き、other_languagesにrustを追加します。
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>
プロジェクトを同期する
IDE が Rust クレートを生成してインデックス登録するように、プロジェクトの同期をトリガーします。[ASfP] > [Sync] > [Sync Project] を選択します。
構成を確認する
これらの手順を完了したら、次の結果を確認します。
rust-project.jsonは、ソース.imlファイルの下のプロジェクト ビューに表示されます。このファイルは、分析中に Soong によって生成され、リポジトリ ルートにシンボリック リンクされます。これは、言語サーバー プロトコル(LSP)が言語サービスを提供するために必要です。このファイルを直接編集しないでください。代わりに、Soong が処理するように再同期してください。.asfp-project構成のother_languagesにrustが存在することを確認します。
rust-project.jsonが生成されていることを確認します。IDE では、次の Rust 固有の機能が有効になります。
Rust IDE の主な機能
- 組み込みの LLDB デバッグと変数ビジュアライザー: [Run] > [Attach to Android Process] から実行中の Rust デバイス サービスをデバッグします。また、ASfP の組み込み LLDB デバッガ(
lldb-dap)を使用して、Android.bpガターアイコンからrust_testまたはrust_test_hostターゲットを直接起動することもできます。この場合、String、Vec、HashMap、Optionの自動プリティ プリンタが使用されます。詳細については、Rust コードをデバッグするをご覧ください。 コード補完: 他のモジュールの項目など、Rust コードのインテリジェントな候補を取得します。
別の Rust モジュールの項目を提案するコード補完。 ナビゲーション: 定義にジャンプし、プロジェクト全体で Rust シンボルの使用箇所を見つけます。
Rust シンボルの定義に移動します。
Rust シンボルのすべての使用箇所を検索します。 ツールチップ: シンボルにカーソルを合わせると、型情報とドキュメントが表示されます。
別のモジュールの Rust シンボルの型情報を表示するツールチップ。インレイ ヒント: エディタで型情報やその他のコンテキスト ヒントを直接表示します。
コード内の型情報を表示するインレイ ヒント。 構造ビュー: [Structure] ツール ウィンドウ([View] > [Tool Windows] > [Structure])を使用して、Rust ファイルの構造をナビゲートします。
Rust ファイルのアウトラインを表示する構造ツール ウィンドウ。 リファクタリング: シンボルを安全に名前変更し、すべての使用箇所を更新します。
Rust シンボルの名前を変更し、そのすべての参照を更新します。 リアルタイム分析: Rust コードのエラーと警告に関するフィードバックを即座に取得します。
Rust コードのリアルタイム エラーと警告を表示する IDE。