ऐप्लिकेशन के व्यवहार में बदलाव: सभी ऐप्लिकेशन

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

ऐप्लिकेशन के काम करने के तरीके में हुए उन बदलावों की सूची भी देखना न भूलें जिनका असर सिर्फ़ Android 15 को टारगेट करने वाले ऐप्लिकेशन पर पड़ता है.

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

Android 15, Android सिस्टम की कई मुख्य सुविधाओं में बदलाव करता है या उन्हें बेहतर बनाता है.

पैकेज की रोकी गई स्थिति में बदलाव

पैकेज FLAG_STOPPED की स्थिति का मकसद, ऐप्लिकेशन को तब तक इस स्थिति में रखना है, जब तक उपयोगकर्ता सीधे तौर पर ऐप्लिकेशन को लॉन्च करके या शेयरशीट या विजेट के ज़रिए ऐप्लिकेशन के साथ इंटरैक्ट करके (ऐप्लिकेशन को लाइव वॉलपेपर के तौर पर चुनना वगैरह) ऐप्लिकेशन को इस स्थिति से हटा न दे. उपयोगकर्ता, AOSP बिल्ड में ऐप्लिकेशन आइकॉन को दबाकर रखकर और "ज़बरदस्ती बंद करें" को चुनकर, पैकेज FLAG_STOPPED की स्थिति में ऐप्लिकेशन को डाल सकता है. Android 15 में, हमने सिस्टम के व्यवहार को अपडेट किया है, ताकि यह इस मकसद के मुताबिक काम करे. ऐप्लिकेशन को 'रोका गया' स्थिति से सिर्फ़ तब हटाया जाना चाहिए, जब उपयोगकर्ता ने सीधे तौर पर या किसी अन्य तरीके से ऐसा किया हो.

ऐप्लिकेशन को Android 15 वाले डिवाइस पर बंद होने पर, सिस्टम सभी मंज़ूरी बाकी इंटेंट को रद्द कर देता है. ऐसा, ऐप्लिकेशन के सही तरीके से काम करने के लिए, मौजूदा पाबंदियों के साथ-साथ किया जाता है. जब उपयोगकर्ता की कार्रवाइयों से ऐप्लिकेशन को 'बंद है' स्थिति से हटाया जाता है, तो ऐप्लिकेशन पर ACTION_BOOT_COMPLETED ब्रॉडकास्ट डिलीवर किया जाता है. इससे, किसी भी लंबित इंटेंट को फिर से रजिस्टर करने का मौका मिलता है.

ऐप्लिकेशन को बंद किया गया है या नहीं, इसकी पुष्टि करने के लिए, नए ApplicationStartInfo.wasForceStopped() तरीके का इस्तेमाल किया जा सकता है.

16 केबी वाले पेज साइज़ के साथ काम करना

अब तक, Android पर सिर्फ़ 4 केबी मेमोरी पेज का साइज़ काम करता था, जिसमें कुल मेमोरी की औसत मात्रा के लिए ऑप्टिमाइज़ की गई सिस्टम मेमोरी परफ़ॉर्मेंस आम तौर पर, Android डिवाइसों पर यह सुविधा ज़्यादा काम करती थी. Android 15 और इसके बाद के वर्शन में, AOSP काम करता है ऐसे डिवाइस जिन्हें 16 केबी (16 केबी) के पेज साइज़ का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है डिवाइसों के हिसाब से). अगर आपका ऐप्लिकेशन किसी भी NDK लाइब्रेरी का इस्तेमाल करता है, तो सीधे तौर पर है, तो आपको इसके लिए अपना ऐप्लिकेशन फिर से बनाना होगा: काम करता है.

