إدارة وقت التمهيد

عملية التمهيد عبارة عن سلسلة من الإجراءات تبدأ من ذاكرة القراءة فقط للتمهيد، متبوعة بمحمل التشغيل، وkernel، وInit ، و Zygote ، وخادم النظام (يشير الخط الغامق إلى عملية التمهيد الخاصة بنظام Android). في عملية التمهيد الخاصة بالسيارات، يجب أن تبدأ الخدمات المبكرة مثل كاميرا الرؤية الخلفية (RVC) أثناء تمهيد kernel.

طلب عنصر ذكري المظهر أندرويد للسيارات
1 التمهيد مدمج يقوم بتحميل المرحلة الأولى من أداة تحميل التشغيل في ذاكرة الوصول العشوائي الداخلية.
2 محمل الإقلاع يقوم بتهيئة الذكريات والتحقق من الأمان وتحميل النواة.
3 نواة يقوم بإعداد وحدات التحكم بالمقاطعة، وحماية الذاكرة، وذاكرة التخزين المؤقت، والجدولة؛ يطلق عمليات مساحة المستخدم. تبدأ عملية كاميرا الرؤية الخلفية (RVC) مبكرًا في تمهيد kernel. بعد انتهاء العملية، يقوم GPIO من VMCU بتشغيل RVC ليظهر على الشاشة.
4 عملية البدء يوزع البرامج النصية init.rc ، ويحمل أنظمة الملفات، ويطلق Zygote، ويطلق عملية النظام. يبدأ تشغيل HAL للمركبة (VHAL) أثناء مرحلة البدء كجزء من الخدمات الأساسية. يمكن نقله إلى الحالات السابقة اعتمادًا على ServiceManager؛ يتطلب إزالة التبعيات من المكتبات المشتركة (مثل الحرف الأول).
5 الزيجوت يقوم بإعداد Java Runtime وبدء تشغيل الذاكرة لكائنات Android.
6 خادم النظام أول مكون Java في النظام، يبدأ تشغيل خدمات Android الأساسية. تبدأ خدمة CarService بعد بدء كافة خدمات النظام.

تحسين وقت التمهيد

لتحسين وقت التمهيد في نظامك، استخدم الإرشادات التالية:

  • نواة. قم بتحميل الوحدات المستخدمة فقط وقم بتهيئة مكونات الأجهزة المستخدمة فقط.

  • init.rc

    • انتبه لعمليات الحظر (مقارنة الخدمة باستدعاء الأمر).
    • ابدأ فقط بما يتم استخدامه.
    • تحديد الأولوية الصحيحة للخدمات.
  • الزيجوت. تحسين التحميل المسبق للفصل (حدد قائمة الفئات المراد تحميلها).

  • مدير مجموعة

  • خادم النظام. ابدأ تشغيل خدمات النظام المستخدمة فقط.

للحصول على مساعدة في التحسين، توفر Google الأدوات التالية:

  • استخدم packages/services/Car/tools/bootanalyze/bootanalyze.py لتحليل سجلات logcat وdmesg.

  • استخدم packages/services/Car/tools/bootio/ لتسجيل الإدخال/الإخراج للعمليات أثناء التمهيد. يجب عليك تجميع النواة باستخدام إشارات محددة (ارجع إلى ملف README.md ).

ابدأ الخدمات مبكرًا

في تسلسل التمهيد، قد تبدأ بعض الخدمات قبل بدء تشغيل Android.

كاميرا الرؤية الخلفية

يجب التعامل مع كاميرا الرؤية الخلفية (RVC) في النواة. تقوم VMCU بإعلام عملية kernel الأصلية عندما تنتقل السيارة إلى الوضع العكسي، وبعد ذلك تعرض عملية kernel الأصلية صورة RVC على الشاشة. يمكن لـ HAL للمركبة التحكم في RVC باستخدام hardware/libhardware/include/hardware/vehicle_camera.h .

مركبة هال (VHAL)

قد تحتاج بعض الأنظمة إلى قراءة بيانات CAN وتخزينها مؤقتًا (على سبيل المثال، سرعة السيارة وحالة الترس) أثناء المراحل الأولى من تسلسل التمهيد أثناء انتظار بدء خدمة مساحة المستخدم (والتي تحدث لاحقًا في تسلسل التمهيد). يتطلب هذا السيناريو أن تبدأ وحدات تحكم VNS وHAL وCAN في وقت مبكر جدًا، عادةً خلال بضع ثوانٍ.

  • يمكن للأنظمة التي يمكنها التثبيت /system بسرعة تشغيل مدير الخدمة ثم VNS مبكرًا.

  • يجب على النظام الذي لا يمكنه التثبيت /system بسرعة نقل كل من مدير الخدمة وVNS إلى صورة تمهيد kernel وربط جميع المكتبات التابعة بشكل ثابت.