Rust-Unterstützung in ASfP

Übersicht

Rust ist eine moderne Systemprogrammiersprache, die auf Leistung und Sicherheit, insbesondere Speichersicherheit, ausgerichtet ist. Rust wird im Android-Ökosystem immer wichtiger, da es eine sicherere Alternative zu C oder C++ für die Entwicklung wichtiger Systemkomponenten darstellt 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 (Open-Source-Projekt für Android) zu unterstützen.

Vorbereitung

  • 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, setzen Sie ein Häkchen bei Rust:
    Kästchen für Rust im Einrichtungsassistenten für neue Projekte
    Das Kästchen „Rust“ im Einrichtungsassistenten für neue Projekte.
    • Öffnen Sie für bestehende Projekte die Konfigurationsdatei .asfp-project 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

    Lösen Sie eine Projektsynchronisierung aus, damit die IDE Ihre Rust-Crates generiert und indexiert: Wählen Sie ASfP > Sync > Sync Project aus.

Konfiguration überprüfen

Prüfen Sie nach Abschluss dieser Schritte die folgenden Ergebnisse:

  • rust-project.json wird in der Projektansicht unter der Quelldatei .iml angezeigt. Diese Datei wird von Soong während der Analyse generiert und mit dem Repository-Stammverzeichnis verknüpft. Das ist erforderlich, damit das Language Server Protocol (LSP) Sprachdienste bereitstellen kann. Bearbeiten Sie diese Datei nicht direkt, sondern synchronisieren Sie sie neu, damit Soong sie verarbeiten kann.

    Prüfen Sie, ob rust in der .asfp-project-Konfiguration unter other_languages vorhanden ist.

    Prüfen Sie, ob „rust-project.json“ generiert wurde.
    Prüfen, ob rust-project.json generiert wurde.
  • Ihre IDE bietet die folgenden Rust-spezifischen Funktionen.

Wichtige Rust-IDE-Funktionen

  • Integrierte LLDB-Debugging- und Variablenvisualisierung: Sie können laufende Rust-Gerätedienste über Ausführen > An Android-Prozess anhängen debuggen. Sie können rust_test- oder rust_test_host-Ziele auch direkt über Android.bp-Gutter-Symbole mit dem integrierten LLDB-Debugger (lldb-dap) von ASfP starten. Dabei werden automatisch Pretty-Printer für String, Vec, HashMap und Option verwendet. Weitere Informationen finden Sie unter Rust-Code debuggen.
  • 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 zu Definitionen springen und die Verwendung von Rust-Symbolen in Ihrem Projekt suchen.

    Beispiel für die Code-Navigation in Rust
    Zur Definition eines Rust-Symbols navigieren
    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: Informationen zum Ansichtstyp und andere kontextbezogene Hinweise werden direkt im Editor angezeigt.

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

  • Strukturansicht: Sie können die Struktur Ihrer Rust-Dateien über das Toolfenster Structure (View > Tool Windows > Structure) aufrufen.

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

  • Refactoring: Symbole sicher umbenennen und alle Verwendungen aktualisieren.

    Beispiel für das Refactoring zum Umbenennen von Symbolen in Rust
    Ein Rust-Symbol umbenennen und alle zugehörigen Referenzen aktualisieren.

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

    Beispiel für die Echtzeit-Codeanalyse in Rust
    IDE showing real-time errors and warnings in Rust code.