تحديثات الهواء عبر الهواء

بعد الانتهاء من الصندوق، لم يتم تجهيز Glass Enterprise لتحديثات عبر الهواء (OTA). ومع ذلك، من الممكن ضبط تحديثات "عبر الهواء" الأساسية. تمنح وظيفة تحديثات EE2 عبر الهواء عبر مالك الجهاز التحكّم الكامل في تحديثات عبر الهواء (OTA) على النحو التالي:

  • للتحكّم في مكان تخزين التحديث.
  • للتحكّم في وقت إجراء التحديث
  • للتحكم في تصميم أهداف التحديث.

عملية الإعداد

لإتاحة التحديثات عبر الهواء على أجهزة EE2، يجب إجراء عمليات ضبط من جهة الخادم والعميل.

إعداد من جهة الخادم

يجب استضافة ملف التحديث عبر الهواء لتنزيله على خادم يمكن الوصول إليه على شبكتك. يجب تنزيل ملف التحديث من صفحة صور النظام.

وتحتاج أيضًا إلى استضافة ملف JSON، ما يؤدي إلى تدفق التحديث. يجب تنسيقها على النحو التالي كمثال updater.json. يحتوي الملف على معلومات مثل حجم الحمولة والطول الثنائي والبيانات الوصفية الأخرى التي يحتاج إليها محرك التحديث لقبول برامج ثنائية عبر الهواء.

الضبط من جهة العميل

ليتمكّن أحد الأجهزة من التحقّق من توفّر تحديثات "عبر الهواء"، عليك إعداد عنوان URL عبر الهواء والفاصل الزمني للاستطلاع. ويمكنك استخدام هدف لبدء نشاط يتم إعداده. واسم النشاط هو com.google.android.glass.otaservice/.OtaSettingsActivity.

هناك إجراءان متاحان:

  • com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION
    • عنوان URL لملف البيانات الوصفية بتنسيق JSON الذي يختبره البرنامج الخفي ويفحصه.
    • إلحاق سلسلة بالمفتاح التالي: com.google.android.glass.otaservice.UPDATE_LOCATION
  • com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION
    • الفاصل الزمني الذي يتم فيه استنتاج البرنامج الخفي لعبر الهواء للتحديد بالمللي ثانية.
    • إلحاق رقم باستخدام المفتاح التالي: com.google.android.glass.otaservice.UPDATE_FREQUENCY
    • يبدأ هذا intent أيضًا التحقق من وكالات السفر على الإنترنت إذا لم يكن قيد التشغيل.
    • يجب إدخال رقم أكبر من 900,000 ملي ثانية.
    • في حال كانت وكالة السفر عبر الإنترنت قيد التقدّم، يتم تعديل الفاصل الزمني بعد اكتمال عملية التحقّق الحالية. هذا مطلوب، وإلا قد يعطّل Android Doze الخدمة.

ويمكن إرسال intent من خلال startActivityForResult. يتم إرسال الإجابة إلى معاودة الاتصال بـ onActivityResult إما مع نجاح RESULT_OK أو إلى RESULT_CANCELLED إذا تعذّر تنفيذها. ويتم إرسال رسالة بعد ذلك إلى سجلّات الجهاز لأغراض تحديد المشاكل وحلّها.

ويمكن أيضًا إرسال intent من خلال أوامر adb على النحو التالي:

adb shell am start \
-a com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION \
--es com.google.android.glass.otaservice.UPDATE_LOCATION "some_URL_for_json_file" \
-n com.google.android.glass.otaservice/.OtaSettingsActivity
adb shell am start \
-a com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION \
--el com.google.android.glass.otaservice.UPDATE_FREQUENCY 1800000 \
-n com.google.android.glass.otaservice/.OtaSettingsActivity

يعمل برنامج الخفي في الهواء على شكل JobService كل 15 دقيقة أو أكثر، بناءً على إعداد التكرار. يتم تشغيل JobService عند التشغيل ويستمر تشغيله إلى أن تتم الموافقة على الحمولة المعدَّلة والتحقق منها.