जैसा कि डिवाइस बनाने वाली कंपनियां, बड़ी संख्या में डिवाइसों को बनाना जारी रख रही हैं फ़िज़िकल मेमोरी (रैम) का इस्तेमाल करते हैं, तो इनमें से कई डिवाइस 16 केबी (और पेज का साइज़ तय करना होता है. जोड़ा जा रहा है 16 केबी वाले पेज साइज़ वाले डिवाइसों पर काम करने से, आपका ऐप्लिकेशन इन डिवाइसों पर काम करता है डिवाइस और आपके ऐप्लिकेशन को इनसे जुड़ी परफ़ॉर्मेंस का फ़ायदा मिलता है सुधार किए गए हैं. फिर से कंपाइल किए बिना, हो सकता है कि ऐप्लिकेशन 16 केबी वाले डिवाइसों पर काम न करें करने के लिए डिज़ाइन किया गया है.

आपके ऐप्लिकेशन के लिए सहायता जोड़ने में आपकी मदद करने के लिए, हमने यह देखने का तरीका बताने के लिए दिशा-निर्देश दिए हैं अगर इसका असर आपके ऐप्लिकेशन पर पड़ा है, तो ऐप्लिकेशन को फिर से बनाएं (अगर लागू हो) और अपने ऐप्लिकेशन की जांच करने का तरीका एम्युलेटर का इस्तेमाल करके, 16 केबी एनवायरमेंट (इसमें Android 15 शामिल है) Android Emulator के लिए सिस्टम इमेज).

फ़ायदे और परफ़ॉर्मेंस में बढ़ोतरी

配置为使用 16 KB 页面大小的设备平均会使用略多一些的内存,但系统和应用的性能也会得到各种提升:

  • 缩短了系统内存压力时的应用启动时间:平均降低了 3.16%;对于我们测试的某些应用而言,改进幅度更大(最高可达 30%)
  • 应用启动期间的功耗降低:平均降低了 4.56%
  • 相机启动更快:热启动速度平均提高了 4.48%,冷启动速度平均提高了 6.60%
  • 缩短了系统启动时间:平均缩短了 8%(约 950 毫秒)

这些改进基于我们的初始测试,实际设备上的结果可能会有所不同。随着测试的继续进行,我们将进一步分析应用的潜在收益。

देखें कि आपके ऐप्लिकेशन पर इसका असर पड़ा है या नहीं

अगर आपका ऐप्लिकेशन किसी नेटिव कोड का इस्तेमाल करता है, तो आपको अपने ऐप्लिकेशन को फिर से बनाना होगा, ताकि वह 16 केबी वाले डिवाइसों पर काम कर सके. अगर आपको नहीं पता कि आपका ऐप्लिकेशन नेटिव कोड का इस्तेमाल करता है या नहीं, तो APK विश्लेषक का इस्तेमाल करके यह पता लगाया जा सकता है कि कोई नेटिव कोड मौजूद है या नहीं. इसके बाद, आपको जो भी शेयर की गई लाइब्रेरी मिलती हैं उनके ELF सेगमेंट के अलाइनमेंट की जांच करें.

अगर आपका ऐप्लिकेशन सिर्फ़ Java प्रोग्रामिंग भाषा या Kotlin में लिखे गए कोड का इस्तेमाल करता है, तो इसका मतलब है कि आपका ऐप्लिकेशन पहले से ही 16 KB वाले डिवाइसों पर काम करता है. इसमें सभी लाइब्रेरी या SDK टूल भी शामिल हैं. इसके बावजूद, हमारा सुझाव है कि आप अपने ऐप्लिकेशन को 16 केबी वाले एनवायरमेंट में टेस्ट करें. इससे यह पक्का किया जा सकेगा कि ऐप्लिकेशन के काम करने के तरीके में कोई अनचाहा बदलाव नहीं हुआ है.

प्राइवेट स्पेस की सुविधा के साथ काम करने के लिए, कुछ ऐप्लिकेशन में ज़रूरी बदलाव

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

सभी ऐप्लिकेशन

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

चिकित्सा से जुड़े ऐप्लिकेशन

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

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

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

लॉन्चर ऐप्लिकेशन

