सुविधाओं और एपीआई की खास जानकारी

Android 13 में डेवलपर के लिए, शानदार नई सुविधाएं और एपीआई उपलब्ध कराए गए हैं. सेक्शन यहां दी गई जानकारी से, आपको अपने ऐप्लिकेशन के लिए सुविधाओं के बारे में जानकारी मिलती है. साथ ही, मिलते-जुलते एपीआई.

नए, बदले गए, और हटाए गए एपीआई की ज़्यादा जानकारी के लिए, एपीआई में अंतर की रिपोर्ट. नए एपीआई की जानकारी Android API के बारे में जानकारी पर जाएं — नए एपीआई किसको दिखे. साथ ही, यह जानने के लिए कि प्लैटफ़ॉर्म में किस तरह के बदलाव का असर आपके ऐप्लिकेशन पर पड़ सकता है. Android 13 में होने वाले बदलावों को ज़रूर देखें. ऐप्लिकेशन के लिए जो Android 13 और सभी डिवाइसों पर काम करते हैं ऐप्लिकेशन के मामले में ऐसा कर सकते हैं.

डेवलपर की उत्पादकता और टूल

थीम वाले ऐप्लिकेशन के आइकॉन

उपयोगकर्ता, थीम वाले ऐप्लिकेशन के आइकॉन के लिए ऑप्ट इन कर रहा है
Android 13 पर थीम वाले ऐप्लिकेशन आइकॉन के लिए ऑप्ट इन करना

Android 13 और उसके बाद के वर्शन में, थीम वाले ऐप्लिकेशन आइकॉन के लिए ऑप्ट इन किया जा सकता है. इसके साथ सुविधा होती है, तो समर्थित Android लॉन्चर में ऐप्लिकेशन आइकन उपयोगकर्ता के चुने हुए वॉलपेपर और अन्य थीम का रंग.

यह सुविधा काम कर सके, इसके लिए आपके ऐप्लिकेशन को अडैप्टिव आइकॉन और मोनोक्रोमैटिक ऐप्लिकेशन आइकॉन और मेनिफ़ेस्ट में <adaptive-icon> एलिमेंट मौजूद है. अगर किसी उपयोगकर्ता ने थीम वाला ऐप्लिकेशन चालू किया है आइकॉन (दूसरे शब्दों में, सिस्टम की सेटिंग में थीम वाले आइकॉन टॉगल चालू करना) और लॉन्चर इस सुविधा का समर्थन करता है, तो सिस्टम इस रंग को तय करने के लिए, उपयोगकर्ता का चुना गया वॉलपेपर और थीम, जिसे वह जो मोनोक्रोमैटिक ऐप्लिकेशन आइकॉन पर लागू होता है.

होम स्क्रीन पर, थीम वाले ऐप्लिकेशन का आइकॉन नहीं दिखता. इसके बजाय, यह दिखता है अडैप्टिव या स्टैंडर्ड ऐप्लिकेशन आइकॉन—इनमें से किसी भी स्थिति में:

  • अगर उपयोगकर्ता ने थीम वाले ऐप्लिकेशन आइकॉन चालू नहीं किए हैं
  • अगर आपके ऐप्लिकेशन में मोनोक्रोमैटिक ऐप्लिकेशन आइकॉन उपलब्ध नहीं है
  • अगर लॉन्चर पर थीम वाले ऐप्लिकेशन आइकॉन काम नहीं करते

ज़्यादा जानकारी और निर्देशों के लिए, अडैप्टिव आइकॉन देखें.

हर ऐप्लिकेशन के हिसाब से पसंद की भाषा

सिस्टम सेटिंग में, हर ऐप्लिकेशन के लिए अलग-अलग भाषाएं इस्तेमाल करने की सुविधा

