ऐप्लिकेशन के लिए ChromeOS डिवाइस पर सहायता

Google Play Store का इस्तेमाल करके, कई Google Chromebook पर Android ऐप्लिकेशन इंस्टॉल किए जा सकते हैं. इस दस्तावेज़ में उन Chromebook, Chromebox, और Chromebase के बारे में बताया गया है जिन पर Android ऐप्लिकेशन इंस्टॉल किए जा सकते हैं.

खास जानकारी

ज़्यादातर Android फ़ोन में ARM चिपसेट होते हैं. हालांकि, कई ChromeOS डिवाइसों में x86 चिप का इस्तेमाल किया जाता है. Kotlin या Java में लिखे गए बुनियादी ऐप्लिकेशन के लिए, इस अंतर का कोई खास मतलब नहीं है. हालांकि, C/C++ कोड में लिखे गए ऐप्लिकेशन के लिए, डिवाइस में मौजूद चिपसेट एक अहम समस्या हो सकती है. इनमें गेम इंजन से बनाए गए ऐप्लिकेशन भी शामिल हैं.

आमतौर पर, C/C++ कोड वाले सभी ऐप्लिकेशन और गेम, Android के इन चार मुख्य एबीआई (ऐप्लिकेशन बाइनरी इंटरफ़ेस) के साथ शिप किए जाते हैं: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32), और x86_64. इससे हर डिवाइस के लिए सबसे अच्छी परफ़ॉर्मेंस मिलती है और बैटरी की खपत सबसे कम होती है. उदाहरण के लिए, cmake पर आधारित build.gradle फ़ाइल में यह शामिल हो सकता है:

Groovy

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) का साइज़

मोनोलिथिक APK में हर ABI से उसका साइज़ बढ़ जाता है. इससे उपयोगकर्ताओं के डिस्क इस्तेमाल, ऐप्लिकेशन के डाउनलोड साइज़, और Play Store के साइज़ की सीमाओं से ऐप्लिकेशन पर पड़ने वाले असर पर असर पड़ सकता है. इससे बचने का सबसे अच्छा तरीका है कि आप Android ऐप्लिकेशन बंडल का इस्तेमाल करें.

ऐप्लिकेशन बंडल की मदद से, Android Studio में मौजूद सभी चार एबीआई को बंडल किया जा सकता है. इससे, ऐप्लिकेशन डाउनलोड करने वाले लोगों के लिए, ऐप्लिकेशन का डाउनलोड साइज़ नहीं बढ़ता. इनसे आपको डाइनैमिक डिलीवरी का फ़ायदा पाने में भी मदद मिलती है. इसकी मदद से, उपयोगकर्ता गेम का बड़ा कॉन्टेंट सिर्फ़ तब डाउनलोड कर पाते हैं, जब वे ऐसा करने का अनुरोध करते हैं. अगर आपके लिए ऐप्लिकेशन बंडल का इस्तेमाल करना मुमकिन नहीं है, तो इसी तरह के व्यवहार के लिए, एक से ज़्यादा APK वाले पुराने कॉन्फ़िगरेशन का इस्तेमाल किया जा सकता है.

32-बिट और 64-बिट वर्शन

सभी Android ऐप्लिकेशन के लिए, 64-बिट बिल्ड वर्शन उपलब्ध कराना ज़रूरी है. ARM और x86, दोनों तरह के डिवाइसों के लिए 32-बिट बिल्ड बनाना ज़रूरी नहीं है. ज़्यादा जानकारी के लिए, Android 64-bit⁠ देखें.

सिर्फ़ 64-बिट बिल्ड उपलब्ध कराने से, ज़रूरी बिल्ड टारगेट की संख्या और टेस्टिंग की ज़रूरत कम हो जाती है. हालांकि, इससे उन डिवाइसों की संख्या भी कम हो जाती है जिन पर आपका गेम चल सकता है. उदाहरण के लिए, हार्डवेयर से जुड़ी अन्य सीमाओं की वजह से, कई पुराने Chromebook पर सिर्फ़ 32-बिट वाले Android ऐप्लिकेशन चल सकते हैं. भले ही, उनमें 64-बिट वाले सीपीयू मौजूद हों. यह पक्का करने के लिए कि आपका ऐप्लिकेशन इन डिवाइसों पर काम करे, उसमें 32 और 64-बिट, दोनों की सुविधा शामिल करें.

ARM अनुवाद

x86 Chromebook, जब भी हो सके ARM कोड का अनुवाद करने की कोशिश करते हैं. हालांकि, अनुवाद करने से परफ़ॉर्मेंस धीमी हो जाती है और बैटरी का इस्तेमाल बढ़ जाता है. उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, x86 बिल्ड उपलब्ध कराएं. अगर ऐसा नहीं किया जा सकता, तो अपने बिल्ड में arm32 और arm64, दोनों एबीआई शामिल करें. ऐसा इसलिए, क्योंकि कुछ x86 Chromebook, arm64 कोड का अनुवाद नहीं कर पाते. उदाहरण के लिए, हार्डवेयर से जुड़ी अन्य सीमाओं की वजह से, कई पुराने Chromebook में सिर्फ़ 32-बिट वाले Android ऐप्लिकेशन चल सकते हैं. भले ही, उनमें 64-बिट वाले सीपीयू हों. इन डिवाइसों पर आपका ऐप्लिकेशन चलाने के लिए, 32 और 64-बिट, दोनों वर्शन शामिल करें.

arm32 का अनुवाद करने की सुविधा, Android ऐप्लिकेशन इस्तेमाल करने की सुविधा वाले सभी Chromebook पर उपलब्ध है. हालांकि, सभी Chromebook, arm64 कोड का अनुवाद नहीं कर सकते. इसका मतलब है कि अगर आपके गेम में सिर्फ़ arm64 बिल्ड टारगेट हैं, तो यह ChromeOS वाले ज़्यादातर डिवाइसों पर उपलब्ध नहीं होगा. अगर x86 बाइनरी शिप नहीं की जा सकती हैं, तो अपनी बिल्ड में arm32 और arm64, दोनों एबीआइ शामिल करें.

शामिल किए गए एबीआई ChromeOS के लिए सहायता
arm64 खराब
arm32 और arm64 ठीक है (अनुवाद के साथ)
arm32, arm64, x86_32, और x86_64 सर्वश्रेष्ठ