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/C++ w przypadku tworzenia kluczowych komponentów systemu, zapewniając większe bezpieczeństwo i stabilność.

Na tej stronie znajdziesz instrukcje konfigurowania Android Studio for Platform (ASfP) w celu obsługi programowania w języku Rust w projektach Android Open Source Project (AOSP).

Wymagania wstępne

  • ASfP Installed (Zainstalowano ASfP): sprawdź, czy masz zainstalowaną i uruchomioną platformę ASfP.
  • Płatność na platformie: na komputerze musisz mieć działającą płatność na platformie AOSP.

Włączanie obsługi języka Rust

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

  1. Włącz Rusta

    • Podczas tworzenia nowego projektu w kreatorze konfiguracji wystarczy zaznaczyć pole 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 konfigurację .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. Zsynchronizuj projekt:

    • Po wykonaniu poprzednich kroków musisz wywołać synchronizację projektu, aby upewnić się, że wszystkie zmiany zostały zastosowane, a IDE rozpoznaje projekt Rust: kliknij File > Sync Project (Plik > Synchronizuj projekt).

Sprawdzanie powodzenia

Po wykonaniu tych czynności:

  • W widoku projektu (w sekcji źródłowej iml) powinien pojawić się tekst rust-project.json. Ten plik jest generowany przez Soong podczas analizy i symlinkowany do katalogu głównego repozytorium, co jest niezbędne, aby LSP mogło świadczyć usługi językowe. NIE edytuj tego pliku bezpośrednio. Zamiast tego ponownie zsynchronizuj go, aby Soong mógł go obsłużyć.

    Przypominamy, że w konfiguracji .asfp-project w sekcji other_languages musi być obecny adres rust.

    Sprawdź, czy plik rust-project.json został wygenerowany.
    Sprawdź, czy wygenerowano element rust-project.json.
  • W IDE powinny być włączone funkcje specyficzne dla języka Rust (opisane i pokazane poniżej).

Najważniejsze funkcje IDE 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 wielu modułach w Rust
    Autouzupełnianie kodu z sugestiami z innego modułu Rusta.

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

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

  • Etykietki: najeżdżaj kursorem na symbole, aby wyświetlić 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 typach i inne wskazówki kontekstowe bezpośrednio w edytorze.

    Przykład podpowiedzi wstawianych 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ędzi Struktura (Widok > Okna narzędzi > Struktura).

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

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

    Przykład refaktoryzacji zmiany nazwy symbolu w Rust
    Zmiana nazwy symbolu w języku 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 showing real-time errors and warnings in Rust code.