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:
Abilita Rust
- Quando crei un nuovo progetto nella configurazione guidata, seleziona la casella di controllo per Rust:
Casella di controllo Rust nella nuova configurazione guidata del progetto. - Per i progetti esistenti, apri il file di configurazione
.asfp-projecte aggiungirustaother_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>
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.jsonviene visualizzato nella visualizzazione del progetto sotto il file.imldi 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
rustsia presente inother_languagesnella configurazione di.asfp-project.
Assicurati che rust-project.jsonsia 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_testorust_test_hostdirettamente dalle icone della barra laterale diAndroid.bputilizzando il debugger LLDB integrato di ASfP (lldb-dap), con pretty-printer automatici perString,Vec,HashMapeOption. 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.
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.
Navigazione alla definizione di un simbolo 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.
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.
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).
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.
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.
IDE che mostra errori e avvisi in tempo reale nel codice Rust.