Chromebook जैसे ChromeOS डिवाइसों पर, Google Play Store और Android ऐप्लिकेशन काम करते हैं. इस लेख में यह माना गया है कि आपके पास फ़ोन या टैबलेट के लिए डिज़ाइन किया गया कोई मौजूदा Android ऐप्लिकेशन है, जिसे आपको Chromebook के लिए ऑप्टिमाइज़ करना है. Android ऐप्लिकेशन बनाने की बुनियादी बातें जानने के लिए, अपना पहला Android ऐप्लिकेशन बनाएं लेख पढ़ें.
अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल अपडेट करना
शुरू करने के लिए, अपनी मेनिफ़ेस्ट फ़ाइल को अपडेट करें, ताकि Chromebook और Android पर चलने वाले अन्य डिवाइसों के बीच हार्डवेयर और सॉफ़्टवेयर के कुछ मुख्य अंतरों को ध्यान में रखा जा सके.
ChromeOS के M53 वर्शन के बाद, ऐसे सभी Android ऐप्लिकेशन, android.hardware.faketouch
सुविधा वाले ChromeOS डिवाइसों पर भी काम करते हैं जिनके लिए android.hardware.touchscreen
सुविधा की ज़रूरत नहीं होती. हालांकि, यह पक्का करने के लिए कि आपका ऐप्लिकेशन सभी ChromeOS डिवाइसों पर काम करे, अपनी मेनिफ़ेस्ट फ़ाइल को अपडेट करें, ताकि 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 वाले हैंडहेल्ड डिवाइसों में होते हैं. जैसे, जीपीएस और एक्सलरोमीटर. हालांकि, कुछ मामलों में सेंसर की सुविधा किसी दूसरे तरीके से दी जाती है. उदाहरण के लिए, हो सकता है कि Chromebook में जीपीएस सेंसर न हों, लेकिन वे वाई-फ़ाई कनेक्शन के आधार पर जगह की जानकारी का डेटा उपलब्ध कराते हों. Android प्लैटफ़ॉर्म पर काम करने वाले सेंसर के बारे में ज़्यादा जानने के लिए, सेंसर की खास जानकारी देखें.
अगर आपको अपने ऐप्लिकेशन को सेंसर की उपलब्धता के बावजूद Chromebook पर चलाना है, तो अपनी मेनिफ़ेस्ट फ़ाइल को अपडेट करें, ताकि किसी भी सेंसर की ज़रूरत न पड़े.
सॉफ़्टवेयर की कुछ सुविधाएं, Chromebook पर काम नहीं करतीं. उदाहरण के लिए, Chromebook पर कस्टम आईएमई, ऐप्लिकेशन विजेट, लाइव वॉलपेपर, और ऐप्लिकेशन लॉन्चर देने वाले ऐप्लिकेशन काम नहीं करते और उन्हें इंस्टॉल नहीं किया जा सकता. Chromebook पर काम न करने वाली सॉफ़्टवेयर सुविधाओं की पूरी सूची के लिए, काम न करने वाली सॉफ़्टवेयर सुविधाएं देखें.
टारगेट किया गया SDK टूल अपडेट करना
Android प्लैटफ़ॉर्म में किए गए सभी सुधारों का फ़ायदा पाने के लिए, अपने ऐप्लिकेशन के targetSdkVersion
एट्रिब्यूट को उपलब्ध सबसे नए एपीआई लेवल पर अपडेट करें. Android के अलग-अलग वर्शन में हुए सुधारों की समीक्षा करें.
नेटवर्क से जुड़ी ज़रूरी शर्तें देखना
Chromebook, Docker या LXC की तरह ही कंटेनर में पूरा Android OS चलाते हैं. इसका मतलब है कि Android के पास सिस्टम के LAN इंटरफ़ेस का सीधा ऐक्सेस नहीं है. इसके बजाय, IPv4 ट्रैफ़िक, नेटवर्क आईडी ट्रांसलेशन (NAT) की इंटरनल लेयर से गुज़रता है. साथ ही, IPv6 यूनीकास्ट ट्रैफ़िक को एक अतिरिक्त हॉप से रूट किया जाता है.
Android ऐप्लिकेशन से इंटरनेट पर जाने वाले यूनीकास्ट कनेक्शन, आम तौर पर वैसे ही काम करते हैं जैसे वे पहले काम करते थे. आम तौर पर, इनबाउंड कनेक्शन ब्लॉक होते हैं. Android से मल्टीकास्ट या ब्रॉडकास्ट पैकेट, फ़ायरवॉल के ज़रिए एलएएन पर फ़ॉरवर्ड नहीं किए जाते.
मल्टीकास्ट की पाबंदी के अपवाद के तौर पर, ChromeOS एक ऐसी सेवा चलाता है जो Android और LAN इंटरफ़ेस के बीच mDNS ट्रैफ़िक को फ़ॉरवर्ड करती है. इसलिए, LAN सेगमेंट पर मौजूद अन्य डिवाइसों को ढूंढने के लिए, स्टैंडर्ड नेटवर्क सेवा डिस्कवरी एपीआई का सुझाव दिया जाता है. एलएएन पर कोई डिवाइस ढूंढने के बाद, Android ऐप्लिकेशन उससे संपर्क करने के लिए, स्टैंडर्ड टीसीपी या यूडीपी यूनीकास्ट सॉकेट का इस्तेमाल कर सकता है.
Android से शुरू होने वाले आईपीवी4 कनेक्शन, ChromeOS होस्ट के आईपीवी4 पते का इस्तेमाल करते हैं. Android ऐप्लिकेशन, नेटवर्क इंटरफ़ेस को असाइन किया गया निजी IPv4 पता देखता है. Android से शुरू होने वाले IPv6 कनेक्शन, ChromeOS होस्ट से अलग पते का इस्तेमाल करते हैं. इसकी वजह यह है कि Android कंटेनर का एक खास सार्वजनिक IPv6 पता होता है.
क्लाउड और लोकल स्टोरेज का बेहतर तरीके से इस्तेमाल करना
Chromebook की मदद से, उपयोगकर्ता आसानी से एक डिवाइस से दूसरे डिवाइस पर माइग्रेट कर सकते हैं. अगर कोई उपयोगकर्ता किसी एक Chromebook का इस्तेमाल बंद करके किसी दूसरे का इस्तेमाल शुरू करता है, तो उसे सिर्फ़ साइन इन करना होगा. इसके बाद, उसके सभी ऐप्लिकेशन दिखने लगेंगे.
इस सुविधा की मदद से, अपने ऐप्लिकेशन के डेटा का बैक अप क्लाउड में लें, ताकि सभी डिवाइसों पर डेटा सिंक किया जा सके. हालांकि, अपने ऐप्लिकेशन को सामान्य रूप से काम करने के लिए, इंटरनेट कनेक्शन पर निर्भर न रहें. इसके बजाय, डिवाइस के ऑफ़लाइन होने पर उपयोगकर्ता के काम को लोकल स्टोरेज में सेव करें. साथ ही, डिवाइस के ऑनलाइन होने पर उसे क्लाउड से सिंक करें.
Chromebook डिवाइसों को कई लोगों के साथ भी शेयर किया जा सकता है. जैसे, स्कूलों में. डिवाइस का स्टोरेज सीमित होता है. इसलिए, किसी भी समय डिवाइस से खाते और उनका स्टोरेज हटाया जा सकता है. शिक्षा से जुड़ी सेटिंग के लिए, इस स्थिति को ध्यान में रखना अच्छा होता है.
अपने ऐप्लिकेशन के लिए नए टेस्ट केस बनाना
अपने ऐप्लिकेशन के लिए टेस्ट केस बनाने के लिए, सबसे पहले पक्का करें कि आपने सही मैनिफ़ेस्ट फ़्लैग तय किए हों. खास तौर पर, screenOrientation
को unspecified
पर सेट करें. अगर आपको लैंडस्केप ओरिएंटेशन तय करना है, तो sensorLandscape
का इस्तेमाल करें. इससे यह पक्का किया जा सकेगा कि टैबलेट पर विज्ञापन का अनुभव बेहतर हो.
अगर आपको डेस्कटॉप एनवायरमेंट के लिए साइज़ या ओरिएंटेशन की खास ज़रूरतें हैं, तो साइज़ या ओरिएंटेशन के सुझाव के तौर पर मेटा टैग जोड़ें. फ़ोन पर साइज़ और ओरिएंटेशन शामिल करने के लिए, लेआउट defaultHeight
,
defaultWidth
या minHeight
एट्रिब्यूट की वैल्यू सबमिट करें.
अगर आपको किसी खास डिवाइस कैटगरी के लिए, इनपुट डिवाइस को मैनेज करने का तरीका तय करना है, तो इनपुट के साथ काम करने वाले डिवाइस के मोड को बंद करने के लिए android.hardware.type.pc
डालें.
अगर किसी भी तरह के नेटवर्क का इस्तेमाल किया जा रहा है, तो पक्का करें कि कनेक्शन से जुड़ी समस्या ठीक होने या डिवाइस के स्लीप मोड से बाहर आने के बाद, ऐप्लिकेशन फिर से नेटवर्क से कनेक्ट हो जाए.
हमारा सुझाव है कि आप ChromeOS पर Android ऐप्लिकेशन के लिए टेस्ट केस की सूची देखें. इस सूची में दिए गए टेस्ट केस का इस्तेमाल, टेस्ट प्लान में किया जा सकता है. टेस्ट केस में सामान्य स्थितियां शामिल होती हैं. अगर Android ऐप्लिकेशन को ChromeOS डिवाइसों पर चलाना है, तो उन्हें इन स्थितियों के लिए तैयार किया जाना चाहिए.
मल्टी-विंडो और ओरिएंटेशन में बदलाव
ChromeOS के मल्टी-विंडो एनवायरमेंट की वजह से, स्टेटस बनाए रखने और उसे फिर से पाने से जुड़ी समस्याएं ज़्यादा साफ़ तौर पर दिख सकती हैं. ज़रूरत पड़ने पर, अपनी स्थिति को सेव और पहले जैसा करने के लिए, ViewModel
का इस्तेमाल करें.
ऐप्लिकेशन की स्थिति के सेव रहने की जांच करने के लिए, कुछ समय के लिए अपने ऐप्लिकेशन को छोटा करें. इसके बाद, ज़्यादा संसाधनों वाली कोई दूसरी प्रोसेस शुरू करें. इसके बाद, ऐप्लिकेशन को वापस लाकर पुष्टि करें कि वह उसी स्थिति में है जिसमें आपने उसे छोड़ा था.
फ़ुल स्क्रीन बटन (F4) दबाकर, विंडो के साइज़ में बदलाव करने की सुविधा की जांच करें. इसके बाद, विंडो को बड़ा करें और फिर पहले जैसा करें. फ़्री साइज़ बदलने की सुविधा की जांच करने के लिए, सबसे पहले डेवलपर के विकल्पों में जाकर इसे चालू करें. इसके बाद, देखें कि आपका ऐप्लिकेशन क्रैश किए बिना आसानी से साइज़ बदलता है या नहीं.
अगर आपके ChromeOS डिवाइस पर यह सुविधा काम करती है, तो लैपटॉप मोड से टैबलेट मोड पर स्विच करके देखें कि क्या सब कुछ उम्मीद के मुताबिक काम कर रहा है. टैबलेट मोड में डिवाइस को एक बार घुमाएं, ताकि स्क्रीन की दिशा में हुए बदलावों की जांच की जा सके. इसके बाद, डिवाइस को लैपटॉप मोड पर वापस ले जाएं. यह तरीका कुछ समय बाद फिर से आज़माएं.
पक्का करें कि टॉप बार, यूज़र इंटरफ़ेस (यूआई) एलिमेंट या जगह की जानकारी के आधार पर टच इनपुट को ऑफ़सेट करके, आपके ऐप्लिकेशन को काम नहीं कर रहा हो. ChromeOS डिवाइसों के लिए, पक्का करें कि आपका ऐप्लिकेशन, स्टेटस बार में ज़रूरी जानकारी न दिखाए.
अगर कैमरे या पेन जैसी किसी अन्य हार्डवेयर सुविधा का इस्तेमाल किया जा रहा है, तो पक्का करें कि वह पहले बताई गई विंडो और डिवाइस में बदलाव करते समय सही तरीके से काम करे.