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 le développement de 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) projets.

Prérequis

  • ASfP installé : vérifiez que vous avez installé et exécuté ASfP.
  • Extraction de la plate-forme : vous devez disposer d'une extraction de plate-forme AOSP fonctionnelle sur votre machine.

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 nouveau projet dans l'assistant de configuration, cochez simplement la case Rust :
    Case à cocher Rust dans l'assistant de configuration d'un nouveau projet.
    Case à cocher Rust dans l'assistant de configuration de projet.
    • Pour les projets existants, accédez à votre .asfp-project config 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 :

    • Après avoir effectué les étapes précédentes, vous devez déclencher une synchronisation de 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.

Vérifier la réussite

Après avoir effectué ces étapes :

  • Vous devriez voir rust-project.json dans la vue de votre projet (sous la 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 LSP fournisse des services linguistiques. NE MODIFIEZ PAS ce fichier directement. Synchronisez-le à nouveau pour laisser Soong le gérer.

    Pour rappel, vérifiez que rust est présent sous other_languages dans votre .asfp-project configuration.

    Assurez-vous que le fichier rust-project.json a été généré.
    Assurez-vous que rust-project.json a été généré.
  • Vous devriez voir les fonctionnalités spécifiques à Rust (décrites et présentées ci-dessous) 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ès à la définition d'un symbole Rust.
    Exemple de recherche d&#39;utilisations Rust
    Recherche de toutes les utilisations d'un symbole Rust.

  • Info-bulles : pointez sur les symboles pour afficher les informations sur le type 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.

  • Conseils intégrés : affichez les informations sur le type et d'autres conseils contextuels directement dans l'éditeur.

    Exemple d&#39;indices d&#39;insertion Rust
    Conseils intégrés affichant des informations sur le type dans le code.

  • Vue de la structure : parcourez la structure de vos fichiers Rust à l'aide de la fenêtre d'outil Structure (View > Tool Windows > 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.

  • Refactorisation : renommez les symboles en toute sécurité et mettez à jour toutes les utilisations.

    Exemple de refactoring de symbole de renommage Rust
    Renommage d'un symbole Rust et mise à jour de 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.