Dukungan Rust di ASfP

Ringkasan

Rust adalah bahasa pemrograman sistem modern yang berfokus pada performa dan keamanan, terutama keamanan memori. Rust menjadi semakin penting dalam ekosistem Android sebagai alternatif yang lebih aman untuk C atau C++ dalam mengembangkan komponen sistem penting, yang menawarkan peningkatan keamanan dan stabilitas.

Halaman ini memandu Anda menyiapkan Android Studio untuk Platform (ASfP) guna mendukung pengembangan Rust dalam project Project Open Source Android (AOSP) Anda.

Prasyarat

  • ASfP terinstal: Pastikan Anda telah menginstal dan menjalankan ASfP.
  • Checkout platform: Anda memerlukan checkout platform AOSP yang berfungsi di komputer Anda.

Mengaktifkan dukungan Rust

Berikut adalah proses langkah demi langkah untuk membuat dukungan Rust berfungsi di project ASfP Anda:

  1. Aktifkan Rust

    • Saat membuat project baru di wizard penyiapan, centang kotak untuk Rust:
    Kotak centang Rust di wizard penyiapan project baru.
    Kotak centang Rust di wizard penyiapan project baru.
    • Untuk project yang sudah ada, buka file konfigurasi .asfp-project Anda dan tambahkan rust ke 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. Menyinkronkan project Anda

    Picu sinkronisasi project agar IDE membuat dan mengindeks crate Rust Anda: pilih ASfP > Sync > Sync Project.

Memverifikasi konfigurasi Anda

Setelah Anda menyelesaikan langkah-langkah ini, verifikasi hasil berikut:

  • rust-project.json muncul di tampilan project Anda di bagian file .iml sumber. File ini dibuat oleh Soong selama analisis dan ditautkan secara simbolis ke root repositori, yang diperlukan agar Language Server Protocol (LSP) dapat menyediakan layanan bahasa. Jangan mengedit file ini secara langsung; sebagai gantinya, sinkronkan ulang agar Soong menanganinya.

    Pastikan rust ada di bagian other_languages dalam konfigurasi .asfp-project Anda.

    Pastikan rust-project.json telah dibuat.
    Pastikan rust-project.json telah dibuat.
  • IDE Anda mengaktifkan fitur khusus Rust berikut.

Fitur utama IDE Rust

  • Debugger LLDB bawaan dan visualizer variabel: Debug layanan perangkat Rust yang sedang berjalan dari Run > Attach to Android Process. Anda juga dapat meluncurkan target rust_test atau rust_test_host langsung dari ikon gutter Android.bp menggunakan debugger LLDB bawaan ASfP (lldb-dap), dengan pretty-printer otomatis untuk String, Vec, HashMap, dan Option. Untuk mengetahui informasi selengkapnya, lihat Men-debug kode Rust.
  • Penyelesaian kode: Dapatkan saran cerdas untuk kode Rust, termasuk item dari modul lain.

    Contoh penyelesaian kode lintas modul Rust
    Penyelesaian kode menyarankan item dari modul Rust yang berbeda.

  • Navigasi: Buka definisi dan temukan penggunaan simbol Rust di seluruh project Anda.

    Contoh navigasi kode Rust
    Membuka definisi simbol Rust.
    Contoh penggunaan fitur Rust find usages
    Menemukan semua penggunaan simbol Rust.

  • Tooltip: Arahkan kursor ke simbol untuk melihat informasi jenis dan dokumentasi.

    Contoh tooltip Rust
    Tooltip yang menampilkan informasi jenis untuk simbol Rust dari modul lain.

  • Petunjuk inlay: Lihat informasi jenis dan petunjuk kontekstual lainnya langsung di editor.

    Contoh petunjuk sisipan Rust
    Petunjuk inlay yang menampilkan informasi jenis dalam kode.

  • Tampilan struktur: Jelajahi struktur file Rust Anda menggunakan jendela alat Structure (View > Tool Windows > Structure).

    Contoh tampilan struktur Rust
    Jendela alat struktur yang menampilkan garis luar file Rust.

  • Refaktorisasi: Mengganti nama simbol dengan aman dan memperbarui semua penggunaan.

    Contoh refaktorisasi simbol ganti nama Rust
    Mengganti nama simbol Rust dan memperbarui semua referensinya.

  • Analisis real-time: Dapatkan masukan instan tentang error dan peringatan dalam kode Rust Anda.

    Contoh analisis kode real-time Rust
    IDE menampilkan error dan peringatan real-time dalam kode Rust.