تتوافق أجهزة ChromeOS، مثل أجهزة Chromebook، مع "متجر Google Play" و تطبيقات Android. تفترض هذه المقالة أنّ لديك تطبيق Android حاليًا مصمّمًا للهواتف أو الأجهزة اللوحية تريد تحسينه لأجهزة Chromebook. للتعرّف على أساسيات إنشاء تطبيقات Android، يُرجى الاطّلاع على مقالة إنشاء أول تطبيق Android.
تعديل ملف بيان تطبيقك
للبدء، عليك تعديل ملف البيان لتوضيح بعض الاختلافات الرئيسية في الأجهزة والبرامج بين أجهزة Chromebook والأجهزة الأخرى التي تعمل بنظام التشغيل Android.
اعتبارًا من الإصدار M53 من ChromeOS، تعمل أيضًا جميع تطبيقات Android التي لا تتطلّب صراحةً ميزة
android.hardware.touchscreen
على أجهزة ChromeOS المتوافقة مع ميزة
android.hardware.faketouch
. ومع ذلك، لضمان عمل تطبيقك على جميع
أجهزة Chromebook، عليك تعديل ملف البيان لكي لا تكون ميزة
android.hardware.touchscreen
مطلوبة، كما هو موضّح في المثال التالي.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <!-- Some Chromebooks don't support touch. Although not essential, it's a good idea to explicitly include this declaration. --> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> </manifest>
تأتي أجهزة الأجهزة المختلفة مزوّدة بمجموعات مختلفة من أدوات الاستشعار، وقد لا تتضمّن أجهزة Chromebook جميع أدوات الاستشعار المتوفّرة في أجهزة Android المحمولة، مثل نظام تحديد المواقع العالمي (GPS) وأدوات قياس التسارع. ومع ذلك، في بعض الحالات، يتم توفير وظائف الجهاز الاستشعاري بطريقة أخرى. على سبيل المثال، قد لا تتضمن أجهزة Chromebook أجهزة استشعار نظام تحديد المواقع العالمي (GPS)، ولكنها توفّر بيانات الموقع الجغرافي استنادًا إلى عمليات الاتصال بشبكة Wi-Fi. اطّلِع على نظرة عامة على أجهزة الاستشعار للتعرّف على مزيد من المعلومات عن أجهزة الاستشعار المتوافقة مع نظام Android الأساسي.
إذا كنت تريد تشغيل تطبيقك على أجهزة Chromebook بغض النظر عن مدى توفّر أجهزة الاستشعار، عدِّل ملف البيان لكي لا تتطلّب أي أجهزة استشعار.
لا تتوفّر بعض ميزات البرامج على أجهزة Chromebook. على سبيل المثال، لا يمكن تثبيت التطبيقات التي توفر معالجات ترجمة فورية مخصّصة وتطبيقات مصغّرة وخلفيات حية ومشغّلات تطبيقات على أجهزة Chromebook. للحصول على قائمة كاملة بميزات البرامج غير المتوافقة مع أجهزة Chromebook، يُرجى الاطّلاع على ميزات البرامج غير المتوافقة.
تعديل حزمة تطوير البرامج (SDK) المستهدَفة
عدِّل سمة targetSdkVersion
تطبيقك إلى أحدث مستوى متاح لواجهة برمجة التطبيقات للاستفادة من جميع
التحسينات في نظام Android الأساسي. راجِع التحسينات التي تم إجراؤها على نظام Android
الأساسي في مختلف الإصدارات.
التحقّق من متطلبات الاتصال بالشبكة
تعمل أجهزة Chromebook بنظام التشغيل Android بالكامل في حاوية، مثل Docker أو LXC. وهذا يعني أنّ نظام التشغيل Android لا يمكنه الوصول مباشرةً إلى واجهة شبكة المنطقة المحلية (LAN) في النظام. بدلاً من ذلك، تمرّ حركة بيانات IPv4 عبر طبقة داخلية من ترجمة عنوان الشبكة (NAT)، ويتم توجيه حركة بيانات البث المباشر لبروتوكول IPv6 من خلال قفزة إضافية.
إنّ اتصالات البث المباشر الصادرة من تطبيق Android إلى الإنترنت تعمل في معظم الأحيان على النحو المعتاد. ويتم بشكل عام حظر الاتصالات الواردة. لا يتم توجيه حزم البث المتعدد أو البث من Android إلى شبكة المنطقة المحلية من خلال جدار الحماية.
كاستثناء لقيود البث المتعدد، يشغّل ChromeOS خدمة تعيد توجيه عدد زيارات mDNS بين Android وواجهة شبكة المنطقة المحلية، لذا فإنّ واجهات برمجة التطبيقات العادية لميزة اكتشاف خدمات الشبكة هي الطريقة المُقترَحة لاستكشاف الأجهزة الأخرى في قسم شبكة المنطقة المحلية. بعد العثور على جهاز على شبكة LAN، يمكن لتطبيق Android استخدام منفذَي TCP أو UDP الموحّدَين للتواصل معه.
إنّ عمليات الاتصال عبر بروتوكول IPv4 التي تبدأ من Android تستخدم عنوان IPv4 الخاص بخادم ChromeOS. من الداخل، يرصد تطبيق Android عنوان IPv4 خاصًا تم تخصيصه لواجهة الشبكة. إنّ عمليات الاتصال عبر IPv6 التي تأتي من Android تستخدم عنوانًا مختلفًا عن مضيف ChromeOS، لأنّ حاوية Android تحتوي على عنوان IPv6 علني مخصّص.
استخدام مساحة التخزين في السحابة الإلكترونية والمساحة التخزينية على الجهاز بفعالية
تتيح أجهزة Chromebook للمستخدمين نقل البيانات بسهولة من جهاز إلى آخر. إذا توقّف مستخدم عن استخدام جهاز Chromebook وبدأ استخدام جهاز آخر، ما عليه سوى تسجيل الدخول وستظهر له جميع تطبيقاته.
وبفضل هذه الميزة، يمكنك الاحتفاظ بنسخة احتياطية من بيانات تطبيقك في السحابة الإلكترونية لتفعيل المزامنة على جميع الأجهزة. ومع ذلك، لا تعتمد على اتصال بالإنترنت لكي يعمل تطبيقك بشكلٍ طبيعي. بدلاً من ذلك، يتم حفظ عمل المستخدم على الجهاز عندما يكون غير متصل بالإنترنت، وتتم مزامنته مع السحابة الإلكترونية بعد إعادة الاتصال بالإنترنت.
يمكن أيضًا مشاركة أجهزة Chromebook مع عدد كبير من المستخدمين، مثل المؤسسات التعليمية. بما أنّ مساحة التخزين المتوفّرة على الجهاز ليست غير محدودة، يمكن إزالة حسابات كاملة من الجهاز في أي وقت، مع إزالة مساحة التخزين المخصّصة لها. بالنسبة إلى الإعدادات التعليمية، من الأفضل أخذ هذا السيناريو في الاعتبار.
تطوير حالات اختبار جديدة لتطبيقك
لتطوير حالات اختبار لتطبيقك، تأكَّد أولاً من تحديد علامات البيان المناسبة. على وجه الخصوص، ننصحك بضبط screenOrientation
على unspecified
. إذا كنت تريد تحديد اتجاه أفقي، ننصحك باستخدام
sensorLandscape
للتأكّد من أنّ التجربة على الجهاز اللوحي هي الأفضل.
إذا كانت لديك متطلبات خاصة للحجم أو الاتجاه في بيئات الكمبيوتر المكتبي، ننصحك
بإضافة علامات وصفية كإشارات للحجم أو الاتجاه. لتضمين المقاس والاتجاه
على الهواتف، حدِّد سمات التنسيق
defaultHeight
أو
defaultWidth
أو
minHeight
بدلاً من ذلك.
إذا كنت مهتمًا بمعالجة جهاز إدخال معيّن لفئات
أجهزة معيّنة، حدِّد android.hardware.type.pc
لإيقاف وضع Compatiblity mode (توافق إدخال البيانات).
إذا كنت تستخدم أي نوع من الشبكات، تأكَّد من أنّه يمكن للتطبيق إعادة الاتصال بالشبكة بعد حلّ مشكلة الاتصال أو تنشيط الجهاز من وضع السكون.
ننصحك بالاطّلاع على قائمة حالات اختبار تطبيقات Android على Chrome OS، والتي يمكنك استخدامها في خطة الاختبار. تتناول حالات الاختبار السيناريوهات الشائعة التي يجب أن تكون تطبيقات Android مُعدّة لها إذا كان من المتوقّع تشغيلها على أجهزة ChromeOS.
تغييرات وضع النوافذ المتعددة واتجاه الشاشة
يمكن أن تؤدي بيئة النوافذ المتعددة في ChromeOS إلى لفت الانتباه بشكل أكبر إلى مشاكل الاحتفاظ بالحالة واستعادتها. استخدِم ViewModel
لحفظ حالتك واستعادتها عند الاقتضاء.
لاختبار ثبات الحالة، عليك تصغير تطبيقك لبعض الوقت، ثم بدء عملية أخرى تستهلك موارد كثيرة، ثم استعادة تطبيقك للتأكّد من عودته إلى الحالة التي تركته فيها.
اختبِر تغيير حجم النافذة من خلال الضغط على مفتاح ملء الشاشة (F4) وتكبير النافذة ثم إعادتها إلى حجمها الأصلي. لاختبار ميزة تغيير الحجم بحرية، عليك أولاً تفعيلها في خيارات المطوّر، ثم التحقّق من أنّ تطبيقك يغيّر حجمه بسلاسة بدون تعطُّل.
إذا كان جهاز ChromeOS يتيح ذلك، يمكنك التبديل من وضع الكمبيوتر المحمول إلى وضع الجهاز اللوحي للتحقّق مما إذا كان كل شيء يعمل على النحو المتوقّع. يمكنك تدوير الجهاز مرة واحدة في وضع الجهاز اللوحي لاختبار تغييرات الاتجاه، ثم العودة إلى وضع الكمبيوتر المحمول. كرِّر هذه الخطوة بضع مرات.
تأكَّد من أنّ الشريط العلوي لا يتسبب في تعطُّل تطبيقك عن طريق إزاحة عناصر واجهة المستخدم أو إزعاج المستخدمين الذين يستخدمون شاشة اللمس استنادًا إلى الموقع الجغرافي. بالنسبة إلى أجهزة ChromeOS، تأكَّد من أنّ تطبيقك لا يعرض معلومات مهمة في منطقة شريط الحالة.
إذا كنت تستخدم الكاميرا أو ميزة أجهزة أخرى، مثل القلم، تأكَّد من أنّها تعمل بشكل صحيح عند إجراء تغييرات النافذة والجهاز الموضَّحة سابقًا.