जब कोई APK अपलोड किया जाता है, तो उसे Google Play के टारगेट एपीआई लेवल को पूरा करना चाहिए ज़रूरी शर्तें.
31 अगस्त, 2024 से:
- यह ज़रूरी है कि नए ऐप्लिकेशन और ऐप्लिकेशन के अपडेट, Android 14 (एपीआई लेवल 34) या उसके बाद के वर्शन को टारगेट करें Google Play पर सबमिट किया गया हो; हालाँकि, Wear OS और Android TV ऐप्लिकेशन के अलावा, इन ऐप्लिकेशन के लिए ज़रूरी है कि Android 13 (एपीआई लेवल 33) या उसके बाद के वर्शन को टारगेट करता हो.
- मौजूदा ऐप्लिकेशन को Android 13 (एपीआई लेवल 33) या उसके बाद के वर्शन को टारगेट करना होगा, ताकि यह उन नए उपयोगकर्ताओं के लिए उपलब्ध है जिनके डिवाइस में, आपके ऐप्लिकेशन के वर्शन से ज़्यादा Android OS वर्शन है टारगेट एपीआई लेवल को टारगेट करते हैं. Android 12 (एपीआई लेवल 31) या इससे पहले के वर्शन (Android) को टारगेट करने वाले ऐप्लिकेशन Wear OS और Android 11 (एपीआई लेवल 30) या इससे पहले के वर्शन के लिए, 10 (एपीआई लेवल 29) या इससे पहले के वर्शन Android TV के लिए), सिर्फ़ Android OS पर चलने वाले उन डिवाइसों पर उपलब्ध होगा आपके ऐप्लिकेशन के टारगेट एपीआई लेवल के बराबर या उससे कम हो.
अगर आपको और अनुरोध करना है, तो 1 नवंबर, 2024 तक समयसीमा बढ़ाने का अनुरोध किया जा सकता है ऐप को अपडेट करने का समय आ गया है. अपने ऐप्लिकेशन के एक्सटेंशन फ़ॉर्म को यहां ऐक्सेस किया जा सकता है Play Console पर इस साल के आखिर में.
ये ज़रूरी शर्तें, जिन ऐप्लिकेशन पर लागू नहीं होतीं:
- हमेशा के लिए निजी ऐप्लिकेशन, जो किसी खास सेवा या क्षेत्र में रहने वाले उपयोगकर्ताओं के लिए ही सीमित हैं होना चाहिए और यह सिर्फ़ संगठन में काम करने वालों के लिए हो.
- ऐसे ऐप्लिकेशन जो Android Automotive OS को टारगेट करते हैं या जिन्हें APK टारगेटिंग के साथ पैकेज किया गया है Android Automotive OS.
नए SDK टूल क्यों टारगेट करें?
Android के हर नए वर्शन में ऐसे बदलाव किए जाते हैं जो सुरक्षा और परफ़ॉर्मेंस को बेहतर बनाते हैं
और Android उपयोगकर्ता अनुभव को बेहतर बनाना. सिर्फ़ इनमें से कुछ बदलाव किए गए हैं
उन ऐप्लिकेशन पर लागू होगी जो अपने targetSdkVersion
के ज़रिए, साफ़ तौर पर सहायता का एलान करते हैं
मेनिफ़ेस्ट एट्रिब्यूट (जिसे टारगेट एपीआई लेवल भी कहा जाता है).
हाल के किसी एपीआई लेवल को टारगेट करने के लिए, अपना ऐप्लिकेशन कॉन्फ़िगर करने से लोगों को फ़ायदा मिलता है इन सुधारों के बाद भी, आपका ऐप्लिकेशन Android के पुराने वर्शन पर चल सकता है. हाल ही के किसी एपीआई लेवल को टारगेट करने से, आपके ऐप्लिकेशन को नए प्लैटफ़ॉर्म की नई सुविधाओं का इस्तेमाल करें. इसके अलावा, इस तारीख तक Android 10 (एपीआई लेवल 29), जब लोगों को इनके लिए ऐप्लिकेशन शुरू करना होता है, तो उन्हें एक चेतावनी दिखती है Android 5.1 (एपीआई लेवल 22) या इससे पहले के वर्शन को टारगेट करने पर, पहली बार.
यह दस्तावेज़ उन महत्वपूर्ण बिंदुओं पर हाइलाइट करता है, जिन्हें अपडेट करने के लिए आपको जानना आवश्यक है टारगेट एपीआई लेवल को Google Play की ज़रूरी शर्तों को पूरा करने के लिए सेट करें. निर्देश देखें जो इस बात पर निर्भर करते हैं कि आप किस वर्शन पर माइग्रेट कर रहे हैं.
Android 12 और उसके बाद वाले वर्शन (एपीआई लेवल 31) से, नए वर्शन में माइग्रेट करें
Android के नए वर्शन को टारगेट करने के मकसद से अपना ऐप्लिकेशन अपडेट करने के लिए, व्यवहार में हुए बदलावों की सूची:
Android 11 (एपीआई लेवल 30) से Android 12 (एपीआई लेवल 31) पर माइग्रेट करना
सुरक्षा और अनुमतियां
- ब्लूटूथ: आपको
BLUETOOTH
औरBLUETOOTH_ADMIN
के पासBLUETOOTH_SCAN
की अनुमतियां हैं,BLUETOOTH_ADVERTISE
याBLUETOOTH_CONNECT
अनुमतियां. आपने लोगों तक पहुंचाया मुफ़्त में अब ब्लूटूथ के लिए, रनटाइम की अनुमति केLOCATION
अनुरोध करने की ज़रूरत नहीं है कार्रवाइयां. - जगह की जानकारी: उपयोगकर्ता, जगह की अनुमानित जानकारी पाने के लिए, ऐप्लिकेशन से अनुरोध कर सकते हैं
जानकारी. आपको
ACCESS_COARSE_LOCATION
की अनुमति का अनुरोध करना होगा आप जब चाहें,ACCESS_FINE_LOCATION
के लिए अनुरोध कर सकते हैं.- इंटेंट फ़िल्टर: अगर आपके ऐप्लिकेशन में गतिविधियां, सेवाएं शामिल हैं, या ब्रॉडकास्ट रिसीवर के लिए, अगर इंटेंट फ़िल्टर का इस्तेमाल किया जाता है, तो आपको इनके लिए, android:exported एट्रिब्यूट का साफ़ तौर पर एलान किया जाएगा कॉम्पोनेंट.
- हाइबरनेशन: अगर ऐप्लिकेशन का इस्तेमाल ज़्यादा नहीं किया जाता है, तो उन्हें हाइबरनेशन मोड में रखा जा सकता है समय होता है. हाइबरनेशन मोड में आपके ऐप्लिकेशन की रनटाइम की अनुमतियां और कैश मेमोरी को रीसेट कर दिया जाता है और आप जॉब या अलर्ट नहीं चला सकते. आप अपने ऐप्लिकेशन के हाइबरनेशन स्थिति.
- इंटेंट म्यूटेबिलिटी की मंज़ूरी बाकी है: आपको हर एक के लिए म्यूटेबिलिटी की जानकारी देनी होगी PendingIntent से जुड़ा ऐसा ऑब्जेक्ट जो आपका ऐप्लिकेशन बनाता है.
उपयोगकर्ता अनुभव
- पसंद के मुताबिक सूचनाएं: जिन सूचनाओं के लिए अपनी पसंद के मुताबिक कॉन्टेंट देखा गया है वे
ज़्यादा देर तक सूचना वाली जगह का इस्तेमाल करें; बल्कि सिस्टम,
स्टैंडर्ड टेंप्लेट. इस टेंप्लेट का इस्तेमाल करके, यह पक्का किया जाता है कि पसंद के मुताबिक मिलने वाली सूचनाओं में
सभी राज्यों में, सूचना पाने की सुविधा से मिलती-जुलती सजावट. यह व्यवहार
करीब-करीब
Notification.DecoratedCustomViewStyle
जैसा. - Android ऐप्लिकेशन लिंक की पुष्टि में हुए बदलाव: Android ऐप्लिकेशन लिंक का इस्तेमाल करते समय पुष्टि करें, पक्का करें कि आपके इंटेंट फ़िल्टर में BROWSABLE शामिल है और एचटीटीपीएस स्कीम के साथ काम करते हों.
परफ़ॉर्मेंस
फ़ोरग्राउंड सेवा के लॉन्च से जुड़ी पाबंदियां: Android 12 या Android 12 को टारगेट करने के लिए ज़्यादा है, तो आपका ऐप्लिकेशन फ़ोरग्राउंड सेवाओं को तब शुरू नहीं कर सकता, जब वह बैकग्राउंड के नीचे, कुछ खास मामलों को छोड़कर. अगर कोई ऐप्लिकेशन बैकग्राउंड में चलते समय फ़ोरग्राउंड सेवा का इस्तेमाल करते समय, एक अपवाद होता है (कुछ खास मामलों को छोड़कर).
तेज़ काम को शेड्यूल करने और शुरू करने के लिए, WorkManager का इस्तेमाल तब करें, जब आपका ऐप्लिकेशन बैकग्राउंड में चलता है. समय के हिसाब से की जाने वाली कार्रवाइयों को पूरा करने के लिए, जिन्हें उपयोगकर्ता के अनुरोध के लिए, एग्ज़ैक्ट अलार्म को सेट करके फ़ोरग्राउंड सेवाएं शुरू करें.
सूचना ट्रैंपोलिन से जुड़ी पाबंदियां: जब उपयोगकर्ता सूचनाओं पर टैप करते हैं, कुछ ऐप्लिकेशन, गतिविधि शुरू करने वाले ऐप्लिकेशन कॉम्पोनेंट को लॉन्च करके जवाब देते हैं जिसे उपयोगकर्ता देखता है और उससे इंटरैक्ट करता है. इस ऐप्लिकेशन कॉम्पोनेंट को सूचना ट्रैंपोलिन.
ऐप्लिकेशन को ऐसी सेवाओं या ब्रॉडकास्ट रिसीवर की गतिविधियां शुरू नहीं करनी चाहिए: का इस्तेमाल नोटिफ़िकेशन ट्रैंपोलिन के तौर पर किया जाता है. जब कोई उपयोगकर्ता किसी सूचना पर टैप करता है या कार्रवाई बटन हैं, तो आपका ऐप्लिकेशन कॉल नहीं कर सकता सेवा या ब्रॉडकास्ट रिसीवर में
startActivity()
.
Android 12 (एपीआई) को टारगेट करने वाले ऐप्लिकेशन पर असर डालने वाले बदलावों का पूरा सेट देखें लेवल 31).
Android 11 (एपीआई लेवल 30) से पहले के वर्शन से माइग्रेट करना
Android का वह वर्शन चुनें, जिससे आप माइग्रेट करने जा रहे हैं:
Android 5 (एपीआई लेवल 21) पर माइग्रेट करें
नीचे दी गई हर रिलीज़ के लिए व्यवहार में बदलाव वाले पेज पर जाकर यह पक्का करें कि आपके ऐप्लिकेशन में इन रिलीज़ में किए गए बदलावों को ध्यान में रखा गया है:
अगले सेक्शन में दिए गए निर्देशों का पालन करके जारी रखें.
Android 6 (एपीआई लेवल 23) पर माइग्रेट करें
Android 6.0 और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन पर, यहां दी गई बातों का ध्यान रखा जाता है:
-
-
खतरनाक अनुमतियां सिर्फ़ रनटाइम के दौरान दी जाती हैं. आपके यूज़र इंटरफ़ेस (यूआई) फ़्लो में, ये अनुमतियां देने की अनुमतियां होनी चाहिए.
-
जहां भी हो सके, पक्का करें कि आपका ऐप्लिकेशन, अनुमति के अनुरोध अस्वीकार किए जाने की समस्या को हल करने के लिए तैयार हो. उदाहरण के लिए, अगर कोई उपयोगकर्ता डिवाइस के जीपीएस को ऐक्सेस करने के अनुरोध को अस्वीकार कर देता है, तो पक्का करें कि आपके ऐप्लिकेशन में आगे बढ़ने का कोई दूसरा तरीका मौजूद हो.
-
Android 6.0 (एपीआई लेवल 23) में किए गए बदलावों की पूरी सूची देखने के लिए, व्यवहार में होने वाले बदलाव देखें पेज का हिस्सा है.
अगले सेक्शन में दिए गए निर्देशों का पालन करके जारी रखें.
Android 7 (एपीआई लेवल 24) पर माइग्रेट करना
Android 7.0 और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन पर, यहां दी गई बातों का ध्यान रखा जाता है:
-
बैटरी बचाएं और ऐप स्टैंडबाय
डोज़ और ऐप्लिकेशन स्टैंडबाय के लिए ऑप्टिमाइज़ करना में बताए गए व्यवहार के लिए डिज़ाइन. इसमें कई प्लैटफ़ॉर्म रिलीज़ में किए गए इंक्रीमेंटल (बढ़ने वाले) बदलाव शामिल हैं.
जब कोई डिवाइस बैटरी बचाएं और ऐप स्टैंडबाय मोड में होता है, तो सिस्टम इस तरह काम करता है:
- नेटवर्क ऐक्सेस पर पाबंदी लगाती है
- अलार्म, सिंक, और जॉब को टाल देता है
- इस सेटिंग से जीपीएस और वाई-फ़ाई स्कैन करने की सुविधा पर रोक लगाई जा सकती है
- सामान्य प्राथमिकता को सीमित करता है Firebase क्लाउड से मैसेज मैसेज.
-
अनुमति में बदलाव
- सिस्टम, ऐप्लिकेशन के लिए बनाई गई निजी डायरेक्ट्री के ऐक्सेस पर पाबंदी लगाता है.
-
अपने ऐप्लिकेशन के बाहर
file://
यूआरआई दिखाने परFileUriExposedException
ट्रिगर होता है. अगर आपको अपने ऐप्लिकेशन के बाहर फ़ाइलें शेयर करनी हैं, तोFileProvider
-
सिस्टम लिंक करने की अनुमति नहीं देता को गैर-एनडीके लाइब्रेरी में भेज सकते हैं.
Android 7.0 (एपीआई लेवल 24) में किए गए बदलावों की पूरी सूची देखने के लिए, व्यवहार में होने वाले बदलाव देखें पेज का हिस्सा है.
अगले सेक्शन में दिए गए निर्देशों का पालन करके जारी रखें.
Android 8 (एपीआई लेवल 26) पर माइग्रेट करें
Android 8.0 और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन पर, यहां दी गई बातों का ध्यान रखा जाता है:
-
बैकग्राउंड में कोड चलाने की सीमाएं
-
सिस्टम, उन ऐप्लिकेशन के लिए सेवाओं पर पाबंदी लगा देता है जो फ़ोरग्राउंड में नहीं चल रहे होते.
-
startService()
अब जब कोई ऐप्लिकेशनstartService()
के बराबर होने पर इसे शुरू करने की कोशिश करता है, तो इसे अपवाद माना जाता है प्रतिबंधित. -
फ़ोरग्राउंड सेवाएं चालू करने के लिए, ऐप्लिकेशन को
startForeground()
औरstartForegroundService()
. - JobScheduler API में किए गए बदलावों की ध्यान से समीक्षा करें, जैसा कि Android 8.0 (एपीआई लेवल 26) व्यवहार में बदलाव पेज पर बताया गया है.
- Firebase क्लाउड से मैसेज के लिए ज़रूरी है वर्शन 10.2.1 Google Play services SDK टूल या इसके बाद के वर्शन का इस्तेमाल करके बनाया गया हो.
- Firebase क्लाउड से मैसेज का इस्तेमाल करते समय, मैसेज डिलीवरी, बैकग्राउंड में एक्ज़ीक्यूशन की सीमाओं के हिसाब से होती है. जब मैसेज मिलने के बाद बैकग्राउंड में काम करने की ज़रूरत हो, बैकग्राउंड डेटा सिंक करने के लिए, आपके ऐप्लिकेशन को इसकी जगह Firebase Job Dispatcher या JobIntentService का इस्तेमाल करके जॉब शेड्यूल करना चाहिए. ज़्यादा जानकारी के लिए, देखें Firebase क्लाउड से मैसेज की सुविधा से जुड़ा दस्तावेज़.
-
-
इंप्लिसिट ब्रॉडकास्ट
-
इंप्लिसिट ब्रॉडकास्ट प्रतिबंधित हैं. बैकग्राउंड में होने वाले इवेंट को मैनेज करने के बारे में जानने के लिए,
JobScheduler
एपीआई का दस्तावेज़ देखें.
-
इंप्लिसिट ब्रॉडकास्ट प्रतिबंधित हैं. बैकग्राउंड में होने वाले इवेंट को मैनेज करने के बारे में जानने के लिए,
-
बैकग्राउंड में जगह की जानकारी ऐक्सेस करने की सीमाएं
-
बैकग्राउंड में चल रहे ऐप्लिकेशन को जगह की जानकारी के डेटा का सीमित ऐक्सेस मिलता है.
- Google Play services वाले डिवाइसों पर, समय-समय पर जगह की जानकारी पाने के लिए, कई तरह से जांची गई सही जगह की जानकारी देने वाले ऐप्लिकेशन का इस्तेमाल करें अपडेट.
-
बैकग्राउंड में चल रहे ऐप्लिकेशन को जगह की जानकारी के डेटा का सीमित ऐक्सेस मिलता है.
-
सिस्टम, उन ऐप्लिकेशन के लिए सेवाओं पर पाबंदी लगा देता है जो फ़ोरग्राउंड में नहीं चल रहे होते.
-
सूचना के चैनल
- आपको हर चैनल के हिसाब से, सूचना में रुकावट डालने वाली प्रॉपर्टी तय करनी चाहिए.
- सूचनाएं देखने के लिए, आपको किसी चैनल को सूचनाएं देनी होंगी.
-
प्लैटफ़ॉर्म का यह वर्शन
NotificationCompat.Builder
के साथ काम करता है.
-
निजता
- ANDROID_ID का दायरा, हर ऐप्लिकेशन साइनिंग पासकोड के हिसाब से होता है.
Android 8.0 (एपीआई लेवल 26) में किए गए बदलावों की पूरी सूची देखने के लिए, व्यवहार में होने वाले बदलाव देखें पेज का हिस्सा है.
Android 8 (एपीआई 26) से Android 9 (एपीआई 28) पर माइग्रेट करना
-
पावर मैनेजमेंट
- ऐप्लिकेशन स्टैंडबाय बकेट नई चीज़ें ऐप्लिकेशन में लोगों की दिलचस्पी के आधार पर बैकग्राउंड पाबंदियां, जैसे कि स्थगित जॉब, ज़्यादा प्राथमिकता वाले मैसेज के लिए अलार्म और कोटा
- बैटरी सेवर में किए गए सुधार ऐप्लिकेशन स्टैंडबाय ऐप्लिकेशन पर सीमाएं बढ़ाना
-
फ़ोरग्राउंड सेवा की अनुमति
- सामान्य अनुमति का अनुरोध करने की ज़रूरत है
FOREGROUND_SERVICE
(रनटाइम की अनुमति नहीं है)
- सामान्य अनुमति का अनुरोध करने की ज़रूरत है
-
निजता से जुड़े बदलाव
- बैकग्राउंड सेंसर का सीमित ऐक्सेस
- कॉल लॉग के ऐक्सेस पर पाबंदी लगाई गई है. यह अब
CALL_LOG
में उपलब्ध है अनुमतियों का ग्रुप - फ़ोन नंबर का सीमित ऐक्सेस, ज़रूरी है
READ_CALL_LOG
की अनुमति - वाई-फ़ाई की जानकारी के ऐक्सेस पर पाबंदी लगाई गई है
Android 9.0 (एपीआई लेवल) में किए गए बदलावों की पूरी सूची देखने के लिए 28), व्यवहार देखें बदलाव के बारे में ज़्यादा जानें.
Android 9 (एपीआई लेवल 28) से Android 10 (एपीआई लेवल 29) पर माइग्रेट करना
-
सूचनाएं
दिलचस्पी बढ़ाने के लिए,
-
सामान्य अनुमति का अनुरोध करने की ज़रूरत है
USE_FULL_SCREEN_INTENT
(रनटाइम की अनुमति नहीं है).
-
सामान्य अनुमति का अनुरोध करने की ज़रूरत है
-
फ़ोल्ड किए जा सकने वाले डिवाइस और बड़े साइज़ के साथ काम करता है
स्क्रीन डिवाइस
-
कई गतिविधियां अब "फिर से शुरू की गई" सूची में हो सकती हैं स्थिति में मदद मिलती है, लेकिन असल में सिर्फ़ एक पर ही फ़ोकस होता है.
-
इस बदलाव से असर पड़ेगा
onResume()
औरonPause()
व्यवहार. -
"सबसे लोकप्रिय रिज़्यूमे रखे गए" का नया लाइफ़साइकल कॉन्सेप्ट जिससे पता लगाया जा सकता है
इसकी सदस्यता लेकर
onTopResumedActivityChanged()
.- सिर्फ़ एक गतिविधि "सबसे पहले फिर से शुरू की जा सकती है" हो सकती है.
-
इस बदलाव से असर पड़ेगा
-
टास्क कब शुरू होगा
resizeableActivity
false
पर सेट है, तो ऐप्लिकेशन अतिरिक्तminAspectRatio
इस सुविधा की मदद से, ऐप्लिकेशन का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) अपने-आप लेटरबॉक्स हो जाता है.
-
कई गतिविधियां अब "फिर से शुरू की गई" सूची में हो सकती हैं स्थिति में मदद मिलती है, लेकिन असल में सिर्फ़ एक पर ही फ़ोकस होता है.
-
निजता से जुड़े बदलाव
-
डिवाइस का स्कोप किया गया स्टोरेज
- बाहरी स्टोरेज का ऐक्सेस सिर्फ़ ऐप्लिकेशन से जुड़े ऐप्लिकेशन के लिए उपलब्ध है और ऐप्लिकेशन के खास टाइप के मीडिया के लिए बनाया गया.
-
ऐप्लिकेशन के बैकग्राउंड में चलने पर, जगह की जानकारी ऐक्सेस करने पर पाबंदी लगाई जाती है,
ज़रूरी है
ACCESS_BACKGROUND_LOCATION
अनुमति. - उन आइडेंटिफ़ायर के ऐक्सेस पर पाबंदी लगाई गई है जिन्हें रीसेट नहीं किया जा सकता. जैसे, IMEI और सीरियल नंबर.
-
शारीरिक गतिविधि की जानकारी के ऐक्सेस पर पाबंदी लगाई गई है, जैसे कि
कदमों की संख्या के लिए ज़रूरी है
ACTIVITY_RECOGNITION
अनुमति. -
इन पर ऐक्सेस को सीमित किया गया
कुछ
टेलीफ़ोनी, ब्लूटूथ, और वाई-फ़ाई एपीआई के लिए ज़रूरी है
ACCESS_FINE_LOCATION
अनुमति. -
वाई-फ़ाई सेटिंग की ऐक्सेस पर पाबंदी लगाई गई है
- ऐप्लिकेशन अब वाई-फ़ाई को सीधे तौर पर चालू या बंद नहीं कर पाएंगे. ऐसा करने के लिए, आपको ये काम करने होंगे ऐसा करो इस्तेमाल किया जा रहा है सेटिंग पैनल.
-
किसी वाई-फ़ाई नेटवर्क से कनेक्शन शुरू करने पर पाबंदियां,
इनमें से किसी भी एक का इस्तेमाल करना ज़रूरी है
WifiNetworkSpecifier
याWifiNetworkSuggestion
.
-
डिवाइस का स्कोप किया गया स्टोरेज
Android 10 (एपीआई लेवल 29) से Android 11 (एपीआई लेवल 30) पर माइग्रेट करना
-
निजता से जुड़ा ऐक्शन
- डिवाइस के स्कोप वाले स्टोरेज से जुड़ी नीति उल्लंघन ठीक करने का तरीका : ऐप्लिकेशन को स्टोरेज के स्कोप वाले मॉडल का इस्तेमाल करना चाहिए. इसमें अलग-अलग जगहों के हिसाब से ऐप्लिकेशन, मीडिया, और अन्य तरह की फ़ाइलों को सेव और ऐक्सेस किया जाता है. इसके लिए, अलग-अलग जगहों की जानकारी का इस्तेमाल किया जाता है.
- अनुमतियां अपने-आप रीसेट होने की सुविधा: अगर उपयोगकर्ता कुछ महीनों से किसी ऐप्लिकेशन से इंटरैक्ट नहीं किया गया है, तो सिस्टम ऐप्लिकेशन की संवेदनशील अनुमतियों को अपने-आप रीसेट कर देता है. इससे ज़्यादातर ऐप्लिकेशन पर असर नहीं पड़ेगा. अगर आपका ऐप्लिकेशन मुख्य रूप से लोगों के इंटरैक्शन के बिना, बैकग्राउंड में काम करता है, तो आपको तो उपयोगकर्ताओं से इसे बंद करने का अनुरोध करें अपने-आप रीसेट हो जाता है.
- बैकग्राउंड में जगह की जानकारी ऐक्सेस करने की अनुमति: ऐप्लिकेशन के लिए ज़रूरी है फ़ोरग्राउंड और बैकग्राउंड में जगह की जानकारी की अनुमति का अलग-अलग अनुरोध करें. रनटाइम की अनुमति वाले डायलॉग बॉक्स के बजाय, बैकग्राउंड में जगह की जानकारी ऐक्सेस करने की अनुमति सिर्फ़ ऐप्लिकेशन की सेटिंग में दी जा सकती है.
-
पैकेज की विज़िबिलिटी: जब कोई ऐप्लिकेशन क्वेरी करता है
डिवाइस पर इंस्टॉल किए गए ऐप्लिकेशन और सेवाओं की सूची के लिए, दिखाई गई सूची फ़िल्टर की जाती है.
- अगर लिखाई को बोली में बदलना का इस्तेमाल किया जाता है या बोली पहचानने की सुविधा सेवाएं, आपको मेनिफ़ेस्ट फ़ाइल में, सेवाओं के लिए क्वेरी एलिमेंट जोड़ने होंगे.
-
सिक्योरिटी
- कंप्रेस की गई `resource.arsc` फ़ाइलें अब काम नहीं करते
- APK सिग्नेचर स्कीम v2 अब ज़रूरी है. पुराने सिस्टम के साथ काम करने की वजहों के लिए, डेवलपर को APK सिग्नेचर स्कीम v1 से भी साइन करना जारी रखना चाहिए.
- बिना SDK टूल वाले इंटरफ़ेस पर लगी पाबंदी. एपीआई लेवल 30 को टारगेट करने वाले ऐप्लिकेशन के लिए, बिना SDK टूल वाले इंटरफ़ेस का इस्तेमाल करने का सुझाव नहीं दिया जाता, क्योंकि इनमें से कुछ बिना SDK टूल वाले इंटरफ़ेस अब ब्लॉक कर दिए गए हैं. ऐसे इंटरफ़ेस देखें जिनमें SDK टूल नहीं है को अब Android 11 पर ब्लॉक कर दिया गया है, ताकि ब्लॉक किए गए बिना SDK टूल वाले इंटरफ़ेस की पूरी सूची देखी जा सके.
Android 11 (एपीआई लेवल 30) में किए गए बदलावों की पूरी सूची देखने के लिए, यहां देखें व्यवहार में बदलाव पेज पर जाकर.
पिछले सेक्शन में दिए गए निर्देशों का पालन करके, एपीआई 31 में अपडेट करना जारी रखें.
अपने ऐप्लिकेशन को आधुनिक बनाएं
अपने ऐप्लिकेशन के लिए टारगेट एपीआई लेवल को अपडेट करते समय, सबसे नए तरीकों का इस्तेमाल करें आपके ऐप्लिकेशन को आधुनिक बनाने और उपयोगकर्ताओं को खुश करने के लिए, प्लैटफ़ॉर्म की सुविधाओं का इस्तेमाल कर सकते हैं.
- बीटा वर्शन में मौजूद CameraX का इस्तेमाल करें, ताकि आप बेहतर तरीके से काम कर सकें कैमरा.
- Jetpack कॉम्पोनेंट इस्तेमाल करके, सबसे सही तरीके अपनाएं बॉयलरप्लेट कोड लिखने से लेकर मुश्किल कामों को आसान बना सकता है, ताकि उस कोड पर फ़ोकस करें जो आपके लिए ज़रूरी है.
- Kotlin का इस्तेमाल करें और तेज़ी से और कम कोड के साथ बेहतर ऐप्लिकेशन लिखें.
- पक्का करें कि आपने निजता से जुड़ी ज़रूरी शर्तों और सबसे सही तरीकों का पालन किया हो.
- अपने ऐप्लिकेशन में गहरे रंग वाली थीम की सुविधा जोड़ें.
- अपने ऐप्लिकेशन में हाथ के जेस्चर (हाव-भाव) की सुविधा जोड़ें.
- Google क्लाउड से मैसेज (GCM) से नए ऐप्लिकेशन में अपने ऐप्लिकेशन को माइग्रेट करें Firebase क्लाउड से मैसेज वाला वर्शन.
- बेहतर विंडो मैनेजमेंट की सुविधा का फ़ायदा लें.
- 16:9 से ज़्यादा बड़े आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) में काम करें हम हार्डवेयर के क्षेत्र में हाल ही में हुए बदलावों को ध्यान में रखते हैं. पक्का करें कि आपके ऐप्लिकेशन में उपलब्ध स्क्रीन स्पेस. ज़्यादा से ज़्यादा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को ही आखिरी के तौर पर दिखाएं रिज़ॉर्ट. ज़्यादा से ज़्यादा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) के बारे में ज़्यादा जानने के लिए, एलान करें सीमित स्क्रीन की सुविधा.
- अपने ऐप्लिकेशन की उत्पादकता बढ़ाने के लिए, मल्टी-विंडो सपोर्ट जोड़ें, और एक से ज़्यादा डिसप्ले मैनेज करने के लिए.
- अगर ऐप्लिकेशन के बेहतरीन अनुभव से उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है,
पिक्चर में पिक्चर की सुविधा जोड़ना.
- डिसप्ले कटआउट वाले डिवाइसों के लिए ऑप्टिमाइज़ करें.
- स्टेटस बार की ऊंचाई न मानें. इसके बजाय,
WindowInsets
का इस्तेमाल करें औरView.OnApplyWindowInsetsListener
. इस बारे में ज़्यादा जानने के लिए, यह देखें Droidcon NYC 2017 वीडियो. देखें. - यह न सोचें कि ऐप्लिकेशन की पूरी विंडो है. इसके बजाय, पुष्टि करें
यह
View.getLocationInWindow()
का इस्तेमाल करके इसकी जगह की जानकारी का पता लगा सकता है.View.getLocationOnScreen()
. *MotionEvent
को हैंडल करते समय, इसका इस्तेमाल करेंMotionEvent.getX()
औरMotionEvent.getY()
, नहींMotionEvent.getRawX()
,MotionEvent.getRawY()
.
अपने SDK टूल और लाइब्रेरी देखें और उन्हें अपडेट करें
पक्का करें कि तीसरे पक्ष के SDK टूल डिपेंडेंसी, एपीआई 31 के साथ काम करती हों: कुछ SDK टूल सेवा देने वाली कंपनियां अपने मेनिफ़ेस्ट में इसे पब्लिश करती हैं; अन्य को अतिरिक्त जानकारी की ज़रूरत होगी जांच. अगर किसी ऐसे SDK टूल का इस्तेमाल किया जा रहा है जो एपीआई 31 पर काम नहीं करता, तो उसे प्राथमिकता दें के लिए SDK टूल की सेवा देने वाली कंपनी के साथ मिलकर काम करें.
इसके अलावा, ध्यान रखें कि आपके ऐप्लिकेशन या गेम की targetSdkVersion
पर पाबंदी लग सकती है
निजी Android प्लैटफ़ॉर्म की लाइब्रेरी का ऐक्सेस; NDK ऐप्लिकेशन को प्लैटफ़ॉर्म से लिंक करना देखें
लाइब्रेरी पर जाएं.
आपको इस वर्शन में मौजूद किसी भी पाबंदी की पुष्टि भी करनी चाहिए:
Android की ऐसी सहायता लाइब्रेरी जिसका इस्तेमाल किया जा रहा है. हमेशा की तरह, आपको
Android Support Library के मेजर वर्शन और आपके
ऐप्लिकेशन का compileSdkVersion
.
हमारा सुझाव है कि आप वैल्यू से कम या इसके बराबर की targetSdkVersion
को चुनें
सपोर्ट लाइब्रेरी का मेजर वर्शन. हमारा सुझाव है कि आप सबसे सही
नए वर्शन के साथ काम करने वाली सपोर्ट लाइब्रेरी
काम करता है और गड़बड़ियां ठीक की गई हैं.
अपने ऐप्लिकेशन का परीक्षण करें
अपने ऐप्लिकेशन के एपीआई लेवल और सुविधाओं को ज़रूरत के मुताबिक अपडेट करने के बाद, आपको इस्तेमाल के कुछ मुख्य उदाहरणों की जांच करें. नीचे दिए गए सुझावों में पूरी जानकारी नहीं है, लेकिन इनका मकसद आपको परीक्षा की प्रोसेस को समझने में मदद मिलेगी. हमारा सुझाव है कि आप इन्हें टेस्ट करें:
- यह कि आपका ऐप्लिकेशन, एपीआई 29 में बिना किसी गड़बड़ी या चेतावनी के कंपाइल हो जाता है.
यह कि आपके ऐप्लिकेशन के पास ऐसे मामलों के लिए रणनीति है जहां उपयोगकर्ता अनुमति को अस्वीकार कर देता है अनुरोधों का जवाब देता है, और उपयोगकर्ता से अनुमतियों के लिए अनुरोध करता है. ऐसा करने के लिए:
- अपने ऐप्लिकेशन की ऐप्लिकेशन की जानकारी वाली स्क्रीन पर जाएं और हर अनुमति को बंद करें.
- ऐप्लिकेशन खोलें और पक्का करें कि यह क्रैश न हो.
- इस्तेमाल के मुख्य उदाहरण देखें और पक्का करें कि ज़रूरी अनुमतियां मिली हों दोबारा कहा जाता है.
अनुमानित परिणामों और किसी गड़बड़ी के बिना बैटरी बचाएं.
- adb का इस्तेमाल करके, ऐप्लिकेशन के चलने के दौरान अपने टेस्ट डिवाइस को Doze में रखें.
- Firebase क्लाउड से मैसेज वाले मैसेज ट्रिगर करने वाले इस्तेमाल के किसी भी उदाहरण की जांच करें.
- अलार्म या जॉब का इस्तेमाल करने वाले, इस्तेमाल के किसी भी उदाहरण को टेस्ट करें.
- बैकग्राउंड सेवाओं पर निर्भर सभी चीज़ों को खत्म करें.
- अपने ऐप्लिकेशन को ऐप्लिकेशन स्टैंडबाय में सेट करें
- Firebase क्लाउड से मैसेज वाले मैसेज ट्रिगर करने वाले इस्तेमाल के किसी भी उदाहरण की जांच करें.
- अलार्म का इस्तेमाल करने वाले किसी भी इस्तेमाल के उदाहरण की जांच करें.
- adb का इस्तेमाल करके, ऐप्लिकेशन के चलने के दौरान अपने टेस्ट डिवाइस को Doze में रखें.
नई फ़ोटो / लिए जाने वाले वीडियो को मैनेज करता है
- देख लें कि आपका ऐप्लिकेशन पाबंदी वाली चीज़ों को मैनेज करता हो
ACTION_NEW_PICTURE
औरACTION_NEW_VIDEO
ब्रॉडकास्ट (यानी, JobScheduler जॉब में ले जाया गया). - पक्का करें कि इस्तेमाल के सभी अहम उदाहरण अब भी इन इवेंट पर निर्भर करते हैं काम.
- देख लें कि आपका ऐप्लिकेशन पाबंदी वाली चीज़ों को मैनेज करता हो
दूसरे ऐप्लिकेशन के साथ फ़ाइलें शेयर करने की सुविधा - इस्तेमाल के ऐसे किसी भी उदाहरण की जांच करें जिसमें किसी दूसरे ऐप्लिकेशन के साथ फ़ाइल डेटा शेयर किया गया हो (यहां तक कि एक ही डेवलपर का कोई दूसरा ऐप्लिकेशन)
- जांच करें कि कॉन्टेंट दूसरे ऐप्लिकेशन में दिख रहा है और ट्रिगर नहीं होता बंद हो जाता है.
ज़्यादा जानकारी
Google Play Console में ईमेल पाने के लिए ऑप्ट इन करें, ताकि हम ये काम कर सकें आपको Android और Google Play से जुड़े ज़रूरी अपडेट और सूचनाएं भेजेगा. इसमें हमारा हर महीने मिलने वाला पार्टनर न्यूज़लेटर भी शामिल है.