תמיכה ב-Rust ב-ASfP

סקירה כללית

‫Rust היא שפת תכנות מודרנית למערכות שמתמקדת בביצועים ובבטיחות, במיוחד בבטיחות הזיכרון. השימוש ב-Rust הופך לחשוב יותר ויותר במערכת האקולוגית של Android כחלופה בטוחה יותר ל-C/C++‎ לפיתוח רכיבי מערכת קריטיים, והוא מציע אבטחה ויציבות משופרות.

בדף הזה מוסבר איך להגדיר את Android Studio for Platform ‏ (ASfP) כדי לתמוך בפיתוח Rust בפרויקטים של Android Open Source Project ‏ (AOSP).

דרישות מוקדמות

  • ASfP Installed: מוודאים ש-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: עוברים אל File > Sync Project (קובץ > סנכרון הפרויקט).

אימות ההצלחה

אחרי שמבצעים את השלבים האלה:

  • הסמל rust-project.json אמור להופיע בתצוגת הפרויקט (בקטע המקור iml). הקובץ הזה נוצר על ידי Soong במהלך הניתוח ומקושר באמצעות קישור סמלי אל ספריית הבסיס של repo, שנדרשת כדי ש-LSP יוכל לספק שירותי שפה. אל תערכו את הקובץ הזה ישירות. במקום זאת, סנכרנו מחדש כדי ש-Soong יטפל בו.

    חשוב לוודא שהתג rust מופיע בקטע other_languages בהגדרות של .asfp-project.

    מוודאים שנוצר הקובץ rust-project.json.
    מוודאים שאסימון rust-project.json נוצר.
  • תכונות ספציפיות ל-Rust (שמתוארות ומוצגות בהמשך) אמורות להיות מופעלות בסביבת הפיתוח המשולבת (IDE).

תכונות עיקריות של סביבות פיתוח משולבות (IDE) ב-Rust

  • השלמת קוד: קבלת הצעות חכמות לקוד Rust, כולל פריטים ממודולים אחרים.

    דוגמה להשלמת קוד ב-Rust בין מודולים
    השלמת קוד שמציעה פריטים ממודול Rust אחר.

  • ניווט: מעבר מהיר להגדרות וחיפוש של שימושים בסמלי Rust בפרויקט.

    דוגמה לניווט בקוד Rust
    ניווט להגדרה של סמל Rust.
    דוגמה לשימוש בפונקציה find usages ב-Rust
    חיפוש כל המקומות שבהם נעשה שימוש בסמל Rust.

  • הסברים קצרים: מעבירים את העכבר מעל סמלים כדי לראות מידע על הסוג ותיעוד.

    דוגמה להסבר קצר ב-Rust
    הסבר קצר שמופיע כשמעבירים את העכבר מעל סמל של Rust ממודול אחר, ובו מידע על הסוג.

  • הצעות מוצגות: אפשר לראות מידע על הסוגים ורמזים הקשריים אחרים ישירות בעורך.

    דוגמה לרמזים מוטבעים ב-Rust
    רמזים מוטמעים שמציגים מידע על סוג בתוך הקוד.

  • תצוגת מבנה: אפשר לנווט במבנה של קובצי Rust באמצעות חלון הכלים Structure (מבנה) (View > Tool Windows > Structure (תצוגה > חלונות כלים > מבנה)).

    דוגמה לתצוגת המבנה ב-Rust
    חלון הכלים של המבנה שבו מוצג המתאר של קובץ Rust.

  • Refactoring: שינוי שם של סמלים בצורה בטוחה ועדכון כל השימושים.

    דוגמה לשינוי שם של סמל ב-Rust
    שינוי השם של סמל Rust ועדכון כל ההפניות אליו.

  • ניתוח בזמן אמת: קבלת משוב מיידי על שגיאות ואזהרות בקוד Rust.

    דוגמה לניתוח קוד בזמן אמת ב-Rust
    סביבת פיתוח משולבת (IDE) שמציגה שגיאות ואזהרות בזמן אמת בקוד Rust.