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 o 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.

Abilita il supporto di Rust

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

  1. Abilita Rust

    • Quando crei un nuovo progetto nella configurazione guidata, seleziona la casella di controllo per Rust:
    Casella di controllo Rust nella configurazione guidata del nuovo progetto.
    Casella di controllo Rust nella nuova configurazione guidata del progetto.
    • Per i progetti esistenti, apri il file di 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

    Attiva la sincronizzazione del progetto in modo che l'IDE generi e indicizzi le tue casse Rust: seleziona ASfP > Sincronizza > Sincronizza progetto.

Verificare la configurazione

Dopo aver completato questi passaggi, verifica i seguenti risultati:

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

    Verifica che rust sia presente in other_languages nella configurazione di .asfp-project.

    Assicurati che rust-project.json sia stato generato.
    Assicurati che rust-project.json sia stato generato.
  • Il tuo IDE abilita le seguenti funzionalità specifiche di Rust.

Funzionalità principali dell'IDE Rust

  • Debugger LLDB e visualizzatori di variabili integrati: esegui il debug dei servizi del dispositivo Rust in esecuzione da Esegui > Collega a processo Android. Puoi anche avviare target rust_test o rust_test_host direttamente dalle icone della barra laterale di Android.bp utilizzando il debugger LLDB integrato di ASfP (lldb-dap), con pretty-printer automatici per String, Vec, HashMap e Option. Per saperne di più, consulta Eseguire il debug del codice 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 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: tieni il puntatore sopra i simboli per visualizzare informazioni sul tipo e la documentazione.

    Esempio di descrizione comando di Rust
    Tooltip 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'inserimento di Rust
    Suggerimenti incorporati che mostrano informazioni sul tipo all'interno del codice.

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

    Esempio di visualizzazione della struttura 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 un 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.