Rust-Unterstützung in ASfP

Übersicht

Rust ist eine moderne Systemsprache, die auf Leistung und Sicherheit, insbesondere Speichersicherheit, ausgerichtet ist. Rust wird im Android-Ökosystem immer wichtiger, da es eine sicherere Alternative zu C/C++ für die Entwicklung wichtiger Systemkomponenten ist und für mehr Sicherheit und Stabilität sorgt.

Auf dieser Seite erfahren Sie, wie Sie Android Studio for Platform (ASfP) einrichten, um die Rust-Entwicklung in Ihren AOSP-Projekten (Android Open Source Project) zu unterstützen.

Voraussetzungen

  • ASfP installiert:Prüfen Sie, ob ASfP installiert ist und ausgeführt wird.
  • Plattform-Checkout:Sie benötigen einen funktionierenden AOSP-Plattform-Checkout auf Ihrem Computer.

Rust-Unterstützung aktivieren

So aktivierst du die Rust-Unterstützung in deinem ASfP-Projekt:

  1. Rust aktivieren

    • Wenn Sie im Einrichtungsassistenten ein neues Projekt erstellen, klicken Sie einfach das Kästchen für Rust an:
    Das Kästchen für Rust im Einrichtungsassistenten für neue Projekte.
    Kästchen für Rust im Einrichtungsassistenten für neue Projekte
    • Gehen Sie bei bestehenden Projekten zu Ihrer .asfp-project-Konfiguration und fügen Sie rust zu other_languages hinzu:
        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. Projekt synchronisieren:

    • Nachdem Sie die vorherigen Schritte ausgeführt haben, müssen Sie eine Projektsynchronisierung auslösen, damit alle Änderungen übernommen werden und die IDE das Rust-Projekt erkennt. Klicken Sie dazu auf File > Sync Project (Datei > Projekt synchronisieren).

Erfolg überprüfen

Nachdem Sie diese Schritte ausgeführt haben:

  • In der Projektansicht sollte rust-project.json unter der Quell-IML angezeigt werden. Diese Datei wird von Soong während der Analyse generiert und mit dem Repo-Stammverzeichnis verknüpft. Das ist erforderlich, damit LSP Sprachdienste bereitstellen kann. Bearbeiten Sie diese Datei NICHT direkt, sondern synchronisieren Sie sie noch einmal, damit Soong sie verarbeiten kann.

    Zur Erinnerung: Prüfen Sie noch einmal, ob rust in Ihrer .asfp-project-Konfiguration unter other_languages vorhanden ist.

    Prüfen Sie, ob die Datei „rust-project.json“ generiert wurde.
    Prüfen Sie, ob rust-project.json generiert wurde.
  • In Ihrer IDE sollten Rust-spezifische Funktionen aktiviert sein, die unten beschrieben und dargestellt werden.

Wichtige Rust-IDE-Funktionen

  • Codevervollständigung:Sie erhalten intelligente Vorschläge für Rust-Code, einschließlich Elementen aus anderen Modulen.

    Beispiel für die modulübergreifende Codevervollständigung in Rust
    Codevervollständigung schlägt Elemente aus einem anderen Rust-Modul vor.

  • Navigation:Sie können schnell zu Definitionen springen und die Verwendung von Rust-Symbolen in Ihrem Projekt finden.

    Beispiel für die Rust-Codenavigation
    Zur Definition eines Rust-Symbols wechseln
    Beispiel für „Verwendungen suchen“ in Rust
    Alle Verwendungen eines Rust-Symbols finden.

  • Kurzinfos:Bewegen Sie den Mauszeiger auf Symbole, um Typinformationen und Dokumentation aufzurufen.

    Beispiel für eine Rust-Kurzinfo
    Kurzinfo mit Typinformationen für ein Rust-Symbol aus einem anderen Modul.

  • Inlay-Hinweise:Typinformationen und andere kontextbezogene Hinweise werden direkt im Editor angezeigt.

    Beispiel für Rust-Inlay-Hinweise
    Inlay-Hinweise mit Typinformationen im Code.

  • Strukturansicht:Navigieren Sie in der Struktur Ihrer Rust-Dateien über das Toolfenster Structure (Ansicht > Toolfenster > Struktur).

    Beispiel für die Rust-Strukturansicht
    Das Struktur-Toolfenster mit dem Umriss einer Rust-Datei.

  • Refactoring:Symbole sicher umbenennen und alle Verwendungen aktualisieren lassen.

    Beispiel für das Refactoring „Symbol umbenennen“ in Rust
    Ein Rust-Symbol umbenennen und alle zugehörigen Verweise aktualisieren.

  • Echtzeitanalyse:Sie erhalten sofortiges Feedback zu Fehlern und Warnungen in Ihrem Rust-Code.

    Beispiel für die Echtzeit-Codeanalyse in Rust
    IDE mit Echtzeitfehlern und ‑warnungen im Rust-Code.