ASfP'de Rust desteği

Genel Bakış

Rust, özellikle bellek güvenliğine odaklanan, performans ve güvenliğe yönelik modern bir sistem programlama dilidir. Rust, kritik sistem bileşenlerini geliştirmek için C veya C++'a kıyasla daha güvenli bir alternatif olarak Android ekosisteminde giderek daha önemli bir yer edinmektedir. Rust, daha iyi güvenlik ve kararlılık sunar.

Bu sayfada, Android Açık Kaynak Projesi (AOSP) projelerinizde Rust geliştirmeyi desteklemek için Platform için Android Studio'nun (ASfP) kurulumu konusunda size yol gösterilmektedir.

Ön koşullar

  • ASfP yüklendi: ASfP'nin yüklendiğini ve çalıştığını doğrulayın.
  • Platform ödeme: Makinenizde çalışan bir AOSP platform ödeme sistemine ihtiyacınız vardır.

Rust desteğini etkinleştirme

ASfP projenizde Rust desteğini etkinleştirmek için adım adım yapmanız gerekenler:

  1. Rust'ı etkinleştirme

    • Kurulum sihirbazında yeni bir proje oluştururken Rust için onay kutusunu seçin:
    Yeni proje kurulum sihirbazında Rust onay kutusu.
    Yeni proje kurulum sihirbazındaki Rust onay kutusu.
    • Mevcut projeler için .asfp-project yapılandırma dosyanızı açın ve other_languages'ye rust ekleyin:
        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. Projenizi senkronize etme

    IDE'nin Rust sandıklarınızı oluşturup dizine eklemesi için proje senkronizasyonunu tetikleyin: ASfP > Sync > Sync Project'i (ASfP > Senkronize Et > Projeyi Senkronize Et) seçin.

Yapılandırmanızı doğrulama

Bu adımları tamamladıktan sonra aşağıdaki sonuçları doğrulayın:

  • rust-project.json, proje görünümünüzde kaynak .iml dosyasının altında görünür. Bu dosya, analiz sırasında Soong tarafından oluşturulur ve Language Server Protocol'ün (LSP) dil hizmetleri sunması için gerekli olan, depo köküne sembolik olarak bağlanır. Bu dosyayı doğrudan düzenlemeyin. Bunun yerine, Soong'un dosyayı işlemesi için yeniden senkronize edin.

    rust öğesinin .asfp-project yapılandırmanızda other_languages altında bulunduğunu doğrulayın.

    rust-project.json dosyasının oluşturulduğundan emin olun.
    rust-project.json oluşturulduğundan emin olun.
  • IDE'niz, Rust'a özgü aşağıdaki özellikleri etkinleştirir.

Rust IDE'nin temel özellikleri

  • Yerleşik LLDB hata ayıklama ve değişken görselleştiriciler: Run > Attach to Android Process (Çalıştır > Android işlemine ekle) seçeneğini kullanarak çalışan Rust cihaz hizmetlerinde hata ayıklayın. Ayrıca, ASfP'nin yerleşik LLDB hata ayıklayıcısını (lldb-dap) kullanarak rust_test veya rust_test_host hedeflerini doğrudan Android.bp oluk simgelerinden başlatabilirsiniz. Bu işlemde String, Vec, HashMap ve Option için otomatik olarak güzel yazıcılar kullanılır. Daha fazla bilgi için Rust kodunda hata ayıklama bölümüne bakın.
  • Kod tamamlama: Diğer modüllerdeki öğeler de dahil olmak üzere Rust kodu için akıllı öneriler alın.

    Rust modüller arası kod tamamlama örneği
    Farklı bir Rust modülündeki öğeleri öneren kod tamamlama.

  • Gezinme: Tanımlara atlayın ve projenizdeki Rust sembollerinin kullanımlarını bulun.

    Rust kodunda gezinme örneği
    Rust sembolünün tanımına gitme.
    Rust find usages örneği
    Rust sembolünün tüm kullanımlarını bulma.

  • İpuçları: Tür bilgilerini ve belgeleri görmek için işaretçiyi sembollerin üzerinde tutun.

    Rust araç ipucu örneği
    Başka bir modüldeki Rust sembolü için tür bilgilerini gösteren ipucu.

  • Yerleştirilmiş ipuçları: Tür bilgilerini ve diğer bağlamsal ipuçlarını doğrudan düzenleyicide görüntüleyin.

    Rust yerleştirme ipuçları örneği
    Kodun içinde tür bilgilerini gösteren yerleştirilmiş ipuçları.

  • Yapı görünümü: Yapı araç penceresini (Görünüm > Araç Pencereleri > Yapı) kullanarak Rust dosyalarınızın yapısında gezinin.

    Rust yapı görünümü örneği
    Bir Rust dosyasının ana hattını gösteren yapı aracı penceresi.

  • Yeniden düzenleme: Sembolleri güvenli bir şekilde yeniden adlandırın ve tüm kullanımları güncelleyin.

    Rust sembolünü yeniden adlandırma yeniden düzenleme örneği
    Rust sembolünü yeniden adlandırma ve tüm referanslarını güncelleme.

  • Anlık analiz: Rust kodunuzdaki hatalar ve uyarılar hakkında anında geri bildirim alın.

    Rust gerçek zamanlı kod analizi örneği
    IDE, Rust kodunda gerçek zamanlı hatalar ve uyarılar gösteriyor.