للتأكد من مكونات الأجهزة والبرمجيات (مثل العرض، والصوت، والتفاعل الصوتي) يتم تشغيل بشكل انتقائي على نحو متقطع حسب الحاجة، ويوفر AAOS سياسة الطاقة، والتي تتكون من مجموعة من قوة المتوقع داخل وخارج الدول لمكونات الأجهزة والبرمجيات . يمكن لـ VHAL ، أو خدمات البائع المتميزة للنظام ، تطبيق سياسة طاقة جديدة عند استيفاء انتقالات حالة طاقة Android أو عند استيفاء الشروط التي ينتظرونها.
يُسمح بتطبيق سياسة الطاقة في حالات Wait for VHAL و On. في Shutdown Prepare (إعداد إيقاف التشغيل) ، يكون وضع المرآب قيد التشغيل ويجب عدم إزعاجه بسبب تغيير حالة الطاقة. على الرغم من سياسة القوة العادية لا يمكن تطبيقها، يتم تطبيق سياسة القوة الخاصة، التي هي سياسة طاقة النظام المسمى "دون تفاعل المستخدم"، في إيقاف تحضير.
حالة طاقة AAOS
تتبع أجهزة AAOS مخطط حالة الطاقة هذا:
الشكل 1. AAOS مخطط حالة الطاقة
يتم وصف كل حالة طاقة أدناه:
قيمة | وصف |
---|---|
اطفء | لا يتم توفير طاقة ماديًا لمعالج التطبيق (AP) والذاكرة والأجهزة الطرفية. |
انتظر VHAL |
|
تشغيل |
|
اغلاق التحضير |
|
انتظر حتى ينتهي VHAL |
|
تعليق إلى ذاكرة الوصول العشوائي (STR) | تم إيقاف تشغيل السيارة و AP ، ولا يتم تنفيذ أي رمز ، ويتم الحفاظ على الطاقة في ذاكرة الوصول العشوائي AP. |
هيكلة البرمجيات
يتم توضيح بنية سياسة الطاقة أدناه وتعريفها في القسم التالي:
العمارة السياسة الشكل 2. الطاقة
كيف يتم تعريف سياسة القوة؟
المستفيدون تحديد سياسات السلطة في /vendor/etc/automotive/power_policy.xml
، منها:
- يحدد سياسة القوة.
- يحدد مجموعات سياسة الطاقة ، والتي تتضمن سياسة الطاقة الافتراضية ويتم تطبيقها تلقائيًا عند حدوث انتقالات في حالة الطاقة.
- تجاوز سياسة طاقة النظام.
سياسة القوة
نهج الطاقة هو مجموعة من حالات الطاقة المتوقعة لمكونات الأجهزة والبرامج. تدعم AAOS المكونات التالية في سياسة الطاقة:
-
AUDIO
-
MEDIA
-
DISPLAY_MAIN
-
DISPLAY_CLUSTER
-
DISPLAY_FRONT_PASSENGER
-
DISPLAY_REAR_PASSENGER
-
BLUETOOTH
-
WIFI
-
CELLULAR
-
ETHERNET
-
PROJECTION
-
NFC
-
INPUT
-
VOICE_INTERACTION
-
VISUAL_INTERACTION
-
TRUSTED_DEVICE_DETECTION
-
LOCATION
-
MICROPHONE
-
CPU
مجموعة سياسة الطاقة
يتم تطبيق سياسة الطاقة الافتراضية تلقائيًا عند تحديد انتقال حالة الطاقة في مجموعة سياسة الطاقة. يمكن للبائعين تحديد سياسة الطاقة الافتراضية لـ Wait For VHAL و On و Wait for VHAL Finish (Deep Sleep Entry أو Shutdown Start).
سياسة طاقة النظام
يدعم AAOS سياسة طاقة نظام واحدة فقط ، وهي "عدم تفاعل المستخدم". يتم تطبيق سياسة طاقة النظام عندما ينتقل الجهاز إلى الوضع الصامت أو وضع المرآب.
يتم سرد سلوك كل مكون في نهج طاقة النظام في الجدول أدناه. يمكن للمنفذين تجاوز اكتشاف Bluetooth و NFC والجهاز الموثوق به في سياسة طاقة النظام. وتطبق تجاوزات في /vendor/etc/power_policy.xml
.
عناصر | دولة السلطة | شكلي |
---|---|---|
صوتي | اطفء | لا |
وسائط | اطفء | لا |
العرض الرئيسي | اطفء | لا |
عرض المجموعة | اطفء | لا |
عرض الراكب الأمامي | اطفء | لا |
عرض الراكب الخلفي | اطفء | لا |
بلوتوث | اطفء | نعم |
واي فاي | تشغيل | لا |
خلوي | تشغيل | لا |
إيثرنت | تشغيل | لا |
تنبؤ | اطفء | لا |
NFC | اطفء | نعم |
مدخل | اطفء | لا |
التفاعل الصوتي | اطفء | لا |
التفاعل البصري | اطفء | لا |
اكتشاف جهاز موثوق به | تشغيل | نعم |
موقع | اطفء | لا |
ميكروفون | اطفء | لا |
وحدة المعالجة المركزية | تشغيل | لا |
التفاعل مع VHAL
يشترك البرنامج الخفي لسياسة طاقة السيارة الذي يعمل في طبقة النظام في خاصيتين للاستماع إلى الطلبات من VHAL:
-
POWER_POLICY_REQ
، وVHAL يكتب ID سياسة السلطة لهذه الخاصية. -
POWER_POLICY_GROUP_REQ
، وVHAL يكتب ID مجموعة سياسة السلطة لهذه الخاصية.
يمكن تغيير سياسة الطاقة الحالية في النظام بواسطة وحدات نمطية أخرى غير VHAL. في هذه الحالة، والخفي سياسة الطاقة سيارة بتحديث CURRENT_POWER_POLICY
الملكية لإعلام التغيير إلى VHAL.
التفاعل مع العمليات الأصلية
كما هو مذكور أعلاه ، يعمل البرنامج الخفي لسياسة قوة السيارة في طبقة النظام ، وفيما يتعلق بإدارة سياسة الطاقة ، يوفر تقريبًا نفس وظائف CPMS التي تعمل في طبقة إطار العمل. افترض أيضًا أن البرنامج الخفي لسياسة قوة السيارة و CPMS متزامنان بالكامل.
يقوم البرنامج الخفي لسياسة طاقة السيارة بتصدير واجهات AIDL للاستخدام بواسطة HALs والعمليات الأصلية الأخرى. يمكن إعلامهم عند تغيير سياسة القوة الجديدة. بمعنى آخر ، عندما يجب على كل منهما تغيير حالة قوتها.
ICarPowerPolicyServer.aidl
package android.frameworks.automotive.powerpolicy; import android.frameworks.automotive.powerpolicy.CarPowerPolicy; import android.frameworks.automotive.powerpolicy.CarPowerPolicyFilter; import android.frameworks.automotive.powerpolicy.ICarPowerPolicyChangeCallback; import android.frameworks.automotive.powerpolicy.PowerComponent; /** * ICarPowerPolicyServer is an interface implemented by the power policy daemon. * VHAL changes the power policy and the power policy daemon notifies the change to registered * subscribers. When subscribing to policy changes, a filter can be specified so that the registered * callbacks can listen only to a specific power component's change. */ @VintfStability interface ICarPowerPolicyServer { /** * Gets the current power policy. */ CarPowerPolicy getCurrentPowerPolicy(); /** * Gets whether the power component is turned on or off. * * @param componentId Power component ID defined in PowerComponent.aidl to check power state. * @return True if the component's power state is on. */ boolean getPowerComponentState(in PowerComponent componentId); /** * Subscribes to power policy change. * Notification is sent to the registered callback when the power policy changes and the power * state of the components which the callback is interested in changes. * * @param callback Callback that is invoked when the power policy changes. * @param filter The list of components which the callback is interested in. */ void registerPowerPolicyChangeCallback(in ICarPowerPolicyChangeCallback callback, in CarPowerPolicyFilter filter); /** * Unsubscribes from power policy change. * * @param callback Callback that doesn't want to receive power policy change. */ void unregisterPowerPolicyChangeCallback(in ICarPowerPolicyChangeCallback callback); }
ICarPowerPolicyChangeCallback.aidl
package android.frameworks.automotive.powerpolicy; import android.frameworks.automotive.powerpolicy.CarPowerPolicy; /** * ICarPowerPolicyChangeCallback is notified when a power policy changes. */ @VintfStability oneway interface ICarPowerPolicyChangeCallback { /** * Called when a power policy is fully changed. * * @param policy The current policy. */ void onPolicyChanged(in CarPowerPolicy policy); }
التفاعل مع وحدات جافا النمطية
CarPowerManager
توفر أساليب لتمكين إدارة سياسة الطاقة:
- احصل على سياسة القوة الحالية.
- احصل على مجموعة سياسة الطاقة الحالية
- تطبيق سياسة جديدة للسلطة
- قم بتعيين مجموعة سياسة طاقة جديدة
يمكن فقط للوحدات النمطية ذات امتيازات النظام استخدام الأساليب. الوحدات التي تريد أن تكون على علم عند تطبيق سياسة الطاقة، يمكن تسجيل تغير المستمع سياسة السلطة ل CarPowerManager
.