การรองรับ Rust ใน ASfP

ภาพรวม

Rust เป็นภาษาโปรแกรมระบบสมัยใหม่ที่มุ่งเน้นประสิทธิภาพและความปลอดภัย โดยเฉพาะความปลอดภัยของหน่วยความจำ Rust มีความสำคัญมากขึ้นเรื่อยๆ ในระบบนิเวศของ Android เนื่องจากเป็นทางเลือกที่ปลอดภัยกว่าสำหรับ C หรือ C++ ในการพัฒนาคอมโพเนนต์ระบบที่สำคัญ ซึ่งช่วยเพิ่มความปลอดภัยและความเสถียร

หน้านี้จะแนะนำวิธีตั้งค่า Android Studio for Platform (ASfP) เพื่อรองรับการพัฒนา Rust ภายในโปรเจ็กต์โครงการโอเพนซอร์ส Android (AOSP)

สิ่งที่ต้องมีก่อน

  • ติดตั้ง ASfP แล้ว: ตรวจสอบว่าคุณได้ติดตั้งและเรียกใช้ ASfP แล้ว
  • การชำระเงินของแพลตฟอร์ม: คุณต้องมีการชำระเงินของแพลตฟอร์ม AOSP ที่ใช้งานได้ในเครื่อง

เปิดใช้การรองรับ Rust

กระบวนการทีละขั้นตอนในการทำให้การรองรับ Rust ทำงานในโปรเจ็กต์ ASfP มีดังนี้

  1. เปิดใช้ Rust

    • เมื่อสร้างโปรเจ็กต์ใหม่ในวิซาร์ดการตั้งค่า ให้เลือกช่องทําเครื่องหมาย สําหรับ Rust ดังนี้
    ช่องทำเครื่องหมาย Rust ในวิซาร์ดการตั้งค่าโปรเจ็กต์ใหม่
    ช่องทำเครื่องหมาย Rust ในวิซาร์ดการตั้งค่าโปรเจ็กต์ใหม่
    • สำหรับโปรเจ็กต์ที่มีอยู่ ให้เปิด.asfp-projectไฟล์การกำหนดค่า แล้วเพิ่ม 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. ซิงค์โปรเจ็กต์

    ทริกเกอร์การซิงค์โปรเจ็กต์เพื่อให้ IDE สร้างและจัดทำดัชนีลัง Rust เลือก ASfP > ซิงค์ > ซิงค์โปรเจ็กต์

ตรวจสอบการกำหนดค่า

หลังจากทำตามขั้นตอนเหล่านี้แล้ว ให้ตรวจสอบผลลัพธ์ต่อไปนี้

  • rust-project.json จะปรากฏในมุมมองโปรเจ็กต์ใต้ไฟล์.iml ต้นฉบับ ไฟล์นี้สร้างขึ้นโดย Soong ระหว่างการวิเคราะห์และลิงก์สัญลักษณ์ไปยัง รูทของที่เก็บ ซึ่งจำเป็นสำหรับ Language Server Protocol (LSP) ในการให้บริการภาษา อย่าแก้ไขไฟล์นี้โดยตรง แต่ให้ ซิงค์อีกครั้งเพื่อให้ Soong จัดการ

    ตรวจสอบว่ามี rust อยู่ใต้ other_languages ในการกำหนดค่า .asfp-project

    ตรวจสอบว่าได้สร้าง rust-project.json แล้ว
    ตรวจสอบว่าได้สร้าง rust-project.json แล้ว
  • IDE ของคุณจะเปิดใช้ฟีเจอร์เฉพาะของ Rust ต่อไปนี้

ฟีเจอร์หลักของ IDE สำหรับ Rust

  • การแก้ไขข้อบกพร่อง LLDB และเครื่องมือแสดงภาพตัวแปรในตัว: แก้ไขข้อบกพร่องของบริการอุปกรณ์ Rust ที่กำลังทำงานจากเรียกใช้ > แนบกับกระบวนการ Android นอกจากนี้ คุณยังเปิดใช้เป้าหมาย rust_test หรือ rust_test_host ได้โดยตรงจากไอคอน Android.bp gutter โดยใช้โปรแกรมแก้ไขข้อบกพร่อง LLDB ในตัวของ ASfP (lldb-dap) พร้อมการจัดรูปแบบอัตโนมัติสำหรับ String, Vec, HashMap และ Option ดูข้อมูลเพิ่มเติมได้ที่แก้ไขข้อบกพร่องของโค้ด Rust
  • การเติมโค้ดให้สมบูรณ์: รับคำแนะนำอัจฉริยะสำหรับโค้ด Rust ซึ่งรวมถึง รายการจากโมดูลอื่นๆ

    ตัวอย่างการเติมโค้ดข้ามโมดูลใน Rust
    การเติมโค้ดที่แนะนำรายการจากโมดูล Rust อื่น

  • การนำทาง: ไปที่คำจำกัดความและค้นหาการใช้งานสัญลักษณ์ Rust ในโปรเจ็กต์ ของคุณ

    ตัวอย่างการนำทางในโค้ด Rust
    การไปยังคำจำกัดความของสัญลักษณ์ Rust
    ตัวอย่างการค้นหาการใช้งาน Rust
    ค้นหาการใช้งานสัญลักษณ์ Rust ทั้งหมด

  • เคล็ดลับเครื่องมือ: วางเคอร์เซอร์เหนือสัญลักษณ์เพื่อดูข้อมูลประเภทและ เอกสารประกอบ

    ตัวอย่างเคล็ดลับเครื่องมือ Rust
    เคล็ดลับเครื่องมือที่แสดงข้อมูลประเภทสำหรับสัญลักษณ์ Rust จากโมดูลอื่น

  • คำแนะนำในเลย์เอาต์: ดูข้อมูลประเภทมุมมองและคำแนะนำตามบริบทอื่นๆ ได้โดยตรง ในเอดิเตอร์

    ตัวอย่างคำแนะนำการแทรก Rust
    คำแนะนำแบบอินเลย์ที่แสดงข้อมูลประเภทภายในโค้ด

  • มุมมองโครงสร้าง: ไปยังโครงสร้างของไฟล์ Rust โดยใช้หน้าต่างเครื่องมือโครงสร้าง (View > Tool Windows > Structure)

    ตัวอย่างมุมมองโครงสร้าง Rust
    หน้าต่างเครื่องมือโครงสร้างที่แสดงโครงร่างของไฟล์ Rust

  • การปรับโครงสร้างโค้ด: เปลี่ยนชื่อสัญลักษณ์อย่างปลอดภัยและอัปเดตการใช้งานทั้งหมด

    ตัวอย่างการรีแฟกเตอร์การเปลี่ยนชื่อสัญลักษณ์ Rust
    เปลี่ยนชื่อสัญลักษณ์ Rust และอัปเดตการอ้างอิงทั้งหมด

  • การวิเคราะห์แบบเรียลไทม์: รับความคิดเห็นทันทีเกี่ยวกับข้อผิดพลาดและคำเตือนในโค้ด Rust

    ตัวอย่างการวิเคราะห์โค้ด Rust แบบเรียลไทม์
    IDE แสดงข้อผิดพลาดและคำเตือนแบบเรียลไทม์ในโค้ด Rust