कई मामलों में, एक से ज़्यादा भाषाएं जानने वाले उपयोगकर्ता अपने सिस्टम की भाषा को एक भाषा पर सेट करते हैं—जैसे जैसे कि अंग्रेज़ी—लेकिन वे विशिष्ट ऐप्लिकेशन के लिए अन्य भाषाएं चुनना चाहते हैं, जैसे कि डच, चाइनीज़ या हिन्दी. इन सेवाओं का बेहतर अनुभव देने में ऐप्लिकेशन की मदद करने के लिए Android 13 में, उन ऐप्लिकेशन के लिए ये सुविधाएं मिलती हैं जो Android 13 में एकाधिक भाषाएं:

  • सिस्टम सेटिंग: एक ऐसी जगह जिसे उपयोगकर्ता एक ही जगह पर चुन सकते हैं हर ऐप्लिकेशन के लिए पसंदीदा भाषा सेट की जा सकती है.

    आपके ऐप्लिकेशन को आपके ऐप्लिकेशन केandroid:localeConfig मेनिफ़ेस्ट फ़ाइल का इस्तेमाल करके, सिस्टम को बताया जाता है कि यह एक से ज़्यादा भाषाओं में काम करता है. सीखने में इस बारे में ज़्यादा जानने के लिए, कोई रिसॉर्स फ़ाइल बनाना और अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में उसका एलान करना.

  • अतिरिक्त एपीआई: ये सार्वजनिक एपीआई, जैसे कि setApplicationLocales() और getApplicationLocales() LocaleManager में तरीके आज़माएं, ऐप्लिकेशन को रनटाइम के दौरान सिस्टम की भाषा से अलग कोई भाषा सेट करें.

    ये एपीआई, सिस्टम की सेटिंग के साथ अपने-आप सिंक हो जाते हैं; इसलिए, अपनी पसंद के मुताबिक इन-ऐप्लिकेशन लैंग्वेज पिकर बनाने के लिए, इन एपीआई का इस्तेमाल करने वाले ऐप्लिकेशन चाहे उनके उपयोगकर्ता किसी भी प्लैटफ़ॉर्म पर हों, उन्हें एक जैसा उपयोगकर्ता अनुभव मिलता है अपनी पसंद की भाषा तय करें. सार्वजनिक एपीआई, शिपिंग की लागत को कम करने में भी आपकी मदद करते हैं के साथ काम करते हैं, तो वे स्प्लिट APK के साथ काम करते हैं और ऐप्लिकेशन-स्तरीय संग्रहित करने के लिए ऐप्लिकेशन के लिए ऑटो बैकअप उपयोगकर्ता की भाषा सेटिंग.

    Android के पिछले वर्शन के साथ काम करने की सुविधा के लिए, मिलते-जुलते एपीआई AndroidX में भी उपलब्ध हैं. हमारा सुझाव है कि आप इनका इस्तेमाल करें एपीआई Appcompat 1.6.0-beta01 में जोड़ा गया या उससे ज़्यादा.

जो ऐप्लिकेशन कई भाषाओं में काम नहीं करते उन पर इन बदलावों का कोई असर नहीं होगा.

टेक्स्ट और भाषा की बेहतर सुविधा

Android 13 में, टेक्स्ट और भाषा को बेहतर बनाने वाली कई सुविधाएं शामिल हैं. इससे आपको और भी बेहतर अनुभव मिलता है, जिसके बारे में नीचे दिए गए सेक्शन में बताया गया है:

तेज़ी से हायफ़नेशन

हायफ़नेशन, रैप किए गए टेक्स्ट को पढ़ने में आसान बनाता है और आपके यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाने में मदद करता है अडैप्टिव. Android 13 की शुरुआत में, हाइफ़नेशन की परफ़ॉर्मेंस को इस तरह ऑप्टिमाइज़ किया गया है 200% की बढ़ोतरी हो सकती है, ताकि आप इसे अपने TextView में चालू कर सकें. इसमें तकरीबन कोई असर नहीं होगा रेंडरिंग परफ़ॉर्मेंस. तेज़ी से हाइफ़नेशन की सुविधा चालू करने के लिए, fullFast या normalFast में फ़्रीक्वेंसी setHyphenationFrequency().

टेक्स्ट कन्वर्ज़न एपीआई

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

  1. हिरागाना को अपने खोज शब्द के फ़ोनेटिक उच्चारण के रूप में इनपुट करें (जैसे जगह या ऐप्लिकेशन का नाम)
  2. हीरागाना के किरदारों को कांजी में बदलने के लिए, कीबोर्ड का इस्तेमाल करें
  3. कांजी वर्णों का इस्तेमाल करके फिर से खोजें
  4. आखिर में उनके खोज के नतीजे पाएं

नए टेक्स्ट कन्वर्ज़न एपीआई की मदद से, जापान के उपयोगकर्ता हीरागाना में टाइप कर सकते हैं और दूसरे और तीसरे चरण को छोड़कर, आपको तुरंत कांजी खोज के नतीजे लाइव दिखेंगे.

गैर-लैटिन स्क्रिप्ट के लिए बेहतर लाइन ऊंचाई

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

Android 12 (ऊपर दिए गए वर्शन) में क्लिप की गई लाइन की ऊंचाई यह सुविधा, Android 13 में बेहतर दिखेगी और क्लिप में नहीं दिखेगी.

