تتوافق أجهزة 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 إلى شبكة المنطقة المحلية (LAN) من خلال جدار الحماية.
كاستثناء على قيود البث المتعدد، يشغّل ChromeOS خدمة تعيد توجيه عدد زيارات mDNS بين Android وواجهة شبكة LAN، لذا فإنّ واجهات برمجة التطبيقات العادية لاكتشاف الخدمات على الشبكة هي الطريقة المقترَحة لاكتشاف الأجهزة الأخرى على جزء شبكة LAN. بعد العثور على جهاز على شبكة 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 لإيقاف وضع التوافق مع أجهزة الإدخال.
إذا كنت تستخدم أي نوع من الشبكات، تأكَّد من أنّ التطبيق يمكنه إعادة الاتصال بالشبكة بعد حلّ مشكلة في الاتصال أو بعد أن يستأنف الجهاز العمل من وضع السكون.
ننصحك بالاطّلاع على قائمة حالات الاختبار لتطبيقات Android على نظام التشغيل Chrome، التي يمكنك استخدامها في خطة الاختبار. تتضمّن حالات الاختبار سيناريوهات شائعة يجب أن تكون تطبيقات Android جاهزة لها إذا كان من المتوقّع أن تعمل على أجهزة ChromeOS.
النوافذ المتعدّدة وتغييرات اتجاه الشاشة
يمكن أن تجعل بيئة النوافذ المتعددة في ChromeOS مشاكل الاحتفاظ بالحالة واسترجاعها أكثر وضوحًا. استخدِم ViewModel لحفظ حالتك واستعادتها عند
اللزوم.
لاختبار استمرار الحالة، يمكنك تصغير تطبيقك لبعض الوقت، وبدء عملية أخرى تتطلّب الكثير من الموارد، ثم استعادة تطبيقك للتأكّد من أنّه يعود إلى الحالة التي تركته فيها.
اختبِر تغيير حجم النافذة من خلال الضغط على مفتاح ملء الشاشة (F4) وتكبير النافذة وتصغيرها. لاختبار ميزة تغيير الحجم بدون قيود، عليك أولاً تفعيلها في خيارات المطوّرين، ثم التأكّد من أنّ تطبيقك يغيّر حجمه بسلاسة بدون أن يتعطّل.
إذا كان جهاز ChromeOS يتيح ذلك، يمكنك التبديل من وضع الكمبيوتر المحمول إلى وضع الجهاز اللوحي للتحقّق مما إذا كان كل شيء يعمل على النحو المتوقّع. دوِّر الجهاز مرة واحدة في وضع الجهاز اللوحي لاختبار تغييرات الاتجاه، ثم انتقِل مرة أخرى إلى وضع الكمبيوتر المحمول. كرِّر هذه الخطوة بضع مرات.
تأكَّد من أنّ الشريط العلوي لا يتسبّب في حدوث مشاكل في تطبيقك من خلال إزاحة عناصر واجهة المستخدم أو إدخال اللمس المستند إلى الموقع الجغرافي. بالنسبة إلى أجهزة ChromeOS، تأكَّد من أنّ تطبيقك لا يضع معلومات مهمة في منطقة شريط الحالة.
إذا كنت تستخدم الكاميرا أو ميزة أخرى من ميزات الجهاز، مثل القلم، تأكَّد من أنّها تعمل بشكل سليم عند إجراء التغييرات على النافذة والجهاز الموضّحة سابقًا.