Obsługa języka Rust w ASfP

Przegląd

Rust to nowoczesny język programowania systemowego, który koncentruje się na wydajności i bezpieczeństwie, zwłaszcza bezpieczeństwie pamięci. Rust odgrywa coraz większą rolę w ekosystemie Androida jako bezpieczniejsza alternatywa dla języków C i C++ w przypadku tworzenia kluczowych komponentów systemu, zapewniająca większe bezpieczeństwo i stabilność.

Na tej stronie znajdziesz instrukcje konfigurowania Android Studio for Platform (ASfP) na potrzeby tworzenia aplikacji w języku Rust w ramach projektów Android Open Source Project (AOSP).

Wymagania wstępne

  • Zainstalowano ASfP: sprawdź, czy masz zainstalowaną i uruchomioną platformę ASfP.
  • Wersja platformy: na komputerze musisz mieć działającą wersję platformy AOSP.

Włącz obsługę języka Rust

Oto szczegółowe instrukcje włączania obsługi języka Rust w projekcie ASfP:

  1. Włącz Rust

    • Podczas tworzenia nowego projektu w kreatorze konfiguracji zaznacz pole wyboru obok opcji Rust:
    Pole wyboru Rust w kreatorze konfiguracji nowego projektu.
    Pole wyboru Rust w kreatorze konfiguracji nowego projektu.
    • W przypadku istniejących projektów otwórz plik konfiguracji .asfp-project i dodaj rust do 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. Synchronizowanie projektu

    Wywołaj synchronizację projektu, aby środowisko IDE wygenerowało i zindeksowało Twoje pakiety Rust: wybierz ASfP > Synchronizuj > Synchronizuj projekt.

Weryfikacja konfiguracji

Po wykonaniu tych czynności sprawdź, czy:

  • rust-project.json pojawi się w widoku projektu pod plikiem źródłowym .iml. Ten plik jest generowany przez Soong podczas analizy i łączony symbolicznie z katalogiem głównym repozytorium, co jest niezbędne, aby protokół Language Server Protocol (LSP) mógł świadczyć usługi językowe. Nie edytuj tego pliku bezpośrednio. Zamiast tego ponownie zsynchronizuj go, aby Soong mógł go obsłużyć.

    Sprawdź, czy w konfiguracji .asfp-project w sekcji other_languages znajduje się rust.

    Sprawdź, czy plik rust-project.json został wygenerowany.
    Sprawdź, czy wygenerowano element rust-project.json.
  • Twoje środowisko IDE udostępnia te funkcje specyficzne dla języka Rust:

Najważniejsze funkcje IDE Rust

  • Wbudowane debugowanie LLDB i wizualizatory zmiennych: debuguj działające usługi Rust na urządzeniu, wybierając Uruchom > Dołącz do procesu Androida. Możesz też uruchamiać elementy docelowe rust_test lub rust_test_host bezpośrednio z ikon w Android.bp za pomocą wbudowanego debugera LLDB w ASfP (lldb-dap) z automatycznym zastosowaniem formatowania stylistycznego dla String, Vec, HashMap i Option. Więcej informacji znajdziesz w artykule Debugowanie kodu w Rust.
  • Uzupełnianie kodu: otrzymuj inteligentne sugestie dotyczące kodu w języku Rust, w tym elementy z innych modułów.

    Przykład uzupełniania kodu w języku Rust w wielu modułach
    Uzupełnianie kodu z sugestiami z innego modułu Rust.

  • Nawigacja: przechodź do definicji i znajduj użycia symboli języka Rust w projekcie.

    Przykład nawigacji po kodzie w języku Rust
    Przechodzenie do definicji symbolu w języku Rust.
    Przykład użycia funkcji Znajdź użycia w Rust
    Znajdowanie wszystkich zastosowań symbolu w Rust.

  • Etykietki: najedź kursorem na symbole, aby zobaczyć informacje o typie i dokumentację.

    Przykład etykietki w Rust
    Etykietka z informacjami o typie symbolu Rust z innego modułu.

  • Wskazówki wstawiane: wyświetlaj informacje o typie i inne wskazówki kontekstowe bezpośrednio w edytorze.

    Przykład podpowiedzi w Rust
    Wskazówki wstawiane, które wyświetlają informacje o typie w kodzie.

  • Widok struktury: przeglądaj strukturę plików Rust za pomocą okna narzędziowego Struktura (Widok > Okna narzędziowe > Struktura).

    Przykład widoku struktury Rust
    Okno narzędziowe struktury pokazujące konspekt pliku Rust.

  • Refaktoryzacja: bezpieczne zmienianie nazw symboli i aktualizowanie wszystkich ich zastosowań.

    Przykład refaktoryzacji zmiany nazwy symbolu w Rust
    Zmiana nazwy symbolu Rust i aktualizacja wszystkich jego odniesień.

  • Analiza w czasie rzeczywistym: otrzymuj natychmiastowe informacje o błędach i ostrzeżeniach w kodzie Rust.

    Przykład analizy kodu w czasie rzeczywistym w języku Rust
    IDE wyświetla błędy i ostrzeżenia w czasie rzeczywistym w kodzie Rust.