अगर आपने कोई लॉन्चर ऐप्लिकेशन डेवलप किया है, तो निजी स्पेस में ऐप्लिकेशन दिखने से पहले, आपको ये काम करने होंगे:

  1. आपके ऐप्लिकेशन को डिवाइस के लिए डिफ़ॉल्ट लॉन्चर ऐप्लिकेशन के तौर पर असाइन किया जाना चाहिए. इसका मतलब है कि आपके ऐप्लिकेशन के पास ROLE_HOME भूमिका होनी चाहिए.
  2. आपके ऐप्लिकेशन को ACCESS_HIDDEN_PROFILES सामान्य अनुमति का एलान करना होगा. यह एलान, आपके ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में करना होगा.

ACCESS_HIDDEN_PROFILES अनुमति का एलान करने वाले लॉन्चर ऐप्लिकेशन को, प्राइवेट स्पेस के इस्तेमाल के इन उदाहरणों को मैनेज करना होगा:

  1. आपके ऐप्लिकेशन में, प्राइवेट स्पेस में इंस्टॉल किए गए ऐप्लिकेशन के लिए, अलग लॉन्चर कंटेनर होना चाहिए. getLauncherUserInfo() तरीके का इस्तेमाल करके, यह पता लगाएं कि किस तरह की उपयोगकर्ता प्रोफ़ाइल मैनेज की जा रही है.
  2. उपयोगकर्ता के पास प्राइवेट स्पेस कंटेनर को छिपाने और दिखाने का विकल्प होना चाहिए.
  3. उपयोगकर्ता के पास प्राइवेट स्पेस कंटेनर को लॉक और अनलॉक करने का विकल्प होना चाहिए. प्राइवेट स्पेस को लॉक करने (true पास करके) या अनलॉक करने (false पास करके) के लिए, requestQuietModeEnabled() तरीके का इस्तेमाल करें.
  4. लॉक होने पर, प्राइवेट स्पेस कंटेनर में मौजूद कोई भी ऐप्लिकेशन न दिखे या खोज जैसे तरीकों से न खोजा जा सके. आपके ऐप्लिकेशन को ACTION_PROFILE_AVAILABLE और ACTION_PROFILE_UNAVAILABLE ब्रॉडकास्ट के लिए एक रिसीवर रजिस्टर करना चाहिए. साथ ही, प्राइवेट स्पेस कंटेनर की लॉक या अनलॉक की गई स्थिति में बदलाव होने पर, अपने ऐप्लिकेशन में यूज़र इंटरफ़ेस (यूआई) को अपडेट करना चाहिए. इन दोनों ब्रॉडकास्ट में EXTRA_USER शामिल होता है. आपका ऐप्लिकेशन, निजी प्रोफ़ाइल के उपयोगकर्ता को रेफ़र करने के लिए इसका इस्तेमाल कर सकता है.

    isQuietModeEnabled() तरीके का इस्तेमाल करके भी यह देखा जा सकता है कि प्राइवेट स्पेस प्रोफ़ाइल लॉक है या नहीं.

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

प्राइवेट स्पेस में "ऐप्लिकेशन इंस्टॉल करें" बटन होता है. इस बटन पर टैप करने से, उपयोगकर्ता के प्राइवेट स्पेस में ऐप्लिकेशन इंस्टॉल करने के लिए, एक इंटेंट शुरू होता है. आपके ऐप्लिकेशन को यह इंप्लिसिट इंटेंट पाने के लिए, अपनी ऐप्लिकेशन मेनिफ़ेस्ट फ़ाइल में <intent-filter> का एलान करें. साथ ही, CATEGORY_APP_MARKET के <category> का इस्तेमाल करें.

PNG-आधारित इमोजी फ़ॉन्ट हटाया गया

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

यह देखने के लिए कि आपके ऐप्लिकेशन पर असर पड़ा है या नहीं, अपने ऐप्लिकेशन के कोड में NotoColorEmojiLegacy.ttf फ़ाइल के रेफ़रंस खोजें.