बेहतर जैपनीज़ टेक्स्ट रैपिंग

Android 13 और इसके बाद के वर्शन में, TextViews, Bunsetsu के टेक्स्ट को रैप कर सकते हैं. यह शब्दों की सबसे छोटी यूनिट होती है प्राकृतिक) या वाक्यांशों को शामिल करने के बजाय, उन्हें वर्ण के आधार पर बेहतर तरीके से पढ़ने लायक बनाने के लिए किया जाता है जैपनीज़ ऐप्लिकेशन. आप इसका उपयोग करके इस रैपिंग का लाभ उठा सकते हैं android:lineBreakWordStyle="phrase" TextViews के साथ.

जैपनीज़ टेक्स्ट रैपिंग, जिसमें वाक्यांश की स्टाइल चालू की गई है (नीचे) और इसके बिना (ऊपर).

यूनिकोड लाइब्रेरी के अपडेट

Android 13 में नए सुधार, सुधार, और बदलाव जोड़े गए हैं यूनिकोड आईसीयू 70, यूनिकोड CLDR 40, और यूनिकोड 14.0.

यहां कुछ अहम बदलावों के बारे में बताया गया है:

  • अंग्रेज़ी (कनाडा) en‑CA और अंग्रेज़ी (गणराज्य फ़िलिपींस) en‑PH दोनों अंग्रेज़ी (संयुक्त राज्य अमेरिका) का इस्तेमाल करते हैं en अनुवाद संसाधन उपलब्ध न होने पर के बजाय अंग्रेज़ी (यूनाइटेड किंगडम) en‑GB पर क्लिक करें.
  • स्पैनिश es, इटैलियन it के लिए many बहुवचन कैटगरी शुरू की गई है. पॉर्चुगीज़ pt और पॉर्चुगीज़ (पुर्तगाल) pt‑PT. कोई अंतर नहीं फ़्रेंच भाषा में पेश की गई थी, जिसे CLDR v38 में पेश किया गया था, इसका इस्तेमाल बड़ी संख्या में किया जाता है.

कलर वेक्टर फ़ॉन्ट

COLRv1 वेक्टर इमोजी (बाएं) और बिटमैप इमोजी (दाएं)

Android 13 और इसके बाद के वर्शन में, इस सिस्टम में COLR वर्शन 1 के लिए रेंडरिंग की सुविधा शामिल है (COLRv1) फ़ॉन्ट और सिस्टम इमोजी को COLRv1 फ़ॉर्मैट में अपडेट करता है. COLRv1 छोटा फ़ॉन्ट फ़ॉर्मैट, जो किसी भी साइज़ में तेज़ी और आसानी से रेंडर हो जाता है.

ज़्यादातर ऐप्स के लिए, सिस्टम सबकुछ संभालता है और COLRv1 बस काम करता है. हालांकि, अगर आपका ऐप्लिकेशन खुद की टेक्स्ट रेंडरिंग लागू करता है और सिस्टम के फ़ॉन्ट इस्तेमाल करता है, तो हम इसके लिए, इमोजी रेंडरिंग की जांच करने का सुझाव दिया जाता है.

COLRv1 के बारे में अधिक जानने के लिए, निम्न संसाधन देखें:

क्विक सेटिंग प्लेसमेंट एपीआई

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

एक डायलॉग बॉक्स, जिसमें उपयोगकर्ता से पूछा गया है कि उसे अपने चैनल में टाइल जोड़नी है या नहीं
          क्विक सेटिंग.

क्लिपबोर्ड की झलक

Android 13 और इसके बाद के वर्शन में, यह पुष्टि करने वाला एक स्टैंडर्ड विज़ुअल दिखाता है. कॉन्टेंट को क्लिपबोर्ड पर जोड़ दिया गया है. नई पुष्टि ये काम करती है:

  • पुष्टि करता है कि कॉन्टेंट कॉपी कर लिया गया है.
  • कॉपी किए गए कॉन्टेंट की झलक दिखाता है.

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

विजेट को कॉपी करें/चिपकाएं
कॉन्टेंट के क्लिपबोर्ड पर जाने पर, नया यूज़र इंटरफ़ेस (यूआई) दिखता है.

पीछे जाने के लिए अनुमानित जेस्चर

Android 13 में लॉन्च किया गया, पीछे जाने के लिए सुझाव देने वाला हाथ का जेस्चर (हाव-भाव) फ़ोन, बड़ी स्क्रीन, और फ़ोल्ड किए जा सकने वाले डिवाइस. इस सुविधा का इस्तेमाल करने के लिए, आपको अपना ऐप्लिकेशन अपडेट करें.

