Hỗ trợ Rust trong ASfP

Tổng quan

Rust là một ngôn ngữ lập trình hệ thống hiện đại tập trung vào hiệu suất và độ an toàn, đặc biệt là độ an toàn của bộ nhớ. Rust ngày càng trở nên quan trọng trong hệ sinh thái Android với vai trò là một giải pháp thay thế an toàn hơn cho C/C++ để phát triển các thành phần hệ thống quan trọng, mang lại độ bảo mật và độ ổn định cao hơn.

Trang này hướng dẫn bạn cách thiết lập Android Studio for Platform (ASfP) để hỗ trợ quá trình phát triển bằng Rust trong các dự án Dự án nguồn mở Android (AOSP).

Điều kiện tiên quyết

  • Đã cài đặt ASfP: Xác minh rằng bạn đã cài đặt và đang chạy ASfP.
  • Thanh toán nền tảng: Bạn cần có một nền tảng AOSP đang hoạt động trên máy của mình.

Bật tính năng hỗ trợ Rust

Sau đây là quy trình từng bước để bật tính năng hỗ trợ Rust trong dự án ASfP:

  1. Bật Rust

    • Khi tạo dự án mới trong trình hướng dẫn thiết lập, bạn chỉ cần đánh dấu vào hộp cho Rust:
    Hộp đánh dấu Rust trong trình hướng dẫn thiết lập dự án mới.
    Hộp đánh dấu Rust trong trình hướng dẫn thiết lập dự án mới.
    • Đối với các dự án hiện có, hãy chuyển đến cấu hình .asfp-project và thêm rust vào 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. Đồng bộ hoá dự án:

    • Sau khi thực hiện các bước trước đó, bạn cần kích hoạt quá trình đồng bộ hoá dự án để đảm bảo rằng tất cả các thay đổi đều được áp dụng và IDE nhận dạng dự án Rust: Chuyển đến File > Sync Project (Tệp > Đồng bộ hoá dự án).

Xác minh thành công

Sau khi hoàn tất các bước này:

  • Bạn sẽ thấy rust-project.json trong chế độ xem dự án (trong iml nguồn). Tệp này được Soong tạo trong quá trình phân tích và được liên kết tượng trưng với thư mục gốc của kho lưu trữ. Điều này là cần thiết để LSP cung cấp các dịch vụ ngôn ngữ. KHÔNG chỉnh sửa trực tiếp tệp này; thay vào đó, hãy đồng bộ hoá lại để Soong xử lý tệp này.

    Xin nhắc lại, hãy kiểm tra kỹ để đảm bảo rằng rust có trong other_languages trong cấu hình .asfp-project.

    Đảm bảo rằng rust-project.json đã được tạo.
    Đảm bảo rằng rust-project.json đã được tạo.
  • Bạn sẽ thấy các tính năng dành riêng cho Rust (được mô tả và minh hoạ bên dưới) đã bật trong IDE.

Các tính năng chính của IDE Rust

  • Hoàn thành mã: Nhận các đề xuất thông minh cho mã Rust, bao gồm cả các mục từ các mô-đun khác.

    Ví dụ về tính năng hoàn thành mã trên nhiều mô-đun của Rust
    Tính năng hoàn thành mã đề xuất các mục từ một mô-đun Rust khác.

  • Điều hướng: Nhanh chóng chuyển đến các định nghĩa và tìm cách sử dụng các ký hiệu Rust trong dự án.

    Ví dụ về tính năng điều hướng mã Rust
    Điều hướng đến định nghĩa của một ký hiệu Rust.
    Ví dụ về tính năng tìm cách sử dụng trong Rust
    Tìm tất cả cách sử dụng của một ký hiệu Rust.

  • Chú giải công cụ: Di chuột qua các ký hiệu để xem thông tin và tài liệu về loại.

    Ví dụ về chú giải công cụ Rust
    Chú giải công cụ hiển thị thông tin về loại cho một ký hiệu Rust từ một mô-đun khác.

  • Gợi ý nội tuyến: Xem thông tin về loại và các gợi ý theo ngữ cảnh khác ngay trong trình chỉnh sửa.

    Ví dụ về gợi ý nội tuyến Rust
    Gợi ý nội tuyến hiển thị thông tin về loại trong mã.

  • Chế độ xem cấu trúc: Điều hướng cấu trúc của các tệp Rust bằng cửa sổ công cụ Structure (Cấu trúc) (View > Tool Windows > Structure (Xem > Cửa sổ công cụ > Cấu trúc)).

    Ví dụ về chế độ xem cấu trúc Rust
    Cửa sổ công cụ cấu trúc hiển thị cấu trúc của một tệp Rust.

  • Tái cấu trúc: Đổi tên các ký hiệu một cách an toàn và cập nhật tất cả cách sử dụng.

    Ví dụ về việc tái cấu trúc biểu tượng đổi tên Rust
    Đổi tên một ký hiệu Rust và cập nhật tất cả các tham chiếu của ký hiệu đó.

  • Phân tích theo thời gian thực: Nhận phản hồi tức thì về các lỗi và cảnh báo trong mã Rust.

    Ví dụ về phân tích mã theo thời gian thực bằng Rust
    IDE hiển thị các lỗi và cảnh báo theo thời gian thực trong mã Rust.