Compatibilidad con Rust en ASfP

Descripción general

Rust es un lenguaje de programación de sistemas moderno que se centra 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/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 de Rust en tus proyectos del Proyecto de código abierto de Android (AOSP).

Requisitos previos

  • ASfP instalado: Verifica que ASfP esté instalado y en ejecución.
  • Checkout de la plataforma: Necesitas un checkout de la plataforma de AOSP en funcionamiento en tu máquina.

Cómo habilitar la compatibilidad con Rust

Este es el proceso paso a paso para que la compatibilidad con Rust funcione en tu proyecto de ASfP:

  1. Habilita Rust

    • Cuando crees un proyecto nuevo en el asistente de configuración, simplemente marca la casilla de Rust:
    Se agregó la casilla de verificación de Rust en el asistente de configuración de proyectos nuevos.
    Casilla de verificación de Rust en el asistente de configuración de proyectos nuevos
    • Para los proyectos existentes, navega a tu configuración .asfp-project y agrega 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. Sincroniza tu proyecto:

    • Después de realizar los pasos anteriores, debes activar una sincronización del proyecto para asegurarte de que se apliquen todos los cambios y que el IDE reconozca el proyecto de Rust. Para ello, ve a File > Sync Project.

Verifica si se realizó de forma correcta

Después de completar estos pasos, haz lo siguiente:

  • Deberías ver rust-project.json en la vista del proyecto (en el iml de origen). 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 LSP proporcione servicios de lenguaje. NO edites este archivo directamente. En su lugar, vuelve a sincronizarlo para que Soong lo controle.

    Como recordatorio, verifica que rust esté presente en other_languages en tu configuración .asfp-project.

    Asegúrate de que se haya generado rust-project.json.
    Asegúrate de que se haya generado rust-project.json
  • Deberías ver las funciones específicas de Rust (que se describen y muestran a continuación) habilitadas en tu IDE.

Funciones clave del IDE de Rust

  • Finalización del código: Obtén sugerencias inteligentes para el código de Rust, incluidos elementos de otros módulos.

    Ejemplo de finalización de código entre módulos de Rust
    Finalización del código que sugiere elementos de un módulo de Rust diferente.

  • Navegación: Salta rápidamente a las definiciones y encuentra usos de símbolos de Rust en todo el proyecto.

    Ejemplo de navegación de código en Rust
    Navegación a la definición de un símbolo de Rust.
    Ejemplo de búsqueda de usos en Rust
    Búsqueda de todos los usos de un símbolo de Rust.

  • Sugerencias: Coloca el cursor sobre los símbolos para ver información sobre el tipo y la documentación.

    Ejemplo de información sobre herramientas de Rust
    Sugerencia que muestra información sobre el tipo de un símbolo de Rust de otro módulo

  • Sugerencias intercaladas: Consulta información sobre el tipo y otras sugerencias contextuales directamente en el editor.

    Ejemplo de sugerencias intercaladas de Rust
    Sugerencias intercaladas que muestran información sobre el 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).

    Ejemplo de vista de estructura de Rust
    La ventana de herramientas de estructura 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.

    Ejemplo de refactorización de cambio de nombre de símbolo de Rust
    Cambio de nombre de un símbolo de Rust y actualización de todas sus referencias.

  • Análisis en tiempo real: Obtén comentarios instantáneos sobre errores y advertencias en tu código de Rust.

    Ejemplo de análisis de código en tiempo real de Rust
    IDE que muestra errores y advertencias en tiempo real en el código de Rust.