Prise en charge de Rust dans ASfP

Présentation

Rust est un langage de programmation système moderne axé sur les performances et la sécurité, en particulier la sécurité de la mémoire. Rust est de plus en plus important dans l'écosystème Android, car il constitue une alternative plus sûre à C ou C++ pour développer des composants système critiques, offrant une sécurité et une stabilité améliorées.

Cette page vous explique comment configurer Android Studio for Platform (ASfP) pour prendre en charge le développement Rust dans vos projets Android Open Source Project (AOSP).

Prérequis

  • ASfP installé : vérifiez que ASfP est installé et en cours d'exécution.
  • Extraction de la plate-forme : vous devez disposer d'une extraction de la plate-forme AOSP fonctionnelle sur votre ordinateur.

Activer la prise en charge de Rust

Voici la procédure détaillée pour activer la prise en charge de Rust dans votre projet ASfP :

  1. Activer Rust

    • Lorsque vous créez un projet dans l'assistant de configuration, cochez la case Rust :
    Case à cocher Rust dans l'assistant de configuration de nouveau projet.
    Case à cocher "Rust" dans l'assistant de configuration d'un nouveau projet.
    • Pour les projets existants, ouvrez votre fichier de configuration .asfp-project et ajoutez rust à 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. Synchroniser votre projet

    Déclenchez une synchronisation du projet pour que l'IDE génère et indexe vos caisses Rust : sélectionnez ASfP > Sync > Sync Project.

Vérifier votre configuration

Une fois ces étapes effectuées, vérifiez les résultats suivants :

  • rust-project.json s'affiche dans la vue du projet sous le fichier source .iml. Ce fichier est généré par Soong lors de l'analyse et lié symboliquement à la racine du dépôt, ce qui est nécessaire pour que le protocole LSP (Language Server Protocol) fournisse des services linguistiques. Ne modifiez pas ce fichier directement. Resynchronisez-le plutôt pour que Soong s'en occupe.

    Vérifiez que rust est présent sous other_languages dans votre configuration .asfp-project.

    Assurez-vous que le fichier rust-project.json a été généré.
    Assurez-vous que rust-project.json a été généré.
  • Votre IDE permet d'utiliser les fonctionnalités spécifiques à Rust suivantes.

Principales fonctionnalités de l'IDE Rust

  • Débogage LLDB intégré et visualisateurs de variables : déboguez les services d'appareil Rust en cours d'exécution à partir de Exécuter > Associer à un processus Android. Vous pouvez également lancer des cibles rust_test ou rust_test_host directement à partir des icônes de gouttière Android.bp à l'aide du débogueur LLDB intégré à ASfP (lldb-dap), avec des pretty-printers automatiques pour String, Vec, HashMap et Option. Pour en savoir plus, consultez Déboguer du code Rust.
  • Complétion de code : obtenez des suggestions intelligentes pour le code Rust, y compris des éléments provenant d'autres modules.

    Exemple de complétion de code inter-modules Rust
    Complétion de code suggérant des éléments d'un autre module Rust.

  • Navigation : accédez aux définitions et trouvez les utilisations des symboles Rust dans votre projet.

    Exemple de navigation dans le code Rust
    Accéder à la définition d'un symbole Rust.
    Exemple de recherche des utilisations en Rust
    Trouver toutes les utilisations d'un symbole Rust.

  • Info-bulles : pointez sur les symboles pour afficher des informations sur les types et la documentation.

    Exemple d'info-bulle Rust
    Info-bulle affichant des informations sur le type d'un symbole Rust provenant d'un autre module.

  • Indices d'insertion : affichez des informations sur les types et d'autres indices contextuels directement dans l'éditeur.

    Exemple d'indices d'insertion Rust
    Indications d'insertion affichant des informations sur le type dans le code.

  • Vue Structure : parcourez la structure de vos fichiers Rust à l'aide de la fenêtre d'outil Structure (Affichage > Fenêtres d'outil > Structure).

    Exemple de vue structurée Rust
    Fenêtre d'outil de structure affichant le plan d'un fichier Rust.

  • Refactoring : renommez les symboles de manière sécurisée et mettez à jour toutes les utilisations.

    Exemple de refactoring de symbole de renommage Rust
    Renommer un symbole Rust et mettre à jour toutes ses références.

  • Analyse en temps réel : obtenez des commentaires instantanés sur les erreurs et les avertissements dans votre code Rust.

    Exemple d'analyse de code en temps réel Rust
    IDE affichant des erreurs et des avertissements en temps réel dans le code Rust.