ASfP 中的 Rust 支持

概览

Rust 是一种现代系统编程语言,专注于性能和安全性,尤其是内存安全性。Rust 作为 C/C++ 的更安全替代方案,在 Android 生态系统中日益重要,可用于开发关键系统组件,从而提高安全性和稳定性。

本页将引导您设置 Android Studio for Platform (ASfP),以便在 Android 开源项目 (AOSP) 项目中支持 Rust 开发。

前提条件

  • 已安装 ASfP:验证您是否已安装并运行 ASfP。
  • 平台签出:您需要在自己的机器上签出可正常运行的 AOSP 平台。

启用 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 处理此文件。

    谨此提醒,请仔细检查您的 .asfp-project 配置中 other_languages 下是否存在 rust

    确保已生成 rust-project.json。
    确保已生成 rust-project.json
  • 您应该会在 IDE 中看到已启用的 Rust 特有功能(如下所述和所示)。

Rust IDE 的主要功能

  • 代码补全:获取 Rust 代码的智能建议,包括来自其他模块的项目。

    Rust 跨模块代码补全示例
    代码补全功能建议了来自其他 Rust 模块的项。

  • 导航:快速跳转到定义,并在整个项目中查找 Rust 符号的用法。

    Rust 代码导航示例
    前往 Rust 符号的定义。
    Rust 查找用法示例
    查找 Rust 符号的所有用法。

  • 提示:将鼠标悬停在符号上可查看类型信息和文档。

    Rust 工具提示示例
    显示来自其他模块的 Rust 符号的类型信息的提示。

  • 嵌入提示:直接在编辑器中查看类型信息和其他上下文提示。

    Rust 嵌入提示示例
    显示代码中类型信息的嵌入提示。

  • 结构视图:使用结构工具窗口(View > Tool Windows > Structure)浏览 Rust 文件的结构。

    Rust 结构视图示例
    显示 Rust 文件轮廓的“结构”工具窗口。

  • 重构:安全地重命名符号并更新所有用法。

    Rust 重命名符号重构示例
    重命名 Rust 符号并更新其所有引用。

  • 实时分析:即时获取有关 Rust 代码中错误和警告的反馈。

    Rust 实时代码分析示例
    IDE 显示 Rust 代码中的实时错误和警告。