ऐप्लिकेशन को Android 9 पर माइग्रेट करना

Android 9 (एपीआई लेवल 28) में ऐसी नई सुविधाएं और एपीआई मिलते हैं जो आपको अपने ऐप्लिकेशन का फ़ायदा मिल सकता है. साथ ही, इनके व्यवहार में हुए नए बदलावों को भी देखा जा सकता है. इस दस्तावेज़ में, माइग्रेट करने का तरीका बताया गया है Android 9 पर अपने ऐप्लिकेशन को अपडेट करने के लिए, ये दो मुख्य चरण हैं:

  1. यह पक्का करना कि Android 9 डिवाइस पर काम करता हो

    पुष्टि करें कि आपका मौजूदा ऐप्लिकेशन, प्लैटफ़ॉर्म के नए वर्शन पर पूरी तरह से काम करता हो. इस चरण में, न तो नए एपीआई का इस्तेमाल किया जाता है और न ही अपने ऐप्लिकेशन के targetSdkVersion को बदला जाता है, लेकिन मामूली बदलाव करना ज़रूरी हो सकता है.

  2. नए प्लैटफ़ॉर्म को टारगेट करना, Android 9 SDK टूल की मदद से कंपाइल करना, और Android 9 की सुविधाओं वाला ऐप्लिकेशन बनाएं

    जब आप इसकी नई सुविधाओं का लाभ लेने के लिए तैयार हों इस प्लैटफ़ॉर्म का इस्तेमाल करने के लिए, अपने targetSdkVersion को 28 पर अपडेट करें. साथ ही, पुष्टि करें कि ऐप्लिकेशन इस्तेमाल जारी रहे नए एपीआई का इस्तेमाल करना शुरू करें और फिर उम्मीद के मुताबिक काम करें.

Android 9 वर्शन पर चलने वाला डिवाइस तैयार करना

अगर आपके पास Content ID मैचिंग की सुविधा वाला डिवाइस है, तो मैन्युफ़ैक्चरर से, आपके डिवाइस के लिए Android 9 वाली सिस्टम इमेज; इसके लिए यहां क्लिक करें इसके लिए फ़ैक्ट्री इमेज Pixel डिवाइस. इसके लिए सामान्य निर्देश सिस्टम इमेज को फ़्लैश करने के लिए यहां दिए गए हैं.

Android Emulator के लिए, Android 9 वाले सिस्टम की इमेज भी डाउनलोड की जा सकती है. यह SDK Manager में Android API 28, Google API Intel x86 ऐटम सिस्टम इमेज के तौर पर सबमिट करें.

ध्यान दें: Android 9 एम्युलेटर सिस्टम इमेज को Android Studio 3.1 और इसके बाद के वर्शन; Android Studio 3.2 बेहतर तरीके से काम करता है. ज़्यादा जानकारी के लिए, Android 9 SDK टूल पाएं लेख पढ़ें.

पक्का करना कि गेम Android 9 पर काम करता हो

यहां मकसद यह पक्का करना है कि आपका मौजूदा ऐप्लिकेशन पहले की तरह काम करता रहे Android 9. प्लैटफ़ॉर्म में किए गए कुछ बदलावों से, आपके ऐप्लिकेशन के काम करने के तरीके पर असर पड़ सकता है. कुछ समायोजन आवश्यक हो सकते हैं, लेकिन आपको नए API का उपयोग करने की आवश्यकता नहीं है या अपना targetSdkVersion बदलें.

सिलसिलेवार तरीके से यह पक्का करना कि वह Android 9 पर काम करता हो

साथ काम करने से जुड़े आंकड़ों की जांच करें

ज़्यादातर मामलों में, Android 9 पर काम करने की सुविधा की जांच करना उसी तरह की टेस्टिंग को लागू करता है जो ऐप्लिकेशन को रिलीज़ करने की तैयारी करते समय की जाती है. यह ऐप्लिकेशन की क्वालिटी के लिए मुख्य दिशा-निर्देशों और टेस्टिंग के सबसे सही तरीके देखने का सही समय है.

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

टेबल 1. सभी ऐप्लिकेशन पर असर डालने वाले अहम बदलाव जो Android 9 डिवाइसों पर काम करते हैं.