अपने ऐप्लिकेशन को कई तरीकों से अडैप्ट किया जा सकता है:

  • टेक्स्ट रेंडर करने के लिए, प्लैटफ़ॉर्म एपीआई का इस्तेमाल करें. टेक्स्ट को बिटमैप के साथ रेंडर किया जा सकता है Canvas और ज़रूरत पड़ने पर, रॉ इमेज पाने के लिए उसका इस्तेमाल किया जा सकता है.
  • अपने ऐप्लिकेशन में COLRv1 फ़ॉन्ट का इस्तेमाल करने की सुविधा जोड़ें. FreeType ओपन सोर्स लाइब्रेरी, 2.13.0 और उसके बाद के वर्शन में COLRv1 के साथ काम करती है.
  • आखिरी विकल्प के तौर पर, अपने APK में लेगसी इमोजी फ़ॉन्ट फ़ाइल (NotoColorEmoji.ttf) को बंडल किया जा सकता है. हालांकि, ऐसा करने पर आपके ऐप्लिकेशन में इमोजी के नए अपडेट नहीं दिखेंगे. ज़्यादा जानकारी के लिए, Noto Emoji GitHub प्रोजेक्ट का पेज देखें.

SDK टूल के टारगेट किए जाने वाले कम से कम वर्शन को 23 से बढ़ाकर 24 किया गया

Android 15 基于 在 Android 14 中进行的更改,并扩展了 安全性。在 Android 15 中, 无法安装低于 24 的 targetSdkVersion。 要求应用符合现代 API 级别有助于确保更好的安全性和 保护隐私。

恶意软件通常会以较低的 API 级别为目标平台,以绕过安全和隐私 更高的 Android 版本中引入的保护机制。例如,有些恶意软件应用使用 targetSdkVersion 22,以避免受到 Android 6.0 Marshmallow(API 级别 23)在 2015 年引入的运行时权限模型的约束。这项 Android 15 变更使恶意软件更难以规避安全和隐私权方面的改进限制。尝试安装以较低 API 级别为目标平台的应用将导致安装失败,并且 Logcat 中会显示如下所示的消息:

INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7

在升级到 Android 15 的设备上,targetSdkVersion 级别较低的任何应用 安装在 Google Play 上

如果您需要测试以旧版 API 级别为目标平台的应用,请使用以下 ADB 命令:

adb install --bypass-low-target-sdk-block FILENAME.apk

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

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

डेवलपर को इन बातों का ध्यान रखना चाहिए, ताकि यह पक्का किया जा सके कि उनके ऐप्लिकेशन, Android 15 में किए गए बदलावों के साथ काम करते हों:

ओटीपी छिपाना

Android, NotificationListenerService को लागू करने वाले गैर-भरोसेमंद ऐप्लिकेशन को, सूचनाओं में मौजूद ओटीपी को छिपाए बिना पढ़ने से रोक देगा. भरोसेमंद ऐप्लिकेशन, जैसे कि साथी डिवाइस मैनेजर असोसिएशन को इन पाबंदियों से छूट मिली है.

स्क्रीन शेयर करने की सुविधा को सुरक्षित करना

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

कैमरा और मीडिया

Android 15 में, सभी ऐप्लिकेशन के लिए कैमरे और मीडिया के व्यवहार में ये बदलाव किए गए हैं.

रिसॉर्स की सीमा पूरी होने पर, डायरेक्ट और ऑफ़लोड किए गए ऑडियो ट्रैक को चलाने पर, पहले से खुले डायरेक्ट या ऑफ़लोड किए गए ऑडियो ट्रैक अमान्य हो जाते हैं

Android 15 से पहले, अगर कोई ऐप्लिकेशन सीधे तौर पर या ऑफ़लोड करके ऑडियो चलाने का अनुरोध करता था, तो जब कोई दूसरा ऐप्लिकेशन ऑडियो चला रहा होता था और रिसॉर्स की सीमा पूरी हो जाती थी, तो वह ऐप्लिकेशन नया AudioTrack नहीं खोल पाता था.

