הגדרת סביבת פיתוח משולבת (IDE) לפיתוח של SDV

Android Studio for Platform‏ (ASfP) היא סביבת הפיתוח המשולבת (IDE) המומלצת לפיתוח פלטפורמת Android, כולל פרויקטים של מערכת ההפעלה Android Automotive‏ (AAOS) ושל כלי רכב מוגדרים בתוכנה (SDV). ‫ASfP מספקת מערך עשיר של כלים לעריכת קוד, לבנייה, לניפוי באגים ולבדיקה, כולל:

  • עזרה מבוססת-AI ‏ (Gemini)
  • תמיכה בשפות Rust, ‏ C או C++‎, ‏ Java
  • שילובים שימושיים לפיתוח SDV ב-AAOS (לדוגמה, תמיכה באמולטור Cuttlefish ותמיכה בשפת VSIDL)

התקנה של Android Studio ל-Platform

כדי להתקין את ASfP:

  1. מורידים את Android Studio for Platform.

  2. בוחרים את הגרסה שהכי מתאימה לצרכים שלכם:

    • יציב: הגרסה העדכנית ביותר לסביבת הייצור, מומלצת לרוב המשתמשים
    • Canary: גרסאות גישה מוקדמת עם התכונות החדשות ביותר, אבל יכול להיות שהן פחות יציבות
  3. פועלים לפי הוראות ההתקנה שמופיעות בדף ההורדה.

הגדרה של פרויקט SDV ב-AAOS

כדי להגדיר פרויקט SDV ב-AAOS:

  1. מוודאים שיש לכם גישה למאגר המקורות של הקוד של AAOS SDV, ושהפעלתם את האתחול והסנכרון של העותק המקומי. פרטים על גישה למקור ועל הפעלת המאגר מופיעים במאמר בנושא הורדה, בנייה והפעלה.

  2. מפעילים את Android Studio ל-Platform.

  3. אם זו הפעם הראשונה שאתם משתמשים ב-Android Studio, אתם צריכים לפעול לפי ההוראות באשף ההגדרה כדי להתאים אישית את סביבת הפיתוח.

  4. כדי ליצור פרויקט חדש:

    • אם אין לכם פרויקט פתוח, לוחצים על חדש במסך הפתיחה.
    • אם כבר פתוח פרויקט, לוחצים על Open או בוחרים באפשרות ASfP > Project > Import ASfP Project מהתפריט.
  5. ממלאים את פרטי הגדרות הפרויקט באשף:

    • Repo checkout: מציינים את הנתיב המוחלט אל שורש הקוד המקומי של AAOS SDV (לדוגמה, /path/to/sdv_source).

    • יעד לארוחת צהריים: מזינים את היעד המתאים לארוחת צהריים לפיתוח AAOS SDV ב-Cuttlefish, לדוגמה, sdv_core_cf-aosp_current-userdebug. כאן מפורטים יעדים נוספים שאפשר לבחור.

    • מקורות הפרויקט: מזינים את הספריות או המודולים הראשוניים שרוצים לכלול בפרויקט, או לוחצים על סמל התיקייה כדי לפתוח את דפדפן מערכת הקבצים ולבחור את הספריות. בחירה של יותר מדי ספריות או מודולים משפיעה על הביצועים של ההוספה לאינדקס ושל החיפוש בסביבת הפיתוח המשולבת, ולכן צריך לכלול רק ספריות או מודולים רלוונטיים.

    • תמיכה בשפות: בוחרים את השפות הנתמכות Rust ו-C++.

    • שם הפרויקט: נותנים לפרויקט שם תיאורי.

    • סיום ההגדרה: לוחצים על סיום. ‫ASfP יוצר את מבנה הפרויקט ואת קובץ התצורה .asfp-project.