ज़्यादा जानकारी वाले दस्तावेज़ देखने के लिए, अपने ऐप्लिकेशन को अपडेट करने की सुविधा का इस्तेमाल करें, ताकि वह वापस आने का सुझाव दे सके जेस्चर का इस्तेमाल करें. इन्हें भी आज़माया जा सकता है हमारे कोडलैब को बंद करें.

ब्लूटूथ LE Audio

लो एनर्जी (LE) ऑडियो ऐसा वायरलेस ऑडियो है जिसे बदलने के लिए बनाया गया है ब्लूटूथ क्लासिक पर सेट करें. साथ ही, इस्तेमाल के कुछ उदाहरण और कनेक्शन टोपोलॉजी चालू करें. यह उपयोगकर्ताओं को अपने ऑडियो को दोस्तों और परिवार के साथ शेयर और ब्रॉडकास्ट करने की सुविधा मिलती है या जानकारी, मनोरंजन या सुलभता के लिए, सार्वजनिक ब्रॉडकास्ट की सदस्यता लेना. इसे यह पक्का करने के लिए डिज़ाइन किया गया है कि उपयोगकर्ताओं को बिना किसी रुकावट के हाई फ़िडेलिटी ऑडियो मिल सके इससे बैटरी लाइफ़ कम हो जाती है और यह अलग-अलग इस्तेमाल के बीच आसानी से स्विच कर सकता है ऐसे केस जो ब्लूटूथ क्लासिक के साथ संभव नहीं हैं. Android 13 में, सिस्टम में LE Audio के लिए बिल्ट-इन सपोर्ट शामिल है, ताकि डेवलपर को इन और साथ काम करने वाले डिवाइसों पर बिना किसी शुल्क के उपलब्ध है.

एमआईडीआई 2.0

Android 13 की शुरुआत से, इस सिस्टम में MIDI 2.0 स्टैंडर्ड के साथ काम करने की सुविधा शामिल है, इसमें यूएसबी के ज़रिए एमआईडीआई 2.0 हार्डवेयर को कनेक्ट करने की सुविधा शामिल है. यह स्टैंडर्ड नियंत्रकों के लिए बढ़ा हुआ रिज़ॉल्यूशन, नॉन-वेस्टर्न इंटोनेशन और हर नोट का इस्तेमाल करके ज़्यादा एक्सप्रेसिव परफ़ॉर्मेंस कंट्रोलर.

स्प्लैश स्क्रीन की परफ़ॉर्मेंस में सुधार

Android 13, स्प्लैश में ऐनिमेशन वाली स्प्लैश स्क्रीन की परफ़ॉर्मेंस को बेहतर बनाता है स्क्रीन एपीआई:

  • सिस्टम इस अवधि से सीधे ऐनिमेशन अवधि का पता लगाता है AnimatedVectorDrawable. Android 13 से पहले, Android 13 के लिए windowSplashScreenAnimationDuration सीधे.

  • इन चीज़ों पर ज़्यादा कंट्रोल पाने के लिए, नई windowSplashScreenBehavior एट्रिब्यूट का इस्तेमाल करें आपका ऐप्लिकेशन Android 13 में स्प्लैश स्क्रीन पर हमेशा आइकॉन दिखाता है या नहीं और भी कई नतीजों पर मिलेंगे.

ज़्यादा जानकारी वाले दस्तावेज़ देखने के लिए, स्प्लैश स्क्रीन देखें.

एआरटी ऑप्टिमाइज़ेशन

Android 13 (एपीआई लेवल 33) और उसके बाद के वर्शन में, एआरटी, नेटिव से स्विच करने और उससे स्विच करने की सुविधा देता है JNI कॉल के साथ अब 2.5 गुना तेज़ी से कोड पाएं. रनटाइम के बारे में जानकारी ज़्यादातर वीडियो को ब्लॉक नहीं किया जाता. इसके लिए भी प्रोसेस पर काम किया गया. जैंक को कम करता है. इसके अलावा, आपको Reference.refersTo() सार्वजनिक API को जल्द ही ऐक्सेस करने का अनुरोध किया जा सकता है, और आपको ऑप्टिमाइज़ की गई क्लास और मेथड लुकअप की मदद से, अब अनुवादक मोड तेज़ी से काम करता है. ART भी इंस्टॉल के समय, ज़्यादा बाइट-कोड की पुष्टि करता है. रनटाइम के दौरान पुष्टि करने और ऐप्लिकेशन के शुरू होने में लगने वाले समय को तेज़ बनाए रखने के लिए किया जा सकता है.

