Android 10, उपयोगकर्ताओं और डेवलपर के लिए बेहतरीन सुविधाएं और बेहतर सुविधाएं उपलब्ध कराता है. इस दस्तावेज़ में, डेवलपर के लिए उपलब्ध सुविधाओं के बारे में बताया गया है.
एपीआई के बारे में जानने के लिए, एपीआई में अंतर की रिपोर्ट पढ़ें या Android API के रेफ़रंस पर जाएं. वे एपीआई ढूंढें जो "एपीआई लेवल 29 में जोड़े गए" थे. साथ ही, Android 10 के काम करने के तरीके में हुए बदलावों (एपीआई लेवल 29 को टारगेट करने वाले ऐप्लिकेशन और सभी ऐप्लिकेशन के लिए) देखना न भूलें. साथ ही, उन क्षेत्रों के बारे में जानने के लिए निजता में किए गए बदलाव देखें जहां प्लैटफ़ॉर्म में होने वाले बदलावों का आपके ऐप्लिकेशन पर असर पड़ सकता है.
सुरक्षा से जुड़े सुधार
Android 10 में सुरक्षा से जुड़ी कई सुविधाएं जोड़ी गई हैं. इनके बारे में यहां बताया गया है.
बायोमेट्रिक ऑथेंटिकेशन के लिए बेहतर डायलॉग
Android 10 में बायोमेट्रिक ऑथेंटिकेशन से जुड़ी सहायता में ये सुधार किए गए हैं:
- बायोमेट्रिक ऑथेंटिकेशन की सुविधा की जांच.
- यह एक फ़ॉलबैक मैकेनिज्म है. अगर उपयोगकर्ता अपने बायोमेट्रिक इनपुट का इस्तेमाल करके पुष्टि नहीं कर पाता है, तो वह अपने डिवाइस के पिन, पैटर्न या पासवर्ड का इस्तेमाल करके पुष्टि कर सकता है.
- यह एक संकेत है, जो सिस्टम को बताता है कि उपयोगकर्ता ने अपने-आप काम करने वाले बायोमेट्रिक मोड का इस्तेमाल करके पुष्टि करने के बाद, उसे उपयोगकर्ता की पुष्टि की ज़रूरत नहीं है. उदाहरण के लिए, आपके पास सिस्टम को यह बताने का विकल्प होता है कि चेहरे की पुष्टि करने की सुविधा का इस्तेमाल करके, उपयोगकर्ता की पुष्टि करने के बाद, किसी और पुष्टि की ज़रूरत नहीं है.
एम्बेड किए गए DEX कोड को सीधे APK से चलाना
Android 10 के बाद से, आपके पास प्लैटफ़ॉर्म को सीधे अपने ऐप्लिकेशन की APK फ़ाइल से, एम्बेड किया गया DEX कोड चलाने का निर्देश मिलता है. अगर हमलावर कभी भी डिवाइस पर, लोकल तौर पर कॉम्पाइल किए गए कोड में बदलाव कर पाता है, तो इस विकल्प की मदद से हमले को रोका जा सकता है.
ज़्यादा जानकारी के लिए, एम्बेड किए गए DEX कोड को सीधे APK से चलाना लेख पढ़ें.
TLS 1.3 के साथ काम करना
Android 10 में TLS 1.3 के साथ काम करने की सुविधा जोड़ी गई है. TLS 1.3, TLS मानक का एक बड़ा बदलाव है. इसमें प्रदर्शन के फ़ायदे और बेहतर सुरक्षा शामिल है. हमारे बेंचमार्क से पता चलता है कि TLS 1.2 की तुलना में, TLS 1.3 की मदद से सुरक्षित कनेक्शन 40% ज़्यादा तेज़ी से बनाए जा सकते हैं.
TLS 1.3 को लागू करने के बारे में ज़्यादा जानकारी के लिए, सभी ऐप्लिकेशन के व्यवहार में हुए बदलावों वाले पेज पर, TLS सेक्शन देखें.
सार्वजनिक Conscrypt API
Android 10 के बाद, Conscrypt सुरक्षा सेवा देने वाली कंपनी ने TLS की सुविधा के लिए, एक सार्वजनिक एपीआई शामिल किया है.
android.net.ssl
में मौजूद क्लास के कलेक्शन में, ऐसी सुविधाओं को ऐक्सेस करने के लिए स्टैटिक तरीके शामिल होते हैं जो सामान्य javax.net.ssl
एपीआई से उपलब्ध नहीं होते. इन क्लास के नाम, संबंधित javax.net.ssl
क्लास के बहुवचन के तौर पर समझे जा सकते हैं. उदाहरण के लिए, javax.net.ssl.SSLSocket
के इंस्टेंस पर काम करने वाला कोड, इसके बजाय SSLSockets
के तरीकों का इस्तेमाल कर सकता है.
कनेक्टिविटी से जुड़ी सुविधाएं
Android 10 में नेटवर्किंग और कनेक्टिविटी से जुड़े कई सुधार शामिल हैं.
Wi-Fi नेटवर्क कनेक्शन API
Android 10 में पीयर-टू-पीयर कनेक्शन की सुविधा जोड़ी गई है. इस सुविधा की मदद से, आपका ऐप्लिकेशन उपयोगकर्ता को उस ऐक्सेस पॉइंट को बदलने के लिए कह सकता है जिससे डिवाइस कनेक्ट है. इसके लिए, अनुरोध किए गए नेटवर्क की प्रॉपर्टी के बारे में बताने के लिए, WifiNetworkSpecifier
का इस्तेमाल किया जाता है. पीयर-टू-पीयर कनेक्शन का इस्तेमाल, नेटवर्क उपलब्ध कराने के अलावा अन्य कामों के लिए किया जाता है. जैसे, Chromecast और Google Home हार्डवेयर जैसे दूसरे डिवाइसों के लिए, कॉन्फ़िगरेशन को बूटस्ट्रैप करना.
ज़्यादा जानकारी के लिए, पीयर-टू-पीयर कनेक्टिविटी के लिए वाई-फ़ाई नेटवर्क अनुरोध एपीआई देखें.
वाई-फ़ाई नेटवर्क के सुझाव देने वाला एपीआई
Android 10, लोगों को वाई-फ़ाई ऐक्सेस पॉइंट से कनेक्ट करने के लिए सूचना देने के लिए, आपके ऐप्लिकेशन पर सहायता उपलब्ध कराता है. आपके पास यह तय करने का विकल्प होता है कि किस नेटवर्क से कनेक्ट करना है. आपके और दूसरे ऐप्लिकेशन के इनपुट के आधार पर, प्लैटफ़ॉर्म यह तय करेगा कि कौनसा ऐक्सेस पॉइंट स्वीकार करना है.
इस सुविधा के बारे में ज़्यादा जानने के लिए, वाई-फ़ाई का सुझाव देखें.
वाई-फ़ाई के लिए, अच्छी परफ़ॉर्मेंस और इंतज़ार का समय कम करने वाले मोड को बेहतर बनाया गया है
Android 10 की मदद से, डिवाइस में मौजूद मॉडेम को सूचना दी जा सकती है, ताकि इंतज़ार का समय कम किया जा सके.
Android 10, ज़्यादा परफ़ॉर्मेंस वाले मोड और इंतज़ार का समय कम करने वाले मोड के साथ काम करने के लिए, Wi-Fi Lock API को बेहतर बनाता है. बेहतर परफ़ॉर्मेंस और कम इंतज़ार वाले मोड के लिए, वाई-फ़ाई पावर सेव मोड बंद होता है. साथ ही, मॉडम के साथ काम करने के आधार पर, कम इंतज़ार वाले मोड में इंतज़ार को ऑप्टिमाइज़ करने की सुविधा चालू की जा सकती है.
कम इंतज़ार वाला मोड सिर्फ़ तब चालू होता है, जब लॉक हासिल करने वाला ऐप्लिकेशन फ़ोरग्राउंड में चल रहा हो और स्क्रीन चालू हो. लो-लेटेंसी मोड, रीयल-टाइम मोबाइल गेमिंग ऐप्लिकेशन के लिए खास तौर पर मददगार होता है.
डीएनएस रिज़ॉल्वर में खास लुकअप
Android 10 में, क्लियरटेक्स्ट लुकअप और डीएनएस-ओवर-टीएलएस मोड, दोनों का इस्तेमाल करके खास डीएनएस लुकअप के लिए नेटिव सपोर्ट जोड़ा गया है. पहले, प्लैटफ़ॉर्म का डीएनएस रिज़ॉल्वर सिर्फ़ A और AAAA रिकॉर्ड के साथ काम करता था. इन रिकॉर्ड की मदद से, किसी नेम से जुड़े सिर्फ़ आईपी पते देखे जा सकते थे. हालांकि, यह किसी दूसरे टाइप के रिकॉर्ड के साथ काम नहीं करता था.
DnsResolver
एपीआई, सामान्य और एसिंक्रोनस रिज़ॉल्यूशन उपलब्ध कराता है. इससे SRV
, NAPTR
, और अन्य तरह के रिकॉर्ड देखे जा सकते हैं. ध्यान दें कि जवाब को पार्स करने की ज़िम्मेदारी ऐप्लिकेशन की होती है.
NDK पर आधारित ऐप्लिकेशन के लिए, android_res_nsend
देखें.
वाई-फ़ाई आसानी से कनेक्ट करना
Android 10 में, किसी दूसरे डिवाइस पर वाई-फ़ाई क्रेडेंशियल डालने के लिए, आसानी से कनेक्ट करने की सुविधा का इस्तेमाल किया जा सकता है. यह सुविधा, अब काम न करने वाले WPS की जगह लेती है.
ऐप्लिकेशन, ACTION_PROCESS_WIFI_EASY_CONNECT_URI
इंटेंट का इस्तेमाल करके, अपने सेटअप और प्रोविज़निंग फ़्लो में Easy Connect को इंटिग्रेट कर सकते हैं.
इस सुविधा के बारे में ज़्यादा जानने के लिए, वाई-फ़ाई आसानी से कनेक्ट करना लेख पढ़ें.
वाई-फ़ाई डायरेक्ट कनेक्शन API
WifiP2pConfig
और WifiP2pManager
एपीआई क्लास को Android 10 में अपडेट किया गया है.
इससे पहले से तय जानकारी का इस्तेमाल करके, Wi-Fi Direct से कनेक्ट करने में मदद मिलेगी. यह जानकारी एक साइड चैनल के ज़रिए शेयर की जाती है, जैसे कि
ब्लूटूथ या एनएफ़सी.
यहां दिए गए कोड सैंपल में, पहले से तय की गई जानकारी का इस्तेमाल करके ग्रुप बनाने का तरीका बताया गया है:
Kotlin
val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager val channel = manager.initialize(this, mainLooper, null) // prefer 5G band for this group val config = WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build() // create a non-persistent group on 5GHz manager.createGroup(channel, config, null)
Java
WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); Channel channel = manager.initialize(this, getMainLooper(), null); // prefer 5G band for this group WifiP2pConfig config = new WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build(); // create a non-persistent group on 5GHz manager.createGroup(channel, config, null);
क्रेडेंशियल का इस्तेमाल करके किसी ग्रुप में शामिल होने के लिए, manager.createGroup()
को नीचे दी गई चीज़ से बदलें:
Kotlin
manager.connect(channel, config, null)
Java
manager.connect(channel, config, null);
ब्लूटूथ LE कनेक्शन ओरिएंटेड चैनल (CoC)
Android 10 में आपका ऐप्लिकेशन, दो BLE डिवाइसों के बीच बड़ी डेटा स्ट्रीम ट्रांसफ़र करने के लिए, BLE CoC कनेक्शन का इस्तेमाल कर सकता है. यह इंटरफ़ेस, ब्लूटूथ और कनेक्टिविटी मैकेनिक्स को अलग करता है, ताकि इसे लागू करना आसान हो.
टेलीफ़ोनी की सुविधाएं
Android 10 में टेलीफ़ोनी से जुड़े कई सुधार शामिल हैं.
कॉल की क्वालिटी को बेहतर बनाना
Android 10, इस सुविधा के साथ काम करने वाले डिवाइसों पर, नेटवर्क में और नेटवर्क से आने-जाने की क्वालिटी के साथ-साथ, चल रहे आईपी मल्टीमीडिया सबसिस्टम (IMS) कॉल की क्वालिटी के बारे में जानकारी इकट्ठा करने की सुविधा देता है.
कॉल की स्क्रीनिंग और कॉलर आईडी
Android 10 में, आपके ऐप्लिकेशन के पास उपयोगकर्ता की पता पुस्तिका में मौजूद कॉल के अलावा, अन्य कॉल की पहचान करने का विकल्प होता है. साथ ही, उपयोगकर्ता की ओर से स्पैम कॉल को चुपचाप अस्वीकार करने का विकल्प भी होता है. ब्लॉक किए गए इन कॉल की जानकारी को कॉल लॉग में, ब्लॉक किए गए कॉल के तौर पर लॉग किया जाता है. ऐसा इसलिए किया जाता है, ताकि छूटे हुए कॉल के बारे में उपयोगकर्ता को ज़्यादा जानकारी दी जा सके. इस एपीआई का इस्तेमाल करने से, उपयोगकर्ता से कॉल की स्क्रीनिंग और कॉलर आईडी की सुविधा देने के लिए, READ_CALL_LOG
की अनुमतियां लेने की ज़रूरत नहीं होती.
कॉल रीडायरेक्शन सेवा का एपीआई
Android 10 में, कॉल इंटेंट को मैनेज करने का तरीका बदल गया है. NEW_OUTGOING_CALL
ब्रॉडकास्ट अब काम नहीं करता. इसे CallRedirectionService
API से बदल दिया गया है. CallRedirectionService
एपीआई, Android प्लैटफ़ॉर्म से किए गए आउटगोइंग कॉल में बदलाव करने के लिए इंटरफ़ेस उपलब्ध कराता है. उदाहरण के लिए, तीसरे पक्ष के ऐप्लिकेशन कॉल रद्द कर सकते हैं और उन्हें VoIP पर फिर से रूट कर सकते हैं.
बाहरी स्टोरेज में फ़ाइलें बनाने की सुविधा को बेहतर बनाया गया है
स्कोप की गई स्टोरेज की सुविधा के अलावा, Android 10 में एक्सटर्नल स्टोरेज से जुड़ी ये सुविधाएं भी जोड़ी गई हैं:
IS_PENDING
फ़्लैग का इस्तेमाल करके, अपने ऐप्लिकेशन को डिस्क पर सेव की गई मीडिया फ़ाइल का ऐक्सेस दिया जा सकता है.- अगर आपको पता है कि फ़ाइलों को कहां सेव करना है, तो सिस्टम को यह जानकारी दी जा सकती है कि नई फ़ाइलों को कहां सेव करना है.
- हर बाहरी स्टोरेज डिवाइस का यूनीक वॉल्यूम नाम होता है.
मीडिया और ग्राफ़िक
Android 10 में, मीडिया और ग्राफ़िक से जुड़ी ये नई सुविधाएं और एपीआई जोड़े गए हैं:
ऑडियो इनपुट शेयर करना
Android 10 में, दो ऐप्लिकेशन के लिए एक साथ ऑडियो इनपुट शेयर करने की सुविधा जोड़ी गई है. पूरी जानकारी के लिए, ऑडियो इनपुट शेयर करना देखें.
ऑडियो प्लेबैक कैप्चर
Android 10 में, किसी ऐप्लिकेशन को दूसरे ऐप्लिकेशन से ऑडियो चलाने की सुविधा मिलती है. पूरी जानकारी के लिए, प्लेबैक कैप्चर करना देखें.
MediaStyle सूचनाओं में मौजूद सीकबार
Android 10 से, MediaStyle
सूचनाओं में एक स्क्रोल बार दिखता है. PlaybackState.getPosition()
से प्लेबैक की प्रोग्रेस को स्क्रीन पर दिखाने के लिए, स्क्रीन पर एक बार में दिखने वाले हिस्से को छोटा या बड़ा करने वाला बार होता है. कुछ मामलों में, इस बार का इस्तेमाल करके चल रहे प्रोग्राम में किसी हिस्से पर पहुंचा जा सकता है. रीवाइस बार के दिखने और काम करने के तरीके को इन नियमों से कंट्रोल किया जाता है:
MediaSession
चालू होने पर और उसकी अवधि (MediaMetadata.METADATA_KEY_DURATION
से तय की गई) शून्य से ज़्यादा होने पर, 'वीडियो पर जाएं' बार दिखता है. इसका मतलब है कि यह बार, लाइव स्ट्रीम और रेडियो ब्रॉडकास्ट जैसी ऐसी स्ट्रीम के लिए नहीं दिखता है जिनकी अवधि तय नहीं होती.- अगर सेशन में
ACTION_SEEK_TO
लागू किया जाता है, तो उपयोगकर्ता वीडियो चलाने की जगह को कंट्रोल करने के लिए, रीकवरी बार को खींच सकता है.
नेटिव MIDI API
Android नेटिव एमआईडीआई एपीआई (AMidi) की मदद से, ऐप्लिकेशन डेवलपर C/C++ कोड की मदद से एमआईडीआई डेटा भेज और पा सकते हैं. साथ ही, वे अपने C/C++ ऑडियो/कंट्रोल लॉजिक के साथ ज़्यादा बेहतर तरीके से इंटिग्रेट कर सकते हैं. इससे JNI की ज़रूरत कम हो जाती है.
ज़्यादा जानकारी के लिए, Android Native MIDI API देखें.
MediaCodecInfo में किए गए सुधार
Android 10 में MediaCodecInfo
के लिए ऐसे तरीके जोड़े गए हैं जिनसे कोडेक के बारे में ज़्यादा जानकारी मिलती है.
ज़्यादा जानकारी के लिए, मीडिया कोडेक देखें.
Thermal API
जब डिवाइस बहुत गर्म हो जाते हैं, तो वे सीपीयू और/या जीपीयू को कम कर सकते हैं. इससे ऐप्लिकेशन और गेम पर अनचाहे तरीके से असर पड़ सकता है. जटिल ग्राफ़िक, ज़्यादा गिनती करने वाले या लगातार नेटवर्क गतिविधि वाले ऐप्लिकेशन में समस्याएं आने की संभावना ज़्यादा होती है. ये समस्याएं, चिपसेट और कोर फ़्रीक्वेंसी, इंटिग्रेशन के लेवल, डिवाइस की पैकेजिंग और फ़ॉर्म फ़ैक्टर के आधार पर, अलग-अलग डिवाइसों में अलग-अलग हो सकती हैं.
Android 10 में, ऐप्लिकेशन और गेम डिवाइस पर होने वाले बदलावों को मॉनिटर करने के लिए, थर्मल एपीआई का इस्तेमाल कर सकते हैं. साथ ही, सामान्य तापमान को पहले जैसा करने के लिए, कम बैटरी खर्च करने वाली कार्रवाई कर सकते हैं. ऐप्लिकेशन PowerManager में एक लिसनर रजिस्टर करते हैं. इससे सिस्टम मौजूदा थर्मल स्टेटस की जानकारी देता है. इस स्टेटस में, हल्के और सामान्य से लेकर गंभीर, गंभीर, आपातकालीन, और शटडाउन के थर्मल स्टेटस शामिल हैं.
जब डिवाइस थर्मल स्ट्रेस की जानकारी देता है, तो ऐप्लिकेशन और गेम, चल रही गतिविधियों को बंद करके अलग-अलग तरीकों से बिजली की खपत कम करने में मदद कर सकते हैं. उदाहरण के लिए, स्ट्रीमिंग ऐप्लिकेशन, रिज़ॉल्यूशन/बिट रेट या नेटवर्क ट्रैफ़िक को कम कर सकते हैं. कैमरा ऐप्लिकेशन, फ़्लैश या इमेज को बेहतर बनाने की सुविधा को बंद कर सकता है. गेम, फ़्रेम रेट या पॉलीगॉन टेसेलेशन को कम कर सकता है. मीडिया ऐप्लिकेशन, स्पीकर का वॉल्यूम कम कर सकता है. साथ ही, मैप ऐप्लिकेशन, जीपीएस बंद कर सकता है.
थर्मल एपीआई के लिए एक नए डिवाइस HAL लेयर की ज़रूरत है. फ़िलहाल, यह सुविधा Android 10 पर चलने वाले Pixel डिवाइसों पर काम करती है. साथ ही, हम डिवाइस बनाने वाली कंपनी के पार्टनर के साथ मिलकर काम कर रहे हैं, ताकि जल्द से जल्द नेटवर्क को बेहतर बनाया जा सके.
कैमरा और इमेज
Android 10 में, कैमरे और इमेज से जुड़ी ये नई सुविधाएं जोड़ी गई हैं:
मोनोक्रोम कैमरे का इस्तेमाल करने की सुविधा
Android 9 (एपीआई लेवल 28) में पहली बार, मॉनोक्रोम कैमरे की सुविधा लॉन्च की गई थी. Android 10 में, मोनोक्रोम कैमरे की सुविधा में कई सुधार किए गए हैं:
- Y8 स्ट्रीम फ़ॉर्मैट की सुविधा, ताकि मेमोरी का बेहतर तरीके से इस्तेमाल किया जा सके.
- मोनोक्रोम रॉ DNG कैप्चर की सुविधा.
- सामान्य तौर पर इस्तेमाल होने वाले मॉनोक्रोम कैमरे और नीयर इंफ़्रारेड कैमरों के बीच अंतर करने के लिए, MONO और NIR सीएफ़ए एन्यूमेरेशन की सुविधा जोड़ी गई है.
इस सुविधा का इस्तेमाल करके, नेटिव मोनोक्रोम इमेज कैप्चर की जा सकती है. एक से ज़्यादा कैमरे वाला कोई डिवाइस, कम रोशनी में बेहतर इमेज क्वालिटी पाने के लिए, फ़िज़िकल सब-कैमरे के तौर पर मोनोक्रोम कैमरे का इस्तेमाल कर सकता है.
डाइनैमिक डेप्थ फ़ॉर्मैट
Android 10 से, कैमरे किसी इमेज का डेप्थ डेटा, अलग फ़ाइल में सेव कर सकते हैं. इसके लिए, डाइनैमिक डेप्थ फ़ॉर्मैट (डीडीएफ़) नाम के नए स्कीमा का इस्तेमाल किया जाता है. ऐप्लिकेशन, JPG इमेज और उसके डेप्थ मेटाडेटा, दोनों का अनुरोध कर सकते हैं. इस जानकारी का इस्तेमाल करके, वे ओरिजनल इमेज के डेटा में बदलाव किए बिना, पोस्ट-प्रोसेसिंग में अपनी पसंद के मुताबिक धुंधलापन लागू कर सकते हैं.
इस फ़ॉर्मैट की स्पेसिफ़िकेशन पढ़ने के लिए, डाइनैमिक डेप्थ फ़ॉर्मैट देखें.
बेहतर परफ़ॉर्मेंस वाली इमेज फ़ाइल फ़ॉर्मैट
हाई एफ़िशिएंसी इमेज फ़ाइल (एचईआईएफ़) एक स्टैंडर्ड इमेज और वीडियो फ़ॉर्मैट है. इसमें दूसरे फ़ाइल फ़ॉर्मैट की तुलना में बेहतर क्वालिटी की एन्कोडिंग मिलती है और फ़ाइल का साइज़ छोटा होता है.
फ़ाइल फ़ॉर्मैट के बारे में ज़्यादा जानने के लिए, HEIC देखें.
एक से ज़्यादा कैमरे इस्तेमाल करने की सुविधा में सुधार
Android 10 में, एक से ज़्यादा कैमरों को एक ही कैमरे में फ़्यूज़ करने की सुविधा को बेहतर बनाया गया है. यह सुविधा, Android 9 (एपीआई लेवल 28) में लॉन्च की गई थी. Camera2 API में ये चीज़ें जोड़ी गई हैं:
isSessionConfigurationSupported(SessionConfiguration sessionConfig)
—इससे यह पता चलता है कि कैमरे से कैप्चर करने के लिए, सेशन के मौजूदा कॉन्फ़िगरेशन का इस्तेमाल किया जा सकता है या नहीं.LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
—इसकी मदद से, लॉजिकल कैमरा डिवाइस के साथ काम करने वाले फ़िज़िकल कैमरे का आईडी पता लगाया जा सकता है. बेहतर बैटरी लाइफ़ पाने के लिए, लौटाए गए आईडी का इस्तेमाल करके लॉजिकल स्ट्रीम और फ़िज़िकल सब-कैमरा स्ट्रीम का अनुरोध किया जा सकता है.
Accessibility services API
Android 10 में, सुलभता सेवा की ये नई सुविधाएं और एपीआई जोड़े गए हैं:
AccessibilityNodeInfo एंट्री के लिए ज़रूरी फ़्लैग
Android 10 के बाद के वर्शन में,
isTextEntryKey()
को कॉल किया जा सकता है. इससे यह पता लगाया जा सकता है कि दी गई AccessibilityNodeInfo
टेक्स्ट एंट्री बटन है या नहीं, जो कीबोर्ड या कीपैड का हिस्सा है.
सुलभता से जुड़े डायलॉग बॉक्स में बोलकर जवाब देने की सुविधा
अगर उपयोगकर्ताओं को सुलभता सेवा शुरू करने के लिए, सुलभता शॉर्टकट का इस्तेमाल करना पड़ता है, तो Android 10 में डायलॉग के साथ टेक्स्ट-टू-स्पीच प्रॉम्प्ट का इस्तेमाल किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि सेवा में इसकी सुविधा हो.
जेस्चर नेविगेशन की सुविधा चालू होने पर, सुलभता सुविधा का शॉर्टकट
Android 10 में हाथ के जेस्चर (हाव-भाव) की सुविधा चालू होने पर, सुलभता बटन न तो दिखता है और न ही उसे चुना जा सकता है. सुलभता सेवा के मेन्यू को ऐक्सेस करने के लिए, उपयोगकर्ताओं को इनमें से किसी एक जेस्चर का इस्तेमाल करना होगा:
- दो उंगलियों से ऊपर की ओर स्वाइप करें.
- दो उंगलियों से ऊपर की ओर स्वाइप करें और होल्ड करें.
फ़िज़िकल कीबोर्ड के लिए सुलभता शॉर्टकट
Android 10 में, उपयोगकर्ता Control+Alt+Z दबाकर, फ़िज़िकल कीबोर्ड पर सुलभता शॉर्टकट को ट्रिगर कर सकते हैं.
सॉफ़्ट कीबोर्ड कंट्रोलर को बेहतर बनाना
Android 10 में, सुलभता सेवाएं सॉफ़्ट कीबोर्ड को दिखाने का अनुरोध कर सकती हैं. भले ही, डिवाइस को हार्ड कीबोर्ड के अटैच होने का पता चले. उपयोगकर्ता इस सेटिंग को बदल सकते हैं.
उपयोगकर्ता के हिसाब से तय किए गए सुलभता टाइम आउट
Android 10 में getRecommendedTimeoutMillis()
एपीआई को पेश किया गया है. इस तरीके से, इंटरैक्टिव और नॉन-इंटरैक्टिव यूज़र इंटरफ़ेस (यूआई) एलिमेंट के लिए, उपयोगकर्ता के तय किए गए टाइम आउट का इस्तेमाल किया जा सकता है. रिटर्न वैल्यू पर, उपयोगकर्ता की प्राथमिकताओं और सुलभता सेवा एपीआई, दोनों का असर पड़ता है.
अपने-आप जानकारी भरने की सुविधा में हुए सुधार
Android 10 में, जानकारी ऑटोमैटिक भरने की सेवा में ये सुधार किए गए हैं.
काम करने से जुड़े, अपने-आप भरने की सुविधा के अनुरोध
FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST
फ़्लैग का इस्तेमाल करके यह पता लगाया जा सकता है कि ऑटोमैटिक भरने का अनुरोध, काम करने के तरीके के मोड की मदद से जनरेट हुआ था या नहीं.
उपयोगकर्ता नाम और पासवर्ड एक साथ सेव करना
SaveInfo.FLAG_DELAY_SAVE
फ़्लैग का इस्तेमाल करके, उन मामलों में मदद की जा सकती है जहां कोई ऐप्लिकेशन उपयोगकर्ता नाम, पासवर्ड, और अन्य फ़ील्ड दिखाने के लिए कई गतिविधियों का इस्तेमाल करता है.
सेव करने के यूज़र इंटरफ़ेस (यूआई) के साथ उपयोगकर्ता का इंटरैक्शन
सेव करने के लिए डायलॉग बॉक्स में पासवर्ड फ़ील्ड को दिखाया और छिपाया जा सकता है. इसके लिए, डायलॉग बॉक्स पर ऐक्शन लिसनर सेट करें और उससे जुड़े पासवर्ड के रिमोट व्यू की दिखने की सेटिंग बदलें.
डेटासेट अपडेट करने से जुड़ी सहायता
ऑटोमैटिक भरने की सुविधा, मौजूदा पासवर्ड अपडेट कर सकती है. उदाहरण के लिए, अगर किसी उपयोगकर्ता ने पहले से ही कोई पासवर्ड सेव किया हुआ है और वह नया पासवर्ड सेव करता है, तो ऑटोमैटिक भरने की सुविधा, उपयोगकर्ता को नया पासवर्ड सेव करने के बजाय, मौजूदा पासवर्ड अपडेट करने के लिए कहती है.
फ़ील्ड के क्लासिफ़िकेशन में सुधार
Android 10 में, फ़ील्ड क्लासिफ़िकेशन एपीआई में ये सुधार किए गए हैं.
UserData.Builder कंस्ट्रक्टर
Builder
पैटर्न के साथ बेहतर तरीके से अलाइन करने के लिए, UserData.Builder
कंस्ट्रक्टर बदल दिया गया है.
किसी वैल्यू को कई तरह के कैटगरी आईडी से मैप करने की अनुमति देना
Android 10 में UserData.Builder
का इस्तेमाल करते समय, अब किसी वैल्यू को कई तरह के कैटगरी आईडी पर मैप किया जा सकता है. पिछली रिलीज़ में, अगर कोई वैल्यू एक से ज़्यादा बार जोड़ी जाती थी, तो एक अपवाद दिखता था.
क्रेडिट कार्ड नंबर के लिए बेहतर सहायता
फ़ील्ड की कैटगरी तय करने की सुविधा, अब चार अंकों के नंबर को क्रेडिट कार्ड नंबर के आखिरी चार अंकों के तौर पर पहचान सकती है.
ऐप्लिकेशन के हिसाब से फ़ील्ड का क्लासिफ़िकेशन करने की सुविधा
Android 10 में FillResponse.setUserData()
जोड़ा गया है. इसकी मदद से, सेशन के दौरान ऐप्लिकेशन के हिसाब से उपयोगकर्ता का डेटा सेट किया जा सकता है.
इससे ऑटोमैटिक भरने की सेवा को ऐप्लिकेशन का खास कॉन्टेंट वाले फ़ील्ड के टाइप का पता लगाने में मदद मिलती है.
यूज़र इंटरफ़ेस (यूआई) और सिस्टम कंट्रोल
Android 10 में यूज़र इंटरफ़ेस में ये सुधार किए गए हैं:
JVMTI PopFrame कैप के साथ काम करना
Android 10 में, Android JVMTI लागू करने के लिए,
can_pop_frames
की सुविधा जोड़ी गई है. डीबग करते समय, यह सुविधा आपको ब्रेकपॉइंट पर रोकने और लोकल, ग्लोबल या फ़ंक्शन में बदलाव करने के बाद, फ़ंक्शन को फिर से चलाने की अनुमति देती है. ज़्यादा जानकारी के लिए, Oracle का पॉप फ़्रेम रेफ़रंस पेज देखें.
Surface control API
Android 10 में, सिस्टम-कंपोज़र (SurfaceFlinger
) को कम लेवल पर ऐक्सेस करने के लिए, SurfaceControl
एपीआई उपलब्ध कराया गया है. ज़्यादातर उपयोगकर्ताओं के लिए, कंपोज़र का फ़ायदा पाने का सही तरीका SurfaceView है. SurfaceControl
एपीआई का इस्तेमाल कुछ मामलों में किया जा सकता है. उदाहरण के लिए:
- कई प्लैटफ़ॉर्म को सिंक करना
- अलग-अलग प्रोसेस में सर्फ़ेस एम्बेड करना
- लोअर-लेवल लाइफ़टाइम मैनेजमेंट
SurfaceControl
एपीआई, SDK और NDK बाइंडिंग, दोनों में उपलब्ध है.
एनडीके लागू करने में, एपीआई का इस्तेमाल करके कंपोजिटर के साथ बफ़र को मैन्युअल तरीके से एक्सचेंज किया जा सकता है. इससे उन उपयोगकर्ताओं को एक विकल्प मिलता है जिन्हें BufferQueue
की सीमाओं का सामना करना पड़ रहा है.
वेबव्यू के रेंडरर के हंग होने का पता लगाना
Android 10 में, WebViewRenderProcessClient
आब्स्ट्रैक्ट क्लास की सुविधा जोड़ी गई है. ऐप्लिकेशन इसका इस्तेमाल करके यह पता लगा सकते हैं कि WebView
काम कर रहा है या नहीं. इस क्लास
का इस्तेमाल करने के लिए:
- अपना सबक्लास तय करें और उसके
onRenderProcessResponsive()
औरonRenderProcessUnresponsive()
तरीके लागू करें. - अपने
WebViewRenderProcessClient
का एक इंस्टेंस, एक या उससे ज़्यादाWebView
ऑब्जेक्ट से अटैच करें. - अगर
WebView
काम नहीं करता है, तो सिस्टमWebView
औरWebViewRenderProcess
को पास करके, क्लाइंट केonRenderProcessUnresponsive()
तरीके को कॉल करता है. (अगरWebView
एक प्रोसेस है, तोWebViewRenderProcess
पैरामीटर शून्य है.) आपका ऐप्लिकेशन ज़रूरी कार्रवाई कर सकता है. जैसे, उपयोगकर्ता को डायलॉग बॉक्स दिखाकर पूछना कि क्या उन्हें रेंडरिंग की प्रोसेस रोकनी है.
अगर WebView
काम नहीं करता है, तो सिस्टम समय-समय पर onRenderProcessUnresponsive()
को कॉल करता है (हर पांच सेकंड में एक बार से ज़्यादा नहीं). हालांकि, वह कोई और कार्रवाई नहीं करता.
अगर WebView
फिर से रिस्पॉन्सिव होता है, तो सिस्टम onRenderProcessResponsive()
को सिर्फ़ एक बार कॉल करता है.
सेटिंग पैनल
Android 10 में सेटिंग पैनल की सुविधा जोड़ी गई है. यह एक एपीआई है, जिसकी मदद से ऐप्लिकेशन, उपयोगकर्ताओं को अपने ऐप्लिकेशन के संदर्भ में सेटिंग दिखा सकते हैं. इससे, उपयोगकर्ताओं को ऐप्लिकेशन इस्तेमाल करने के लिए, सेटिंग में जाकर एनएफ़सी या मोबाइल डेटा जैसी चीज़ों में बदलाव करने की ज़रूरत नहीं पड़ती.
उदाहरण के लिए, मान लें कि कोई उपयोगकर्ता अपने डिवाइस के ऐयरप्लेन मोड में वेब ब्राउज़र खोलता है. Android 10 से पहले, ऐप्लिकेशन सिर्फ़ एक सामान्य मैसेज दिखा सकता था. इसमें उपयोगकर्ता से कनेक्टिविटी को वापस पाने के लिए, सेटिंग खोलने के लिए कहा जाता था. Android 10 में, ब्राउज़र ऐप्लिकेशन एक इनलाइन पैनल दिखा सकता है. इसमें कनेक्टिविटी की मुख्य सेटिंग दिखती हैं. जैसे, फ़्लाइट मोड, वाई-फ़ाई (इसमें आस-पास के नेटवर्क भी शामिल हैं), और मोबाइल डेटा. इस पैनल की मदद से, उपयोगकर्ता ऐप्लिकेशन से बाहर निकले बिना कनेक्टिविटी को वापस ला सकते हैं.
सेटिंग पैनल दिखाने के लिए, इनमें से किसी एक Settings.Panel
कार्रवाई के साथ इंटेंट ट्रिगर करें:
Kotlin
val panelIntent = Intent(Settings.Panel.settings_panel_type) startActivityForResult(panelIntent)
Java
Intent panelIntent = new Intent(Settings.Panel.settings_panel_type); startActivityForResult(panelIntent);
settings_panel_type
इनमें से कोई एक हो सकता है:
ACTION_INTERNET_CONNECTIVITY
- इंटरनेट कनेक्शन से जुड़ी सेटिंग दिखाता है. जैसे, हवाई जहाज़ मोड, वाई-फ़ाई, और मोबाइल डेटा.
ACTION_WIFI
- यह वाई-फ़ाई सेटिंग दिखाता है, लेकिन कनेक्टिविटी की अन्य सेटिंग नहीं दिखाता. यह उन ऐप्लिकेशन के लिए मददगार है जिन्हें ज़्यादा डेटा अपलोड या डाउनलोड करने के लिए, वाई-फ़ाई कनेक्शन की ज़रूरत होती है.
ACTION_NFC
- नियर-फ़ील्ड कम्यूनिकेशन (एनएफ़सी) से जुड़ी सभी सेटिंग दिखाता है.
ACTION_VOLUME
- यह सभी ऑडियो स्ट्रीम के लिए वॉल्यूम की सेटिंग दिखाता है.
शेयर करने की सुविधा में किए गए सुधार
Android 10 में, शेयर करने की सुविधा को बेहतर बनाने के लिए कई सुधार किए गए हैं:
Sharing Shortcuts API
Sharing Shortcuts API, Direct Share API की जगह लेता है.
शेयर करने के लिए शॉर्टकट का इस्तेमाल करने पर, ऐप्लिकेशन में मौजूद कॉन्टेंट को शेयर करने के लिए टारगेट पहले से पब्लिश किए जाते हैं. इसकी वजह से, ऐप्लिकेशन को उपयोगकर्ताओं के अनुरोध पर नतीजे पाने के लिए इंतज़ार नहीं करना पड़ता. ShortcutManager
इस तरह काम करता है.
दोनों एपीआई एक जैसे हैं. इसलिए, हमने दोनों सुविधाओं को आसानी से इस्तेमाल करने के लिए, ShortcutInfo
एपीआई को बड़ा किया है. शेयरिंग शॉर्टकट एपीआई की मदद से, शेयर करने के टारगेट को सीधे कैटगरी या लोगों के साथ असाइन किया जा सकता है. शेयर किए गए टारगेट, सिस्टम में तब तक बने रहते हैं, जब तक कि उस ऐप्लिकेशन को अपडेट नहीं किया जाता या अनइंस्टॉल नहीं किया जाता.
डायरेक्ट शेयर का पुराना तरीका अब भी काम करता है. हालांकि, इसका इस्तेमाल करने वाले ऐप्लिकेशन को, Sharecuts API का इस्तेमाल करने वाले ऐप्लिकेशन की तुलना में कम प्राथमिकता मिलती है.
ShortcutInfo.Builder
शेयर टारगेट के बारे में ज़्यादा जानकारी देने के लिए, नए तरीके जोड़ता है और मौजूदा तरीकों को बेहतर बनाता है.
सीधे शेयर करने के टारगेट
डाइनैमिक शॉर्टकट को डायरेक्ट शेयर टारगेट के तौर पर पब्लिश किया जा सकता है. सीधे तौर पर शेयर करने के टारगेट पब्लिश करना देखें.
ShortcutManagerCompat
एक नया AndroidX API है, जो पुराने DirectShare API के साथ काम करने की सुविधा देता है. यह, शेयर किए गए टारगेट को पब्लिश करने का पसंदीदा तरीका है.
टेक्स्ट की झलक देखना
जब कोई ऐप्लिकेशन टेक्स्ट कॉन्टेंट शेयर करता है, तो वह शेयरशीट के यूज़र इंटरफ़ेस (यूआई) में कॉन्टेंट की झलक दिखा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
रिच टेक्स्ट की झलक जोड़ना देखें
ज़्यादा जानें
ऐप्लिकेशन किस तरह डेटा शेयर कर सकते हैं, इस बारे में ज़्यादा जानकारी के लिए, अन्य ऐप्लिकेशन को आसान डेटा भेजना और अन्य ऐप्लिकेशन से आसान डेटा पाना देखें
गहरे रंग वाली थीम
Android 10 में गहरे रंग वाली थीम उपलब्ध है. यह थीम, Android सिस्टम के यूज़र इंटरफ़ेस (यूआई) और डिवाइस पर चलने वाले ऐप्लिकेशन, दोनों पर लागू होती है. पूरी जानकारी के लिए, गहरे रंग वाली थीम देखें.
फ़ोरग्राउंड सेवा के टाइप
Android 10 में foregroundServiceType
एक्सएमएल मेनिफ़ेस्ट एट्रिब्यूट को शामिल किया गया है. इसे कई खास सेवाओं की परिभाषा में शामिल किया जाता है. किसी सेवा के लिए, फ़ोरग्राउंड सेवा के एक से ज़्यादा टाइप असाइन किए जा सकते हैं. हालांकि, ऐसा बहुत कम किया जाता है.
नीचे दी गई टेबल में, फ़ोरग्राउंड सेवा के अलग-अलग टाइप और उन सेवाओं के बारे में बताया गया है जिनके लिए किसी खास टाइप का एलान करना सही होता है:
फ़ोरग्राउंड सेवा का टाइप | किसी ऐसी सेवा के लिए इस्तेमाल के उदाहरण का उदाहरण जिसे इस टाइप का एलान करना चाहिए |
---|---|
connectedDevice
| पहने जाने वाले फ़िटनेस ट्रैकर को मॉनिटर करें |
dataSync
| नेटवर्क से फ़ाइलें डाउनलोड करना |
location
| उपयोगकर्ता की शुरू की गई कार्रवाई को जारी रखना |
mediaPlayback
| ऑडियो बुक, पॉडकास्ट या संगीत चलाना |
mediaProjection
| डिवाइस के डिसप्ले को कुछ समय के लिए रिकॉर्ड करना |
phoneCall
| चल रहे फ़ोन कॉल को मैनेज करना |
Kotlin
Android 10 में, Kotlin डेवलपमेंट के लिए ये अपडेट शामिल हैं.
libcore API के लिए, शून्य होने की जानकारी देने वाले एनोटेशन
Android 10 में, libcore APIs के लिए SDK टूल में, वैल्यू न होने की जानकारी देने वाले एनोटेशन की कवरेज को बेहतर बनाया गया है. इन एनोटेशन की मदद से, ऐप्लिकेशन डेवलपर को इन एपीआई के साथ इंटरैक्ट करते समय, वैल्यू के शून्य होने की जानकारी मिलती है. इसके लिए, वे Android Studio में Kotlin या Java के नलबिलिटी विश्लेषण का इस्तेमाल करते हैं.
आम तौर पर, Kotlin में शून्य की सुविधा के कॉन्ट्रैक्ट के उल्लंघन की वजह से, कंपाइलेशन से जुड़ी गड़बड़ियां होती हैं. आपके मौजूदा कोड के साथ काम करने के लिए, सिर्फ़ @RecentlyNullable
और @RecentlyNonNull
एनोटेशन जोड़े जाते हैं. इसका मतलब है कि शून्य वैल्यू वाले उल्लंघन की वजह से, गड़बड़ियों के बजाय चेतावनियां मिलती हैं.
इसके अलावा, Android 9 में जोड़े गए @RecentlyNullable
या @RecentlyNonNull
एनोटेशन, क्रमशः @Nullable
और @NonNull
में बदल जाएंगे.
इसका मतलब है कि Android 10 और उसके बाद के वर्शन में, वैल्यू न होने की शर्त के उल्लंघन की वजह से, चेतावनियों के बजाय गड़बड़ियां दिखती हैं.
एनोटेशन में हुए बदलावों के बारे में ज़्यादा जानने के लिए, Android डेवलपर ब्लॉग पर Android Pie SDK टूल अब ज़्यादा Kotlin-फ़्रेंडली हो गया है.
एनडीके
Android 10 में, NDK में ये बदलाव किए गए हैं.
फ़ाइल डिस्क्रिप्टर के मालिकाना हक की डीबगिंग को बेहतर बनाया गया
Android 10 में fdsan जोड़ा गया है. इससे, फ़ाइल डिस्क्रिप्टर के मालिकाना हक से जुड़ी समस्याओं को आसानी से ढूंढा और ठीक किया जा सकता है.
फ़ाइल डिस्क्रिप्टर के मालिकाना हक को गलत तरीके से मैनेज करने से जुड़ी गड़बड़ियां, बंद करने के बाद इस्तेमाल करना और दो बार बंद करना के तौर पर दिखती हैं. ये गड़बड़ियां, मेमोरी ऐलोकेशन से जुड़ी खाली करने के बाद इस्तेमाल करना और दो बार खाली करना गड़बड़ियों से मिलती-जुलती हैं. हालांकि, इनका पता लगाना और ठीक करना ज़्यादा मुश्किल होता है. fdsan, फ़ाइल डिस्क्रिप्टर के मालिकाना हक को लागू करके, फ़ाइल डिस्क्रिप्टर के गलत तरीके से मैनेज होने का पता लगाने और/या उसे रोकने की कोशिश करता है.
इन समस्याओं से जुड़े क्रैश के बारे में ज़्यादा जानकारी के लिए, fdsan की ओर से मिली गड़बड़ी देखें. fdsan के बारे में ज़्यादा जानकारी के लिए, fdsan पर Googlesource पेज देखें.
ईएलएफ़ टीएलएस
जिन ऐप्लिकेशन को एपीआई लेवल 29 के साथ एनडीके का इस्तेमाल करके बनाया गया है वे emutls
के बजाय, ईएलएफ़ TLS का इस्तेमाल कर सकते हैं. थ्रेड-लोकल वैरिएबल को मैनेज करने के इस तरीके के साथ काम करने के लिए, डाइनैमिक और स्टैटिक लिंकर की सुविधा जोड़ी गई है.
एपीआई लेवल 28 और उससे पहले के वर्शन के लिए बनाए गए ऐप्लिकेशन में, libgcc/compiler-rt
के लिए सुधार लागू किए गए हैं, ताकि emutls
की कुछ समस्याओं को हल किया जा सके.
ज़्यादा जानकारी के लिए, NDK डेवलपर के लिए Android में हुए बदलाव लेख पढ़ें.
रनटाइम
Android 10 में, रनटाइम से जुड़ा यह बदलाव शामिल है.
Mallinfo के आधार पर गार्बेज कलेक्शन ट्रिगर करना
जब छोटे प्लैटफ़ॉर्म Java ऑब्जेक्ट, C++ ढेर में मौजूद बड़े ऑब्जेक्ट का रेफ़रंस देते हैं, तो C++ ऑब्जेक्ट को अक्सर तब ही वापस पाया जा सकता है, जब Java ऑब्जेक्ट इकट्ठा किया जाता है और उदाहरण के लिए, उसे फ़ाइनल किया जाता है. पिछली रिलीज़ में, प्लैटफ़ॉर्म ने Java ऑब्जेक्ट से जुड़े कई C++ ऑब्जेक्ट के साइज़ का अनुमान लगाया. यह अनुमान हमेशा सटीक नहीं होता था. साथ ही, कभी-कभी मेमोरी का इस्तेमाल बहुत ज़्यादा हो जाता था, क्योंकि प्लैटफ़ॉर्म सही समय पर ग़ैर-ज़रूरी डेटा को हटा नहीं पाता था.
Android 10 में, गै़रबेज कलेक्टर (जीसी) सिस्टम malloc()
से एलोकेट किए गए ढेर के कुल साइज़ को ट्रैक करता है. इससे यह पक्का होता है कि जीसी को ट्रिगर करने वाली गिनती में, malloc()
के बड़े एलोकेशन हमेशा शामिल हों. जिन ऐप्लिकेशन में Java के साथ बड़ी संख्या में C++ एलोकेशन का इस्तेमाल किया जाता है उनमें, ग़ैर-ज़रूरी डेटा इकट्ठा करने की फ़्रीक्वेंसी बढ़ सकती है. अन्य ऐप्लिकेशन में थोड़ी कमी दिख सकती है.
जांच करना और डीबग करना
Android 10 में, टेस्टिंग और डीबगिंग के लिए ये सुधार किए गए हैं.
डिवाइस पर सिस्टम को ट्रैक करने की सुविधा में सुधार
Android 10 के बाद, डिवाइस पर सिस्टम ट्रैक करने पर, ट्रैक के साइज़ और अवधि की सीमाएं तय की जा सकती हैं. इनमें से कोई भी वैल्यू तय करने पर, सिस्टम लंबा ट्रेस करता है. साथ ही, ट्रेस रिकॉर्ड होने के दौरान, ट्रेस बफ़र को समय-समय पर डेस्टिनेशन फ़ाइल में कॉपी करता है. आपने जो साइज़ या अवधि की सीमा तय की है, जब वह पूरी हो जाती है, तब ट्रैक पूरा हो जाता है.
स्टैंडर्ड ट्रेस की तुलना में, अलग-अलग इस्तेमाल के उदाहरणों की जांच करने के लिए, इन अतिरिक्त पैरामीटर का इस्तेमाल करें. उदाहरण के लिए, हो सकता है कि आपको परफ़ॉर्मेंस से जुड़ी किसी ऐसी गड़बड़ी का पता लगाना हो जो सिर्फ़ आपके ऐप्लिकेशन के लंबे समय तक चलने के बाद होती है. इस मामले में, पूरे दिन का लंबा ट्रेस रिकॉर्ड किया जा सकता है. इसके बाद, सीपीयू शेड्यूलर, डिस्क गतिविधि, ऐप्लिकेशन थ्रेड, और रिपोर्ट में मौजूद अन्य डेटा का विश्लेषण किया जा सकता है, ताकि गड़बड़ी की वजह का पता लगाने में मदद मिल सके.
Android 10 और उसके बाद के वर्शन में, ट्रेस फ़ाइलें ऐसे फ़ॉर्मैट में सेव की जाती हैं जिन्हें Perfetto की मदद से खोला जा सकता है. यह परफ़ॉर्मेंस इंस्ट्रूमेंटेशन और ट्रेसिंग के लिए, ओपन-सोर्स प्रोजेक्ट है. Perfetto ट्रैक फ़ाइलों को Systrace फ़ॉर्मैट में बदला जा सकता है.
TextClassifier में हुए सुधार
Android 10 में, TextClassifier
इंटरफ़ेस में टेक्स्ट की कैटगरी तय करने की अतिरिक्त सुविधाएं मिलती हैं.
अपने-आप भाषा पहचानने की सुविधा
detectLanguage()
वाला तरीका, कैटगरी तय करने के पहले से मौजूद तरीकों की तरह ही काम करता है. इसे
TextLanguage.Request
ऑब्जेक्ट मिलता है और
TextLanguage
ऑब्जेक्ट दिखाता है.
TextLanguage
ऑब्जेक्ट में, क्रम से लगाए गए पेयर की सूची होती है. हर पेयर में एक स्थान-भाषा और कैटगरी के लिए एक कॉन्फ़िडेंस स्कोर होता है.
बातचीत में की जाने वाली कार्रवाइयों के सुझाव
suggestConversationActions()
वाला तरीका, कैटगरी तय करने के मौजूदा तरीकों की तरह ही काम करता है. इसमें एक
ConversationActions.Request
ऑब्जेक्ट डाला जाता है और एक
ConversationActions
ऑब्जेक्ट मिलता है.
ConversationActions
ऑब्जेक्ट में
ConversationAction
ऑब्जेक्ट की सूची होती है. हर ConversationAction
ऑब्जेक्ट में, सुझाई गई संभावित कार्रवाई और उसके भरोसे के आधार पर मिलने वाला स्कोर शामिल होता है.
सूचनाओं में स्मार्ट जवाब/कार्रवाइयां
Android 9 ने एक सूचना में, सुझाए गए जवाबों को दिखाने की सुविधा लॉन्च की है. Android 10 में, इंटेंट के आधार पर सुझाई गई कार्रवाइयों को शामिल करने की सुविधा जोड़ी गई है. इसके अलावा, प्लैटफ़ॉर्म इन सुझावों को अपने-आप जनरेट कर सकता है. ऐप्लिकेशन अब भी अपने सुझाव दे सकते हैं या सिस्टम से मिलने वाले सुझावों से ऑप्ट-आउट कर सकते हैं.इन जवाबों को जनरेट करने के लिए इस्तेमाल किया जाने वाला एपीआई, TextClassifier
का हिस्सा है. साथ ही, Android 10 में डेवलपर को सीधे तौर पर भी इसका ऐक्सेस दिया गया है.
ज़्यादा जानकारी के लिए, कृपया TextClassifier में हुए सुधारों के बारे में सेक्शन पढ़ें.
अगर आपका ऐप्लिकेशन अपने-आप सुझाव देता है, तो प्लैटफ़ॉर्म अपने-आप कोई सुझाव जनरेट नहीं करता. अगर आपको अपने ऐप्लिकेशन की सूचनाओं में, सुझाए गए जवाब या कार्रवाइयां नहीं देखनी हैं, तो setAllowGeneratedReplies()
और setAllowSystemGeneratedContextualActions()
का इस्तेमाल करके, सिस्टम से जनरेट किए गए जवाबों और कार्रवाइयों से ऑप्ट आउट किया जा सकता है.