تحاول أجهزة 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