Obsługa języka Rust w ASfP

Przegląd

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

Ta strona zawiera instrukcje konfigurowania Android Studio for Platform (ASfP) na potrzeby programowania w języku rdzawy w projektach Android Open Source Project (AOSP).

Wymagania wstępne

  • Zainstalowane ASfP: sprawdź, czy masz zainstalowane i uruchomione ASfP.
  • Pobieranie platformy: na komputerze musisz mieć działającą platformę AOSP.

Włączanie obsługi języka rdzawy

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

  1. Włącz rdzawy

    • Podczas tworzenia nowego projektu w kreatorze konfiguracji po prostu zaznacz pole Rdzawy:
    Pole wyboru Rust w kreatorze konfiguracji nowego projektu.
    Pole wyboru Rdzawy 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. Zsynchronizuj projekt:

    • Po wykonaniu poprzednich czynności musisz wywołać synchronizację projektu, aby mieć pewność, że wszystkie zmiany zostaną zastosowane, a IDE rozpozna projekt w języku rdzawy. W tym celu kliknij Plik > Synchronizuj projekt.

Sprawdzanie, czy wszystko się udało

Po wykonaniu tych czynności:

  • W widoku projektu (w źródłowym pliku iml) powinien pojawić się plik rust-project.json. Ten plik jest generowany przez Soong podczas analizy i tworzony jako dowiązanie symboliczne do katalogu głównego repozytorium. Jest to niezbędne, aby LSP mogło świadczyć usługi językowe. NIE edytuj tego pliku bezpośrednio. Zamiast tego ponownie zsynchronizuj projekt, aby Soong mogło się nim zająć.

    Pamiętaj, aby sprawdzić, czy w pliku konfiguracji .asfp-project w sekcji other_languages znajduje się wpis rust.

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

Najważniejsze funkcje IDE dla języka rdzawy

  • Uzupełnianie kodu: otrzymuj inteligentne sugestie dotyczące kodu w języku rdzawy, w tym elementy z innych modułów.

    Przykład uzupełniania kodu w Rust w wielu modułach
    Uzupełnianie kodu sugerujące elementy z innego modułu w języku rdzawy.

  • Nawigacja: szybko przechodź do definicji i wyszukuj użycia symboli w języku rdzawy w całym projekcie.

    Przykład nawigacji po kodzie w Rust
    Przechodzenie do definicji symbolu w języku rdzawy.
    Przykład użycia funkcji Znajdź użycia w Rust
    Wyszukiwanie wszystkich użyć symbolu w języku rdzawy.

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

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

  • Podpowiedzi w tekście: wyświetlaj informacje o typie i inne podpowiedzi kontekstowe bezpośrednio w edytorze.

    Przykład podpowiedzi wstawianych w Rust
    Podpowiedzi w tekście z informacjami o typie w kodzie.

  • Widok struktury: poruszaj się po strukturze plików w języku rdzawy za pomocą okna narzędziowego Struktura (Widok > Okna narzędziowe > Struktura).

    Przykład widoku struktury w Rust
    Okno narzędziowe Struktura pokazujące zarys pliku w języku rdzawy.

  • Refaktoryzacja: bezpiecznie zmieniaj nazwy symboli i aktualizuj wszystkie ich użycia.

    Przykład refaktoryzacji zmiany nazwy symbolu w języku Rust
    Zmiana nazwy symbolu w języku rdzawy i aktualizacja wszystkich jego odwołań.

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

    Przykład analizy kodu w czasie rzeczywistym w języku Rust
    IDE pokazujące błędy i ostrzeżenia w czasie rzeczywistym w kodzie w języku rdzawy.