निजता और सुरक्षा

कॉन्टेक्स्ट के हिसाब से रजिस्टर किए गए रिसीवर को सुरक्षित तरीके से एक्सपोर्ट करने की सुविधा

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

एक्सपोर्ट करने का यह कॉन्फ़िगरेशन उन ऐप्लिकेशन पर उपलब्ध है जो फ़ॉलो किया जा रहा है:

  • ContextCompat का इस्तेमाल करें 1.9.0 या इसके बाद वाले वर्शन की क्लास AndroidX Core लाइब्रेरी.
  • Android 13 या उसके बाद के वर्शन को टारगेट करें.

फ़ोटो पिकर

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

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

आस-पास के वाई-फ़ाई डिवाइसों के लिए रनटाइम की नई अनुमति

Android 13 (एपीआई लेवल 33) को लॉन्च किया गया रनटाइम की अनुमति है, उन ऐप्लिकेशन के लिए NEARBY_DEVICES अनुमतियों का ग्रुप जो डिवाइस के कनेक्शन मैनेज करते हैं वाई-फ़ाई पर आस-पास के ऐक्सेस पॉइंट. इन ऐप्लिकेशन को नई अनुमति का एलान करना होगा, NEARBY_WIFI_DEVICES जब वे कई अलग-अलग वाई-फ़ाई एपीआई को कॉल करें. इसके अलावा, जब तक ऐप्लिकेशन, वाई-फ़ाई से जगह की जानकारी हासिल नहीं कर लेते, तब तक एपीआई के लिए कॉन्फ़िगर करते हैं, तो उन्हें ACCESS_FINE_LOCATION अनुमति नहीं मिलेगी, जब वे Android 13 या उसके बाद के वर्शन को टारगेट करेंगे.

ज़्यादा जानने के लिए, आस-पास मौजूद वाई-फ़ाई डिवाइसों को ऐक्सेस करने की अनुमति.

सटीक समय वाले अलार्म इस्तेमाल करने की नई अनुमति

अगर आपका ऐप्लिकेशन Android 13 या इसके बाद वाले वर्शन को टारगेट करता है, तो USE_EXACT_ALARM अनुमति होती है, जो आपके ऐप्लिकेशन को अपने-आप मिल जाती है. आपके ऐप्लिकेशन के लिए ज़रूरी है कि इस अनुमति का इस्तेमाल करें. हालांकि, इसे इनमें से कम से कम एक शर्त को पूरा करना होगा शर्तें:

  • आपका ऐप्लिकेशन, अलार्म क्लॉक ऐप्लिकेशन या टाइमर ऐप्लिकेशन है.
  • आपका ऐप्लिकेशन, कैलेंडर ऐप्लिकेशन हो. यह आने वाले इवेंट की सूचनाएं दिखाता है.

अगर आपका ऐप्लिकेशन सटीक समय वाले अलार्म सेट करता है, लेकिन तो SCHEDULE_EXACT_ALARM उसके बजाय अनुमति का और उस स्थिति के लिए तैयार रहें जहां उपयोगकर्ता उसे ऐक्सेस करने की अनुमति दें.

डेवलपर के लिए डाउनग्रेड की जा सकने वाली अनुमतियां

Android 13 से, आपका ऐप्लिकेशन इस्तेमाल न किए गए डिवाइसों का ऐक्सेस बंद कर सकता है रनटाइम की अनुमतियां हैं. यह एपीआई आपके ऐप्लिकेशन को निजता को बेहतर बनाने वाले ये काम करने की अनुमति मिलती है:

  • इस्तेमाल नहीं की जा रही अनुमतियां हटाएं.
  • अनुमतियों से जुड़े सबसे सही तरीकों का पालन करें. इससे उपयोगकर्ताओं का भरोसा बढ़ता है. शायद आपको ये काम करना चाहिए का इस्तेमाल, आपके पास अनुमतियों को दिखाने वाला एक डायलॉग दिखाने के लिए किया है अनुरोध रद्द किया गया.

APK सिग्नेचर स्कीम v3.1

Android 13 में, 'APK सिग्नेचर स्कीम v3.1' का इस्तेमाल किया जा सकता है, जो मौजूदा मॉडल से बेहतर होता है APK सिग्नेचर स्कीम v3. यह स्कीम आम तौर पर होने वाली कुछ समस्याओं पर ध्यान देता है रोटेशन के संबंध में APK सिग्नेचर स्कीम v3 के साथ. खास तौर पर, v3.1 सिग्नेचर स्कीम, SDK वर्शन टारगेटिंग के साथ काम करती है. इसकी मदद से, टारगेट करने के लिए, प्लैटफ़ॉर्म के बाद के रिलीज़ वर्शन को टारगेट किया जा सकता है.

