تمنح أجهزة استشعار Android التطبيقات إمكانية الوصول إلى أجهزة الاستشعار المادية الأساسية في الجهاز الجوّال. وهي أجهزة افتراضية توفّر البيانات ويتم تحديدها من خلال sensors.h، أي طبقة تجريد الأجهزة (HAL) الخاصة بأجهزة الاستشعار.
ما هي مستشعرات Android؟
أجهزة الاستشعار في Android هي أجهزة افتراضية توفّر بيانات واردة من مجموعة من أجهزة الاستشعار المادية، مثل مقاييس التسارع ومقاييس الدوران ومقاييس المغناطيسية ومقاييس الضغط الجوي والرطوبة والضغط والضوء والقرب ومعدّل نبضات القلب.
لا تتضمّن قائمة الأجهزة المادية التي تقدّم البيانات الكاميرا وأداة استشعار بصمة الإصبع والميكروفون والشاشة التي تعمل باللمس. وتتضمّن هذه الأجهزة آلية إعداد تقارير خاصة بها، علمًا بأنّ الفصل بينها هو أمر اختياري، ولكن بشكل عام، تقدّم أجهزة الاستشعار في Android بيانات بنطاق ترددي أقل. على سبيل المثال، "100 هرتز × 3 قنوات" لمقياس تسارع مقابل "25 هرتز × 8 ميغابكسل × 3 قنوات" لكاميرا أو "44 كيلوهرتز × قناة واحدة" لميكروفون.
لا يحدّد نظام التشغيل Android طريقة ربط أجهزة الاستشعار المادية المختلفة بالمنظومة على الرقاقة (SoC).
- في كثير من الأحيان، يتم ربط شرائح أداة الاستشعار بمنظومة على رقاقة (SoC) من خلال موزّع أداة استشعار، ما يتيح إجراء بعض عمليات الرصد والمعالجة المنخفضة الطاقة للبيانات.
- في كثير من الأحيان، يتم استخدام Inter-Integrated Circuit (I2C) أو Serial Peripheral Interface (SPI) كآلية نقل.
- للحدّ من استهلاك الطاقة، تكون بعض البُنى هرمية، حيث يتم إجراء بعض المعالجة البسيطة في الدائرة المتكاملة الخاصة بالتطبيق (ASIC - مثل كشف الحركة على شريحة مقياس التسارع)، ويتم إجراء المزيد في وحدة التحكّم الدقيق (مثل رصد الخطوات في مركز الاستشعار).
- ويعود إلى الشركة المصنّعة للجهاز اختيار بنية استنادًا إلى خصائص الدقة والطاقة والسعر وحجم الحزمة. يمكنك الاطّلاع على مجموعة أجهزة الاستشعار لمزيد من المعلومات.
- تُعد إمكانات تجميع البيانات في حِزم من الاعتبارات المهمة لتحسين استهلاك الطاقة. يمكنك الاطّلاع على التجميع لمزيد من المعلومات.
يحتوي كل جهاز استشعار في Android على "نوع" يمثّل طريقة عمل جهاز الاستشعار والبيانات التي يوفّرها.
- يتم تحديد أنواع
أجهزة الاستشعار الرسمية في Android في sensors.h ضمن الأسماء SENSOR_TYPE_…
- تتضمّن الغالبية العظمى من أجهزة الاستشعار نوعًا رسميًا.
- هذه الأنواع موثّقة في حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
- يتم اختبار سلوك المستشعرات من هذه الأنواع في مجموعة أدوات اختبار التوافق (CTS) لنظام التشغيل Android.
- إذا أضافت الشركة المصنّعة نوعًا جديدًا من أجهزة الاستشعار إلى جهاز Android، يمكنها تحديد نوع مؤقت خاص بها للإشارة إليه.
- هذه الأنواع غير موثّقة، لذا من غير المرجّح أن يستخدمها مطوّرو التطبيقات، إما لأنهم لا يعرفون عنها، أو لأنهم يعرفون أنّها نادرًا ما تكون متاحة (فقط على بعض الأجهزة من هذه الشركة المصنّعة المحدّدة).
- ولا يتم اختبارها باستخدام مجموعة أدوات اختبار التوافق (CTS).
- وبعد أن يحدّد نظام التشغيل Android نوعًا رسميًا لهذا النوع من أجهزة الاستشعار، على المصنّعين التوقّف عن استخدام النوع المؤقت الخاص بهم واستخدام النوع الرسمي بدلاً منه. بهذه الطريقة، سيستخدم المزيد من مطوّري التطبيقات جهاز الاستشعار.
- يتم عرض قائمة بجميع المستشعرات المتوفّرة على الجهاز من خلال تنفيذ طبقة HAL.
- يمكن أن يكون هناك عدة أجهزة استشعار من النوع نفسه. على سبيل المثال، جهازا استشعار قرب أو جهازا قياس تسارع.
- تطلب الغالبية العظمى من التطبيقات مستشعرًا واحدًا فقط من نوع معيّن. على سبيل المثال، سيحصل تطبيق يطلب مقياس التسارع التلقائي على مقياس التسارع الأول في القائمة.
- غالبًا ما يتم تحديد المستشعرات من خلال أزواج التنشيط وعدم التنشيط، حيث يشترك كلا المستشعرَين في النوع نفسه، ولكن يختلفان في خاصية التنشيط.
توفّر مستشعرات Android البيانات كسلسلة من أحداث المستشعر.
يحتوي كل حدث على ما يلي:
- معرّف لجهاز الاستشعار الذي أنشأها
- الطابع الزمني الذي تم فيه رصد الحدث أو قياسه، استنادًا إلى
SystemClock.elapsedRealtimeNanos() - وبعض البيانات
يعتمد تفسير البيانات التي تم تسجيلها على نوع المستشعر. راجِع تعريفات نوع المستشعر لمعرفة تفاصيل حول البيانات التي يتم تسجيلها لكل نوع من أنواع المستشعرات.
المستندات الحالية
مخصّصة للمطوّرين
- نظرة عامة
- مرجع حزمة تطوير البرامج (SDK)
- Stack Overflow والمواقع الإلكترونية التي تقدّم برامج تعليمية
- وبسبب عدم توفّر مستندات كافية حول أجهزة الاستشعار في بعض الأحيان، كان المطوّرون يلجأون إلى مواقع إلكترونية للأسئلة والأجوبة، مثل Stack Overflow، للعثور على إجابات.
- تتوفّر أيضًا بعض المواقع الإلكترونية التعليمية، ولكنّها لا تتضمّن أحدث الميزات، مثل التجميع والحركة الكبيرة ومتجهات دوران الألعاب.
- الإجابات الواردة هناك ليست صحيحة دائمًا، وهي توضّح المواضع التي تحتاج إلى المزيد من المستندات.
مخصّصة للشركات المصنّعة
- نظرة عامة
- صفحة أجهزة الاستشعار وصفحاتها الفرعية
- طبقة تجريد الأجهزة (HAL)
- /platform/hardware/libhardware/+/android17-release/include/hardware/sensors.h
- يُعرف أيضًا باسم "sensors.h"
- المصدر الموثوق المستند الأول الذي سيتم تعديله عند تطوير ميزات جديدة
- مستند تعريف معايير التوافق (CDD) لنظام التشغيل Android
- /compatibility/android-cdd.pdf
- اطّلِع على الأقسام ذات الصلة بأجهزة الاستشعار.
- تتسم معايير التوافق مع تعريف الجهاز (CDD) بالتساهل، لذا فإنّ استيفاء متطلباتها لا يكفي لضمان توفّر أجهزة استشعار عالية الجودة.