حالات طاقة شركة نفط الجنوب
حالات الطاقة للنظام على الشريحة (SoC) هي: التشغيل والخمول والتعليق. "تشغيل" هو عندما يتم تشغيل شركة نفط الجنوب. "الخمول" هو وضع طاقة متوسط حيث يتم تشغيل SoC ولكنه لا يؤدي أي مهام. "التعليق" هو وضع منخفض الطاقة حيث لا يتم تشغيل SoC. عادةً ما يكون استهلاك الطاقة للجهاز في هذا الوضع أقل بـ 100 مرة من وضع "التشغيل".
أجهزة استشعار عدم الاستيقاظ
أجهزة الاستشعار غير التنبيهية هي أجهزة استشعار لا تمنع شركة نفط الجنوب من الدخول في وضع التوقف المرحلي ولا تقوم بتنشيط شركة نفط الجنوب للإبلاغ عن البيانات. على وجه الخصوص، لا يُسمح للسائقين بحمل أقفال التنبيه. تقع على عاتق التطبيقات مسؤولية الاحتفاظ بقفل التنشيط الجزئي إذا رغبت في تلقي الأحداث من أجهزة استشعار غير قابلة للتنشيط أثناء إيقاف تشغيل الشاشة. أثناء وجود SoC في وضع التوقف المرحلي، يجب أن تستمر المستشعرات في العمل وإنشاء الأحداث، والتي يتم وضعها في جهاز FIFO. (راجع التجميع لمزيد من التفاصيل.) يتم تسليم الأحداث الموجودة في FIFO إلى التطبيقات عندما تنشط SoC. إذا كان ما يصرف أولاً صغيرًا جدًا بحيث لا يمكنه تخزين كافة الأحداث، فسيتم فقدان الأحداث الأقدم؛ يتم إسقاط أقدم البيانات لاستيعاب أحدث البيانات. في الحالة القصوى حيث يكون FIFO غير موجود، يتم فقدان جميع الأحداث التي تم إنشاؤها أثناء وجود SoC في وضع التوقف المرحلي. الاستثناء الوحيد هو الحدث الأخير من كل مستشعر قيد التغيير: يجب حفظ الحدث الأخير خارج FIFO بحيث لا يمكن فقده.
بمجرد خروج SoC من وضع التوقف المرحلي، يتم الإبلاغ عن جميع الأحداث من FIFO وتستأنف العمليات كالمعتاد.
يجب أن تحتفظ التطبيقات التي تستخدم مستشعرات غير التنبيه إما بقفل التنبيه لضمان عدم تعليق النظام، أو إلغاء التسجيل من المستشعرات عندما لا تحتاج إليها، أو توقع فقدان الأحداث أثناء وجود SoC في وضع التوقف المرحلي.
أجهزة استشعار الاستيقاظ
على عكس أجهزة الاستشعار غير التنبيهية، تضمن مستشعرات التنبيه تسليم بياناتها بشكل مستقل عن حالة SoC. عندما تكون شركة نفط الجنوب في حالة نشطة، تتصرف مستشعرات التنبيه مثل أجهزة استشعار غير التنبيه. عندما تكون شركة نفط الجنوب في وضع السكون، يجب أن تقوم أجهزة استشعار الاستيقاظ بإيقاظ شركة نفط الجنوب لتسليم الأحداث. لا يزال يتعين عليهم السماح لـ SoC بالدخول في وضع التوقف المرحلي، ولكن يجب عليهم أيضًا تنبيهها عندما يلزم الإبلاغ عن حدث ما. وهذا يعني أنه يجب على المستشعر تنبيه SoC وتقديم الأحداث قبل انقضاء الحد الأقصى لزمن انتقال التقارير أو امتلاء جهاز FIFO. انظر الخلط لمزيد من التفاصيل.
للتأكد من أن التطبيقات لديها الوقت الكافي لاستقبال الحدث قبل عودة SoC إلى وضع السكون، يجب على السائق الاحتفاظ بـ "قفل تنبيه المهلة" لمدة 200 مللي ثانية في كل مرة يتم فيها الإبلاغ عن حدث. وهذا يعني أنه لا ينبغي السماح لـ SoC بالعودة إلى وضع السكون خلال 200 مللي ثانية بعد مقاطعة الاستيقاظ. سوف يختفي هذا المطلب في إصدار Android مستقبلي، وسنحتاج إلى قفل التنبيه للمهلة حتى ذلك الحين.
كيفية تحديد أجهزة استشعار الاستيقاظ وعدم الاستيقاظ؟
حتى KitKat، تم تحديد ما إذا كان المستشعر عبارة عن مستشعر تنبيه أو مستشعر غير تنبيه حسب نوع المستشعر: كانت معظمها عبارة عن مستشعرات غير تنبيه، باستثناء مستشعر القرب وكاشف الحركة المهمة .
بدءًا من L، يتم تحديد ما إذا كان المستشعر المحدد هو مستشعر تنبيه أم لا بواسطة علامة في تعريف المستشعر. يمكن تعريف معظم أجهزة الاستشعار من خلال أزواج من متغيرات التنبيه وغير التنبيه لنفس المستشعر، وفي هذه الحالة يجب أن يتصرفوا كمستشعرين مستقلين، ولا يتفاعلان مع بعضهما البعض. انظر التفاعل لمزيد من التفاصيل.
ما لم يُنص على خلاف ذلك في تعريف نوع المستشعر، يوصى بتنفيذ مستشعر تنبيه واحد ومستشعر واحد غير تنبيه لكل نوع مستشعر مدرج في أنواع المستشعرات . في كل تعريف لنوع المستشعر، تعرف على المستشعر (التنبيه أو عدم التنبيه) الذي سيتم إرجاعه بواسطة SensorManager.getDefaultSensor(sensorType)
. إنه المستشعر الذي ستستخدمه معظم التطبيقات.