Suporte ao Rust no ASfP

Visão geral

O Rust é uma linguagem de programação de sistemas moderna focada em performance e segurança, principalmente segurança de memória. O Rust está se tornando cada vez mais importante no ecossistema Android como uma alternativa mais segura ao C/C++ para o desenvolvimento de componentes críticos do sistema, oferecendo mais segurança e estabilidade.

Esta página orienta você na configuração do Android Studio for Platform (ASfP) para oferecer suporte ao desenvolvimento do Rust nos projetos do Android Open Source Project (AOSP) projetos.

Pré-requisitos

  • ASfP instalado: verifique se o ASfP está instalado e em execução.
  • Checkout da plataforma: é necessário ter um checkout da plataforma AOSP funcionando na sua máquina.

Como ativar o suporte ao Rust

Confira o processo detalhado para ativar o suporte ao Rust no seu projeto ASfP

  1. Ativar o Rust

    • Ao criar um novo projeto no assistente de configuração, basta marcar a caixa do Rust:
    Caixa de seleção do Rust no assistente de configuração de novo projeto.
    Caixa de seleção do Rust no novo assistente de configuração do projeto.
    • Para projetos atuais, navegue até a configuração .asfp-project e adicione 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. Sincronizar seu projeto:

    • Depois de realizar as etapas anteriores, é necessário acionar uma sincronização do projeto para garantir que todas as mudanças sejam aplicadas e que o ambiente de desenvolvimento integrado reconheça o projeto Rust: acesse File > Sync Project.

Como verificar se a operação foi bem-sucedida

Depois de concluir estas etapas:

  • rust-project.json vai aparecer na visualização do projeto (em iml de origem ). Esse arquivo é gerado pelo Soong durante a análise e vinculado simbolicamente à raiz do repositório, o que é necessário para que o LSP forneça serviços de linguagem. NÃO edite esse arquivo diretamente. Em vez disso, resincronize para que o Soong o processe.

    Como lembrete, verifique se rust está presente em other_languages na sua configuração .asfp-project.

    Verifique se o arquivo rust-project.json foi gerado.
    Verifique se rust-project.json foi gerado.
  • Os recursos específicos do Rust (descritos e mostrados abaixo) vão aparecer ativados no seu ambiente de desenvolvimento integrado.

Principais recursos do ambiente de desenvolvimento integrado do Rust

  • Preenchimento de código: receba sugestões inteligentes para o código Rust, incluindo itens de outros módulos.

    Exemplo de preenchimento de código entre módulos do Rust
    Preenchimento de código sugerindo itens de um módulo Rust diferente.

  • Navegação: acesse rapidamente as definições e encontre usos de símbolos Rust no seu projeto.

    Exemplo de navegação em código Rust
    Navegação até a definição de um símbolo Rust.
    Exemplo de uso do Rust
    Encontrar todos os usos de um símbolo Rust.

  • Dicas de ferramentas:passe o cursor sobre os símbolos para conferir informações de tipo e documentação.

    Exemplo de dica do Rust
    Dica de ferramenta mostrando informações de tipo para um símbolo Rust de outro módulo.

  • Dicas embutidas: confira informações de tipo e outras dicas contextuais diretamente no editor.

    Exemplo de dicas de encarte do Rust
    Dicas embutidas mostrando informações de tipo no código.

  • Visualização de estrutura:navegue pela estrutura dos arquivos Rust usando a Structure janela de ferramentas (View > Tool Windows > Structure).

    Exemplo de visualização da estrutura do Rust
    A janela de ferramentas de estrutura mostrando o contorno de um arquivo Rust.

  • Refatoração:renomeie símbolos com segurança e atualize todos os usos.

    Exemplo de refatoração de renomeação de símbolo do Rust
    Renomear um símbolo Rust e atualizar todas as referências dele.

  • Análise em tempo real: receba feedback instantâneo sobre erros e avisos no seu código Rust.

    Exemplo de análise de código em tempo real do Rust
    Ambiente de desenvolvimento integrado mostrando erros e avisos em tempo real no código Rust.