لا تجري خدمة الخلفية استطلاع الرأي إلا إذا كانت شبكة Wi-Fi متصلة بالإنترنت ومتصلة. ومع ذلك، لا تحتاج شبكة Wi-Fi إلى الاتصال بالإنترنت، بل شبكة LAN فقط.

تجري جميع عمليات المعالجة في الخلفية. لا حاجة إلى إدخال البيانات من المستخدمين أثناء المعالجة. يظهر إشعار في درج الإشعارات ويتم تحديث نظام التشغيل تلقائيًا عند إعادة التشغيل التالية.

تعديل الخطوات

اتبع الخطوات التالية لاختبار تحديثات "عبر الهواء":

  1. تنزيل الجهاز وتحميله يدويًا باستخدام التحديث الحالي.
  2. يجب أن تعرض بطاقة معلومات جهاز Glass Settings: التحديث الحالي.
  3. الاتصال بشبكة Wi-Fi.
  4. نفِّذ أوامر adb للتوجيه إلى ملف json للتحديث إلى التحديث التالي:

    adb shell am start \
    -a com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION \
    --es com.google.android.glass.otaservice.UPDATE_LOCATION "your_json_file_location" \
    -n com.google.android.glass.otaservice/.OtaSettingsActivity
    adb shell am start \
    -a com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION \
    --el com.google.android.glass.otaservice.UPDATE_FREQUENCY 900000 \
    -n com.google.android.glass.otaservice/.OtaSettingsActivity
  5. يظهر الإشعار بشأن وكالة سفر على الإنترنت قيد التقدم
  6. اختفاء الإشعار عبر الهواء
  7. عند تشغيل الجهاز يدويًا تاليًا، من المفترض أن يكون قد تم تحديث الجهاز وأن تظهر بطاقة معلومات إعدادات Glass على النحو التالي: تحديث جديد

تحديث التدفق

في ما يلي العملية العادية التي يتم من خلالها إجراء تحديث التحديث على الهواء:

  1. عند التشغيل، يحدد برنامج الخفي في الهواء عملية التنفيذ الأولى، والتي يتم تحديدها من خلال الفاصل الزمني المحدّد. إذا لم يتم توفير أي فاصل زمني، سيتم إعداد القيمة التلقائية على 15 دقيقة.
  2. يصوّر البرنامج الخفي خادم الويب لتنزيل ملف البيانات الوصفية. في حال عدم تقديم عنوان URL، سيتم الخروج من البرنامج الخفي والانتظار حتى الفاصل الزمني التالي للتنفيذ.
  3. يجري البرنامج الخفي عمليات تحقّق أوّلية على ملف البيانات الوصفية للتأكّد من إعداد العلامات المناسبة. في حال حدوث خطأ، يخرج البرنامج الخفي ويخرج المخرجات من السجلّات إلى السجلات. ينتظر البرنامج الخفي بعد ذلك حتى التنفيذ المُجدوَل التالي.
  4. يقارن البرنامج الخفي بين الإدخالات في ملف JSON والبيانات التي تم سحبها من الإصدار الحالي الذي يعمل على الجهاز. في حال رصد عدم تطابق مع أي من هذه الإدخالات، تبدأ عملية تنزيل على الإنترنت. يتم إرسال المحتوى من ملف البيانات الوصفية إلى محرّك تحديث AOSP.

    يتعذّر إيقاف التحديث مؤقتًا. ويستمر الإعداد إلى أن يتم تنفيذه بنجاح أو تعذّر تنفيذه أو انتهاء المهلة.

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

تحديثات التطبيقات

يجب التعامل مع تحديثات التطبيقات في EE2 كتحديثات Android عادية. وهناك خياران رئيسيان:

  1. يمكنك استخدام أحد حلول إدارة جهاز الجوّال أو إنشاء تطبيق مالك الجهاز وتحديث التطبيق بشكل غير ملحوظ. يمكنك استخدام واجهة برمجة تطبيقات Android PackageInstaller لتنفيذ ذلك.
  2. استخدِم Android API PackageInstaller مباشرةً من تطبيقك لكي يتم تحديثه تلقائيًا. سيظهر مربع حوار النظام في هذه الحالة.