پشتیبانی دستگاه ChromeOS برای برنامه ها

شما می‌توانید از فروشگاه گوگل پلی برای نصب برنامه‌های اندروید روی چندین کروم‌بوک گوگل استفاده کنید. این سند، کروم‌بوک‌ها، کروم‌باکس‌ها و کروم‌بیس‌هایی را که می‌توانید روی آنها برنامه‌های اندروید نصب کنید، شرح می‌دهد.

نمای کلی

بیشتر گوشی‌های اندروید دارای چیپست‌های ARM هستند. با این حال، بسیاری از دستگاه‌های ChromeOS از چیپست‌های x86 استفاده می‌کنند. این تفاوت برای برنامه‌های ساده‌ای که با Kotlin یا Java نوشته شده‌اند، مهم نیست. با این حال، برای برنامه‌هایی که با کد C/C++ نوشته شده‌اند، از جمله برنامه‌هایی که با موتورهای بازی ساخته شده‌اند، چیپست دستگاه می‌تواند یک نگرانی مهم باشد.

در حالت ایده‌آل، تمام برنامه‌ها و بازی‌هایی که با کد C/C++ نوشته شده‌اند، با هر چهار 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'
    }
}

کاتلین

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

اندازه بسته نرم‌افزاری اندروید (APK)

هر ABI در یک APK یکپارچه، اندازه خود را افزایش می‌دهد. این می‌تواند بر میزان استفاده کاربران از دیسک، حجم دانلود برنامه و اینکه آیا برنامه تحت تأثیر محدودیت‌های حجم فروشگاه Play قرار می‌گیرد یا خیر، تأثیر بگذارد. بهترین راه برای جلوگیری از این امر، استفاده از Android App Bundles است.

App Bundles به شما این امکان را می‌دهد که هر چهار ABI را از داخل اندروید استودیو بدون افزایش حجم دانلود برای کاربرانتان، بسته‌بندی کنید. آن‌ها همچنین به شما کمک می‌کنند تا از Dynamic Delivery بهره‌مند شوید و به کاربران اجازه دهید محتوای بازی حجیم را فقط در صورت درخواست دانلود کنند. اگر App Bundles برای شما امکان‌پذیر نیست، می‌توانید از multi-APK قدیمی‌تر برای رفتار مشابه استفاده کنید.

نسخه‌های ۳۲ بیتی و ۶۴ بیتی

همه برنامه‌های اندروید باید نسخه ۶۴ بیتی ارائه دهند. نسخه ۳۲ بیتی برای دستگاه‌های ARM و x86 اختیاری است. برای اطلاعات بیشتر به بخش اندروید ۶۴ بیتی مراجعه کنید.

اگرچه ارائه فقط نسخه‌های ۶۴ بیتی تعداد اهداف ساخت مورد نیاز و سطح آزمایش شما را کاهش می‌دهد، اما انواع دستگاه‌هایی را که می‌توانند بازی شما را اجرا کنند نیز محدود می‌کند. به عنوان مثال، به دلیل محدودیت‌های سخت‌افزاری دیگر، بسیاری از کروم‌بوک‌های قدیمی‌تر، با وجود داشتن پردازنده‌های ۶۴ بیتی، فقط می‌توانند برنامه‌های اندروید ۳۲ بیتی را اجرا کنند. برای اطمینان از اینکه برنامه شما می‌تواند روی این دستگاه‌ها اجرا شود، پشتیبانی از هر دو نسخه ۳۲ و ۶۴ بیتی را در نظر بگیرید.

ترجمه ARM

کروم‌بوک‌های x86 سعی می‌کنند تا حد امکان کد ARM را ترجمه کنند، اما ترجمه باعث کند شدن عملکرد و افزایش مصرف باتری می‌شود. برای بهترین تجربه کاربری، نسخه‌های x86 را ارائه دهید. اگر نمی‌توانید، ABI های arm32 و arm64 را در نسخه‌های خود بگنجانید، زیرا برخی از کروم‌بوک‌های x86 ممکن است کد arm64 را ترجمه نکنند. به عنوان مثال، به دلیل محدودیت‌های سخت‌افزاری دیگر، بسیاری از کروم‌بوک‌های قدیمی‌تر با وجود داشتن پردازنده‌های ۶۴ بیتی، فقط می‌توانند برنامه‌های اندروید ۳۲ بیتی را اجرا کنند. برای کمک به اجرای برنامه خود در این دستگاه‌ها، پشتیبانی از ۳۲ و ۶۴ بیتی را در نظر بگیرید.

اگرچه ترجمه arm32 در همه کروم‌بوک‌های سازگار با اندروید موجود است، اما همه کروم‌بوک‌ها نمی‌توانند کد arm64 را ترجمه کنند. این بدان معناست که اگر بازی شما فقط اهداف ساخت arm64 را دارد، برای تعداد زیادی از دستگاه‌های ChromeOS در دسترس نیست. اگر نمی‌توانید فایل‌های باینری x86 را ارسال کنید، ABI های arm32 و arm64 را در ساخت‌های خود لحاظ کنید.

شامل ABI ها پشتیبانی از سیستم عامل کروم
بازوی64 ضعیف
arm32 و arm64 باشه (با ترجمه)
arm32، arm64، x86_32 و x86_64 بهترین