נהל את זמן האתחול

תהליך האתחול הוא שרשרת פעולות המתחילה מ-ROM האתחול, ולאחריה טוען האתחול, הקרנל, Init , Zygote ושרת המערכת (מודגש מציין תהליך אתחול ספציפי לאנדרואיד). בתהליך האתחול הספציפי לרכב, שירותים מוקדמים כגון מצלמה אחורית (RVC) חייבים להתחיל במהלך אתחול הליבה.

להזמין רְכִיב דְמוּי אָדָם אנדרואיד רכב
1 אתחול ROM טוען את השלב הראשון של טוען האתחול לתוך זיכרון RAM פנימי.
2 טוען אתחול מפעיל את הזיכרונות שלו, מאמת לאבטחה וטוען ליבה.
3 גַרעִין מגדיר בקרי פסיקה, הגנת זיכרון, מטמונים ותזמון; משיקה תהליכי מרחב משתמש. תהליך המצלמה האחורית (RVC) מתחיל מוקדם באתחול הליבה. לאחר סיום התהליך, GPIO מ-VMCU מפעיל את RVC להצגה בתצוגה.
4 התחל תהליך מנתח סקריפטים init.rc , מעלה מערכות קבצים, מפעיל את Zygote, מפעיל תהליך מערכת. רכב HAL (VHAL) מתחיל בשלב ההתחלתי כחלק משירותי הליבה. ניתן להעביר למצבים מוקדמים יותר בהתאם ל-ServiceManager; דורש הסרת תלות בספריות משותפות (כגון init).
5 זיגוטה מגדיר Java Runtime וזיכרון פתיחה עבור אובייקטי אנדרואיד.
6 שרת מערכת רכיב Java ראשון במערכת, מתחיל שירותי ליבה של אנדרואיד. CarService מתחיל לאחר הפעלת כל שירותי המערכת.

מטב את זמן האתחול

כדי לשפר את זמן האתחול במערכת שלך, השתמש בהנחיות הבאות:

  • גַרעִין. טען רק את המודולים שבשימוש ואתחול רק את רכיבי החומרה שבשימוש.

  • init.rc

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

  • מנהל אריזה

  • שרת מערכת. הפעל רק את שירותי המערכת שבהם נעשה שימוש.

לקבלת עזרה באופטימיזציה, Google מספקת את הכלים הבאים:

  • השתמש packages/services/Car/tools/bootanalyze/bootanalyze.py כדי לנתח יומני logcat ו-dmesg.

  • השתמש packages/services/Car/tools/bootio/ כדי להקליט קלט/פלט עבור תהליכים במהלך האתחול. עליך להדר את הליבה עם דגלים ספציפיים (עיין בקובץ README.md ).

התחל שירות מוקדם

ברצף האתחול, חלק מהשירותים עשויים להתחיל לפני האתחול של אנדרואיד.

מצלמה אחורית

יש לטפל במצלמה האחורית (RVC) בליבה. ה-VMCU מודיע לתהליך הליבה המקורי כאשר הרכב עובר לאחור, ולאחר מכן תהליך הליבה המקורי מציג את תמונת ה-RVC על הצג. HAL הרכב יכול לשלוט ב-RVC באמצעות hardware/libhardware/include/hardware/vehicle_camera.h .

רכב HAL (VHAL)

ייתכן שמערכות מסוימות יצטרכו לקרוא ולאגר נתוני CAN (לדוגמה, מהירות רכב, מצב הילוכים) בשלבים המוקדמים של רצף האתחול בזמן ההמתנה להפעלת שירות שטח המשתמש (שמתרחש מאוחר יותר ברצף האתחול). תרחיש זה מחייב את VNS ואת בקרי HAL ו-CAN להתחיל מוקדם מאוד, בדרך כלל תוך מספר שניות.

  • מערכות שיכולות לעלות במהירות /system יכולות פשוט להפעיל את מנהל השירות ואז את VNS מוקדם.

  • מערכת שאינה יכולה לעלות במהירות /system חייבת להעביר גם את מנהל השירות וגם את VNS לתמונת האתחול של הליבה ולקשר את כל הספריות התלויות באופן סטטי.