Android Studio for Platform (ASfP) היא סביבת הפיתוח המשולבת (IDE) המומלצת לפיתוח פלטפורמת SDV (רכב מוגדר-תוכנה) של Android Automotive OS (AAOS). ASfP תומכת בכל השפות שבהן משתמשת פלטפורמת SDV של AAOS, כולל Rust לחבילות שירות של SDV.
הדף הזה עוסק רק בהגדרה הספציפית ל-SDV. מידע נוסף על תכונות כלליות ותהליכי עבודה ב-ASfP זמין במאמר Android Studio for Platform.
ASfP פועל רק ב-Linux של 64 ביט עם מעבדי x86-64. אפשר להשתמש בו בתחנת עבודה מקומית של Linux או בענן. למידע נוסף על הגדרת הענן, ראו פיתוח בענן.
התקנת ASfP
כברירת מחדל, גודל הערימה המקסימלי ב-ASfP הוא 30GB. הוספה לאינדקס של פלטפורמה לניהול גרסאות משתמשת בהרבה זיכרון, במיוחד כשמריצים גם מכשירי Cuttlefish עם כמה מכונות וירטואליות באותו מחשב. הגדירו את הפרויקט כך שיכלול רק את הספריות שאתם עובדים עליהן, ואם צריך, שנו את הגודל המקסימלי של ה-heap בהגדרות הזיכרון של ASfP.
ASfP תומך בעדכונים אוטומטיים בתוך ה-IDE. מידע נוסף זמין במאמר עדכון Android Studio לפלטפורמה. במאמר התקנת Android Studio for Platform מוסבר איך מורידים ומתקינים את ASfP ואיך בודקים את דרישות המערכת.
יצירת פרויקט SDV
לפני שמתחילים, צריך להפעיל, לסנכרן ולבנות את ה-checkout של AAOS SDV. למידע נוסף על הגדרת התשלום, קראו את המאמרים מיקום הקוד והורדה, פיתוח והפעלה.
כדי ליצור פרויקט SDV:
- יוצרים פרויקט חדש ב-ASfP ובוחרים את ה-root של ה-checkout של AAOS SDV בתור ה-checkout של המאגר. מידע נוסף על השלבים באשף מופיע במאמר יצירה או ייבוא של פרויקט.
- אחרי ש-ASfP יוצר את הפרויקט, בוחרים באפשרות ASfP > Project > Open Config כדי לפתוח את הקובץ
.asfp-project. מחליפים את תוכן הקובץ בדוגמה הבאה, ואז מגדירים את
repoלנתיב של דף התשלום:repo: /path/to/sdv_source lunch: sdv_core_cf-aosp_current-userdebug directories: include: - system/software_defined_vehicle/samples other_languages: - rustמעדכנים את
lunchו-directoriesבאזור שעובדים בו. כדי שההוספה לאינדקס והסנכרון יתבצעו במהירות, כדאי לכלול רק את הספריות שאתם משנים באופן פעיל. בטבלה הבאה מפורטים יעדים וספריות נפוצים של SDV:התמקדות בפיתוח SDV יעד אחד ( lunch)directoriesמומלציםחבילות שירות של SDV sdv_core_cf-aosp_current-userdebugקטלוג השירותים וספריית החבילות, כמו system/software_defined_vehicle/samplesשילוב פלטפורמת SDV Core sdv_core_cf-aosp_current-userdebugsystem/software_defined_vehicle/middleware,system/software_defined_vehicle/automotive_services,device/google/sdvSDV Gateway ב-SDV IVI sdv_ivi_cf-aosp_current-userdebugsystem/software_defined_vehicle/sdv_gateway,system/software_defined_vehicle/samples/sdv_gateway,packages/services/Carבטיחות המסך במדיה של SDV sdv_media_har_cf-aosp_current-userdebugpackages/services/display_safety,device/google/sdv_display_safetyבטיחות המסך ב-SDV IVI sdv_ivi_cf_ds-aosp_current-userdebugpackages/apps/Car/DriverUI,packages/services/display_safety/serviceאם תהליך התשלום משתמש במניפסט
trunk_staging, צריך להחליף את-aosp_current-userdebugב--trunk_staging-userdebug. כדי לעיין גם בקוד של הפלטפורמה המקורית, מוסיפים אתcppאלother_languages. למידע נוסף על כל אפשרויות ההגדרה, קראו את המאמר פרמטרים של הגדרות אישיות.כדי להחיל את השינויים, בוחרים באפשרות ASfP > Sync > Sync Project. מידע נוסף על מצבי סנכרון (סנכרון מלא, סנכרון חלקי וסנכרון ללא build) וייצוא או ייבוא של תבניות
.asfp-projectשניתנות לשיתוף לצוות, זמין במאמרים מצבי סנכרון וחלון של הכלי Soong ותבניות פרויקט שניתנות לשיתוף (ייצוא וייבוא).
פריסת חבילות שירות של SDV
ASfP כולל פלאגין של SDV שפורס קובץ APEX שמכיל את חבילות השירות ישירות למכשיר SDV פעיל. הפלאגין מושבת כברירת מחדל. כדי להשתמש בו, צריך להפעיל את הפלאגין של SDV דרך הגדרות > פלאגינים. מידע נוסף על אריזת APEX זמין במאמר פיתוח ופריסה של חבילות שירות.
אופן הפריסה תלוי בשאלה אם ה-APEX כבר נמצא במכשיר:
- אם כבר התקנתם את APEX, אתם יכולים לפרוס את השינויים ישירות מ-ASfP.
- אם ה-APEX חדש, קודם צריך לבנות מחדש ולהפעיל מחדש את קובץ האימג' של המערכת, או להשתמש בקובץ אימג' של המערכת שכולל את המפתח שמשמש לחתימה על ה-APEX. אחרי זה, אפשר לפרוס מ-ASfP.
כדי לפרוס חבילת שירות APEX, מבצעים את השלבים הבאים:
- מפעילים את מכשיר ה-SDV עם הפלאגין Cuttlefish. מידע נוסף זמין במאמר הפעלת מכשירי SDV ב-Cuttlefish.
- פותחים את הקובץ
apex/Android.bpשל חבילת השירות ולוחצים על הסמל Run בשוליים לצד הבלוקapex {. - בתפריט שנפתח, בוחרים באפשרות Run 'Deploy APEX_NAME'. אפשר גם לבנות את ה-APEX בלי לפרוס אותו או לשנות את הגדרות ההרצה מאותו תפריט.
הפעלת מכשירי SDV ב-Cuttlefish
ASfP כולל פלאגין של Cuttlefish שיוצר ומפעיל מכשירי Cuttlefish מקומיים. הפלאגין צריך את מתזמר המארח של Cuttlefish. אם התזמור המארח לא זמין, ב-ASfP מוצגות הוראות להגדרה שלו.
כדי ליצור מכשיר SDV, פועלים לפי השלבים הבאים:
- בוחרים באפשרות Tools > Device Manager, לוחצים על + ובוחרים באפשרות Create Cuttlefish Device.
- כדי ליצור הגדרה של כמה מכונות וירטואליות, בוחרים באפשרות From canonical configuration ויוצרים או מייבאים הגדרה, למשל SDV Core עם SDV IVI, או SDV Media עם SDV IVI ל-Display Safety. כדי ליצור מכונה וירטואלית אחת, בוחרים באפשרות From local Android source tree checkout.
כדי לראות את כל המסכים של המכונה הווירטואלית במסך אחד ולגשת לאפשרויות נוספות של המכשיר, משתמשים בחלון של הכלי Cuttlefish. כדי לפתוח אותו, לוחצים על הסמל ... בחלונית הצדדית ובוחרים באפשרות Cuttlefish, או מחפשים את Cuttlefish בקטע Help > Find Action. אפשר גם לראות מסכים ספציפיים בקטע Running Devices. מכיוון ש-SDV Core פועל בלי מסך, צריך להשתמש ב-Logcat ובמסוף כדי לבדוק אותו.
ניפוי באגים ובדיקה
ASfP כולל מנפה שגיאות מובנה מסוג LLDB לקוד C++ ו-Rust. מידע נוסף על ניפוי באגים ובדיקות ב-ASfP זמין במאמרים ניפוי באגים בקוד פלטפורמה, ניפוי באגים בקוד Rust, בדיקת קוד פלטפורמה באמצעות atest וניפוי באגים ביעדי cc_test ו-rust_test ב-LLDB.
כשמצרפים את מנפה הבאגים לחבילת שירות, צריך לצרף אותו לתהליך שמארח אותה. שמות התהליכים הם בפורמט <bundle_name>:<instance_name>, למשל OrchestratorSampleRustServiceBundle:sample-main-no-conditions. הפקודה הבאה מציגה רשימה של תהליכים תואמים ומזהי התהליכים שלהם:
adb shell ps -A | grep <bundle_name>
מידע נוסף על תהליכי ניפוי באגים ב-SDV, כמו התחברות למספר מכשירים וצפייה ביומנים, זמין במאמר ניפוי באגים ב-SDV.
עריכת קובצי VSIDL
ASfP כולל את שרת השפה VSIDL (vsidl-lsp). מידע נוסף על הגדרת הקטלוג לשרת השפה זמין במאמר עדכוני קטלוג אוטומטיים ושילוב LSP. כשהקטלוג כולל קובץ CATALOG_UPDATE, הכלי לעריכת קבצים מספק את התכונות הבאות לקובצי .vsidl:
- אימות בזמן אמת: העורך מדגיש מילות מפתח של VSIDL ומציג שגיאות תחביר, סוגים לא פתורים ושגיאות אימות של VSIDLC בחלון Problems. מידע נוסף על כללי האימות וקודי השגיאה שלהם זמין במפרט השפה של VSIDL.
- השלמה אוטומטית ותיעוד: אתם יכולים ללחוץ על Ctrl+Space כדי לקבל הצעות למילות מפתח, הודעות, שירותים, נושאים וערוצים, וללחוץ על Ctrl+Q כדי להציג הערות תיעוד.
- Navigation ועיצוב: אפשר ללחוץ על Ctrl+B כדי לעבור להגדרות של
.vsidlאו.proto, על Alt+Shift+F7 כדי למצוא קובצי עזר, על Ctrl+F12 כדי לראות את מבנה הקובץ ועל Ctrl+Alt+L כדי לעצב את הקובץ.
הוספת הקשר של SDV לעוזרים אישיים מבוססי-AI
ASfP כולל AI ב-Android Studio וסוכן מובנה עם כלים של Soong build ו-atest. מידע נוסף על תכונות ה-AI של ASfP זמין במאמר היכרות עם Android Studio for Platform. כדי לעזור לעוזר האישי מבוסס ה-AI לפעול לפי המוסכמות של SDV, הוסיפו קובץ AGENTS.md לתיקיית הבסיס של קטלוג ה-VSIDL.
מידע נוסף על קובצי סוכנים זמין במאמר התאמה אישית של Gemini באמצעות קובצי AGENTS.md.
הדוגמה הבאה היא נקודת התחלה שאפשר להתאים לקטלוג שלכם:
# AAOS SDV service catalog rules
- Implement SDV service bundles in Rust under `services/<BundleName>/src/`.
- Keep `.proto` files limited to Protobuf `message`, `enum`, and `service` definitions. Define service bundles, APEX packaging, VM placement, and SOME/IP mappings in `.vsidl` files.
- Regenerate middleware with `vsidlc` after you change `.vsidl` or `.proto` files, and leave generated files unmodified.
- Use `PascalCase` for service bundle names and lowercase `kebab-case` for topic and channel names.
- Run `vsidlc --explain <CODE>` to look up a VSIDLC error code.