![رمز Android Sensors HAL](https://source.android.google.cn/static/docs/core/interaction/sensors/images/ape_fwk_hal_sensors.png?authuser=5&hl=ar)
تمنح أدوات استشعار Android التطبيقات إمكانية الوصول إلى أدوات الاستشعار الجسدية الأساسية للجهاز الجوّال. وهي أجهزة افتراضية توفّر البيانات وتحدّدها sensors.h، وهي طبقة HAL (Hardware Abstraction Layer) الخاصة بأجهزة الاستشعار.
ما هي أدوات استشعار Android؟
أجهزة استشعار Android هي أجهزة افتراضية توفّر بيانات من مجموعة من أجهزة الاستشعار المادية: مقاييس السرعة والجيروسكوبات ومقياسات المغناطيسية ومقياس الضغط الجوي ومقاييس الرطوبة والضغط والضوء والقرب ومعدل ضربات القلب.
لا يتم تضمين الكاميرا و جهاز استشعار بصمة الإصبع والميكروفون والشاشة التي تعمل باللمس في قائمة الأجهزة المادية التي تقدّم البيانات. لهذه الأجهزة آلية reporting الخاصة بها، ويكون الفصل عشوائيًا، ولكن بشكل عام، تقدّم أدوات استشعار Android data ذات معدل نقل بيانات أقل. على سبيل المثال، "100 هرتز x 3 قنوات" لمقياس سرعة مقارنةً بـ "25 هرتز x 8 ميغا بكسل x 3 قنوات" للكاميرا أو "44 كيلوهرتز x قناة واحدة" للميكروفون.
لا يحدِّد نظام التشغيل Android كيفية ربط مختلف أجهزة الاستشعار المادية بالمنظومة على الرقاقة (SoC).
- غالبًا ما يتم توصيل شرائح الاستشعار بوحدة المعالجة المركزية من خلال وحدة تحكّم في الاستشعار، ما يتيح بعض عمليات المراقبة ومعالجة البيانات باستخدام طاقة منخفضة.
- غالبًا ما يتم استخدام واجهة Inter-Integrated Circuit (I2C) أو واجهة Serial Peripheral (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/+/main/include/hardware/sensors.h
- يُعرف أيضًا باسم "sensors.h".
- مصدر المعلومات الصحيحة هو المستند الأول الذي يتم تعديله عند تطوير ميزات جديدة.
- مستند CDD (مستند تعريف التوافق) لنظام التشغيل Android
- /compatibility/android-cdd.pdf
- اطّلِع على الأقسام ذات الصلة بأجهزة الاستشعار.
- إنّ CDD متساهلة، لذا فإنّ استيفاء متطلباتها ليس كافيًا لضمان جودة عالية للأجهزة الاستشعارية.