تتيح أجهزة الاستشعار المتعددة HAL إطار عمل يتيح للمستشعرات تشغيل مستويات HALs جنبًا إلى جنب مع وغيرها من طبقات HALs للمستشعر. تحمّل أجهزة الاستشعار المتعددة HAL بشكل ديناميكي مستويات أدنى من البث المباشر للاستشعار المخزنة كمكتبات ديناميكية في قسم المورد وتطلب معاودة الاتصال يمكنه التعامل مع نشر الأحداث والحصول على قفل التنشيط وتحريره. واجهة HAL الفرعية لأجهزة الاستشعار هي واجهة HAL لأجهزة الاستشعار تم إنشاؤها في عنصر مشترَك على ملف "قسم المورّد" ويستخدمها إطار عمل HAL المتعدّد. لا تعتمد وحدات HAL الفرعية هذه على بعضها البعض أو على رمز HAL المتعدّد الذي يحتوي على الدالة الرئيسية للعملية.
Sensors Multi-HAL 2.1، المتوفّر على الأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android أو الإصدارات الأحدث، هو إصدار معدَّل من Sensors Multi-HAL 2.0 يتيح تحميل واجهات HAL الفرعية التي يمكنها عرض نوع مستشعر زاوية المفصلة. لتتوافق مع هذا النوع من أجهزة الاستشعار، يجب أن تستخدم واجهات برمجة التطبيقات الفرعية لواجهة HAL واجهات برمجة التطبيقات الفرعية لواجهة HAL المحدّدة في عنوان SubHal 2.1.
بالنسبة إلى الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث والتي تستخدم واجهة HAL لأجهزة الاستشعار AIDL، يمكنك استخدام طبقة الحشو المتعدّدة واجهات HAL للسماح بإمكانية استخدام واجهات HAL المتعدّدة. للاطّلاع على تفاصيل التنفيذ الرؤية استخدام أجهزة استشعار متعدّدة (HAL) مع واجهة AIDL HAL الخاصة بأجهزة الاستشعار
الفرق بين أجهزة الاستشعار Multi-HAL 2 وأجهزة الاستشعار HAL 2
تتوفّر أجهزة الاستشعار Multi-HAL 2 على الأجهزة التي تعمل بنظام التشغيل Android
10 أو أعلى،
ويقدم عدة تجريدات أعلى الحساسات HAL
2 لتسهيل
للتفاعل مع واجهات برمجة تطبيقات HAL. يقدّم Sensors Multi-HAL 2 فئة
HalProxy
لمعالجة تنفيذ واجهة Sensors HAL 2 وواجهة
V2_1/SubHal
(أو
V2_0/SubHal
)
للسماح لـ HalProxy
بالتفاعل مع واجهات HAL الفرعية.
تختلف واجهة ISensorsSubHal
عن واجهة
2.1/ISensors.hal
(أو
2.0/ISensors.hal
)
بالطُرق التالية:
- تُمرِّر طريقة الإعداد فئة
IHalProxyCallback
بدلاً من فئتَي FMQ وISensorsCallback
. - يجب أن تنفذ "HALs" الفرعية دالة تصحيح أخطاء لتوفير تصحيح الأخطاء المعلومات في تقارير الأخطاء.
- يجب أن تُنفِّذ وحدات HAL الفرعية دالة اسم حتى يمكن تمييز وحدة HAL الفرعية المحمَّلة عن وحدات HAL الفرعية الأخرى.
يكمن الاختلاف الرئيسي بين Sensors Multi-HAL 2 وSensors HAL 2 في
وظائف الإعداد. بدلاً من توفير أجهزة FMQ، يمكن لـ IHalProxyCallback
توفير طريقتين، إحداهما لنشر أحداث المستشعر إلى أدوات الاستشعار
وطريقة واحدة لإنشاء عمليات قفل التنشيط. في الخلفية، يدير "HAL المتعدّد للأجهزة الحسّاسة"
جميع التفاعلات مع طلبات الجلسة القصيرة (FMQ) لضمان إرسال
أحداث الأجهزة الحسّاسة في الوقت المناسب لجميع HAL الفرعية. ننصحك بشدة بأن تستخدم واجهات HAL الفرعية createScopedWakelock
لتحديد مهلة قفل الاستيقاظ وتحميلها على واجهة HAL المتعددة لأجهزة الاستشعار، ومركزة استخدام قفل الاستيقاظ على قفل استيقاظ شائع واحد لواجهة HAL المتعددة لأجهزة الاستشعار بالكامل، ما يقلل من عدد طلبات القفل وفتح القفل.
يتضمّن Sensors Multi-HAL 2 أيضًا بعض ميزات الأمان المدمجة. ويعالج
المواقف التي يكون فيها "الملف المؤقت للطلبات في نظام التشغيل Android" الخاص بجهاز الاستشعار ممتلئًا أو عندما تتم إعادة تشغيل إطار عمل أجهزة الاستشعار في Android
وتحتاج إلى إعادة ضبط حالة جهاز الاستشعار. بالإضافة إلى ذلك، عندما يتم تسجيل الأحداث في فئة HalProxy
ولكن يتعذّر على إطار عمل أداة الاستشعار قبول الأحداث على الفور، يمكن أن تنقل حزمة Sensors Multi-HAL الأحداث إلى سلسلة مهام في الخلفية للسماح بمواصلة العمل على جميع حِزم HAL الفرعية أثناء انتظار نشر الأحداث.
تنفيذ رمز المصدر والمرجع
يتوفّر رمز All Sensors Multi-HAL في
hardware/interfaces/sensors/common/default/2.X/multihal/
.
في ما يلي إرشادات لبعض الموارد.
HalProxy.h
: يتم إنشاء مثيل للكائنHalProxy
من خلال حِزم HAL المتعددة الخاصة بأجهزة الاستشعار، ويتولى معالجة نقل البيانات من حِزم HAL الفرعية إلى إطار عمل أجهزة الاستشعار.HalProxy.cpp
: يحتوي تنفيذHalProxy
على كل المنطق المطلوب للقيام بعمليات معالجة متعدّدة للتواصل بين واجهات HAL الفرعية وإطار عمل أداة الاستشعار.SubHal.h
: تحدد الواجهةISensorsSubHal
الواجهة التي يجب أن تتوفر لها فئات HALs فرعية يجب متابعتها لتتوافق معHalProxy
. تنفذ HAL الفرعية حتى يمكن استخدام الكائنHalProxyCallback
postEvents
وcreateScopedWakelock
لعمليات تطبيق Multi-HAL 2.0، استخدم الإصدار 2.0 من
SubHal.h
hardware/interfaces/sensors/common/default/2.X/multihal/tests/
: تتحقّق اختبارات الوحدة هذه من صحة تنفيذHalProxy
.hardware/interfaces/sensors/common/default/2.X/multihal/tests/fake_subhal/
: يستخدم هذا المثال لعمليات التنفيذ الفرعية للمواد الكيميائية أدوات استشعار وهمية لإنشاء البيانات. مفيد لاختبار كيفية تفاعل عدة واجهات HAL فرعية على جهاز.
التنفيذ
يوضّح هذا القسم كيفية تنفيذ حِزم HAL المتعددة لأجهزة الاستشعار في الحالات التالية:
- استخدام حِزم HAL متعددة لأجهزة الاستشعار مع حِزم HAL لأجهزة الاستشعار المستندة إلى واجهة برمجة التطبيقات (AIDL)
- تنفيذ Sensors Multi-HAL 2.1
- نقل البيانات من Sensors Multi-HAL 2.0 إلى Multi-HAL 2.1
- نقل البيانات من Sensors HAL 2.0
- نقل البيانات من Sensors HAL 1.0
- نقل البيانات من أجهزة الاستشعار Multi-HAL 1.0
استخدام حزمة HAL متعددة لأجهزة الاستشعار مع حزمة HAL لأجهزة الاستشعار AIDL
للسماح بإمكانية استخدام واجهات HAL متعددة مع حزمة HAL لأجهزة الاستشعار من AIDL، استورِد وحدة طبقة الحشو لواجهة HAL متعددة من AIDL، والتي يمكن العثور عليها في hardware/interfaces/sensors/aidl/default/multihal/. تتعامل الوحدة مع عملية التحويل بين تعريف HAL لمستشعرَي AIDL وHIDL. ويحدد برنامج تضمين لواجهة HAL المتعددة الموضحة في تطبيق أجهزة الاستشعار Multi-HAL 2.1: معيار AIDL متعدد المستويات تتوافق طبقة شيم مع الأجهزة التي تطبق أدوات الاستشعار Multi-HAL 2.1.
تسمح لك طبقة الحشو لواجهة HAL المتعدّدة في AIDL بعرض أداة تتبُّع الرأس وأنواع أدوات استشعار IMU ذات المحاور المحدودة في واجهة HAL لأجهزة الاستشعار في AIDL. لاستخدام أجهزة الاستشعار هذه
محددة من خلال واجهة AIDL HAL، اضبط الحقل type
في
بنية SensorInfo
في تنفيذ getSensorsList_2_1()
. هذا آمن
لأنّ حقول نوع أداة الاستشعار المدعومة بعدد صحيح في كل من مستشعرَي AIDL وHIDL HAL
لا تتداخلان.
تنفيذ أجهزة الاستشعار Multi-HAL 2.1
لتنفيذ أجهزة الاستشعار Multi-HAL 2.1 على جهاز جديد، يُرجى اتّباع الخطوات التالية:
- تنفيذ واجهة
ISensorsSubHal
كما هو موضّح فيSubHal.h
- نفِّذ طريقة
sensorsHalGetSubHal_2_1
فيSubHal.h
. أضِف استهداف
cc_library_shared
لإنشاء "HAL" فرعي تم تنفيذه حديثًا. عند إضافة الاستهداف:- تأكَّد من دفع القيمة المستهدَفة إلى مكان ما في قسم المورّد على الجهاز.
- في ملف الإعدادات الذي يقع في
/vendor/etc/sensors/hals.conf
، أضِف المسار إلى المكتبة في سطر جديد. إذا لزم الأمر، أنشئ ملفhals.conf
.
للحصول على مثال على إدخال
Android.bp
لإنشاء مكتبة فرعية لـ HAL، يُرجى الاطّلاع علىhardware/interfaces/sensors/common/default/2.X/multihal/tests/Android.bp
.إزالة جميع الإدخالات البالغ عددها
android.hardware.sensors
منmanifest.xml
يحتوي على قائمة بـ HALs المتوافقة على الجهاز.أزِل جميع ملفات خدمة
android.hardware.sensors
وملفاتservice.rc
منملفdevice.mk
وأضِفandroid.hardware.sensors@2.1-service.multihal
وandroid.hardware.sensors@2.1-service.multihal.rc
إلىملفPRODUCT_PACKAGES
.
عند بدء التشغيل، يبدأ HalProxy
بالبحث عن وحدة HAL الفرعية التي تم تنفيذها حديثًا ويُثبِّتها من خلال استدعاء sensorsHalGetSubHal_2_1
.
المنفذ من أجهزة الاستشعار Multi-HAL 2.0 إلى Multi-HAL 2.1
للانتقال من Multi-HAL 2.0 إلى Multi-HAL 2.1، نفِّذ
SubHal
وإعادة تجميع طبقة HAL الفرعية.
في ما يلي الاختلافات بين واجهتي الإصدار 2.0 و2.1 SubHal
:
- يستخدم
IHalProxyCallback
الأنواع التي تم إنشاؤها في الإصدار 2.1 من مواصفاتISensors.hal
- تُرسِل الدالة
initialize()
قيمة جديدة لملفIHalProxyCallback
بدلاً من القيمة الواردة من واجهةSubHal
2.0. - يجب أن تُنفِّذ واجهات HAL الفرعية
getSensorsList_2_1
وinjectSensorData_2_1
بدلاً منgetSensorsList
وinjectSensorData
لأنّ هاتين الطريقتَين تستخدمان الأنواع الجديدة التي تمت إضافتها في الإصدار 2.1 من مواصفاتISensors.hal
. - يجب أن تعرض واجهات HAL الفرعية
sensorsHalGetSubHal_2_1
بدلاً منsensorsHalGetSubHal
لكي تتعامل Multi-HAL معها كواجهات HAL فرعية من الإصدار 2.1 .
منفذ من أجهزة الاستشعار HAL 2.0
عند الترقية إلى أجهزة الاستشعار Multi-HAL 2.0 من Sensors Multi-HAL 2.0 2.0، تأكد من HAL التنفيذ يلبي المتطلبات التالية.
بدء HAL
تتضمن أجهزة الاستشعار HAL 2.0 وظيفة تهيئة تتيح لخدمة الاستشعار
لتمرير FMQs واستدعاء جهاز الاستشعار الديناميكي. في حزمة Sensors Multi-HAL 2.0، تُرسِل الدالة
initialize()
طلب استدعاء واحدًا يجب استخدامه لنشر
أحداث أجهزة الاستشعار والحصول على عمليات قفل الاستيقاظ والإشعار بعمليات الربط والفصل الديناميكية لأجهزة الاستشعار.
نشر أحداث المستشعرات في عملية تنفيذ Multi-HAL
بدلاً من نشر أحداث أجهزة الاستشعار من خلال FMQ، يجب أن يكتب HAL الفرعي أحداث
أجهزة الاستشعار في
IHalProxyCallback
عندما تكون أحداث أجهزة الاستشعار متاحة.
أحداث WAKE_UP
في Sensors HAL 2.0، يمكن لواجهة HAL إدارة قفل الاستيقاظ لتنفيذه. ضِمن
أجهزة الاستشعار Multi-HAL 2.0، تتيح تطبيق HAL-HAL الفرعي ما يلي:
إدارة عمليات قفل التنشيط ويمكن أن تطلب الحصول على قفل التنشيط من خلال الاستدعاء
createScopedWakelock
يجب الحصول على قفل تنشيط مقيّد النطاق ونقله إلى postEvents
عند
نشر أحداث التنشيط إلى تنفيذ Multi-HAL.
أدوات الاستشعار الديناميكية
تتطلّب حزمة Sensors Multi-HAL 2.0 استدعاء onDynamicSensorsConnected
و
onDynamicSensorsDisconnected
في
IHalProxyCallback
عند تغيير اتصالات أداة الاستشعار الديناميكية. تتوفّر وظائف ردّ الاتصال هذه
كجزء من مؤشر IHalProxyCallback
الذي يتم توفيره من خلال
دالة initialize()
.
منفذ من Sensors HAL 1.0
عند الترقية إلى حزمة Sensors Multi-HAL 2.0 من حزمة Sensors HAL 1.0، تأكَّد من أنّ تنفيذ HAL يستوفي المتطلبات التالية.
تهيئة HAL
يجب أن تكون دالة initialize()
متوافقة لإنشاء دالة ردّ الاتصال بين
HAL الفرعي وتنفيذ Multi-HAL.
إتاحة أجهزة الاستشعار المتاحة
في أجهزة الاستشعار Multi-HAL 2.0، يجب أن تعرض الدالة getSensorsList()
القيمة نفسها
خلال عملية تشغيل جهاز واحد، حتى في عمليات إعادة تشغيل طبقة تجريد الأجهزة (HAL) في المستشعرات. هذا يسمح
إطار العمل لمحاولة إعادة إنشاء اتصالات جهاز الاستشعار إذا كان خادم النظام
تتم إعادة تشغيله. يمكن أن تتغيّر القيمة التي يعرضها getSensorsList()
بعد أن يُعيد الجهاز
تشغيله.
نشر أحداث أداة الاستشعار في التنفيذ المتعدد المستويات (HAL)
أمّا في أجهزة الاستشعار HAL 2.0، فبدلاً من الانتظار حتى يتم طلب poll()
،
كتابة أحداث أداة الاستشعار بشكل استباقي
IHalProxyCallback
متى توفرت أحداث المستشعر.
أحداث WAKE_UP
في Sensors HAL 1.0، يمكن لواجهة HAL إدارة قفل الاستيقاظ لتنفيذه. ضِمن
أجهزة استشعار Multi-HAL 2.0، وهي الأجهزة الفرعية HALs التي تسمح بتنفيذ مستويات HAL متعددة
إدارة عمليات قفل التنشيط ويمكن أن تطلب الحصول على قفل التنشيط من خلال الاستدعاء
createScopedWakelock
يجب الحصول على قفل تنشيط مُقفَل النطاق وتمريره إلى postEvents
عند ذلك.
نشر أحداث الاستيقاظ في تنفيذ بروتوكول HAL المتعدد.
أدوات الاستشعار الديناميكية
في أجهزة الاستشعار HAL 1.0، يتم عرض أدوات الاستشعار الديناميكية من خلال الدالة poll()
.
تتطلّب حزمة Sensors Multi-HAL 2.0 استدعاء onDynamicSensorsConnected
و
onDynamicSensorsDisconnected
في
IHalProxyCallback
عند تغيير اتصالات أداة الاستشعار الديناميكية. تتوفّر وظائف ردّ الاتصال هذه
كجزء من مؤشر IHalProxyCallback
الذي يتم توفيره من خلال
دالة initialize()
.
منفذ من Sensors Multi-HAL 1.0
لنقل عملية تنفيذ حالية من Sensors Multi-HAL 1.0, اتبع هذه الخطوات.
- تأكد من أن تهيئة HAL لأجهزة الاستشعار موجودة في
/vendor/etc/sensors/hals.conf
قد يتضمن ذلك نقل الملف في/system/etc/sensors/hals.conf
. - أزِل أي إشارات إلى
hardware/hardware.h
وhardware/sensors.h
لأنّ هذه العناصر غير متوافقة مع HAL 2.0. - منفذ HALs فرعيًا على النحو الموضَّح في نقل البيانات من أجهزة الاستشعار هال الإصدار 1.0
- اضبط أجهزة الاستشعار Multi-HAL 2.0 على أنها HAL (HAL) محددة باتّباع الخطوتَين 3 و 4 في القسم تنفيذ أجهزة الاستشعار Mutli-HAL 2.0.
التحقُّق
تشغيل أداة VTS
وعند دمج واحدة أو أكثر من أجهزة HALs الفرعية مع أجهزة الاستشعار Multi-Hal 2.1، استخدام حزمة اختبار المورّد (VTS) للتأكّد من أنّ الحزمة الفرعية تلبي عمليات التنفيذ جميع المتطلبات التي تحدّدها واجهة HAL لأدوات الاستشعار.
لتشغيل اختبارات VTS لأجهزة الاستشعار فقط عند إعداد VTS على جهاز مضيف، قم بتنفيذ الأوامر التالية:
vts-tradefed run commandAndExit vts \
--skip-all-system-status-check \
--primary-abi-only \
--skip-preconditions \
--module VtsHalSensorsV2_0Target && \
vts-tradefed run commandAndExit vts \
--skip-all-system-status-check \
--primary-abi-only \
--skip-preconditions \
--module VtsHalSensorsV2_1Target
إذا كنت تستخدم طبقة الحشو لـ Multi-HAL في AIDL، شغِّل VtsAidlHalSensorsTargetTest
.
vts-tradefed run commandAndExit vts \
--skip-all-system-status-check \
--primary-abi-only \
--skip-preconditions \
--module VtsAidlHalSensorsTargetTest
إجراء اختبارات الوحدة
تختبر الوحدة في اختبار HalProxy_test.cpp
HalProxy
باستخدام درجات حرارة فرعية زائفة مزيفة
يتم إنشاء مثيل لها في اختبار الوحدة ولا يتم تحميلها ديناميكيًا. عند إنشاء ملف HAL فرعي
جديد، يجب أن تكون هذه الاختبارات بمثابة دليل حول كيفية إضافة اختبارات وحدات تتحقق من تنفيذ ملف HAL الفرعي الجديد بشكل صحيح.
لتنفيذ الاختبارات، نفِّذ الأوامر التالية:
cd $ANDROID_BUILD_TOP/hardware/interfaces/sensors/common/default/2.X/multihal/tests
atest
إجراء الاختبارات باستخدام طبقات HAL الفرعية الزائفة
إن HALs الفرعية المزيفة هي عمليات تنفيذ وهمية لواجهة ISensorsSubHal
.
تكشف درجات الحرارة الفرعية (HALs) عن قوائم مختلفة من المستشعرات. عند تفعيل أجهزة الاستشعار،
تنشر هذه الأجهزة بشكل دوري أحداث أجهزة الاستشعار التي يتم إنشاؤها تلقائيًا على HalProxy
استنادًا إلى الفواصل الزمنية المحدّدة في طلب جهاز استشعار معيّن.
يمكن استخدام طبقات HALs الفرعية الزائفة لاختبار كيفية عمل رمز Multi-HAL الكامل مع هي نطاقات HALs الأخرى المحملة في النظام وللتركيز على الجوانب المختلفة رمز أجهزة استشعار Multi-HAL
يتوفّر اثنان من واجهات HAL الفرعية المزيفة على الرابط
hardware/interfaces/sensors/common/default/2.X/multihal/tests/fake_subhal/
.
لإنشاء واجهات HAL الفرعية المزيّفة ودفعها إلى جهاز، اتّبِع الخطوات التالية:
شغِّل الأوامر التالية لإنشاء ملفّات HAL الفرعية المزيّفة الثلاثة ودفعها إلى الجهاز:
$ANDROID_BUILD_TOP/hardware/interfaces/sensors/common/default/2.X/multihal/tests/
mma
adb push \ $ANDROID_BUILD_TOP/out/target/product/<device>/symbols/vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config1.so \ /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config1.so
adb push \ $ANDROID_BUILD_TOP/out/target/product/<device>/symbols/vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config2.so \ /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config2.so
adb push \ $ANDROID_BUILD_TOP/out/target/product/<device>/symbols/vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config3.so \ /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config3.so
تعديل إعدادات HAL لأداة الاستشعار في
/vendor/etc/sensors/hals.conf
باستخدام مسارات HALs الفرعية المزيفة./vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config1.so /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config2.so /vendor/lib64/android.hardware.sensors@2.X-fakesubhal-config3.so
أعِد تشغيل
HalProxy
وحمِّل حسابات HALs الفرعية الجديدة المدرَجة في الإعداد.adb shell stop
adb shell start
تصحيح الأخطاء
يمكن للمطوّرين تصحيح أخطاء إطار العمل باستخدام الأمر lshal
. لطلب ملف مخرجات debugging لواجهة HAL الخاصة بأجهزة الاستشعار، شغِّل الأمر التالي:
adb root
adb shell lshal debug android.hardware.sensors@2.1::ISensors/default
وعندئذٍ، يتم عرض معلومات عن حالة HalProxy
وحمّامات HAL الفرعية التابعة له.
إخراجه إلى الوحدة الطرفية. في ما يلي مثال على نتيجة الأمر المتعلّق بعنصر
HalProxy
وعناصر HAL الفرعية المزيّفة.
Internal values:
Threads are running: true
Wakelock timeout start time: 200 ms ago
Wakelock timeout reset time: 73208 ms ago
Wakelock ref count: 0
# of events on pending write queue: 0
# of non-dynamic sensors across all subhals: 8
# of dynamic sensors across all subhals: 0
SubHals (2):
Name: FakeSubHal-OnChange
Debug dump:
Available sensors:
Name: Ambient Temp Sensor
Min delay: 40000
Flags: 2
Name: Light Sensor
Min delay: 200000
Flags: 2
Name: Proximity Sensor
Min delay: 200000
Flags: 3
Name: Relative Humidity Sensor
Min delay: 40000
Flags: 2
Name: FakeSubHal-OnChange
Debug dump:
Available sensors:
Name: Ambient Temp Sensor
Min delay: 40000
Flags: 2
Name: Light Sensor
Min delay: 200000
Flags: 2
Name: Proximity Sensor
Min delay: 200000
Flags: 3
Name: Relative Humidity Sensor
Min delay: 40000
Flags: 2
إذا كان الرقم المحدّد لـ # of events on pending write queue
هو
عدد كبير (1000 أو أكثر)،
هذا يشير إلى أن هناك العديد من الأحداث التي تنتظر كتابتها إلى أجهزة الاستشعار
إطار العمل. يشير هذا إلى أن خدمة أداة الاستشعار متوقفة مؤقتًا أو تعطّلت
لا تعالج أحداث أداة الاستشعار، أو أن مجموعة كبيرة من أحداث أجهزة الاستشعار
تم نشره مؤخرًا من قناة
HAL فرعية.
إذا كان عدد عمليات الرجوع إلى قفل التنشيط أكبر من 0
، يعني ذلك أنّ HalProxy
حصل على قفل تنشيط. من المفترض أن تكون هذه القيمة أكبر من 0
فقط إذا كانت قيمة ScopedWakelock
معلقًا عمدًا أو إذا تم إرسال أحداث الاستيقاظ إلى HalProxy
لم تتم معالجتها بواسطة إطار عمل أداة الاستشعار.
يتم تمرير وصف الملف الذي تم تمريره إلى طريقة تصحيح الأخطاء في HalProxy
إلى كل
HAL فرعي، لذا على المطوّرين تنفيذ طريقة تصحيح الأخطاء كجزء من واجهة
ISensorsSubHal
.