v3.1 सिग्नेचर स्कीम ऐसे ब्लॉक आईडी का इस्तेमाल करती है जिसे यहां स्वीकार नहीं किया गया है 12 ली॰ या इससे कम. इसलिए, यह प्लैटफ़ॉर्म हस्ताक्षर करने वाले व्यक्ति का यह व्यवहार:

  • Android 13 या उसके बाद के वर्शन पर चलने वाले डिवाइस में, साइन इन करने के लिए घुमाए गए क्रेडेंशियल का इस्तेमाल किया जाता है v3.1 ब्लॉक.
  • Android के पुराने वर्शन वाले डिवाइस, हस्ताक्षर करने वाले व्यक्ति को अनदेखा कर देते हैं और करने के लिए, v3.0 ब्लॉक में हस्ताक्षर करने वाले मूल व्यक्ति का इस्तेमाल करें.

जिन ऐप्लिकेशन ने अब तक अपने साइनिंग पासकोड को नहीं बदला है उन्हें अतिरिक्त सुरक्षा कुंजी की ज़रूरत नहीं है कार्रवाई. जब भी ये ऐप्लिकेशन घूमने का विकल्प चुनते हैं, तब सिस्टम v3.1 डिफ़ॉल्ट रूप से सिग्नेचर स्कीम.

ऐसे ऐप्लिकेशन जो पहले से ही रोटेट किए जा चुके हैं और अपनी साइन इन करने की सुविधा को जारी रखना चाहते हैं कुंजी को v3.0 साइनिंग ब्लॉक में अपडेट करने के लिए, apksigner शुरू करना:

apksigner sign --ks keystore.jks |
  --key key.pk8 --cert cert.x509.pem
  --rotation-min-sdk-version API_LEVEL
  [signer_options] app-name.apk

...जहां API_LEVEL का मान 32 या उससे कम है.

कीस्टोर और कीमिंट में बेहतर गड़बड़ी रिपोर्ट करना

पासकोड जनरेट करने वाले ऐप्लिकेशन के लिए, Keystore और KeyMint अब ज़्यादा जानकारी उपलब्ध कराते हैं और गड़बड़ी के सटीक इंडिकेटर. हमने java.security.ProviderException, Android से जुड़े ऐसे अपवादों के साथ जिनमें ये शामिल हैं कीस्टोर/KeyMint गड़बड़ी कोड, और यह कि क्या गड़बड़ी की फिर से कोशिश की जा सकती है. आप कुंजी के लिए विधियों को भी संशोधित कर सकते हैं जनरेट और इस्तेमाल (हस्ताक्षर, एन्क्रिप्शन) करने के लिए किया जा सकता है. कॉन्टेंट बनाने गड़बड़ी की बेहतर रिपोर्ट सिर्फ़ कुंजी जनरेट करने तक ही सीमित नहीं है. अब आपको कुंजी जनरेट करने के लिए फिर से कोशिश करें.

टैबलेट और बड़ी स्क्रीन सपोर्ट

Android 13, Android 12 में पेश किए गए टैबलेट ऑप्टिमाइज़ेशन के आधार पर बनाया जाता है. 12L वाली सुविधा लॉन्च की गई—इसमें सिस्टम यूज़र इंटरफ़ेस (यूआई) के लिए ऑप्टिमाइज़ेशन, मल्टीटास्किंग (एक साथ कई काम करना), और साथ काम करने वाले बेहतर मोड. टेस्टिंग के दौरान, पक्का करें कि आपके ऐप्लिकेशन टैबलेट और अन्य बड़ी स्क्रीन वाले डिवाइसों पर शानदार तरीके से दिखते हैं.

नया क्या है और क्या टेस्ट करना है, इस बारे में ज़्यादा जानकारी के लिए, यहां देखें: टैबलेट और बड़ी स्क्रीन वाले डिवाइसों पर काम करने की सुविधा पेज.

ग्राफ़िक्स

प्रोग्रामेबल शेडर

एजीएसएल ऐनिमेशन वाला शेडर, जो इससे लिया गया है जीएलएसएल शेडर.

