Suporte ao Rust no ASfP

Visão geral

O Rust é uma linguagem de programação de sistemas moderna focada em desempenho e segurança, principalmente segurança de memória. O Rust é cada vez mais importante no ecossistema Android como uma alternativa mais segura ao C ou C++ para desenvolver 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 em Rust nos projetos do Android Open Source Project (AOSP).

Pré-requisitos

  • ASfP instalado: verifique se o ASfP está instalado e em execução.
  • Finalização de compra da plataforma: você precisa de uma finalização de compra da plataforma AOSP funcionando na sua máquina.

Ativar suporte a 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, marque a caixa de seleção para Rust:
    Caixa de seleção "Rust" no assistente de configuração de novo projeto.
    Caixa de seleção "Rust" no assistente de configuração de novo projeto.
    • Para projetos atuais, abra o arquivo de 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

    Acione uma sincronização de projeto para que o ambiente de desenvolvimento integrado gere e indexe seus pacotes do Rust: selecione ASfP > Sync > Sync Project.

Verificar a configuração

Depois de concluir essas etapas, verifique os seguintes resultados:

  • rust-project.json aparece na visualização do projeto no arquivo de origem .iml. Esse arquivo é gerado pelo Soong durante a análise e vinculado por um link simbólico à raiz do repositório, o que é necessário para que o protocolo de servidor de linguagem (LSP) forneça serviços de linguagem. Não edite esse arquivo diretamente. Em vez disso, ressincronize para permitir que o Soong o processe.

    Verifique se rust está presente em other_languages na configuração .asfp-project.

    Verifique se o arquivo rust-project.json foi gerado.
    Verifique se rust-project.json foi gerado.
  • Seu ambiente de desenvolvimento integrado permite os seguintes recursos específicos do Rust.

Principais recursos do ambiente de desenvolvimento integrado do Rust

  • Depuração LLDB integrada e visualizadores de variáveis: depure serviços de dispositivo Rust em execução em Executar > Anexar ao processo do Android. Você também pode iniciar destinos rust_test ou rust_test_host diretamente nos ícones da margem Android.bp usando o depurador LLDB integrado do ASfP (lldb-dap), com estilos de formatação automáticos para String, Vec, HashMap e Option. Para mais informações, consulte Depurar código Rust.
  • Preenchimento de código: receba sugestões inteligentes para código Rust, incluindo itens de outros módulos.

    Exemplo completo de preenchimento de código entre módulos do Rust
    Conclusão de código sugerindo itens de um módulo Rust diferente.

  • Navegação: acesse definições e encontre usos de símbolos do Rust em todo o projeto.

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

  • Dicas: 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: veja informações sobre o tipo e outras dicas contextuais diretamente no editor.

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

  • Estrutura: navegue pela estrutura dos seus arquivos Rust usando a janela de ferramentas Estrutura (Visualizar > Janelas de ferramentas > Estrutura).

    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 do 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
    IDE mostrando erros e avisos em tempo real no código Rust.