Android 15 से, जब कोई ऐप्लिकेशन सीधे या ऑफ़लोड किए गए वीडियो को चलाने का अनुरोध करता है और संसाधन की सीमाएं पूरी हो जाती हैं, तो सिस्टम उन सभी AudioTrack ऑब्जेक्ट को अमान्य कर देता है जो नए ट्रैक के अनुरोध को पूरा करने से रोकते हैं.

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

उपयोगकर्ता अनुभव और सिस्टम यूज़र इंटरफ़ेस (यूआई)

Android 15 में कुछ बदलाव किए गए हैं. इनका मकसद, उपयोगकर्ताओं को ज़्यादा बेहतर और आसान अनुभव देना है.

जिन ऐप्लिकेशन ने ऑप्ट-इन किया है उनके लिए, प्रिडिक्टिव बैक ऐनिमेशन की सुविधा चालू है

从 Android 15 开始,预测性返回动画的开发者选项已被移除。现在,如果应用已完全或在 activity 级别选择启用预测性返回手势,则系统会为其显示“返回主屏幕”“跨任务”和“跨 activity”等系统动画。如果您的应用受到了影响,请执行以下操作:

  • 确保您的应用已正确迁移,以使用预测性返回手势。
  • 确保 fragment 转场效果可与预测性返回导航搭配使用。
  • 请弃用动画和框架过渡,改用动画和 androidx 过渡。
  • FragmentManager 不认识的返回堆栈迁移。请改用由 FragmentManager 或 Navigation 组件管理的返回堆栈。

जब कोई उपयोगकर्ता किसी ऐप्लिकेशन को ज़बरदस्ती बंद करता है, तो विजेट बंद हो जाते हैं

如果用户在搭载 Android 15 的设备上强制停止应用,系统会暂时停用该应用的所有微件。这些 widget 会灰显,用户无法与其互动。这是因为,从 Android 15 开始,当系统强制停止应用时,会取消应用的所有待处理 intent。

系统会在用户下次启动应用时重新启用这些微件。

如需了解详情,请参阅对软件包停止状态的更改

मीडिया प्रोजेक्शन स्टेटस बार चिप, उपयोगकर्ताओं को स्क्रीन शेयर करने, कास्ट करने, और रिकॉर्ड करने के बारे में सूचना देता है

स्क्रीन प्रोजेक्शन का गलत इस्तेमाल करने पर, उपयोगकर्ताओं का निजी डेटा, जैसे कि वित्तीय जानकारी ज़ाहिर हो जाती है. ऐसा इसलिए होता है, क्योंकि उपयोगकर्ताओं को पता नहीं चलता कि उनकी डिवाइस की स्क्रीन शेयर की जा रही है.

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

स्क्रीन शेयर करने, कास्ट करने, और रिकॉर्ड करने के लिए स्टेटस बार चिप.

Check if your app is impacted

By default, your app includes the status bar chip and automatically suspends screen projection when the lock screen activates.

To learn more about how to test your app for these use cases, see Status bar chip and auto stop.

बैकग्राउंड में नेटवर्क के ऐक्सेस से जुड़ी पाबंदियां

Android 15 में, ऐसे ऐप्लिकेशन को अपवाद मिलता है जो मान्य प्रोसेस के लाइफ़साइकल के बाहर नेटवर्क अनुरोध शुरू करते हैं. आम तौर पर, एक UnknownHostException या सॉकेट से जुड़ा कोई अन्य IOException. मान्य लाइफ़साइकल के बाहर होने वाले नेटवर्क अनुरोध, आम तौर पर तब होते हैं, जब ऐप्लिकेशन बंद होने के बाद भी, अनजाने में नेटवर्क अनुरोध जारी रहता है.

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

बंद की गई सेवाएं/सुविधाएं

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

बंद होने का मतलब है कि हमने एपीआई के लिए आधिकारिक सहायता बंद कर दी है. हालांकि, ये एपीआई डेवलपर के लिए उपलब्ध रहेंगे. Android के इस वर्शन में, बंद किए गए अहम API के बारे में ज़्यादा जानने के लिए, बंद किए गए API का पेज देखें.