لدعم إدارة الطاقة الخاصة بالمركبات، يقدّم Android خدمة
CarPowerManagementService
وواجهة
CarPowerManager
.
يتم بدء عمليات النقل من حالة إلى أخرى بواسطة وحدة التحكّم الرئيسية في المركبة (VMCU). للتواصل مع وحدة التحكّم في الفيديو، على جهات الدمج تنفيذ عدّة مكوّنات. يتحمّل مُدمِجو الأنظمة مسؤولية دمج مع طبقة تجريد أجهزة المركبات (VHAL) وتنفيذ النواة. يتحمّل خبراء الدمج أيضًا مسؤولية إيقاف مصادر الاستيقاظ وضمان عدم تأجيل عمليات الإيقاف نهائيًا.
المصطلحات
يتم استخدام هذه المصطلحات في جميع أقسام هذا المستند:
suspend()
وshutdown()
.تصميم النظام
يوضّح هذا القسم كيفية تمثيل AAOS لحالة الطاقة في معالج التطبيقات والوحدات التي تنفِّذ نظام إدارة الطاقة. توضّح هذه المادة أيضًا كيفية عمل هذه الوحدات معًا وكيفية حدوث عمليات النقل المعتادة للحالات.
آلة حالة تشغيل السيارة
يستخدم نظام التشغيل AAOS آلة حالة لتمثيل حالة الطاقة في نقطة الوصول. يوفّر الاتّجاه الآلي الحالات الموضّحة أدناه:
الشكل 1: آلة حالة تشغيل السيارة
يتم تمييز الانتقالات الأكثر شيوعًا باللون الأزرق. في ما يلي الحالات والحالات الانتقالية الشائعة:
- تعليق التطبيقات في ذاكرة الوصول العشوائي: السيارة ووحدة التحكّم في السيارة غير مفعّلَين. لا يتم تنفيذ أي رمز برمجي. يتم الحفاظ على الطاقة في ذاكرة الوصول العشوائي (RAM) لوحدة المعالجة المركزية (SoC).
- الانتظار إلى أن يتصل بك فريق VHAL عندما يتفاعل السائق مع المركبة، على سبيل المثال، من خلال فتح باب، يُطبّق VMCU الطاقة على وحدة المعالجة المركزية (SoC). يستأنف نظام التشغيل AAOS من وضع "تعليق إلى ذاكرة الوصول العشوائي" ويدخل في وضع "الانتظار إلى أن يصل VHAL"، حيث ينتظر التنسيق مع VHAL.
- تفعيل يطلب VHAL من AAOS الدخول إلى الحالة "مفعَّل". في هذه الحالة، يكون نظام التشغيل AAOS قيد التشغيل بالكامل ويتفاعل مع السائق.
- إعدادات الإيقاف عندما ينتهي السائق من القيادة، يطلب VHAL من AAOS الانتقال إلى وضع "الاستعداد للإيقاف". في هذه الحالة، تكون الشاشة والصوت غير مفعَّلَين ولا يتفاعل نظام التشغيل AAOS مع السائق. لا يزال نظام Android قيد التشغيل ويمكنه تحديث التطبيقات ونظام Android. عند اكتمال التحديثات، إن توفّرت، ينتقل نظام Android إلى حالة "الانتظار إلى أن يكتمل VHAL ".
- الانتظار إلى أن تكتمل عملية VHAL في هذه المرحلة، يُعلم نظام التشغيل AAOS وحدة التحكّم في حدود الجلسة بأنّه أصبح جاهزًا للإيقاف. من المتوقّع أن تضع وحدة التحكّم في الفيديو (VMCU) وحدة المعالجة المركزية (SoC) في وضع "النوم العميق" وأن تزيل الطاقة من معالج التطبيقات. يكون نظام التشغيل AAOS بعد ذلك في حالة "التعليق في ذاكرة الوصول العشوائي"، على الرغم من عدم تنفيذ أي رمز برمجي.
وحدات إدارة الطاقة
يتألف نظام إدارة الطاقة من الوحدات التالية:
اسم الوحدة | الوصف |
---|---|
CarPowerManager | واجهة برمجة تطبيقات Java أو C++ |
CarPowerManagementService | تنظِّم عمليات النقل إلى حالات الطاقة. |
CarPowerPolicyDaemon | التواصل مع عملاء سياسة الطاقة الأصلية |
Vehicle HAL | واجهة وحدة التحكّم في الفيديو |
فرقعة | تعليق التنفيذ في ذاكرة الوصول العشوائي أو القرص |
يتم تنفيذ ميزة السكون العميق/الاستراحة (تعليق Android في ذاكرة الوصول العشوائي/القرص) في النواة.
يتم عرض هذه الميزة في مساحة المستخدم كملف خاص في
/sys/power/state
. يتم تعليق AAOS من خلال كتابة mem
أو disk
في هذا الملف.
تنسق وحدة CPMS حالة الطاقة مع الخدمات وHAL الأخرى. تنفِّذ وحدة التحكّم في إدارة الطاقة (CPMS) آلة الحالة описанة أعلاه وتُرسِل إشعارات إلى كل مراقب عند حدوث انتقال في حالة الطاقة. وتستخدم هذه الخدمة أيضًا VHAL لإرسال الرسائل إلى الجهاز.
تدير وحدة CPPD سياسة الطاقة إلى أن تتولى وحدة CPMS التحكّم. ويرسل أيضًا إشعارات بشأن التغييرات في سياسة توفير الطاقة إلى المستمعين الأصليين.
يتمّ تحديد بعض السمات في ملف VHAL. للتواصل مع وحدة التحكّم في الجهد الكهربي (VMCU)، يقرأ نظام إدارة الطاقة (CPMS) ويكتب هذه السمات. ويمكن للتطبيقات استخدام الواجهة المحدّدة في نظام إدارة الطاقة (CPM) لرصد التغيُّرات في حالة الطاقة. تتيح هذه الواجهة للتطبيقات أيضًا تسجيل مستمعي سياسة الطاقة. يمكن استدعاء واجهة برمجة التطبيقات هذه من Java وهي مُشارَك فيها باستخدام @hide / @System API، ما يعني أنّها متاحة للتطبيقات المميّزة فقط. في ما يلي توضيح للعلاقة بين هذه الوحدات والتطبيقات والخدمات:
الشكل 2: مخطّط مرجعي لمكوّنات الطاقة
تسلسل الرسائل
لقد وصف القسم السابق الوحدات التي تتألف منها منظومة إدارة الطاقة. يستخدِم هذا القسم مثالَي الدخول إلى وضع السكون العميق والخروج من وضع السكون العميق لشرح كيفية تواصل الوحدات والتطبيقات:
الدخول في مرحلة النوم العميق
يمكن فقط لوحدة التحكّم في الفيديو (VMCU) بدء وضع "النوم العميق". بعد بدء وضع السكون العميق، تُرسِل وحدة التحكّم في الوسائط (VMCU)
إشعارًا إلى وحدة التحكّم في إدارة الطاقة (CPMS) عبر واجهة HAL للوسائط (VHAL). يغيّر نظام إدارة الطلبات (CPMS) الحالة إلى SHUTDOWN PREPARE ويبثّ
هذا الانتقال إلى الحالة لجميع المراقبين (التطبيقات والخدمات التي ترصد
نظام إدارة الطلبات) من خلال استدعاء الأسلوب onStateChanged()
باستخدام معرّف حالة جديد يقدّمه
نظام إدارة الطلبات.
تتوسّط التكلفة لكل ألف ظهور بين التطبيقات/الخدمات ونظام إدارة التكلفة لكل ألف ظهور. يتم استدعاء onStateChanged()
للتطبيقات/الخدمات بشكل متزامن في onStateChanged()
لوحدة تكلفة الإجراء. على معظم التطبيقات والخدمات إكمال
عملية الاستعداد قبل العودة من هذه المكالمة. يُسمح للخدمات المميّزة بمواصلة
الاستعدادات بشكل غير متزامن بعد إعادة المحاولة من أجل PRE_SHUTDOWN_PREPARE
،
SUSPEND_ENTER
، POST_SUSPEND_ENTER
. في هذه الحالة، من المفترض أن تُطلِق الخدمة المميّزة CompletablePowerStateChangeFuture
()complete على CompletablePowerStateChangeFuture
object المُقدَّمة
عند الانتهاء من الإعداد. يُرجى العلم أنّه لا يُسمح بالإعداد غير المتزامن لملف
SHUTDOWN_PREPARE
. قبل إرسال DEEP_SLEEP_ENTRY
إلى VHAL، يرسل CPMS
بشكل دوري طلبات تأجيل إيقاف التشغيل إلى VHAL.
عندما تُكمل جميع عناصر CPM عمليات الاستعداد للإيقاف، تُرسِل وحدة التحكّم في إدارة الطاقة (CPMS) AP_POWER_STATE_REPORT
إلى وحدة التحكّم في حدود الجلسة (VHAL)، والتي تُرسِل بدورها إشعارًا إلى وحدة التحكّم في وحدة المعالجة المركزية (VMCU) بأنّ وحدة التحكّم في حدود الجلسة (AP) جاهزة للإيقاف. تستدعي وحدة إدارة الطاقة أيضًا طريقة تعليقها، ما يؤدي إلى تعليق النواة.
في ما يلي تسلسل الخطوات الموضّح أعلاه:
الشكل 3: ادخل في مرحلة النوم العميق.
واجهات برمجة التطبيقات التي يوفّرها CPM
يصف هذا القسم واجهة برمجة التطبيقات Java API التي يوفّرها "المعالج المركزي للتطبيقات" لتطبيقات النظام وخدماته. تتيح واجهة برمجة التطبيقات هذه لبرنامج النظام تنفيذ ما يلي:
- مراقبة التغيُّرات في حالة الطاقة في نقطة الوصول
- تطبيق سياسات التشغيل
اتّبِع الخطوات التالية لاستدعاء واجهات برمجة التطبيقات التي يوفّرها "التكلفة لكل ألف ظهور":
- للحصول على مثيل تكلفة كل ألف ظهور، يمكنك الاتصال بواجهة برمجة التطبيقات Car API.
- استخدِم الطريقة المناسبة على الكائن الذي تم إنشاؤه في الخطوة 1.
إنشاء عنصر CarPowerManager
لإنشاء عنصر تكلفة لكل ألف ظهور، استخدِم طريقة getCarManager()
الخاصة بكائن Car. هذه الطريقة هي
واجهة تُستخدَم لإنشاء عناصر التكلفة لكل ألف ظهور. حدِّد android.car.Car.POWER_SERVICE
كأحد
المَعلمات لإنشاء عنصر تكلفة لكل ألف ظهور.
Car car = Car.createCar(this); CarPowerManager powerManager = (CarPowerManager) car.getCarManager(android.car.Car.POWER_SERVICE);
CarPowerStateListener والتسجيل
يمكن لتطبيقات النظام وخدماته تلقّي إشعارات بتغيير حالة الطاقة من خلال تنفيذ
CarPowerManager.CarPowerStateListener
. تحدِّد هذه الواجهة طريقة واحدة
onStateChanged()
، وهي دالة ردّ اتصال يتم استدعاؤها عند تغيير حالة الطاقة في CPMS. يحدِّد المثال التالي فئة مجهولة جديدة تنفِّذ الواجهة:
private final CarPowerManager.CarPowerStateListener powerListener = new CarPowerManager.CarPowerStateListener () { @Override public void onStateChanged(int state) { Log.i(TAG, "onStateChanged() state = " + state); } };
لتوجيه عنصر المستمع هذا إلى مراقبة عملية انتقال حالة الطاقة، أنشئ سلسلة تنفيذ جديدة وسجِّل المستمع وسلسلة التنفيذ هذه في عنصر CPM:
executor = new ThreadPerTaskExecutor(); powerManager.setListener(powerListener, executor);
عند تغيير حالة الطاقة، يتم استدعاء الطريقة onStateChanged()
لعنصر المستمع
باستخدام قيمة تمثّل حالة الطاقة الجديدة. يتم تحديد الربط بين القيمة الفعلية وحالة
الطاقة في CarPowerManager
ويتم عرضه في الجدول التالي:
الاسم | الوصف |
---|---|
STATE_ON | أدخِل حالة التشغيل. النظام يعمل بكامل طاقته. |
STATE_SHUTDOWN_CANCELLED | يتم إلغاء عملية الإيقاف ويتم إرجاع حالة الطاقة إلى حالتها العادية. |
STATE_SHUTDOWN_ENTER | من المتوقّع أن تنهي التطبيقات عملياتها وتصبح جاهزة للإغلاق. |
STATE_POST_SHUTDOWN_ENTER | اكتملت الاستعدادات لإيقاف التشغيل وأصبح VMCU جاهزًا للإيقاف. أدخِل حالة الإيقاف. |
STATE_PRE_SHUTDOWN_PREPARE | تم طلب عملية الإيقاف ولكنّ نظام إدارة الموافقة لم يبدأ العملية بعد. الشاشة والصوت ما زالا مفعَّلَين |
STATE_SHUTDOWN_PREPARE | قد يتم تفعيل وضع "المرآب" خلال هذه الفترة. |
STATE_SUSPEND_ENTER | من المتوقّع أن تُجري التطبيقات عمليات تنظيف وأن تكون جاهزة للتعليق في ذاكرة الوصول العشوائي. |
STATE_POST_SUSPEND_ENTER | اكتملت الاستعدادات لوضع "تعليق مؤقت في ذاكرة الوصول العشوائي" وأصبح وحدة التحكّم في الفيديو جاهزة لاستخدام هذا الوضع. أدخِل حالة الصعوبة. |
STATE_SUSPEND_EXIT | تنشيط الجهاز من وضع التعليق أو استئناف العمل بعد إلغاء التعليق |
STATE_HIBERNATION_ENTER | من المتوقّع أن تُجري التطبيقات عملية تنظيف لتصبح جاهزة للدخول في وضع السكون. |
STATE_POST_HIBERNATION_ENTER | اكتملت الاستعدادات للدخول في وضع السكون وأصبح VMCU جاهزًا للدخول في وضع السكون. يُرجى الانتقال إلى حالة السكون. |
STATE_HIBERNATION_EXIT | الاستيقاظ من وضع السكون أو استئناف العمل بعد إلغاء وضع السكون |
STATE_WAIT_FOR_VHAL | يتم تشغيل النظام، ولكنّه في انتظار بدء الاتصال بوحدة التحكّم في مستوى الصوت (VHAL) قبل الانتقال إلى حالة "مشغّل". |
إلغاء تسجيل CarPowerStateListener
لإلغاء تسجيل جميع عناصر المستمعين المسجّلة في وحدة التحكّم في الطاقة، يمكنك استدعاء clearListener
الطريقة:
powerManager.clearListener();
دمج النظام في عملية تنفيذ Android
يتحمّل مورّدو الحلول المتكاملة المسؤولية عن العناصر التالية:
- تنفيذ واجهة kernel لتعليق Android
- تنفيذ دوال VHAL لإجراء ما يلي:
- نقل بدء تعليق أو إيقاف السيارة إلى Android
- أرسِل رسالة "الجهاز على وشك الإيقاف" من جهاز Android إلى السيارة.
- يمكنك بدء إيقاف Android أو تعليقه من خلال واجهة Linux kernel.
- تأكَّد من إيقاف جميع مصادر الاستيقاظ عندما يكون الجهاز في وضع التعليق.
- تأكَّد من أنّ التطبيقات يتم إغلاقها بسرعة كافية حتى لا يتم تأجيل عملية الإغلاق إلى أجل غير مسمى.
- تأكَّد من أنّ BSP يشغِّل (أو يوقف) مكونات الجهاز وفقًا لسياسة الطاقة لتجنُّب حظر وضع الإيقاف المؤقت أو وضع السكون.
واجهة النواة: /sys/power/state
يضع نظام التشغيل AAOS الجهاز في وضع التعليق عندما يكتب تطبيق أو خدمة mem
لتعليقه في ذاكرة الوصول العشوائي (RAM) أو disk
لتعليقه في القرص في ملف يقع في /sys/power/state
. على الجهة المدمجة توفير وظيفة تتتبّع هذا الملف و
تضع نظام التشغيل Linux في حالة تعليق الطاقة. قد تُرسِل هذه الوظيفة إشارة GPIO إلى وحدة التحكّم في الفيديو لإعلامها بأنّه تم إيقاف الجهاز بالكامل. يتحمّل المُدمِج أيضًا مسؤولية إزالة أي
شروط تنافس بين إرسال VHAL للرسالة النهائية إلى VMCU ودخول النظام في
وضع الإيقاف المؤقت أو الإيقاف.
مسؤولية "المحتوى الذي يعرض مشاهد عنف خطير"
يقدّم VHAL واجهة بين شبكة المركبة ونظام Android. VHAL:
- ينقل بدء تعليق أو إيقاف السيارة إلى Android.
- إرسال رسالة "الجهاز جاهز للإغلاق" من Android إلى السيارة
- يبدأ إيقاف Android أو تعليقه من خلال واجهة Linux kernel.
عندما يُعلم نظام CPMS وحدة التحكّم في حدود الجلسة (VHAL) بأنّه جاهز للإيقاف، تُرسِل وحدة التحكّم في حدود الجلسة (VHAL) رسالة جاهز للإيقاف إلى وحدة التحكّم في حدود الجلسة (VMCU). عادةً ما تنقل المكونات الطرفية على الشريحة، مثل UART وSPI وUSB، الرسالة. بعد إرسال الرسالة، يطلب CPMS من نواة النظام تعليق الجهاز أو إيقافه. قبل إجراء ذلك، قد يبدِّل VHAL أو BSP واجهة GPIO لتوجيه VMCU إلى أنّه من الآمن إزالة الطاقة من الجهاز.
يجب أن يتيح VHAL السمات التالية التي تتحكّم في إدارة الطاقة من خلال VHAL:
الاسم | الوصف |
---|---|
AP_POWER_STATE_REPORT | يُبلغ Android عن انتقالات الحالة إلى وحدة التحكّم في الشبكة الفرعية للمركبة باستخدام هذه السمة، وذلك باستخدام قيم العنصر المدرَج VehicleApPowerStateReport. |
AP_POWER_STATE_REQ | يستخدم وحدة التحكّم في السيارة هذه السمة لتوجيه Android إلى الانتقال إلى حالات مختلفة للطاقة، باستخدام قيم التعداد VehicleApPowerStateReq. |
AP_POWER_STATE_REPORT
استخدِم هذه السمة للإبلاغ عن حالة إدارة الطاقة الحالية في Android. تحتوي هذه السمة على عددين صحيحَين:
int32Values[0]
: فهرس VehicleApPowerStateReport للحالة الحالية-
int32Values[1]
: الوقت بالكيلوميلّي ثانية لتأجيل أو إيقاف أو إغلاق الجهاز يعتمد معنى هذه القيمة على القيمة الأولى.
يمكن أن تتّخذ القيمة الأولى إحدى القيم التالية. VehicleApPowerStateReport.aidl
تحتوي على أوصاف أكثر تحديدًا، ويتم تخزينها في
hardware/interfaces/automotive/vehicle/aidl/android/hardware/automotive/vehicle
.
اسم القيمة | الوصف | القيمة الثانية |
---|---|---|
WAIT_FOR_VHAL | يتم بدء AP ويحتاج إلى إنشاء اتصال بوحدة التحكّم في حدود الجلسة. | |
DEEP_SLEEP_ENTRY | يدخل AP في حالة النوم العميق. من المفترض أن يعيد وحدة التحكّم في حدود الجلسة تشغيل نقطة الوصول بعد الوقت المحدّد في القيمة الثانية. | يجب ضبطها |
DEEP_SLEEP_EXIT | يخرج نقطة الوصول من حالة النوم العميق. | |
HIBERNATION_ENTRY | يدخل نقطة الوصول في حالة الإسبات. من المفترض أن يعيد وحدة التحكّم في حدود الجلسة تشغيل نقطة الوصول بعد الوقت المحدّد في القيمة الثانية. | يجب ضبطها |
HIBERNATION_EXIT | يخرج نقطة الوصول من حالة السبات. | |
SHUTDOWN_POSTPONE | نظام Android غير جاهز لإيقاف التشغيل. يجب أن ينتظر وحدة التحكّم في حدود الجلسة الوقت المحدّد في القيمة الثانية قبل إيقاف نقطة الوصول. قد يطلب Android تأجيلًا إضافيًا من خلال إصدار تقارير إضافية بشأن SHUTDOWN_POSTPONE. | يجب ضبطها |
SHUTDOWN_PREPARE | جارٍ الاستعداد لإيقاف تشغيل جهاز Android. | يجب ضبطها |
SHUTDOWN_START | نقطة الوصول جاهزة للإيقاف. من المفترض أن يعيد وحدة التحكّم في حدود الجلسة تشغيل نقطة الوصول بعد الوقت المحدّد في القيمة الثانية. (لا يُشترط أن تكون وحدة التحكّم في الفيديو (VMCU) متوافقة مع ميزة التشغيل المبرمَج). | يجب ضبطها |
SHUTDOWN_CANCELLED | سيتوقف Android عن الاستعداد لإيقاف التشغيل وسينتقل إلى WAIT_FOR_VHAL. | |
تفعيل | يعمل نظام التشغيل Android بشكلٍ طبيعي. |
يمكن ضبط الحالة بشكل مستقل أو استجابةً لطلب عبر وحدة التحكّم في الفيديو.
AP_POWER_STATE_REQ
يرسل وحدة التحكّم في الجهد الكهربي (VMCU) هذا السمة لنقل Android إلى حالة مختلفة من الطاقة، ويحتوي على عددين صحيحَين:
int32Values[0]
: قيمة التعدادVehicleApPowerStateReq
، التي تمثّل الحالة الجديدة التي سيتم الانتقال إليها.-
int32Values[1]
: قيمة التعدادVehicleApPowerStateShutdownParam
لا يتم إرسال هذه القيمة إلا لرسالةSHUTDOWN_PREPARE
، ويتم نقل الخيارات التي تحتوي عليها إلى Android.
تمثّل القيمة الصحيحة الأولى الحالة الجديدة التي سينتقل إليها Android. يتم تعريف الدلالة
في VehicleApPowerStateReq.aidl
وتقديمها أدناه:
اسم القيمة | الوصف |
---|---|
تفعيل | من المفترض أن يبدأ نقطة الوصول العمل بشكل كامل. |
SHUTDOWN_PREPARE | من المفترض أن تبدأ نقطة الوصول في الاستعداد لإيقاف التشغيل. تشير القيمة الثانية إلى ما إذا كان يُسمح لنقطة الوصول بتأجيل الإيقاف وما إذا كان من المفترض أن يتم إيقاف نقطة الوصول أو الدخول في وضع السكون العميق. |
CANCEL_SHUTDOWN | من المفترض أن يتوقف نقطة الوصول عن الاستعداد لإيقاف التشغيل والاستعداد للتشغيل. |
انتهى الإعداد | سيتم الآن إيقاف نقطة الوصول أو تعليقها. |
تم تحديد VehicleApPowerStateShutdownParam
في
VehicleApPowerStateShutdownParam.aidl
. يحتوي هذا التعداد على العناصر التالية:
اسم القيمة | الوصف |
---|---|
CAN_SLEEP | يمكن أن يدخل نقطة الوصول في وضع النوم العميق بدلاً من إيقافها تمامًا. يُسمح بتأجيل الدفع. |
CAN_HIBERNATE | يمكن أن يدخل نقطة الوصول في وضع السكون بدلاً من إيقافها تمامًا. يُسمح بتأجيل الدفع. |
SHUTDOWN_ONLY | من المفترض أن يتم إيقاف نقطة الوصول. يُسمح بتأجيل الدفع. لا يُسمح باستخدام وضع "النوم العميق". |
SLEEP_IMMEDIATELY | قد يدخل AP في وضع النوم العميق، ولكن يجب أن يدخل في وضع السكون أو يتم إيقافه على الفور. ولا يُسمح بتقديم الموعد. |
HIBERNATE_IMMEDIATELY | يمكن أن يدخل نقطة الوصول في وضع "تعليق التشغيل إلى القرص"، ولكن يجب أن تنتقل إلى وضع السكون أو يتم إيقافها على الفور. ولا يُسمح بتقديم الموعد. |
SHUTDOWN_IMMEDIATELY | يجب إيقاف نقطة الوصول على الفور. لا يُسمح بتأجيل الدفع. لا يُسمح باستخدام وضع "النوم العميق". |
مصادر التنشيط
على جهة الدمج إيقاف مصادر التنشيط المناسبة عندما يكون الجهاز في وضع التعليق. تشمل مصادر الاستيقاظ الشائعة نبضات القلب ومودم Wi-Fi والبلوتوث. يجب أن يكون مصدر التفعيل الصالح الوحيد هو إشارة انقطاع من وحدة التحكّم في الوسائط (VMCU) لتفعيل شريحة المعالجة المركزية (SoC). ويفترض ذلك أنّ وحدة التحكّم في الوسائط (VMCU) يمكنها الاستماع إلى المودم لأحداث التفعيل عن بُعد (مثل بدء تشغيل المحرّك عن بُعد). في حال تمّ نقل هذه الوظيفة إلى نقطة الوصول، يجب إضافة مصدر آخر لإيقاظ المودم.
التطبيقات
على المصنّعين الأصليّين للأجهزة كتابة التطبيقات بحيث يمكن إغلاقها بسرعة وعدم تأجيل العملية إلى أجل غير مسمى.
الملحق
الأدلة في شجرة رمز المصدر
Content | الدليل |
---|---|
الرمز البرمجي المرتبط بـ CarPowerManager | packages/services/Car/car-lib/src/android/car/hardware/power |
CarPowerManagementService وما إلى ذلك | packages/services/Car/service/src/com/android/car/power |
الخدمات التي تتعامل مع واجهة برمجة التطبيقات لعرض الإعلانات على الفيديو، مثل VehicleHal وHAlClient |
packages/services/Car/service/src/com/android/car/hal |
واجهة VHAL وتعريفات السمات | hardware/interfaces/automotive/vehicle/aidl/android/hardware/automotive/vehicle/ |
نموذج تطبيق لتوفير بعض الأفكار حول CarPowerManager |
packages/services/Car/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink |
مخطّط الفئة
يعرض مخطّط الفئات هذا فئات Java وواجهاتها في نظام إدارة الطاقة:
الشكل 4: مخطّط بياني لفئة الطاقة
علاقة العناصر
يوضّح الشكل 5 الكائنات التي تحتوي على إشارات إلى كائنات أخرى. تعني الحافة أنّ العنصر المصدر يحتوي على مرجع إلى العنصر المستهدَف. على سبيل المثال، يحتوي VehicleHAL على إشارة إلى عنصر PropertyHalService.
الشكل 5: مخطّط مرجعي للكائنات