‫ASfP מתחיל באופן אוטומטי תהליך סנכרון ראשוני. הכלי ASfP מנתח את קוד המקור, פותר יחסי תלות באמצעות מערכת ה-build של Soong ובונה את המידע שנדרש לתכונות של ניתוח קוד. התהליך הזה יכול להימשך זמן רב, במיוחד בסנכרון הראשון.

התאמה אישית של הפרויקט

קובץ .asfp-project בתיקיית הבסיס של הפרויקט מאפשר התאמה אישית נוספת. אתם יכולים לערוך את הקובץ הזה כדי:

  • להוסיף או להסיר ספריות ומודולים.
  • להפעיל תמיכה בשפות אחרות, כמו C++‎ או Rust (השפות Java ו-Kotlin מוגדרות כברירת מחדל).
  • הגדרת דגלים של build.

כדי לבצע שינויים בקובץ ההגדרות, בוחרים באפשרות ASfP > Project > Open Config (ASfP > פרויקט > פתיחת הגדרות). במאמר סקירה כללית על פרויקטים מפורטות אפשרויות ההגדרה הזמינות.

ניפוי באגים ובדיקה

כדי לנפות באגים ולבדוק קוד ב-ASfP, אפשר לעיין במאמרים בנושא ניפוי באגים בקוד של הפלטפורמה ובדיקת קוד של הפלטפורמה באמצעות atest.

שילובים זמינים

חבילת הכלים ASfP כוללת כמה שילובים שימושיים לפיתוח SDV ב-AAOS, כולל תמיכה ב-Cuttlefish וב-Language Server Protocol ‏ (LSP) ב-VSIDL.

הפלאגין Cuttlefish

התוסף Cuttlefish מאפשר למשתמשים ליצור ולהפעיל מכשירי Cuttlefish מקומיים ישירות מ-ASfP.

התקנת הפלאגין

הפלאגין Cuttlefish מותקן מראש ב-ASfP ולא צריך להגדיר אותו. כדי להשתמש בתוסף, צריך להתקין את כלי Cuttlefish במכשיר. אם צריך, פועלים לפי ההוראות כדי להתקין את כלי Cuttlefish.

יצירת מכשיר Cuttlefish

כדי ליצור מכשיר חדש:

  1. פותחים את חלון הכלי 'מנהל המכשירים' על ידי בחירה באפשרות כלים > מנהל המכשירים או על ידי לחיצה על סמל המכשירים הפועלים בחלונית השמאלית, אם מנהל המכשירים כבר מוצמד שם.

  2. לוחצים על הסמל + ובוחרים באפשרות יצירת מכשיר Cuttlefish.

  3. מגדירים את מכשיר Cuttlefish החדש. יש שתי דרכים ליצור מכשירי Cuttlefish:

    • מתוך עץ המקור המקומי של Android:

      • בוחרים את הנתיב ליעד המובנה שמתאים להגדרת ההשקה (פרטים נוספים זמינים במאמר בנושא בחירת יעד).
      • בוחרים את נתיב המארח.
      • אפשר גם לבחור את הגדרות המכשיר הזמינות או באפשרות ללא כדי להשתמש בהגדרות ברירת המחדל.
    • מההגדרה הקנונית (משתמשים באפשרות הזו כדי ליצור כמה מכשירים מההגדרה היחידה):

      • בוחרים את הנתיב להגדרת המכשיר.
      • אופציונלי: מספקים דגלי שינוי כדי לשנות את אפשרויות ההגדרה.
  4. מחכים עד שמכשיר Cuttlefish נוצר ומוסף לרשימת המכשירים הפועלים ב-Device Manager.

  5. בתפריט Running Devices (מכשירים פעילים), בוחרים את מכשיר Cuttlefish.

כדי להפעיל או להפסיק מכשירי Cuttlefish ספציפיים, לוחצים על סמל ההפעלה או ההפסקה שלצד המכשיר במנהל המכשירים.

גישה לדף המכשיר של Cuttlefish

