Android 9 (एपीआई लेवल 28) में ऐसी नई सुविधाएं और एपीआई मिलते हैं जो आपको अपने ऐप्लिकेशन का फ़ायदा मिल सकता है. साथ ही, इनके व्यवहार में हुए नए बदलावों को भी देखा जा सकता है. इस दस्तावेज़ में, माइग्रेट करने का तरीका बताया गया है Android 9 पर अपने ऐप्लिकेशन को अपडेट करने के लिए, ये दो मुख्य चरण हैं:
- यह पक्का करना कि Android 9 डिवाइस पर काम करता हो
पुष्टि करें कि आपका मौजूदा ऐप्लिकेशन, प्लैटफ़ॉर्म के नए वर्शन पर पूरी तरह से काम करता हो. इस चरण में, न तो नए एपीआई का इस्तेमाल किया जाता है और न ही अपने ऐप्लिकेशन के
targetSdkVersion
को बदला जाता है, लेकिन मामूली बदलाव करना ज़रूरी हो सकता है. - नए प्लैटफ़ॉर्म को टारगेट करना, Android 9 SDK टूल की मदद से कंपाइल करना, और
Android 9 की सुविधाओं वाला ऐप्लिकेशन बनाएं
जब आप प्लैटफ़ॉर्म की नई सुविधाओं का फ़ायदा लेना चाहें, तो
targetSdkVersion
को28
पर अपडेट करें. साथ ही, यह पुष्टि करें कि ऐप्लिकेशन पहले की तरह ही काम कर रहा है. इसके बाद, नए एपीआई का इस्तेमाल शुरू करें.
Android 9 पर चलने वाले डिवाइस को तैयार करना
अगर आपके पास Content ID मैचिंग की सुविधा वाला डिवाइस है, तो मैन्युफ़ैक्चरर से, आपके डिवाइस के लिए Android 9 वाली सिस्टम इमेज; इसके लिए यहां क्लिक करें इसके लिए फ़ैक्ट्री इमेज Pixel डिवाइस. सिस्टम इमेज को फ़्लैश करने के सामान्य निर्देश यहां दिए गए हैं.
Android Emulator के लिए, Android 9 वाले सिस्टम की इमेज भी डाउनलोड की जा सकती है. यह SDK मैनेजर में, Android API 28 के नीचे Google APIs Intel x86 Atom सिस्टम इमेज के तौर पर दिखता है.
ध्यान दें: Android 9 एमुलेटर सिस्टम इमेज, Android Studio 3.1 और इसके बाद के वर्शन में डाउनलोड करने के लिए उपलब्ध है. Android Studio 3.2, ज़्यादा से ज़्यादा डिवाइसों के साथ काम करता है. ज़्यादा जानकारी के लिए, Android 9 SDK टूल पाना लेख पढ़ें.
पक्का करना कि गेम Android 9 पर काम करता हो
इसका मकसद यह पक्का करना है कि आपका मौजूदा ऐप्लिकेशन, Android 9 पर पहले की तरह ही काम करे. प्लैटफ़ॉर्म में किए गए कुछ बदलावों से, आपके ऐप्लिकेशन के काम करने के तरीके पर असर पड़ सकता है.
कुछ समायोजन आवश्यक हो सकते हैं, लेकिन आपको नए API का उपयोग करने की आवश्यकता नहीं है या
अपना targetSdkVersion
बदलें.
डिवाइस के साथ काम करने की जांच करना
ज़्यादातर मामलों में, Android 9 के साथ काम करने की जांच करने के लिए, वही तरीका अपनाया जाता है जो ऐप्लिकेशन को रिलीज़ करने से पहले अपनाया जाता है. इसलिए, ऐप्लिकेशन की क्वालिटी से जुड़े मुख्य दिशा-निर्देश और जांच करने के सबसे सही तरीके देखें.
हालांकि, टेस्टिंग का एक और पहलू है: Android 9 वर्शन में, Android वर्शन में किए गए बदलाव
ऐसा प्लैटफ़ॉर्म जो आपके ऐप्लिकेशन के काम करने के तरीके पर असर डाल सकता है या ऐप्लिकेशन को पूरी तरह से बंद कर सकता है. भले ही, आपने उसमें कोई बदलाव न किया हो
आपका targetSdkVersion
. इस वजह से, यह ज़रूरी है कि आप मुख्य बदलावों की समीक्षा करें
टेबल 1 में उन सुधारों की जांच करें जिन्हें आपने बदलावों को शामिल करने के लिए लागू किया है.
टेबल 1. सभी ऐप्लिकेशन पर असर डालने वाले अहम बदलाव जो Android 9 डिवाइसों पर काम करते हैं.
बदलें | खास जानकारी |
---|---|
बिना SDK टूल वाले इंटरफ़ेस पर लागू होने वाली पाबंदियां |
बिना SDK टूल के कुछ खास इंटरफ़ेस का ऐक्सेस ब्लॉक कर दिया गया है. भले ही, सीधे तौर पर इंटरफ़ेस का ऐक्सेस हो
जेएनआई या मनोदशा के ज़रिए ऐसा किया जा सकता है. पाबंदी वाले इंटरफ़ेस को ऐक्सेस करने की कोशिश करने पर, इस तरह की गड़बड़ियां पैदा हो जाती हैं
NoSuchFieldException और NoSuchMethodException .
पाबंदियां देखें
ज़्यादा जानकारी के लिए, को बिना SDK टूल वाले इंटरफ़ेस पर देखें.
|
क्रिप्टो सेवा देने वाली कंपनी को हटाना |
Android 9 और इसके बाद के वर्शन में, Crypto JCA प्रोवाइडर को हटा दिया गया है. कॉल
SecureRandom.getInstance("SHA1PRNG", "Crypto") की ओर
NoSuchProviderException फेंक देगा.
|
ज़्यादा सख्त UTF-8 डिकोडर | Android 9 में, Java भाषा के लिए UTF-8 डिकोडर ज़्यादा सख्त है और यूनिकोड स्टैंडर्ड का पालन करता है. |
इस्तेमाल में न होने वाले ऐप्लिकेशन के लिए, कैमरे, माइक्रोफ़ोन, और सेंसर का ऐक्सेस ब्लॉक किया गया | जब ऐप्लिकेशन कुछ समय से इस्तेमाल में नहीं हैं, तब वे कैमरे, माइक्रोफ़ोन या सेंसर मैनेजर के सेंसर को ऐक्सेस नहीं कर सकते. |
Android 9 पर चलने वाले सभी ऐप्लिकेशन के व्यवहार में होने वाले बदलावों की ज़्यादा जानकारी के लिए, व्यवहार में बदलाव दस्तावेज़ देखें.
टारगेट किया गया वर्शन अपडेट करना और Android P की सुविधाओं का इस्तेमाल करना
इस सेक्शन में, targetSdkVersion
को 28 पर अपडेट करके और Android 9 में उपलब्ध नई सुविधाएं जोड़कर, Android 9 के लिए पूरी तरह से काम करने की सुविधा चालू करने का तरीका बताया गया है.
आपको नए एपीआई उपलब्ध कराने के साथ-साथ, Android 9 में कुछ सुविधाएं भी दी गई हैं
जब आप अपने targetSdkVersion
को 28 में अपडेट करते हैं, तो वह बदलता है. Android 9 को टारगेट करने वाले ऐप्लिकेशन के व्यवहार में हुए सभी बदलावों की समीक्षा करके, आपको यह समझना चाहिए कि targetSdkVersion
को बदलने पर आपके ऐप्लिकेशन पर क्या असर पड़ सकता है. ऐसा इसलिए, क्योंकि व्यवहार में हुए कुछ बदलावों की वजह से, ऐप्लिकेशन के काम करने में रुकावट आ सकती है.
ध्यान दें: इन कामों को करने के लिए ऊपर बताया गया तरीका यह पक्का करें कि प्लैटफ़ॉर्म सही तरीके से काम कर रहा है हमारा सुझाव है कि आप सबसे पहले उन चरणों को पूरा करें.
Android 9 का SDK टूल डाउनलोड करें
Android 9 पर काम करने वाला ऐप्लिकेशन बनाने के लिए, SDK टूल के पैकेज पाएं Android Studio 3.1 या इसके बाद वाले वर्शन का इस्तेमाल करके. अगर आपको अभी Android 9 की नई सुविधाओं की ज़रूरत नहीं है और आपको सिर्फ़ प्लैटफ़ॉर्म के उस वर्शन के लिए कंपाइल करना है, तो Android Studio 3.1 का इस्तेमाल करें. Android Studio 3.2, Android 9 की सुविधाओं के लिए पूरी तरह से काम करता है.
Android 9 के लिए बनाए गए ऐप्लिकेशन की जांच करना
ऊपर बताई गई तैयारियां पूरी करने के बाद, अपना ऐप्लिकेशन बनाएं और फिर उसका टेस्ट करें. इससे यह पक्का किया जा सकेगा कि Android 9 (एपीआई लेवल 28) को टारगेट करते समय, ऐप्लिकेशन ठीक से काम कर रहा है या नहीं. यह समीक्षा करने का एक और अच्छा समय है, मुख्य ऐप्लिकेशन क्वालिटी के लिए दिशा-निर्देश और सबसे बेहतर जांच के तरीके.
targetSdkVersion
को P पर सेट करके ऐप्लिकेशन बनाने पर, आपको प्लैटफ़ॉर्म में हुए कुछ खास बदलावों के बारे में पता होना चाहिए. कुछ
इन बदलावों से आपके ऐप्लिकेशन के काम करने के तरीके या यहां तक कि
अपने ऐप्लिकेशन को पूरी तरह से काम करना बंद कर दें, भले ही आप नए वर्शन को
Android 9 की सुविधाओं के बारे में ज़्यादा जानें.
टेबल 2 में इन बदलावों की सूची दी गई है. साथ ही, ज़्यादा जानकारी देने वाले लिंक भी दिए गए हैं.
दूसरी टेबल. targetSdkVersion
को 28 पर सेट करने पर, ऐप्लिकेशन पर असर डालने वाले अहम बदलाव.
बदलें | खास जानकारी |
---|---|
फ़ोरग्राउंड सेवा से जुड़ी अनुमति | फ़ोरग्राउंड सेवाओं का इस्तेमाल करने वाले ऐप्लिकेशन को अब सबसे पहले FOREGROUND_SERVICE की अनुमति का अनुरोध करना होगा. यह एक सामान्य अनुमति है. इसलिए, सिस्टम इसे अनुरोध करने वाले ऐप्लिकेशन को अपने-आप दे देता है. अनुमति के बिना फ़ोरग्राउंड सेवा शुरू करने पर, SecurityException का मैसेज दिखता है. |
Bouncy Castle सिफर का इस्तेमाल बंद करना |
Android 9, बाउंसी कैसल प्रोवाइडर के कई साइफ़र का इस्तेमाल बंद कर देता है
सेवा देने वाली कंपनी की ओर से उपलब्ध कराया गया है. getInstance() पर किए गए कॉल
बाउंसी के लिए अनुरोध करो
कैसल प्रोवाइडर NoSuchAlgorithmException गड़बड़ियां जनरेट करता है. गड़बड़ियों को ठीक करने के लिए, ये काम न करें
getइंस्टेंस() में कंपनी के बारे में बताएं (यानी, डिफ़ॉल्ट रूप से लागू करने का अनुरोध करें).
|
Build.serial का सीधा ऐक्सेस हटाना
|
जिन ऐप्लिकेशन को Build.serial आइडेंटिफ़ायर की ज़रूरत है उन्हें अब READ_PHONE_STATE
अनुमति का अनुरोध करना होगा. इसके बाद, Android 9 में जोड़े गए नए Build.getSerial() तरीके का इस्तेमाल करना होगा.
|
वेबव्यू की डेटा डायरेक्ट्री शेयर करने की अनुमति नहीं है | ऐप्लिकेशन अब सभी प्रोसेस के लिए, एक वेबव्यू डेटा डायरेक्ट्री शेयर नहीं कर सकते. अगर आपके ऐप्लिकेशन में android.webkit पैकेज में WebView, CookieManager या किसी अन्य एपीआई का इस्तेमाल करने वाली एक से ज़्यादा प्रोसेस हैं, तो दूसरी प्रोसेस के WebView के किसी तरीके को कॉल करने पर आपका ऐप्लिकेशन क्रैश हो जाएगा. |
SELinux की वजह से, ऐप्लिकेशन की डेटा डायरेक्ट्री का ऐक्सेस ब्लॉक होना | सिस्टम, हर ऐप्लिकेशन के लिए SELinux सैंडबॉक्स लागू करता है. साथ ही, हर ऐप्लिकेशन की निजी डेटा डायरेक्ट्री पर, हर ऐप्लिकेशन के लिए SELinux की पाबंदियां भी लागू करता है. पाथ से किसी दूसरे ऐप्लिकेशन की डेटा डायरेक्ट्री को सीधे ऐक्सेस करना अब अनुमति नहीं है. आईपीसी (इंटर-प्रोसेस कम्यूनिकेशन) के तरीकों का इस्तेमाल करके, ऐप्लिकेशन डेटा शेयर करना जारी रख सकते हैं. इसमें, एफ़डी (फ़ाइल डिस्क्रिप्टर) पास करना भी शामिल है. |
Android 9 को टारगेट करने वाले ऐप्लिकेशन के काम करने के तरीके में हुए बदलावों की पूरी सूची के लिए, काम करने के तरीके में हुए बदलाव दस्तावेज़ देखें.
Android 9 में उपलब्ध नई सुविधाओं और एपीआई के बारे में जानने के लिए, यहां जाएं Android 9 की सुविधाएं और एपीआई.