عملية التمهيد هي سلسلة من الإجراءات تبدأ من ذاكرة الروم لبدء التشغيل، وتليها أداة تحميل التشغيل والنواة وInit وZygote ونظام الخادم (يشير الخط السميك إلى عملية التمهيد الخاصة بنظام التشغيل Android). في عملية الإقلاع الخاصة بالمركبات، يجب بدء الخدمات المبكرة مثل كاميرا الرؤية الخلفية (RVC) أثناء إقلاع النواة.
طلب | المكوّن | Android | Android Automotive |
---|---|---|---|
1 | ذاكرة ROM لبدء التشغيل | تحمِّل المرحلة الأولى من أداة تحميل التشغيل إلى ذاكرة الوصول العشوائي (RAM) الداخلية. | |
2 | برنامج الإقلاع | يبدأ تشغيل الذاكرة ويتحقّق من الأمان ويحمِّل النواة. | |
3 | فرقعة | يُعدّ هذا المكوّن أدوات التحكّم في عمليات المقاطعة وحماية الذاكرة وذاكرة التخزين المؤقت وجداول التشغيل، كما يشغّل عمليات مساحات المستخدمين. | تبدأ عملية كاميرا الرؤية الخلفية (RVC) في وقت مبكر من عملية تشغيل kernel. بعد اكتمال عملية ، يبدأ GPIO من وحدة التحكّم في الفيديو (VMCU) في تشغيل كاميرا الرؤية الخلفية (RVC) لعرضها على الشاشة. |
4 | عملية الإعداد | تُحلِّل نصوص init.rc البرمجية، وتُحمِّل أنظمة الملفات، وتُشغِّل Zygote، وتُشغِّل
عملية النظام. |
يبدأ Vehicle HAL (VHAL) أثناء مرحلة البدء كجزء من خدمات الأساسية. يمكن نقلها إلى حالات سابقة استنادًا إلى ServiceManager، ويتطلب ذلك إزالة التبعيات على المكتبات المشتركة (مثل init). |
5 | خلية مشيمية | لإعداد Java Runtime وذاكرة الإعداد لعناصر Android | |
6 | خادم النظام | أول مكوّن Java في النظام، ويبدأ خدمات Android الأساسية. | تبدأ CarService بعد بدء جميع خدمات النظام. |
تحسين وقت بدء التشغيل
لتحسين وقت بدء التشغيل في نظامك، اتّبِع الإرشادات التالية:
-
النواة: تحميل الوحدات المستخدَمة فقط وبدء تشغيل مكونات الأجهزة المستخدَمة فقط
-
init.rc
- انتبه إلى العمليات التي يتم حظرها (الخدمة مقارنةً بطلب تنفيذ الأمر).
- ابدأ باستخدام ما يلزم فقط.
- ضبط الأولوية الصحيحة للخدمات
-
الأجنة: تحسين التحميل المُسبَق للفئات (تحديد قائمة بالفئات التي يجب تحميلها)
-
مدير الحِزم
-
حسِّن صورة المنتج لتضمين حِزم APK قيد الاستخدام فقط.
-
-
خادم النظام: ابدأ خدمات النظام المستخدَمة فقط.
للحصول على مساعدة بشأن التحسين، تقدّم Google الأدوات التالية:
-
استخدِم
packages/services/Car/tools/bootanalyze/bootanalyze.py
لتحليل سجلّات logcat و dmesg. -
استخدِم
packages/services/Car/tools/bootio/
لتسجيل عمليات الإدخال/الإخراج للعمليات أثناء التشغيل. يجب تجميع النواة باستخدام علامات معيّنة (راجِع ملفREADME.md
).
بدء الخدمات مبكرًا
في تسلسل التشغيل، قد تبدأ بعض الخدمات قبل بدء تشغيل Android.
كاميرا الرؤية الخلفية
يجب معالجة كاميرا الرؤية الخلفية (RVC) في النواة. يُرسِل وحدة التحكّم في الفيديو إشعارًا إلى عملية kernel المضمّنة عند تبديل المركبة إلى وضع الرجوع، وبعد ذلك تعرِض عملية kernel المضمّنة
صورة نظام الرؤية الخلفية على الشاشة. يمكن لوحدة HAL للمركبة التحكّم في نظام الرؤية المحيطة باستخدام
hardware/libhardware/include/hardware/vehicle_camera.h
.
Vehicle HAL (VHAL)
قد تحتاج بعض الأنظمة إلى قراءة بيانات CAN وتخزينها مؤقتًا (مثل سرعة المركبة وحالة الترس) أثناء المراحل الأولى من تسلسل بدء التشغيل في انتظار بدء خدمة مساحة المستخدم (التي تحدث لاحقًا في تسلسل بدء التشغيل). يتطلّب هذا السيناريو بدء VNS وHAL وCAN controllers في وقت مبكر جدًا، عادةً خلال بضع ثوانٍ.
-
يمكن للأنظمة التي يمكنها تركيب
/system
بسرعة تشغيل مدير الخدمات ثم VNS مبكرًا. -
في النظام الذي لا يمكنه تركيب
/system
بسرعة، يجب نقل كلّ من مدير الخدمات وVNS إلى صورة تشغيل kernel وربط جميع المكتبات المُعتمَدة بشكل ثابت.