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ì đây là một lựa chọn 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 khả năng bảo mật và độ ổn định cao hơn.

Trang này hướng dẫn bạn thiết lập Android Studio for Platform (ASfP) để hỗ trợ hoạt động phát triển 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 trên nền tảng: Bạn cần có một quy trình thanh toán hoạt động trên nền tảng AOSP trên máy của mình.

Bật chế độ hỗ trợ Rust

Sau đây là quy trình từng bước để hỗ trợ Rust hoạt động trong dự án ASfP của bạn:

  1. Bật Rust

    • Khi tạo một 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 mọi 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 do 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ý.

    Xin lưu ý rằng bạn cần kiểm tra kỹ để đảm bảo rust có trong phần 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) được 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ừ những 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 tất 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 biểu tượng Rust trong dự án của bạn.

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

  • Chú thích: Di chuột qua các biểu tượng để 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ụ cho biết thông tin về loại cho một biểu tượng 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 cho biết 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 cho thấy đường viền của một tệp Rust.

  • Tái cấu trúc: Đổi tên các biểu tượng một cách an toàn và cập nhật tất cả cá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 biểu tượng Rust và cập nhật tất cả các tham chiếu của biểu tượng đó.

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

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