Android 13 और इसके बाद के वर्शन में, इस सिस्टम में प्रोग्राम करने योग्य टूल के साथ काम करने की सुविधा शामिल है RuntimeShader ऑब्जेक्ट, जिनमें Android ग्राफ़िक्स शेडिंग लैंग्वेज का इस्तेमाल करके तय किया गया व्यवहार (एजीएसएल). AGSL शेयर इसका ज़्यादातर सिंटैक्स GLSL के साथ मिलता है, लेकिन यह Android रेंडरिंग इंजन के अंदर काम करके Android कैनवस में पेंटिंग को पसंद के मुताबिक बनाने और कॉन्टेंट को फ़िल्टर करने के लिए किया जा सकता है. Android, इन शेडर का इस्तेमाल लागू करने के लिए करता है रिपल इफ़ेक्ट, धुंधला, और ओवरस्क्रोल को खींचें और छोड़ें. Android 13 और उसके बाद के वर्शन की मदद से, इसी तरह के बेहतर इफ़ेक्ट बनाए जा सकते हैं है.

कोरियोग्राफ़र के तौर पर सुधार

Android 13 में, एपीआई के सार्वजनिक तरीके उपलब्ध कराए गए हैं, Choreographer और ASurfaceControl ने ऐप्लिकेशन को संभावित फ़्रेम टाइमलाइन के बारे में ज़्यादा जानकारी देनी होगी और इससे पता चलता है कि SurfaceFlinger फ़्रेम लाइफ़साइकल के बारे में जानकारी. पहले की तरह ही, ऐप्लिकेशन ये काम कर सकते हैं कॉलबैक पोस्ट करना Choreographer के लिए और फ़्रेम टाइमलाइन की जानकारी पाएं. Android 13 (एपीआई) में लेवल 33), Choreographer, प्रज़ेंटेशन का कई संभावित समय दिखाता है और समय सीमा तय की जा सकती है. ऐप्लिकेशन, प्रज़ेंटेशन का समय चुन सकते हैं और इसके बाद SurfaceFlinger को सूचना दें विकल्प चुना जा सकता है. इसके बाद, SurfaceFlinger किसी लेन-देन को लागू करने की कोशिश नहीं करेगा या कॉन्टेंट दिखने के लिए तय किए गए समय से पहले लैच बफ़र हो जाता है.

अगर आपका ऐप्लिकेशन नए कोरियोग्राफ़र और SurfaceControl के तरीकों का इस्तेमाल करता है, परफ़ेटो ट्रेस में, ऐप्लिकेशन के फ़्रेम का लाइफ़साइकल देखा जा सकता है.

कैमरा

एचडीआर वीडियो रिकॉर्ड करना

Android 13 में, Camera2 एपीआई जिन पर हाई डाइनैमिक रेंज (एचडीआर) वीडियो कैप्चर किया जा सकता है. इससे वीडियो की झलक देखी जा सकती है साथ ही, इसमें अपने फ़ोन के कैमरे से एचडीआर क्वालिटी के वीडियो रिकॉर्ड किए जा सकते हैं. स्टैंडर्ड डाइनैमिक की तुलना में रेंज (एसडीआर), एचडीआर में रंगों की ज़्यादा रेंज मिलती है और यह डाइनैमिक रेंज को बढ़ाती है ल्यूमिनेंस कॉम्पोनेंट का प्रतिशत (मौजूदा 100 cd/m2 से 1000s cd/m2 तक). इससे वीडियो की क्वालिटी, असल ज़िंदगी से काफ़ी मिलती-जुलती है. साथ ही, यह बेहतर तरीके से दिखता है रंग, चमकदार हाइलाइट, और गहरे शैडो शामिल हैं.

एचडीआर वीडियो कैप्चर करने के बारे में ज़्यादा जानने के लिए, यहां जाएं: एचडीआर वीडियो कैप्चर करने से जुड़े दस्तावेज़.

मीडिया

स्पेशल ऑडियो

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

आने वाले कॉन्टेंट के लिए ऑडियो रूटिंग

Android 13 में, मीडिया ऐप्लिकेशन को उनके ऑडियो को रूट करने का तरीका बताने के लिए, में ऑडियो रूट एपीआई की सुविधा देता है AudioManager क्लास. कॉन्टेंट बनाने getAudioDevicesForAttributes() एपीआई आपको उन डिवाइसों की सूची पाने में मदद करता है जिनका इस्तेमाल तय किया गया ऑडियो और getDirectProfilesForAttributes() एपीआई से आपको यह समझने में मदद मिलती है कि आपकी ऑडियो स्ट्रीम को सीधे तौर पर चलाया जा सकता है या नहीं. इस्तेमाल की जाने वाली चीज़ें इन एपीआई के आधार पर, अपने ऑडियो में इस्तेमाल करने के लिए AudioFormat ट्रैक करने के लिए.

