ASfP 中的 Rust 支援

總覽

Rust 是一種現代系統程式設計語言,著重效能和安全性,尤其是記憶體安全。在 Android 生態系統中,Rust 的重要性日益增加,因為相較於 C/C++,Rust 是開發重要系統元件時更安全的替代方案,可提升安全性及穩定性。

本頁面將逐步說明如何設定 Android Studio for Platform (ASfP),以便在 Android 開放原始碼計畫 (AOSP) 專案中支援 Rust 開發。

必要條件

  • 已安裝 ASfP:確認您已安裝並執行 ASfP。
  • 平台結帳:您需要在電腦上進行有效的 Android 開放原始碼計畫平台結帳。

啟用 Rust 支援

如要在 ASfP 專案中啟用 Rust 支援,請按照下列步驟操作:

  1. 啟用 Rust

    • 在設定精靈中建立新專案時,只要勾選 Rust 的方塊即可:
    新專案設定精靈中的 Rust 核取方塊。
    新專案設定精靈中的 Rust 核取方塊。
    • 如果是現有專案,請前往 .asfp-project 設定,並將 rust 新增至 other_languages
        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 處理。

    提醒您,請再次確認 rust 是否位於 .asfp-project 設定中的 other_languages 下方。

    確認已產生 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 結構檢視畫面範例
    「Structure」工具視窗,顯示 Rust 檔案的大綱。

  • 重構:安全地重新命名符號,並更新所有用法。

    Rust 重新命名符號重構範例
    重新命名 Rust 符號,並更新所有參照。

  • 即時分析:即時取得 Rust 程式碼中的錯誤和警告回饋。

    Rust 即時程式碼分析範例
    IDE 會即時顯示 Rust 程式碼中的錯誤和警告。