Supporto di Rust in ASfP

Panoramica

Rust è un linguaggio di programmazione di sistemi moderno incentrato su prestazioni e sicurezza, in particolare sulla sicurezza della memoria. Rust sta diventando sempre più importante nell'ecosistema Android come alternativa più sicura a C/C++ per lo sviluppo di componenti di sistema critici, offrendo maggiore sicurezza e stabilità.

Questa pagina ti guida nella configurazione di Android Studio for Platform (ASfP) per supportare lo sviluppo in Rust all'interno dei tuoi progetti Android Open Source Project (AOSP).

Prerequisiti

  • ASfP installato:verifica che ASfP sia installato e in esecuzione.
  • Checkout della piattaforma:devi avere un checkout della piattaforma AOSP funzionante sul tuo computer.

Attivazione del supporto di Rust

Ecco la procedura passo passo per attivare il supporto di Rust nel tuo progetto ASfP:

  1. Attiva Rust

    • Quando crei un nuovo progetto nella configurazione guidata, seleziona la casella per Rust:
    Casella di controllo Rust nella procedura guidata di configurazione del nuovo progetto.
    Casella di controllo Rust nella nuova configurazione guidata del progetto.
    • Per i progetti esistenti, vai alla configurazione .asfp-project e aggiungi rust a 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. Sincronizzare il progetto:

    • Dopo aver eseguito i passaggi precedenti, devi attivare una sincronizzazione del progetto per assicurarti che tutte le modifiche vengano applicate e che l'IDE riconosca il progetto Rust: vai a File > Sincronizza progetto.

Verifica dell'esito positivo

Dopo aver completato questi passaggi:

  • Dovresti vedere rust-project.json nella visualizzazione del progetto (sotto l'iml di origine). Questo file viene generato da Soong durante l'analisi e collegato simbolicamente alla radice del repository, il che è necessario per LSP per fornire servizi linguistici. NON modificare direttamente questo file. Esegui di nuovo la sincronizzazione per consentire a Soong di gestirlo.

    Ti ricordiamo di verificare che rust sia presente in other_languages nella configurazione di .asfp-project.

    Assicurati che sia stato generato rust-project.json.
    Assicurati che rust-project.json sia stato generato.
  • Dovresti visualizzare le funzionalità specifiche di Rust (descritte e mostrate di seguito) abilitate nel tuo IDE.

Funzionalità principali dell'IDE Rust

  • Completamento del codice:ricevi suggerimenti intelligenti per il codice Rust, inclusi elementi di altri moduli.

    Esempio di completamento del codice cross-module di Rust
    Completamento del codice che suggerisce elementi di un modulo Rust diverso.

  • Navigazione: passa rapidamente alle definizioni e trova gli utilizzi dei simboli Rust nel tuo progetto.

    Esempio di navigazione nel codice Rust
    Navigazione alla definizione di un simbolo Rust.
    Esempio di ricerca degli utilizzi di Rust
    Trovare tutti gli utilizzi di un simbolo Rust.

  • Descrizioni comando:passa il mouse sopra i simboli per visualizzare informazioni e documentazione sui tipi.

    Esempio di descrizione comando Rust
    Descrizione comando che mostra le informazioni sul tipo per un simbolo Rust di un altro modulo.

  • Suggerimenti incorporati: visualizza le informazioni sul tipo e altri suggerimenti contestuali direttamente nell'editor.

    Esempio di suggerimenti per l&#39;inserimento di Rust
    Suggerimenti incorporati che mostrano informazioni sul tipo all'interno del codice.

  • Visualizzazione Struttura:esplora la struttura dei file Rust utilizzando la finestra degli strumenti Struttura (Visualizza > Finestre degli strumenti > Struttura).

    Esempio di visualizzazione della struttura di Rust
    La finestra dello strumento Struttura che mostra la struttura di un file Rust.

  • Refactoring:rinomina in modo sicuro i simboli e aggiorna tutti gli utilizzi.

    Esempio di refactoring del simbolo di ridenominazione di Rust
    Rinomina un simbolo Rust e aggiorna tutti i relativi riferimenti.

  • Analisi in tempo reale:ricevi feedback immediato su errori e avvisi nel tuo codice Rust.

    Esempio di analisi del codice in tempo reale di Rust
    IDE che mostra errori e avvisi in tempo reale nel codice Rust.