رصد وقت الشبكة

تحاول أجهزة Android الحصول تلقائيًا على وقت حقبة Unix الصحيح من مصدر الشبكة. يستخدم Android بروتوكول SNTP الذي يستخدم بروتوكول UDP، للحصول على معلومات الوقت.

تعتبر المكوّنات الموضّحة في هذه الصفحة جزءًا من ميزة الرصد التلقائي للوقت. نظام يُشار إليه باسم مصدر وقت الشبكة. إشارة وقت من يمكن استخدام خادم وقت الشبكة لضبط ساعة نظام جهاز Android عند إنّ ميزة "رصد الوقت" التلقائية متاحة على الجهاز و"time_detector". تهيئة Google لاستخدامها.

يستخدم Android تلقائيًا مصدر وقت الشبكة باعتباره المصدر الأساسي. مصدر رصد الوقت تلقائيًا

نظام رصد وقت الشبكة

خدمة network_time_update_service التي يتم تشغيلها في خادم نظام Android نظام اكتشاف وقت الشبكة. تستخدم الخدمة بشكل دوري بروتوكول SNTP للحصول على إشارة وقت من الخادم. تراقب الخدمة أيضًا الشبكة الاتصال ويؤدي إلى إعادة تحميل الوقت عند عدم توفر إشارة زمنية حديثة بعد فترات طويلة من ضعف الاتصال.

تحاول خدمة network_time_update_service الحصول على إشارة وقت. بعد التشغيل وعند إنشاء اتصال بالشبكة لأول مرة. تشير رسالة الأشكال البيانية ثم يحاول الاحتفاظ بأحدث إشارة محدثة. وهي توازن بين لكل جهاز من أجهزة Android ذات الحِمل الكبير الذي يمكن الكثير من أجهزة Android حول العالم لتحديث وقتهم

باستخدام واجهات برمجة تطبيقات داخلية، يرسل network_time_update_service وقت الشبكة اقتراحات لخدمة time_detector. نظام Android الأساسي الآخر المكونات ثم تستخدم اقتراحات وقت الشبكة هذه.

بعد تلقّي اقتراحات من مصدر وقت الشبكة، ستلاحظ أنّ time_detector خدمة تحديد ما إذا كان سيتم تحديث ساعة النظام وفقًا قواعد تحديد الأولويات التي تم ضبطها

لضبط نظام رصد الوقت التلقائي من أجل استخدام مصدر الشبكة اقتراحات لضبط ساعة النظام تلقائيًا، استخدم ملف إعداد خادم النظام core/res/res/values/config.xml. تأكَّد من أنّ أن القيمة network مضمنة في config_autoTimeSourcesPriority ضمن الموقع. للحصول على التفاصيل، يمكنك مراجعة أولوية مصدر الوقت:

إعداد الجهاز

يوضّح هذا القسم كيفية ضبط الشركات المصنّعة للأجهزة للشبكة. نظام كشف الوقت.

إعدادات AOSP الأساسية هي frameworks/base/core/res/res/values/config.xml:

مفتاح الإعداد قيمة AOSP الوصف
config_ntpRetry 3 بعد تعذُّر إعادة التحميل، هذا هو عدد المرّات التي يحاول فيها النظام استطلاع وقت الشبكة باستخدام فاصل استقصاء NTP أقصر (config_ntpPollingIntervalShorter)، قبل التراجع والاستخدام الفاصل الزمني الطبيعي لاستطلاع الرأي (config_ntpPollingInterval). قيمة يعني أقل من 0 أن النظام يعيد إجراء الاستطلاع في وقت NTP الأقصر الفاصل الزمني للاستطلاع إلى أن يتم تحديثه بنجاح.
config_ntpPollingInterval 64800000 (18 ساعة) الفاصل الزمني العادي لاستطلاع الوقت على الشبكة بالملي ثانية.
config_ntpPollingIntervalShorter 60000 (دقيقة واحدة) الفاصل الزمني لاستطلاع الوقت على الشبكة لإعادة المحاولة بالمللي ثانية. الاستخدام فشل تحديث الوقت.
config_ntpServers إدخال واحد: ntp://time.android.com خوادم NTP المراد استخدامها للحصول على وقت دقيق. يجب أن تكون العناصر بالشكل: ntp://<host>[:port]
هذا ليس نظام موارد منتظم (URI) مسجَّل في IANA.
config_ntpTimeout 5000 هي مدة انتظار استجابة خادم NTP بالمللي ثانية قبل انتهاء المهلة.

خوادم

يستخدم AOSP بشكل تلقائي خوادم الوقت على time.android.com، وهو اسم مستعار لـ Google Public NTP. تحتوي هذه الخدمة على اتفاقية مستوى الخدمة. للحصول على التفاصيل، يمكنك مراجعة الأسئلة الشائعة حول بروتوكول وقت الشبكة العلني من Google

التوافق مع خوادم متعددة

على نظام التشغيل Android 14 والإصدارات الأحدث، يتوافق إطار العمل خوادم NTP متعددة. يدعم ذلك الحالات التي تكون فيها الأجهزة توزيعها عالميًا من خلال تهيئة واحدة، ولكن عند الوصول إلى الخوادم مثل time.android.com محظور في أماكن معيّنة.