बदलें खास जानकारी
बिना SDK टूल वाले इंटरफ़ेस पर लागू होने वाली पाबंदियां बिना SDK टूल के कुछ खास इंटरफ़ेस का ऐक्सेस ब्लॉक कर दिया गया है. भले ही, सीधे तौर पर इंटरफ़ेस का ऐक्सेस हो जेएनआई या मनोदशा के ज़रिए ऐसा किया जा सकता है. पाबंदी वाले इंटरफ़ेस को ऐक्सेस करने की कोशिश करने पर, इस तरह की गड़बड़ियां पैदा हो जाती हैं NoSuchFieldException और NoSuchMethodException. पाबंदियां देखें ज़्यादा जानकारी के लिए, को बिना SDK टूल वाले इंटरफ़ेस पर देखें.
क्रिप्टो करंसी की सेवा देने वाली कंपनी को हटाना Android 9 और इसके बाद के वर्शन में, क्रिप्टो जेसीए प्रोवाइडर को हटा दिया गया है. कॉल SecureRandom.getInstance("SHA1PRNG", "Crypto") की ओर NoSuchProviderException फेंक देगा.
ज़्यादा सख्त UTF-8 डिकोडर Android 9 में, Java भाषा के लिए UTF-8 डिकोडर ज़्यादा सख्त होता है और यूनिकोड मानक का पालन करता है.
कुछ समय से इस्तेमाल में न होने वाले ऐप्लिकेशन के लिए कैमरे, माइक्रोफ़ोन, और सेंसर का ऐक्सेस ब्लॉक कर दिया गया है जब ऐप्लिकेशन कुछ समय से इस्तेमाल में नहीं हैं, तब वे कैमरे, माइक्रोफ़ोन या सेंसर मैनेजर के सेंसर को ऐक्सेस नहीं कर सकते.

Android 9 पर चलने वाले सभी ऐप्लिकेशन के व्यवहार में होने वाले बदलावों की ज़्यादा जानकारी के लिए, व्यवहार में बदलाव दस्तावेज़ देखें.

अपना टारगेट वर्शन अपडेट करें और Android P की सुविधाएं इस्तेमाल करें

इस सेक्शन में, Android 9 के लिए पूरी सहायता पाने की सुविधा चालू करने का तरीका बताया गया है targetSdkVersion को 28 पर अपडेट करके इसमें Android 9 की नई सुविधाएं जोड़ी जा रही हैं.

आपको नए एपीआई उपलब्ध कराने के साथ-साथ, Android 9 में कुछ सुविधाएं भी दी गई हैं जब आप अपने targetSdkVersion को 28 में अपडेट करते हैं, तो वह बदलता है. व्यवहार में कुछ बदलाव होने की वजह से ऐप्लिकेशन क्रैश न हो, इसके लिए कोड में बदलाव करना पड़ सकता है. ऐसे में, आपको पहले यह समझना होगा कि ऐप्लिकेशन की परफ़ॉर्मेंस कैसी है Android 9 को टारगेट करने वाले ऐप्लिकेशन के काम करने के तरीके में हुए सभी बदलावों की समीक्षा करके, targetSdkVersion को बदलने पर इस बदलाव का असर होता है.

ध्यान दें: इन कामों को करने के लिए ऊपर बताया गया तरीका यह पक्का करें कि प्लैटफ़ॉर्म सही तरीके से काम कर रहा है हमारा सुझाव है कि आप सबसे पहले उन चरणों को पूरा कर लें.

टारगेट वर्शन को अपडेट करें और Android 9 की सुविधाओं को सिलसिलेवार तरीके से इस्तेमाल करें

Android 9 का SDK टूल डाउनलोड करें

Android 9 पर काम करने वाला ऐप्लिकेशन बनाने के लिए, SDK टूल के पैकेज पाएं Android Studio 3.1 या इसके बाद वाले वर्शन का इस्तेमाल करके. अगर आपको अभी Android 9 में नई सुविधाओं की ज़रूरत नहीं है और आपको सिर्फ़ उसे इस्तेमाल करना है तो Android Studio 3.1 का इस्तेमाल किया जा सकता है. Android Studio 3.2, Google Analytics 4 के Android 9 की सुविधाएं.

Android 9 ऐप्लिकेशन को टेस्ट करें

ऊपर बताई गई तैयारी के बाद, अपना ऐप्लिकेशन बनाएं और उसकी जांच करें ताकि यह पक्का किया जा सके कि Android 9 को टारगेट करने पर यह ठीक से काम करे (एपीआई लेवल 28). यह समीक्षा करने का एक और अच्छा समय है, मुख्य ऐप्लिकेशन क्वालिटी के लिए दिशा-निर्देश और सबसे बेहतर जांच के तरीके.

