Compatibilidad con Rust en ASfP

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/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 Installed: Verifica que ASfP esté instalado y en ejecución.
  • Confirmación de compra en la plataforma: Necesitas una confirmación de compra de la plataforma AOSP que funcione en tu máquina.

Cómo habilitar la compatibilidad con Rust

A continuación, se describe 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.
    • En el caso de los proyectos existentes, navega a tu configuración de .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 de 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 (debajo del archivo iml de la fuente). 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 LSP proporcione servicios de lenguaje. NO edites este archivo directamente. En su lugar, vuelve a sincronizarlo para que Soong lo controle.

    Como recordatorio, vuelve a verificar que rust esté presente en other_languages en tu configuración de .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 de 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
    La función de finalización de código sugiere elementos de un módulo de Rust diferente.

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

    Ejemplo de navegación de código en Rust
    Navegar a la definición de un símbolo de Rust.
    Ejemplo de búsqueda de usos en Rust
    Cómo encontrar todos los usos de un símbolo de Rust.

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

    Ejemplo de información sobre herramientas de Rust
    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 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 Rust con la ventana de herramientas Structure (View > Tool Windows > Structure).

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

    Ejemplo de refactorización de cambio de nombre de símbolo de Rust
    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.

    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.