תמיכה באפליקציות במכשירי ChromeOS

אפשר להשתמש בחנות Google Play כדי להתקין אפליקציות ל-Android בכמה אפליקציות של Google מכשירי Chromebook. במסמך זה מתוארים מכשירי Chromebook , Chromebox מכשירי Chromebase שבהם אפשר להתקין אפליקציות ל-Android.

סקירה כללית

רוב הטלפונים עם Android כוללים ערכות שבבים של ARM. עם זאת, במכשירי ChromeOS רבים משתמשים בצ'יפים של x86. ההבדל לא חשוב באפליקציות בסיסיות שנכתבו ב-Kotlin או ב-Java. עם זאת, לאפליקציות שנכתבו בקוד נייטיב, כולל אלה שנוצרו באמצעות משחק ערכת השבבים במכשיר יכולה להוות חשש חשוב.

באופן אידיאלי, כל האפליקציות והמשחקים עם קוד נייטיב נשלחים אל כל ארבע מערכות ה-Android המובילות ABI (ממשקים בינאריים של אפליקציות): Armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) ו-x86_64. כך מתקבלים הביצועים הטובים ביותר ואת צריכת הסוללה הנמוכה ביותר לכל מכשיר. לדוגמה, build.gradle שמבוססת על cmake עשוי להכיל:

מגניב

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

Kotlin

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

גודל של Android Package Kit (APK)

כל ממשק ABI ב-APK מונוליתי מגדיל את הגודל שלו. המצב הזה יכול להשפיע על השימוש של המשתמשים בכונן, גודל ההורדה של האפליקציה והאם האפליקציה מושפעת בהתאם למגבלות הגודל של חנות Play. הדרך הטובה ביותר להימנע מכך היא להשתמש קובצי Android App Bundle.

קובצי App Bundle מאפשרים לכם לאגד בקלות את כל ארבעת ממשקי ה-ABI מתוך Android Studio, בלי להגדיל גודל ההורדה עבור המשתמשים שלך. הם גם מאפשרים לנצל בקלות את היתרונות של Dynamic Delivery, מאפשרות למשתמשים להוריד תוכן של משחקים גדולים רק כשנשלחת בקשה לכך. אם אי אפשר להשתמש בקובצי App Bundle בשבילך, אפשר להשתמש בגרסה הישנה יותר של APK מרובה עבור התנהגות דומה.

גרסאות build ב-32 ביט וב-64 ביט

כל האפליקציות ל-Android צריכות לספק גרסת build של 64 ביט. גרסת ה-build של 32 ביט היא אופציונלית ל-ARM ול- מכשירי x86. לצפייה ב-Android בגרסת 64 סיביות תיעוד למידע נוסף.

אומנם יצירה של גרסאות build ב-64 ביט בלבד מפחיתה את מספר יעדי ה-build שנדרשים הוא גם מגביל את סוגי המכשירים שבהם אפשר לשחק במשחק. עבור לדוגמה, בגלל מגבלות חומרה אחרות, הרבה מכשירי Chromebook ישנים יכולים להריץ רק Android בגרסת 32 ביט למרות שיש להם מעבדים של 64 ביט. כדי להבטיח שהאפליקציה תוכל לפעול במכשירים האלה, צריך לכלול תמיכה ב-32 סיביות וגם ב-64 סיביות.

תרגום ARM

מכשירי Chromebook מדגם x86 מנסים לתרגם קוד ARM כשהדבר אפשרי, אבל התרגום מאט את הביצועים ומגדיל את השימוש בסוללה. למשתמש הטוב ביותר לספק גרסאות build מסוג x86. אם לא ניתן, צריך לכלול את ממשקי ה-ABI של Arm32 ושל arm64 את גרסאות ה-build שלך, כי יכול להיות שבחלק ממכשירי Chromebook בגרסת x86 לא יתורגמו קוד Arm64.

למרות שתרגום Arm32 זמין בכל מכשירי Chromebook עם Android, לא בכל מכשירי Chromebook. הוא יכול לתרגם קוד Arm64. זה אומר שאם במשחק שלכם יש רק יעדי build מסוג Arm64, היא לא זמינה למספר גדול של מכשירי ChromeOS. אם אין לכם אפשרות לשלוח קבצים בינאריים מסוג x86, כוללים את ממשקי ה-ABI של Arm32 וגם של arm64 בגרסאות ה-build שלכם.

ממשקי ABI כלולים תמיכה ב-ChromeOS
Arm64 גרועה
Arm32 ו-arm64 בסדר (עם תרגום)
Arm32, arm64, x86_32 ו-x86_64 הכי טוב