Descripción general
Rust es un lenguaje de programación de sistemas moderno que se enfoca en el rendimiento y la seguridad, en particular, la seguridad de la memoria. Rust es cada vez más importante en el ecosistema de Android como una alternativa más segura a C o C++ para desarrollar componentes críticos del sistema, ya que ofrece mayor seguridad y estabilidad.
En esta página, se explica cómo configurar Android Studio for Platform (ASfP) para admitir el desarrollo en Rust dentro de tus proyectos del Proyecto de código abierto de Android (AOSP).
Requisitos previos
- ASfP instalado: Verifica que ASfP esté instalado y en ejecución.
- Confirmación de compra en la plataforma: Necesitas una confirmación de compra en la plataforma de AOSP que funcione en tu máquina.
Habilita la compatibilidad con Rust
A continuación, se muestra el proceso paso a paso para que la compatibilidad con Rust funcione en tu proyecto de ASfP:
Habilitar Rust
- Cuando crees un proyecto nuevo en el asistente de configuración, selecciona la casilla de verificación de Rust:
Casilla de verificación de Rust en el asistente de configuración de proyectos nuevos. - En el caso de los proyectos existentes, abre el archivo de configuración
.asfp-projecty agregarustaother_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>
Sincroniza tu proyecto
Activa una sincronización del proyecto para que el IDE genere e indexe tus crates de Rust: selecciona ASfP > Sync > Sync Project.
Verifica la configuración
Después de completar estos pasos, verifica los siguientes resultados:
rust-project.jsonaparece en la vista del proyecto debajo del archivo fuente.iml. Soong genera este archivo durante el análisis y lo vincula simbólicamente a la raíz del repositorio, lo que es necesario para que el Protocolo del servidor de lenguaje (LSP) proporcione servicios de lenguaje. No edites este archivo directamente. En su lugar, vuelve a sincronizar para que Soong lo controle.Verifica que
rustesté presente enother_languagesen la configuración de.asfp-project.
Asegúrate de que se haya generado rust-project.json.Tu IDE habilita las siguientes funciones específicas de Rust.
Funciones clave del IDE de Rust
- Depuración LLDB integrada y visualizadores de variables: Depura los servicios del dispositivo Rust en ejecución desde Ejecutar > Adjuntar al proceso de Android. También puedes iniciar destinos
rust_testorust_test_hostdirectamente desde los íconos de margenAndroid.bpcon el depurador LLDB integrado de ASfP (lldb-dap), con impresoras automáticas de formato paraString,Vec,HashMapyOption. Para obtener más información, consulta Cómo depurar código de Rust. Finalización de código: Obtén sugerencias inteligentes para el código de Rust, incluidos elementos de otros módulos.
La finalización de código sugiere elementos de un módulo de Rust diferente. Navegación: Salta a las definiciones y encuentra los usos de los símbolos de Rust en todo tu proyecto.
Navegar a la definición de un símbolo de Rust.
Cómo encontrar todos los usos de un símbolo de Rust. Sugerencias: Mantén el puntero sobre los símbolos para ver información sobre el tipo y documentación.
Información sobre la herramienta que muestra información de tipo para un símbolo de Rust de otro módulo. Sugerencias intercaladas: Consulta información sobre el tipo de vista y otras sugerencias contextuales directamente en el editor.
Sugerencias intercaladas que muestran información de tipo dentro del código. Vista de estructura: Navega por la estructura de tus archivos de Rust con la ventana de herramientas Structure (View > Tool Windows > Structure).
La ventana de herramientas de estructura que muestra el esquema de un archivo de Rust. Refactorización: Cambia el nombre de los símbolos de forma segura y actualiza todos los usos.
Cambia el nombre de un símbolo de Rust y actualiza todas sus referencias. Análisis en tiempo real: Obtén comentarios instantáneos sobre los errores y las advertencias en tu código de Rust.
IDE que muestra errores y advertencias en tiempo real en el código de Rust.