לתוסף Cuttlefish יש חלון כלים שבו מוצג הדף Cuttlefish Device, שדרכו אפשר לגשת לתכונות של שיקוף המסך.

כדי לפתוח את חלון הכלי Cuttlefish, לוחצים על הסמל ... בחלונית הימנית ובוחרים באפשרות Cuttlefish. אפשרות נוספת היא לחפש את Cuttlefish בתפריט עזרה > חיפוש פעולה.

פרוטוקול שרת שפה ב-VSIDL

ב-VSIDL, ‏ LSP מספקת קבוצה עשירה של תכונות IDE כדי לשפר את תהליך הפיתוח כשעובדים עם קובצי VSIDL (עם סיומת .vsidl) ב-ASfP.

הדגשת תחביר סמנטי

שרת ה-LSP מספק הדגשה של תחביר בקובצי VSIDL.

  • מה היא עושה: מדגישה מילות מפתח (service_bundle, publisher), שדות (package:, message:) וערכים מילוליים.

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

ניתוח בזמן אמת (שגיאות ואזהרות)

שרת ה-LSP מאמת קבצים באופן רציף ומדווח על בעיות בזמן אמת.

  • מה היא עושה: מזהה שגיאות תחביר, הפניות לסוגים לא תקינים ושגיאות אחרות בכל הקטלוג והתלות שלו.

  • איך מנסים: מקלידים שם של הודעה עם שגיאת כתיב (לדוגמה, TiiirePressure). מתחת לשגיאת הכתיב מופיע קו אדום גלי. מעבירים את העכבר מעל המילה כדי לראות את הודעת השגיאה, או מעיינים ברשימה המלאה בחלון הכלים Problems בתחתית סביבת הפיתוח המשולבת (IDE).

אתם יכולים להשתמש בתכונות הניווט והתובנות כדי לבדוק את הקשרים בין חלקים שונים בקטלוג VSIDL.

  • השלמה אוטומטית: לוחצים על Control+Space כדי לראות הצעות למילות מפתח, להודעות protobuf, לשירותי RPC, לנושאים ולערוצים. ההצעות למילות מפתח כוללות הסברים קצרים ומועילים על המטרה שלהן ישירות בתפריט ההשלמה. ה-LSP מספק גם קטעי קוד חכמים לבלוקים כמו publisher או server כדי לייעל את תהליך העבודה.

  • מעבר להגדרה: מחזיקים את המקש Control ולוחצים (או מקישים על Control+B) על הודעה, שירות, נושא או הפניה לערוץ כדי לעבור ישירות להגדרת המקור שלו, גם אם הוא נמצא בקובץ VSIDL או protobuf אחר.

  • חיפוש הפניות: מציבים את הסמן על מילת המפתח publisher,‏ subscriber,‏ server או client ומקישים על Alt+Shift+F7 כדי למצוא את כל המופעים.

  • מידע בהעברת העכבר: מזיזים את הסמן לסוג או לנכס (או לוחצים על Control+Q). מוצג תיאור קצר עם הערות התיעוד (אם יש כאלה).

תכונות מבניות

שרת ה-LSP עוזר לכם לנהל את המבנה של קובצי VSIDL גדולים ולנווט בהם:

  • סמלי מסמך (מתאר): מקישים על Control+F12 כדי לראות הסבר קצר של הניווט, או פותחים את חלון של הכלי מבנה (Control+Alt+7) כדי לראות תצוגת עץ של כל החבילות והיחידות בקובץ.

  • קיפול טווחים: לוחצים על הסמלים > או V בשוליים (לצד מספרי השורות) כדי לכווץ או להרחיב בלוקים לוגיים גדולים כמו service_bundle או הגדרות מיפוי.

  • עיצוב המסמך: מקישים על Control+Alt+L כדי לעצב מחדש את הקובץ באופן אוטומטי, וליצור הזחה וריווח עקביים.