सुलभता

ऑडियो फ़ॉर्मैट में जानकारी

Android 13 (एपीआई लेवल 33) में, पूरे सिस्टम के लिए एक नई सुलभता सेटिंग जोड़ी गई है जिसकी मदद से लोग सभी ऐप्लिकेशन में जानकारी सुनने की सुविधा चालू कर सकते हैं. एक ऑडियो ब्यौरा एक अतिरिक्त नैरेटर की तरह है, जिसमें नैरेटर की आवाज़ शामिल होती है प्रज़ेंटेशन के ज़रिए यह बताएं कि इस दौरान स्क्रीन पर क्या हो रहा है ऑडियो में स्वाभाविक ठहराव नहीं होते. ऐप्लिकेशन, उपयोगकर्ता की पसंद के हिसाब से ऑडियो ट्रैक के लिए अपनी पसंद के मुताबिक काम कर सकते हैं. इसके लिए, isAudioDescriptionRequested() से क्वेरी की जा रही है, जैसा कि नीचे दिए गए कोड स्निपेट में दिखाया गया है:

Kotlin

private lateinit var accessibilityManager: AccessibilityManager

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager::class.java)

// Where your media player is initialized
if (accessibilityManager.isAudioDescriptionRequested) {
    // User has requested to enable audio descriptions
}

Java

private AccessibilityManager accessibilityManager;

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager.class);

// Where your media player is initialized
if(accessibilityManager.isAudioDescriptionRequested()) {
    // User has requested to enable audio descriptions
}

ऐप्लिकेशन, एक लिसनर जोड़कर, उपयोगकर्ता की पसंद में बदलाव पर नज़र रख सकते हैं AccessbilityManager:

Kotlin

private val listener =
    AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled ->
        // Preference changed; reflect its state in your media player
    }

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

Java

private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> {
    // Preference changed; reflect its state in your media player
};

@Override
protected void onStart() {
    super.onStart();

    accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener);
}

@Override
protected void onStop() {
    super.onStop();

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}

मुख्य फ़ंक्शन

OpenJDK 11 से जुड़े अपडेट

Android 13, Android की मुख्य लाइब्रेरी को रीफ़्रेश करना शुरू करता है, ताकि OpenJDK 11 एलटीएस रिलीज़, जिसमें लाइब्रेरी अपडेट और Java 11 लैंग्वेज, दोनों शामिल हैं ऐप्लिकेशन और प्लेटफ़ॉर्म डेवलपर के लिए सहायता. मुख्य लाइब्रेरी में बदलाव होते हैं Android 13 में पेश की गई, Android 12 डिवाइसों में भी उपलब्ध होगी. इसके लिए, ART Mainline मॉड्यूल पर Google Play का सिस्टम अपडेट.

Android 13 में मुख्य लाइब्रेरी में किए गए ये बदलाव शामिल हैं:

  • लोकल वैरिएबल के लिए var कीवर्ड और Lambdas पैरामीटर के तौर पर सहायता.
  • स्ट्रिंग क्लास में नए तरीके:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • Collection.toArray(IntFunction) के लिए सहायता, ताकि कलेक्शन में से चुनें.

  • ifPresentOrElse(), isEmpty(), orElseThrow(), और stream() के लिए सहायता java.util क्लास Optional, OptionalDouble, OptionalInt, और OptionalLong.

  • SocketOptions के लिए ज़्यादा सहायता वाली सुविधा. इसमें सॉकेट का फिर से इस्तेमाल करना भी शामिल है.

  • NullReader NullWriter, InputStream OutputStream, और transferTo() Reader फ़ंक्शन, जो पढ़े गए वर्णों को Writer में ट्रांसफ़र करता है.

  • Charsets का इस्तेमाल करके यूआरएल को कोड में बदलने और डिकोड करने की सुविधा जोड़ी गई.

  • FileReader, FileWriter, PrintStream, और लोगों के लिए Charset फ़ंक्शन PrintWriter.

  • नए transferTo(), readNBytes(), readAllBytes(), और writeBytes() ByteArrayInput या OutputStream और Input के लिए फ़ंक्शन या OutputStream.

  • java.lang.invoke.VarHandle के लिए रनटाइम और कंपाइलर की सुविधा.

  • VarHandle का इस्तेमाल करके, java.util.concurrent को OpenJDK 11 एपीआई में अपडेट किया जाता है.

Java और OpenJDK, Oracle और/या इसके सहयोगी (अफ़िलिएट) हैं.