تحاول الخوارزمية كل خادم محدّد في config_ntpServers. مفتاح التهيئة. وعندما يعثر على تحديث يستجيب، يستمر النظام في استخدام ذلك الخادم إلى أن يفشل التحديث أو تتم إعادة تشغيل الجهاز.

الدقة

إنّ عملية المزامنة التلقائية لوقت الشبكة في Android تستخدم بروتوكول SNTP مع طلب بحث لمرة واحدة. مرة واحدة في اليوم تقريبًا لمحاولة التأكد من تلقي إشارة زمنية حديثة.

تعد تأثيرات وقت استجابة الشبكة أكبر سبب لعدم دقة الوقت تنفيذ بروتوكول SNTP على Android يفترض SNTP تأخيرات الشبكة المتماثلة، والتي تعني يكون وقت استجابة الشبكة للطلب هو نفسه وقت استجابة الشبكة والاستجابة، والوقت الصحيح في منتصفها تمامًا ذهابًا وإيابًا للشبكة. غالبًا ما يكون وقت الإرسال والاستقبال للشبكة يتراوح من بضعة مئات المللي ثانية وعلى الشبكة السلكية، يقترب وقت الاستجابة من متماثلة، مما يؤدي إلى مستويات من عدم الدقة المستخدمين. ومع ذلك، فمع الاتصال الهاتفي عبر الهاتف الجوال أو الراديو، هناك العديد من المراحل التي طويلة نسبيًا، حيث يمكن إدراج التأخيرات غير المتماثلة في معاملة عبر الشبكة مما يؤدي إلى مزيد من عدم الدقة.

عند ضبط إعداد AOSP التلقائي config_ntpTimeout على 5000 ملي ثانية، وإذا كان وقت استجابة الشبكة كله يركز فقط على عمليات البريد الوارد أو الصادر ، فإن الحد الأقصى للخطأ النظري يبلغ حوالي 2.5 ثانية.

تتأثر دقة ساعة النظام بشكل عام أيضًا بقدرة جهاز Android. لتتبع الوقت المنقضي بدقة بعد الحصول على إشارة زمنية. هذا هو مشكلة تتعلق بضبط الوقت على Android، وليس فقط في اكتشاف وقت الشبكة، سبب تجاهل خدمة time_detector للاقتراحات الزمنية القديمة. تشير رسالة الأشكال البيانية تتم إعادة تحميل خدمة network_time_update_service بانتظام باستخدام الفاصل الزمني config_ntpPollingInterval للحفاظ على خدمة time_detector مع اقتراحات وقت جديد وللتأكد من أن time_detector الخدمة إلى الأولوية المنخفضة وغالبًا ما تكون أقل دقة أو أصول وقت غير صحيحة أحيانًا مثل telephony.

عند استخدام ميزة التعرّف التلقائي على الوقت، يمكن تعديل دقة ساعة نظام الجهاز. تتأثر بالإعدادات الأخرى لخدمة time_detector، مثل الثوابت والعلامات التي تؤثر في مدى اختلاف اقتراح الوقت عن الوقت الحالي للساعة في النظام قبل ضبط الساعة (ServiceConfigAccessorImpl.java).

يمكن للشركات المصنّعة للأجهزة تعديل الدقة باستخدام الإعدادات السابقة. الخيارات والثوابت. ولكن من المهم أن تكون على دراية بقيود وتطبيق بروتوكول SNTP على النظام الأساسي، والتأثير المحتمل في استهلاك الطاقة من عمليات الشبكة الأكثر تكرارًا، والتأثير على التطبيقات التي تعمل على الجهاز من عمليات ضبط الساعة بشكل أكثر تكرارًا ولكن أصغر، وتأثير ذلك على الحِمل على الخادم.

الاستخدامات الأخرى لوقت الشبكة

في حال عدم ضبط ميزة "رصد الوقت" التلقائي باستخدام مصدر "network" أو في حال عدم ضبط قد عطّل المستخدم اكتشاف الوقت التلقائي، وهو الوقت الذي يتم الحصول عليه من خلال لا تزال خدمة network_time_update_service مستخدمة من خلال المكوّنات التالية:

  • تشير رسالة الأشكال البيانية SystemClock.currentNetworkTimeClock() .
  • وظائف النظام الأساسي الداخلية. على سبيل المثال، يمكن لـ A-GPS تحديد موقع نظام GNSS (الموقع) أولاً بشكل أسرع عندما تحتوي على معلومات حول وقت الشبكة.

تصحيح الأخطاء والاختبار

يصف القسم التالي أوامر واجهة الأوامر لتصحيح الأخطاء واختبار اكتشاف وقت الشبكة.

التفاعل مع خدمةnetwork_time_update_service

لتفريغ الحالة الحالية لـ network_time_update_service، استخدِم:

adb shell cmd network_time_update_service dump

للاطّلاع على مجموعة من خيارات سطر الأوامر التي يمكن أن تساعدك في الاختبار، استخدِم:

adb shell cmd network_time_update_service help