जब targetSdkVersion को P पर सेट करके अपना ऐप्लिकेशन बनाया जाता है, इसका पालन करने के लिए, आपको प्लैटफ़ॉर्म में कुछ खास बदलावों के बारे में जानकारी होनी चाहिए. कुछ इन बदलावों से आपके ऐप्लिकेशन के काम करने के तरीके या यहां तक कि अपने ऐप्लिकेशन को पूरी तरह से काम करना बंद कर दें, भले ही आप नए वर्शन को Android 9 की सुविधाओं के बारे में ज़्यादा जानें.

टेबल 2 में इन बदलावों की सूची दी गई है. साथ ही, ज़्यादा जानकारी देने वाले लिंक भी दिए गए हैं.

दूसरी टेबल. ऐप्लिकेशन पर असर डालने वाले मुख्य बदलाव जब targetSdkVersion को 28 पर सेट किया गया हो.

बदलें खास जानकारी
फ़ोरग्राउंड सेवा की अनुमति जो ऐप्लिकेशन फ़ोरग्राउंड सेवाओं का इस्तेमाल करना चाहते हैं उन्हें अब FOREGROUND_SERVICE अनुमति का अनुरोध करना होगा चुनें. यह एक सामान्य अनुमति है, इसलिए सिस्टम इसे अपने-आप अनुरोध करने वाले को दे देता है है. बिना अनुमति के फ़ोरग्राउंड सेवा चालू करने से Securityअपवाद आता है.
बाउंसी कैसल के साइफ़र बंद होना Android 9, बाउंसी कैसल प्रोवाइडर के कई साइफ़र का इस्तेमाल बंद कर देता है सेवा देने वाली कंपनी की ओर से उपलब्ध कराया गया है. getInstance() पर किए गए कॉल बाउंसी के लिए अनुरोध करो कैसल प्रोवाइडर NoSuchAlgorithmException गड़बड़ियां जनरेट करता है. गड़बड़ियों को ठीक करने के लिए, ये काम न करें getCOUNT() में प्रोवाइडर का नाम तय करें (इसका मतलब है कि लागू करने के डिफ़ॉल्ट तरीके का अनुरोध करें).
Build.serial का सीधा ऐक्सेस हटाया गया जिन ऐप्लिकेशन को Build.serial आइडेंटिफ़ायर की ज़रूरत होती है उन्हें अब READ_PHONE_STATE का अनुरोध करना होगा अनुमति दें और फिर Android 9 में जोड़े गए नए Build.getSerial() तरीके का इस्तेमाल करें.
वेबव्यू डेटा डायरेक्ट्री को शेयर करने की अनुमति नहीं है ऐप्लिकेशन, अब सभी प्रोसेस के बीच एक वेबव्यू डेटा डायरेक्ट्री शेयर नहीं कर पाएंगे. अगर आपके ऐप्लिकेशन में WebView, CookieManager या android.webkit में किसी अन्य एपीआई का इस्तेमाल करने वाली एक से ज़्यादा प्रोसेस पैकेज, दूसरी प्रक्रिया के वेबव्यू तरीके को कॉल करने पर आपका ऐप्लिकेशन क्रैश हो जाएगा.
ऐप्लिकेशन की डेटा डायरेक्ट्री का ऐक्सेस, SELinux से ब्लॉक किया गया सिस्टम हर ऐप्लिकेशन पर SELinux सैंडबॉक्स लागू करता है और हर ऐप्लिकेशन पर SELinux को लागू करता है निजी डेटा डायरेक्ट्री में स्टोर किया जा सकता है. पाथ से किसी दूसरे ऐप्लिकेशन की डेटा डायरेक्ट्री को सीधे ऐक्सेस करना अब अनुमति नहीं है. ऐप्लिकेशन, आईपीसी सिस्टम का इस्तेमाल करके, डेटा शेयर करना जारी रख सकते हैं. जैसे, एफ़डी.

Android 9 को टारगेट करने वाले ऐप्लिकेशन के व्यवहार में होने वाले बदलावों के बारे में ज़्यादा जानने के लिए, व्यवहार में होने वाले बदलाव वाला दस्तावेज़ देखें.

Android 9 में उपलब्ध नई सुविधाओं और एपीआई के बारे में जानने के लिए, यहां जाएं Android 9 की सुविधाएं और एपीआई.