يتضمّن Android 13 طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) android.hardware.health، وهي تحويل من طبقة تجريد الأجهزة (HAL) health@2.1. تتوفّر المزايا التالية في طبقة تجريد الأجهزة (HAL) الجديدة:
- إزالة واجهات برمجة التطبيقات غير المستخدَمة المتعلّقة بالشاحن
- إزالة
StorageAttributeغير المستخدَمة والحقول ذات الصلة - إتاحة الشحن باستخدام قاعدة الشحن
يتضمّن Android 11 طبقة تجريد الأجهزة (HAL) 2.1 android.hardware.health، وهي ترقية رقم إصدار ثانوي من طبقة تجريد الأجهزة (HAL) health@2.0. تتوفّر المزايا التالية في طبقة تجريد الأجهزة (HAL) الجديدة:
- فصل أكثر وضوحًا بين رمز الإطار ورمز مورّد الجهاز
- مستويات أكبر من الحرية لتخصيص المورّد في تقارير المعلومات الصحية
- معلومات أكثر عن سلامة الجهاز، وليس البطارية فقط
تتوفّر مستندات تنفيذ طبقة تجريد الأجهزة (HAL) 2.1 Health على هذه الصفحة كمرجع.
المتطلبات
يحتوي هذا القسم على متطلبات Android 11 و12 و13 أو الإصدارات الأحدث.
الأجهزة التي تعمل بنظام التشغيل Android 11 وAndroid 12
يجب أن توفّر الأجهزة التي يتم طرحها مع Android 11 و12 طبقة تجريد الأجهزة (HAL) 2.1 أو طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL). يجب أن تزيل الأجهزة التي لا يتم طرحها مع Android 11 أو 12 ولكنها تخطط لتحديث صورة المورّد إلى الإصدار 5 من مصفوفة توافق الإطار المستهدف (الذي تم إصداره في Android 11) أو الإصدار 6 (الذي تم إصداره في Android 12) عمليات تنفيذ طبقة تجريد الأجهزة (HAL) 2.0 الحالية وتوفّر طبقة تجريد الأجهزة (HAL) 2.1 أو طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL). يُنصح أيضًا الأجهزة التي لا يتم طرحها مع Android 11 ولا تخطط لتحديث صورة المورّد بتوفير طبقة تجريد الأجهزة (HAL) 2.1 أو طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL).
يتضمّن مشروع Android مفتوح المصدر (AOSP) عدة مكتبات مساعدة مصمّمة لمساعدتك في تنفيذ طبقة تجريد الأجهزة (HAL) 2.1 والانتقال من طبقات تجريد الأجهزة (HAL) القديمة المستندة إلى لغة وصف واجهة HIDL.
الأجهزة التي تعمل بنظام التشغيل Android 13 والإصدارات الأحدث
يجب أن توفّر الأجهزة التي يتم طرحها مع Android 13 طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) (ويجب ألا توفّر طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة HIDL). يجب أن تزيل الأجهزة التي لا يتم طرحها مع Android 13 ولكنها تخطط لتحديث صورة المورّد إلى الإصدار 7 من مصفوفة توافق الإطار المستهدف (الذي تم إصداره في Android 13) عمليات تنفيذ طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة HIDL الحالية وتوفّر طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL). يُنصح أيضًا الأجهزة التي لا يتم طرحها مع Android 13 ولا تخطط لتحديث صورة المورّد بتوفير طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL).
يتضمّن مشروع Android مفتوح المصدر (AOSP) عدة مكتبات مساعدة مصمّمة لمساعدتك في تنفيذ طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) والانتقال من طبقات تجريد الأجهزة (HAL) القديمة المستندة إلى لغة وصف واجهة HIDL.
المصطلحات
في ما يلي المصطلحات التي يجب معرفتها قبل قراءة بقية مستندات سلامة نظام Android:
- health@2.1
- اختصار لـ
android.hardware.health@2.1تم إصدار الإصدار 1 من طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة HIDL في Android 11. اختصار لـ `android.hardware.health@2.1` تم إصدار الإصدار 1 من طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة HIDL في Android 11. - طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الخاصة بالسلامة
- اختصار لـ
android.hardware.healthتم إصدار الإصدار 1 من طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الخاصة بالسلامة في Android 13. اختصار لـ `android.hardware.health` تم إصدار الإصدار 1 من طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الخاصة بالسلامة في Android 13. - الشاحن
- ملف تنفيذي يتم تشغيله في وضع الشحن في حالة إيقاف التشغيل ويعرض الرسوم المتحركة لشحن الهاتف
- الاسترداد
- ملف تنفيذي يتم تشغيله في وضع الاسترداد ويجب أن يسترد معلومات البطارية
- storaged
- برنامج خفي يسترد معلومات التخزين ويزوّد الإطار بها
السلامة في Android 11 و12
في Android 11 و12، يعمل مكوّن السلامة كما هو موضّح بالتفصيل في المخطط التالي:
[system]
| getService()
V
[health@2.1-service]
| getService(stub=true)
V
[ health@2.0-impl-2.1-<device>.so ]
| | (device-dependent linkage)
V V
+---------Helper libs for impl--------+ [libhealthd.device]
| [libhealthloop (uevent, wakealarm)] |
| [libhealth2impl (IHealth impl) ] |
| [libbatterymonitor (battery) ] |
+-------------------------------------+
بالنسبة إلى الأوضاع الأخرى:
[ charger ]
| getService() | (legacy code path)
V +-------------------------------------------------+
[health@2.1-service] |
| getService(stub=true) |
V |
[ health@2.0-impl-2.1-<device>.so ] |
| | (device-dependent linkage) |
V V |
+---------Helper libs for impl--------+ [libhealthd.device] |
| [libhealthloop (uevent, wakealarm)] | |
| [libhealth2impl (IHealth impl) ] | <---------------------------------+
| [libbatterymonitor (battery) ] |
+-------------------------------------+
[recovery]
| getService() w/o hwservicemanager
V
[ health@2.0-impl-2.1-<device>.so ]
| | (device-dependent linkage)
V V
+---------Helper libs for impl--------+ [libhealthd.device]
| [libhealthloop (uevent, wakealarm)] |
| [libhealth2impl (IHealth impl) ] |
| [libbatterymonitor (battery) ] |
+-------------------------------------+
اطّلِع على المخطط المبسّط التالي للأوضاع المختلفة:
الشكل 1: البنية الأساسية لطبقة تجريد الأجهزة (HAL) 2.1 المستندة إلى لغة وصف واجهة HIDL الخاصة بالسلامة
السلامة في Android 13
في Android 13، تم تقديم طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الخاصة بالسلامة. يوضّح الشكل 2 بالتفصيل طريقة عمل مكوّن السلامة:
الشكل 2: البنية الأساسية لطبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الخاصة بالسلامة
واجهة طبقة تجريد الأجهزة (HAL) 2.1 المستندة إلى لغة وصف واجهة HIDL
تتيح طبقة تجريد الأجهزة (HAL) 2.1 health@2.1 الشحن في وضع إيقاف التشغيل وتوفّر المزيد من المعلومات عن البطارية.
توفر الواجهة الرئيسية، IHealth, الوظائف الإضافية التالية
getHealthConfig: لاسترداد إعدادات طبقة تجريد الأجهزة (HAL) هذهgetHealthInfo_2_1: ترقية رقم الإصدار الثانوي إلىgetHealthInfoshouldKeepScreenOn: لتحديد ما إذا كان يجب إبقاء الشاشة قيد التشغيل في وضع الشاحن
بالإضافة إلى ذلك، يجب تنفيذ @2.1::IHealth لدعم
@2.1::IHealthInfoCallback لوظيفتَي registerCallback و
unregisterCallback الموروثتَين. تعرض واجهة رد الاتصال الجديدة معلومات سلامة الجهاز إلى العميل باستخدام الدالة healthInfoChanged_2_1 بدلاً من الدالة healthInfoChanged الموروثة.
يتم عرض بنية جديدة، @2.1::HealthInfo، باستخدام معاودات الاتصال وgetHealthInfo_2_1. تحتوي هذه البنية على معلومات إضافية عن سلامة الجهاز متاحة من خلال طبقة تجريد الأجهزة (HAL) health@2.0، بما في ذلك:
- مستوى سعة البطارية
- وقت شحن البطارية بالكامل الآن (بالثواني)
- سعة تصميم الشحن الكامل للبطارية (بالميكرو أمبير في الساعة)
يوضّح الشكل 3 مخطط لغة النمذجة الموحّدة (UML) للفئات المفيدة لتنفيذ طبقة تجريد الأجهزة (HAL) الخاصة بالسلامة:
الشكل 3: مخطط لغة النمذجة الموحّدة (UML) لطبقة تجريد الأجهزة (HAL) 2.1 الخاصة بالسلامة
للحصول على معلومات عن تنفيذ خدمة السلامة 2.1، اطّلِع على تنفيذ خدمة السلامة 2.1.
الإصدار 1 من واجهة طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL)
يحتوي هذا القسم على معلومات عن الإصدار 1 من واجهة طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL).
التغييرات في واجهة برمجة التطبيقات
تتيح طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الإصدار 1 واجهات برمجة تطبيقات مشابهة لواجهات برمجة التطبيقات في طبقة تجريد الأجهزة (HAL) 2.1 المستندة إلى لغة وصف واجهة HIDL. مقارنةً بواجهة HIDL 2.1، تم تغيير ما يلي في واجهة برمجة التطبيقات:
- لم يتم نقل واجهات برمجة التطبيقات المتعلّقة بالشاحن التي تم تقديمها في طبقة تجريد الأجهزة (HAL) 2.1 المستندة إلى لغة وصف واجهة HIDL إلى طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL). بما أنّ وظيفة الشحن في وضع إيقاف التشغيل لا تتوفّر إلا على قسم
/vendor، ليست هناك حاجة إلى واجهات برمجة التطبيقات على واجهة المورّد. لتنفيذ الشحن في وضع إيقاف التشغيل بشكلٍ صحيح، اطّلِع على الشاحن. - تمت إزالة النوع
StorageAttributeوالحقول ذات الصلة لأنّها غير مستخدَمة. - تمت إضافة
chargerDockOnlineإلىHealthInfoلإتاحة الشحن باستخدام قاعدة الشحن.
التنفيذ
يوضّح الشكل 4 مخطط لغة النمذجة الموحّدة (UML) للفئات المفيدة لتنفيذ طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الخاصة بالسلامة:
الشكل 4: مخطط لغة النمذجة الموحّدة (UML) لطبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الخاصة بالسلامة
للحصول على معلومات عن تنفيذ خدمة السلامة المستندة إلى لغة وصف واجهة Android (AIDL)، اطّلِع على تنفيذ طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الخاصة بالسلامة.
الاسترداد
يتيح Android 13 استخدام أداة الربط في وضع الاسترداد. يسمح تثبيت خدمة السلامة المستندة إلى لغة وصف واجهة Android (AIDL) في وضع الاسترداد بتشغيلها في وضع الاسترداد.
للحصول على معلومات عن تثبيت خدمة السلامة المستندة إلى لغة وصف واجهة Android (AIDL) في وضع الاسترداد، اطّلِع على ما يلي:
- استخدام مثال خدمة طبقة تجريد الأجهزة (HAL) المستندة إلى لغة وصف واجهة Android (AIDL) الخاصة بالسلامة
- التغييرات في نظام التصميم
الشاحن
تم نقل وظيفة الشحن في وضع إيقاف التشغيل من /system إلى /vendor. بالنسبة إلى الأجهزة التي يتم طرحها مع Android 13، إذا كانت تتيح الشحن في وضع إيقاف التشغيل، يجب أن يتيح الملف الثنائي لخدمة طبقة تجريد الأجهزة (HAL) وضع الشاحن. لإجراء ذلك،
اطّلِع على
تنفيذ الشاحن.
خصائص نظام الشاحن
لم يعُد بإمكان الملف الثنائي charger في
/vendor قراءة الخصائص ro.charger.*. إذا كان جهازك يتضمّن أيًا من خصائص النظام ro.charger.*،
اطّلِع على
خصائص نظام الشاحن.