توافق التطبيقات مع أجهزة ChromeOS

يمكنك استخدام "متجر Google Play" لتثبيت تطبيقات Android على العديد من أجهزة Google Chromebook. يوضّح هذا المستند أجهزة Chromebook وChromebox وChromebase التي يمكنك تثبيت تطبيقات Android عليها.

نظرة عامة

تتضمّن معظم هواتف Android شرائح ARM. ومع ذلك، تستخدم العديد من أجهزة ChromeOS شرائح x86. ولا يهم هذا الاختلاف في التطبيقات الأساسية المكتوبة بلغة Kotlin أو Java. ومع ذلك، بالنسبة إلى التطبيقات المكتوبة بلغة C/C++، بما في ذلك التطبيقات التي تم إنشاؤها باستخدام محركات الألعاب، يمكن أن تكون مجموعة الشرائح في الجهاز مصدر قلق مهم.

من المفترض أن تتضمّن جميع التطبيقات والألعاب التي تتضمّن رموز C/C++ البرمجية جميع واجهات التطبيق الثنائية (ABI) الرئيسية الأربعة لنظام التشغيل Android، وهي: armeabi-v7a (arm32) وarm64-v8a (arm64) وx86 (x86_32) وx86_64. ويوفّر ذلك أفضل أداء وأقل استهلاك للبطارية لكل جهاز. على سبيل المثال، قد يحتوي ملف build.gradle مستند إلى CMake على ما يلي:

Groovy

externalNativeBuild {
    cmake {
        abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    }
}

Kotlin

externalNativeBuild {
    cmake {
        abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
    }
}

حجم حزمة تطبيق Android ‏ (APK)

يؤدي كل واجهة ABI في حزمة APK شاملة إلى زيادة حجمها. ويمكن أن يؤثر ذلك في مساحة التخزين التي يستخدمها المستخدمون على القرص، وحجم تنزيل التطبيق، وما إذا كان التطبيق يتأثر بحدود الحجم في "متجر Play". وأفضل طريقة لتجنُّب ذلك هي استخدام حِزم Android App Bundle.

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

الإصداران 32 بت و64 بت

يجب أن توفّر جميع تطبيقات Android إصدارًا متوافقًا مع نظام 64 بت. إنّ الإصدار 32 بت اختياري لكل من أجهزة ARM وx86. لمزيد من المعلومات، يُرجى الاطّلاع على نظام التشغيل Android المتوافق مع 64 بت⁠.

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

ترجمة ARM

تحاول أجهزة Chromebook التي تعمل بنظام التشغيل x86 ترجمة رمز ARM كلما أمكن ذلك، ولكن الترجمة تبطئ الأداء وتزيد من استهلاك البطارية. لتقديم أفضل تجربة للمستخدم، يجب توفير إصدارات x86. إذا لم يكن ذلك ممكنًا، عليك تضمين كل من واجهات التطبيق الثنائية arm32 وarm64 في إصداراتك، لأنّ بعض أجهزة Chromebook التي تستخدم بنية x86 قد لا تتمكّن من ترجمة رمز arm64. على سبيل المثال، بسبب القيود الأخرى على الأجهزة، لا يمكن للعديد من أجهزة Chromebook القديمة تشغيل تطبيقات Android إلا بإصدار 32 بت، على الرغم من أنّها تتضمّن وحدات معالجة مركزية 64 بت. وللمساعدة في تشغيل تطبيقك على هذه الأجهزة، يجب توفير إمكانية استخدامه بالإصدارين 32 بت و64 بت.

على الرغم من أنّ ترجمة arm32 متاحة على جميع أجهزة Chromebook المتوافقة مع Android، لا يمكن لجميع أجهزة Chromebook ترجمة رمز arm64. وهذا يعني أنّه إذا كانت لعبتك تتضمّن فقط استهدافات إصدار arm64، لن تكون متاحة لعدد كبير من أجهزة ChromeOS. إذا تعذّر عليك إرسال ملفات x86 الثنائية، عليك تضمين كل من واجهات التطبيق الثنائية arm32 وarm64 في إصداراتك.

واجهات ABI المضمّنة التوافق مع ChromeOS
arm64 سيئة
arm32 وarm64 حسنًا (مع الترجمة)
arm32 وarm64 وx86_32 وx86_64 الأفضل