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/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 vous avez installé et exécuté ASfP.
  • Paiement sur la plate-forme : vous devez disposer d'un paiement sur la plate-forme AOSP fonctionnel sur votre machine.

Activer la compatibilité avec Rust

Voici la procédure détaillée pour que le support de Rust fonctionne dans votre projet ASfP :

  1. Activer Rust

    • Lorsque vous créez un projet dans l'assistant de configuration, il vous suffit de cocher la case Rust :
    Case à cocher Rust dans l'assistant de configuration d'un nouveau projet.
    Case à cocher Rust dans l'assistant de configuration de nouveau projet.
    • Pour les projets existants, accédez à la 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. Synchronisez votre projet :

    • Après avoir effectué les étapes précédentes, vous devez déclencher une synchronisation du projet pour vous assurer que toutes les modifications sont appliquées et que l'IDE reconnaît le projet Rust : accédez à File > Sync Project (Fichier > Synchroniser le projet).

Vérifier la réussite de l'opération

Une fois ces étapes terminées :

  • Vous devriez voir rust-project.json dans la vue de votre projet (sous le fichier iml source). 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 LSP fournisse des services linguistiques. NE MODIFIEZ PAS ce fichier directement. Resynchronisez-le pour que Soong s'en occupe.

    Pour rappel, 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é.
  • Les fonctionnalités spécifiques à Rust (décrites et illustrées ci-dessous) devraient être activées dans votre IDE.

Principales fonctionnalités de l'IDE 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 rapidement 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 d&#39;utilisation de 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&#39;info-bulle Rust
    Info-bulle affichant des informations sur le type d'un symbole Rust provenant d'un autre module.

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

    Exemple d&#39;indices d&#39;insertion Rust
    Indices d'incrustation 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 (Vue > Fenêtres d'outil > Structure).

    Exemple de vue de structure 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&#39;analyse de code en temps réel Rust
    IDE affichant les erreurs et les avertissements en temps réel dans le code Rust.