Android 10 में उपयोगकर्ताओं और डेवलपर के लिए, बेहतरीन सुविधाएं और क्षमताएं उपलब्ध हैं. इस दस्तावेज़ में, डेवलपर के लिए उपलब्ध सुविधाओं के बारे में बताया गया है.
एपीआई के बारे में जानने के लिए, एपीआई में हुए बदलाव की रिपोर्ट पढ़ें या Android API के बारे में जानकारी पर जाएं. यहां "एपीआई लेवल 29 में जोड़े गए" एपीआई देखें. एपीआई लेवल 29 को टारगेट करने वाले ऐप्लिकेशन और सभी ऐप्लिकेशन के लिए, Android 10 में हुए बदलावों के बारे में जानें. साथ ही, निजता से जुड़े बदलावों के बारे में भी जानें. इससे आपको उन जगहों के बारे में पता चलेगा जहां प्लैटफ़ॉर्म में हुए बदलावों का असर आपके ऐप्लिकेशन पर पड़ सकता है.
सुरक्षा से जुड़ी बेहतर सुविधाएं
Android 10 में सुरक्षा से जुड़ी कई सुविधाएं जोड़ी गई हैं. इनके बारे में यहां बताया गया है.
बायोमेट्रिक ऑथेंटिकेशन के लिए बेहतर डायलॉग
Android 10 में, बायोमेट्रिक ऑथेंटिकेशन की सुविधा के लिए ये सुधार किए गए हैं:
- बायोमेट्रिक ऑथेंटिकेशन की सुविधा की जांच.
- यह एक फ़ॉलबैक तरीका है. इसकी मदद से, उपयोगकर्ता अपने डिवाइस के पिन, पैटर्न या पासवर्ड का इस्तेमाल करके पुष्टि कर सकता है. ऐसा तब किया जा सकता है, जब वह बायोमेट्रिक इनपुट का इस्तेमाल करके पुष्टि न कर पाए.
- यह हिंट सिस्टम को बताता है कि उपयोगकर्ता की पुष्टि करने के बाद, उपयोगकर्ता से पुष्टि करने की ज़रूरत नहीं है. यह पुष्टि, बायोमेट्रिक मोडैलिटी का इस्तेमाल करके की जाती है. उदाहरण के लिए, सिस्टम को यह बताया जा सकता है कि अगर किसी उपयोगकर्ता ने चेहरे की पहचान करके पुष्टि करने की सुविधा का इस्तेमाल करके पुष्टि कर ली है, तो उसे आगे पुष्टि करने की ज़रूरत नहीं है.
APK से सीधे तौर पर एम्बेड किया गया DEX कोड चलाना
Android 10 से, प्लैटफ़ॉर्म को सीधे आपके ऐप्लिकेशन की APK फ़ाइल से, एम्बेड किए गए DEX कोड को चलाने के लिए कहा जा सकता है. अगर कोई हमलावर डिवाइस पर कंपाइल किए गए कोड के साथ छेड़छाड़ करता है, तो इस विकल्प की मदद से हमले को रोका जा सकता है.
ज़्यादा जानकारी के लिए, सीधे APK से एम्बेड किया गया DEX कोड चलाएं देखें.
टीएलएस 1.3 के लिए सहायता
Android 10 में TLS 1.3 के लिए सहायता जोड़ी गई है. टीएलएस 1.3, टीएलएस स्टैंडर्ड का एक मुख्य वर्शन है. इसमें परफ़ॉर्मेंस से जुड़े फ़ायदे और बेहतर सुरक्षा शामिल है. हमारे मानदंड बताते हैं कि टीएलएस 1.2 की तुलना में, टीएलएस 1.3 से सुरक्षित कनेक्शन 40% ज़्यादा तेज़ी से बनाए जा सकते हैं.
टीएलएस 1.3 को लागू करने के बारे में ज़्यादा जानने के लिए, सभी ऐप्लिकेशन के लिए, काम करने के तरीके में बदलाव वाले पेज पर टीएलएस सेक्शन देखें.
Public Conscrypt API
Android 10 से, Conscrypt सुरक्षा सेवा देने वाली कंपनी के पास टीएलएस की सुविधा के लिए एक सार्वजनिक एपीआई है.
android.net.ssl में मौजूद क्लास के कलेक्शन में, स्टैटिक तरीके शामिल होते हैं. इनकी मदद से, उन सुविधाओं को ऐक्सेस किया जा सकता है जो सामान्य javax.net.ssl एपीआई में उपलब्ध नहीं हैं. इन क्लास के नामों को, उनसे जुड़ी javax.net.ssl क्लास के बहुवचन के तौर पर समझा जा सकता है. उदाहरण के लिए, javax.net.ssl.SSLSocket के इंस्टेंस पर काम करने वाला कोड, SSLSockets के तरीकों का इस्तेमाल कर सकता है.
कनेक्टिविटी की सुविधाएं
Android 10 में नेटवर्किंग और कनेक्टिविटी से जुड़े कई सुधार शामिल हैं.
वाई-फ़ाई नेटवर्क कनेक्शन एपीआई
Android 10 में, पीयर-टू-पीयर कनेक्शन के लिए सहायता जोड़ी गई है. इस सुविधा की मदद से, आपका ऐप्लिकेशन उपयोगकर्ता को उस ऐक्सेस पॉइंट को बदलने के लिए कह सकता है जिससे डिवाइस कनेक्ट है. इसके लिए, अनुरोध किए गए नेटवर्क की प्रॉपर्टी के बारे में बताने के लिए, WifiNetworkSpecifier का इस्तेमाल किया जाता है. पीयर-टू-पीयर कनेक्शन का इस्तेमाल, नेटवर्क उपलब्ध कराने के अलावा अन्य कामों के लिए किया जाता है. जैसे, Chromecast और Google Home हार्डवेयर जैसे सेकंडरी डिवाइसों के लिए बूटस्ट्रैपिंग कॉन्फ़िगरेशन.
ज़्यादा जानकारी के लिए, पीयर-टू-पीयर कनेक्टिविटी के लिए वाई-फ़ाई नेटवर्क रिक्वेस्ट एपीआई देखें.
वाई-फ़ाई नेटवर्क के सुझाव देने वाला एपीआई
Android 10 में, आपके ऐप्लिकेशन को उपयोगकर्ता से वाई-फ़ाई ऐक्सेस पॉइंट से कनेक्ट करने के लिए कहने की सुविधा जोड़ी गई है. आपके पास यह सुझाव देने का विकल्प होता है कि किस नेटवर्क से कनेक्ट करना है. प्लैटफ़ॉर्म, आपके और अन्य ऐप्लिकेशन से मिले इनपुट के आधार पर यह तय करेगा कि कौनसा ऐक्सेस पॉइंट स्वीकार करना है.
इस सुविधा के बारे में ज़्यादा जानने के लिए, वाई-फ़ाई के सुझाव देखें.
वाई-फ़ाई की बेहतर परफ़ॉर्मेंस और लो-लेटेंसी मोड में सुधार किए गए
Android 10 की मदद से, मॉडेम को हिंट दिया जा सकता है, ताकि इंतज़ार का समय कम किया जा सके.
Android 10, वाई-फ़ाई लॉक एपीआई को बेहतर बनाता है, ताकि हाई-परफ़ॉर्मेंस मोड और लो-लेटेंसी मोड को बेहतर तरीके से इस्तेमाल किया जा सके. हाई-परफ़ॉर्मेंस और लो-लेटेंसी मोड के लिए, वाई-फ़ाई पावर सेव मोड बंद कर दिया जाता है. साथ ही, लो-लेटेंसी मोड में लेटेंसी को और ऑप्टिमाइज़ किया जा सकता है. हालांकि, यह इस बात पर निर्भर करता है कि मॉडेम इस सुविधा के साथ काम करता है या नहीं.
लो-लेटेंसी मोड सिर्फ़ तब चालू होता है, जब लॉक हासिल करने वाला ऐप्लिकेशन फ़ोरग्राउंड में चल रहा हो और स्क्रीन चालू हो. लो-लेटेंसी मोड, रीयल-टाइम मोबाइल गेमिंग ऐप्लिकेशन के लिए काफ़ी मददगार होता है.
डीएनएस रिज़ॉल्वर में खास लुकअप
Android 10 में, खास डीएनएस लुकअप के लिए नेटिव सपोर्ट जोड़ा गया है. इसके लिए, क्लियर टेक्स्ट लुकअप और डीएनएस-ओवर-टीएलएस मोड, दोनों का इस्तेमाल किया जाता है. पहले, प्लैटफ़ॉर्म का डीएनएस रिज़ॉल्वर सिर्फ़ A और AAAA रिकॉर्ड के साथ काम करता था. इनसे सिर्फ़ किसी नाम से जुड़े आईपी पते खोजे जा सकते थे. हालांकि, यह किसी अन्य तरह के रिकॉर्ड के साथ काम नहीं करता था.
DnsResolver एपीआई, सामान्य और एसिंक्रोनस रिज़ॉल्यूशन उपलब्ध कराता है. इससे आपको SRV, NAPTR, और अन्य तरह के रिकॉर्ड खोजने में मदद मिलती है. ध्यान दें कि जवाब को पार्स करने का काम ऐप्लिकेशन को करना होता है.
एनडीके पर आधारित ऐप्लिकेशन के लिए, android_res_nsend देखें.
वाई-फ़ाई ईज़ी कनेक्ट
Android 10 में, Easy Connect का इस्तेमाल करके किसी पीयर डिवाइस को वाई-फ़ाई के क्रेडेंशियल दिए जा सकते हैं. यह सुविधा, डब्ल्यूपीएस की जगह इस्तेमाल की जाती है. डब्ल्यूपीएस को अब बंद कर दिया गया है.
ऐप्लिकेशन,
ACTION_PROCESS_WIFI_EASY_CONNECT_URI
इंटेंट का इस्तेमाल करके, Easy Connect को अपने सेटअप और प्रावधान के फ़्लो में इंटिग्रेट कर सकते हैं.
इस सुविधा के बारे में ज़्यादा जानने के लिए, वाई-फ़ाई ईज़ी कनेक्ट लेख पढ़ें.
Wi-Fi Direct कनेक्शन एपीआई
Android 10 में, WifiP2pConfig और WifiP2pManager एपीआई क्लास को अपडेट किया गया है. इससे, पहले से तय की गई जानकारी का इस्तेमाल करके, 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);
ब्लूटूथ स्मार्ट कनेक्शन ओरिएंटेड चैनल (सीओसी)
Android 10 की मदद से, आपका ऐप्लिकेशन BLE CoC कनेक्शन का इस्तेमाल करके, दो BLE डिवाइसों के बीच बड़े डेटा स्ट्रीम ट्रांसफ़र कर सकता है. यह इंटरफ़ेस, ब्लूटूथ और कनेक्टिविटी के तरीके को आसान बनाता है, ताकि इसे आसानी से लागू किया जा सके.
टेलीफ़ोनी की सुविधाएं
Android 10 में टेलीफ़ोनी से जुड़े कई सुधार किए गए हैं.
कॉल की क्वालिटी को बेहतर बनाने की सुविधा
Android 10 में, चल रहे आईपी मल्टीमीडिया सबसिस्टम (आईएमएस) कॉल की क्वालिटी के बारे में जानकारी इकट्ठा करने की सुविधा जोड़ी गई है. इसमें नेटवर्क से आने-जाने वाले कॉल की क्वालिटी भी शामिल है. यह सुविधा, उन डिवाइसों पर काम करती है जो इसे सपोर्ट करते हैं.
कॉल की स्क्रीनिंग और कॉलर आईडी
Android 10 आपके ऐप्लिकेशन को ऐसे कॉल की पहचान करने की सुविधा देता है जो उपयोगकर्ता की अड्रेस बुक में नहीं हैं. साथ ही, यह सुविधा उपयोगकर्ता की ओर से स्पैम कॉल को चुपचाप अस्वीकार करने की सुविधा भी देती है. ब्लॉक किए गए इन कॉल की जानकारी, कॉल लॉग में ब्लॉक किए गए कॉल के तौर पर लॉग की जाती है. इससे उपयोगकर्ता को कॉल छूटने पर ज़्यादा पारदर्शिता मिलती है. इस एपीआई का इस्तेमाल करने पर, कॉल स्क्रीनिंग और कॉलर आईडी की सुविधा देने के लिए, उपयोगकर्ता से READ_CALL_LOG की अनुमतियां लेने की ज़रूरत नहीं पड़ती.
कॉल रीडायरेक्शन सर्विस एपीआई
Android 10 में, कॉल इंटेंट को मैनेज करने का तरीका बदल गया है. NEW_OUTGOING_CALL ब्रॉडकास्ट अब काम नहीं करता. इसकी जगह CallRedirectionService एपीआई का इस्तेमाल किया जाता है. CallRedirectionService एपीआई, आपको ऐसे इंटरफ़ेस उपलब्ध कराता है जिनकी मदद से, Android प्लैटफ़ॉर्म से किए जाने वाले आउटगोइंग कॉल में बदलाव किया जा सकता है. उदाहरण के लिए, तीसरे पक्ष के ऐप्लिकेशन, कॉल रद्द कर सकते हैं और उन्हें वीओआईपी पर रीडायरेक्ट कर सकते हैं.
बाहरी स्टोरेज में फ़ाइलें बनाने की सुविधा को बेहतर बनाया गया है
डिवाइस के स्कोप किए गए स्टोरेज को पेश करने के साथ-साथ, Android 10 में बाहरी स्टोरेज से जुड़ी ये सुविधाएं भी जोड़ी गई हैं:
IS_PENDINGफ़्लैग का इस्तेमाल करके, अपने ऐप्लिकेशन को किसी मीडिया फ़ाइल का खास ऐक्सेस दिया जा सकता है, क्योंकि इसे डिस्क में सेव किया जाता है.- अगर आपको पता है कि फ़ाइलें किस जगह पर सेव की जानी चाहिए, तो आपके पास नई फ़ाइलों को सेव करने के लिए, सिस्टम को हिंट देने का विकल्प होता है.
- हर बाहरी स्टोरेज डिवाइस का एक यूनीक वॉल्यूम नेम होता है.
मीडिया और ग्राफ़िक्स
Android 10 में, मीडिया और ग्राफ़िक्स से जुड़ी ये नई सुविधाएं और एपीआई उपलब्ध हैं:
ऑडियो इनपुट शेयर करना
Android 10 में, दो ऐप्लिकेशन एक साथ ऑडियो इनपुट शेयर कर सकते हैं. ज़्यादा जानकारी के लिए, ऑडियो इनपुट शेयर करना लेख पढ़ें.
ऑडियो प्लेबैक कैप्चर
Android 10 में, किसी ऐप्लिकेशन को अन्य ऐप्लिकेशन से ऑडियो प्लेबैक कैप्चर करने की सुविधा मिलती है. ज़्यादा जानकारी के लिए, प्लेबैक कैप्चर लेख पढ़ें.
MediaStyle सूचनाओं में सीकबार
Android 10 से, MediaStyle की सूचनाओं में एक सीकबार दिखता है. सीकबार, PlaybackState.getPosition() से प्लेबैक की प्रोग्रेस दिखाता है. कुछ मामलों में, सीकबार का इस्तेमाल करके, चल रहे प्रोग्राम में किसी जगह पर पहुंचा जा सकता है. सीकबार के दिखने और काम करने के तरीके को इन नियमों से कंट्रोल किया जाता है:
- अगर कोई
MediaSessionचालू है और उसकी अवधि (MediaMetadata.METADATA_KEY_DURATIONसे तय की गई) शून्य से ज़्यादा है, तो सीकबार दिखता है. इसका मतलब है कि यह बार, लाइव स्ट्रीम और रेडियो ब्रॉडकास्ट जैसी अनिश्चित स्ट्रीम के लिए नहीं दिखता. - अगर सेशन में
ACTION_SEEK_TOलागू किया जाता है, तो उपयोगकर्ता सीकबार को खींचकर, मीडिया चलाने की जगह को कंट्रोल कर सकता है.
नेटिव एमआईडीआई एपीआई
Android नेटिव MIDI API (AMidi) की मदद से, ऐप्लिकेशन डेवलपर C/C++ कोड के साथ MIDI डेटा भेज और पा सकते हैं. इससे, C/C++ ऑडियो/कंट्रोल लॉजिक के साथ बेहतर तरीके से इंटिग्रेट किया जा सकता है और जेएनआई की ज़रूरत कम हो जाती है.
ज़्यादा जानकारी के लिए, Android नेटिव MIDI API देखें.
MediaCodecInfo में किए गए सुधार
Android 10 में, MediaCodecInfo में ऐसे तरीके जोड़े गए हैं जिनसे कोडेक के बारे में ज़्यादा जानकारी मिलती है.
ज़्यादा जानकारी के लिए, मीडिया कोडेक देखें.
Thermal API
जब डिवाइस बहुत ज़्यादा गर्म हो जाते हैं, तो वे सीपीयू और/या जीपीयू को थ्रॉटल कर सकते हैं. इससे ऐप्लिकेशन और गेम पर अनचाहा असर पड़ सकता है. जटिल ग्राफ़िक्स, ज़्यादा कंप्यूटेशन या लगातार नेटवर्क पर की जाने वाली गतिविधि का इस्तेमाल करने वाले ऐप्लिकेशन में समस्याएं आने की संभावना ज़्यादा होती है. ये समस्याएं, चिपसेट और कोर फ़्रीक्वेंसी, इंटिग्रेशन के लेवल, डिवाइस की पैकेजिंग, और डिवाइस के साइज़ और शेप के आधार पर, अलग-अलग डिवाइसों में अलग-अलग हो सकती हैं.
Android 10 में, ऐप्लिकेशन और गेम, थर्मल एपीआई का इस्तेमाल करके डिवाइस के तापमान में होने वाले बदलावों पर नज़र रख सकते हैं. साथ ही, डिवाइस के तापमान को सामान्य करने के लिए, बिजली की खपत कम करने की कार्रवाई कर सकते हैं. ऐप्लिकेशन, PowerManager में एक लिसनर को रजिस्टर करते हैं. इसके ज़रिए, सिस्टम डिवाइस के तापमान की मौजूदा स्थिति की जानकारी देता है. इसमें तापमान के सामान्य, मध्यम, गंभीर, बहुत गंभीर, आपातकालीन, और शटडाउन होने की स्थिति शामिल है.
जब डिवाइस ज़्यादा गर्म होने की सूचना देता है, तब ऐप्लिकेशन और गेम, बैकग्राउंड में जारी गतिविधियों को रोककर बिजली की खपत कम करने में मदद कर सकते हैं. उदाहरण के लिए, स्ट्रीमिंग ऐप्लिकेशन रिज़ॉल्यूशन/बिट रेट या नेटवर्क ट्रैफ़िक को कम कर सकते हैं. कैमरा ऐप्लिकेशन, फ़्लैश या इमेज को बेहतर बनाने की सुविधा को बंद कर सकता है. गेम, फ़्रेम रेट या पॉलीगॉन टेसेलेशन को कम कर सकता है. मीडिया ऐप्लिकेशन, स्पीकर की आवाज़ कम कर सकता है. इसके अलावा, मैप ऐप्लिकेशन, जीपीएस को बंद कर सकता है.
थर्मल एपीआई के लिए, डिवाइस की नई एचएएल लेयर की ज़रूरत होती है. फ़िलहाल, यह Android 10 पर चलने वाले Pixel डिवाइसों पर काम करता है. हम डिवाइस बनाने वाली पार्टनर कंपनियों के साथ मिलकर काम कर रहे हैं, ताकि इस सुविधा को जल्द से जल्द ज़्यादा से ज़्यादा डिवाइसों पर उपलब्ध कराया जा सके.
कैमरा और इमेज
Android 10 में, कैमरे और इमेज से जुड़ी ये नई सुविधाएं जोड़ी गई हैं:
मोनोक्रोम कैमरा इस्तेमाल करने की सुविधा
Android 9 (एपीआई लेवल 28) में, मोनोक्रोम कैमरे की सुविधा को पहली बार पेश किया गया था. Android 10 में, मोनोक्रोम कैमरे की सुविधा को बेहतर बनाने के लिए कई बदलाव किए गए हैं:
- मेमोरी की परफ़ॉर्मेंस को बेहतर बनाने के लिए, Y8 स्ट्रीम फ़ॉर्मैट का इस्तेमाल किया जा सकता है.
- मोनोक्रोम रॉ DNG कैप्चर करने की सुविधा.
- MONO और NIR CFA एन्यूमरेशन को शामिल किया गया है, ताकि सामान्य मोनोक्रोम कैमरे और नियर इन्फ़्रारेड कैमरों के बीच अंतर किया जा सके.
इस सुविधा का इस्तेमाल करके, नेटिव मोनोक्रोम इमेज कैप्चर की जा सकती है. लॉजिकल मल्टी-कैमरा डिवाइस, मोनोक्रोम कैमरे को फ़िज़िकल सब-कैमरे के तौर पर इस्तेमाल कर सकता है. इससे कम रोशनी में भी अच्छी क्वालिटी की इमेज ली जा सकती है.
डाइनैमिक डेप्थ फ़ॉर्मैट
Android 10 से, कैमरे किसी इमेज के डेप्थ डेटा को एक अलग फ़ाइल में सेव कर सकते हैं. इसके लिए, डाइनैमिक डेप्थ फ़ॉर्मैट (डीडीएफ़) नाम के एक नए स्कीमा का इस्तेमाल किया जाता है. ऐप्लिकेशन, JPG इमेज और उसके डेप्थ मेटाडेटा, दोनों का अनुरोध कर सकते हैं. इस जानकारी का इस्तेमाल करके, वे ओरिजनल इमेज के डेटा में बदलाव किए बिना, पोस्ट-प्रोसेसिंग में अपनी पसंद के मुताबिक ब्लर इफ़ेक्ट लागू कर सकते हैं.
इस फ़ॉर्मैट की खास जानकारी पढ़ने के लिए, डाइनैमिक डेप्थ फ़ॉर्मैट देखें.
हाई एफ़िशिएंसी इमेज फ़ाइल फ़ॉर्मैट
हाई एफ़िशियंसी इमेज फ़ाइल (एचईआईएफ़) फ़ॉर्मैट, एक स्टैंडर्ड इमेज और वीडियो फ़ॉर्मैट है. यह अन्य फ़ाइल फ़ॉर्मैट की तुलना में, बेहतर क्वालिटी की एन्कोडिंग और छोटा फ़ाइल साइज़ उपलब्ध कराता है.
फ़ाइल फ़ॉर्मैट के बारे में ज़्यादा जानने के लिए, HEIC देखें.
एक से ज़्यादा कैमरे इस्तेमाल करने की सुविधा में सुधार
Android 10 में, कई कैमरों को एक लॉजिकल कैमरे में फ़्यूज़ करने की सुविधा को बेहतर बनाया गया है. यह सुविधा, Android 9 (एपीआई लेवल 28) में पेश की गई थी. Camera2 API में ये सुविधाएं जोड़ी गईं:
isSessionConfigurationSupported(SessionConfiguration sessionConfig)—इसकी मदद से, यह क्वेरी की जा सकती है कि पास किए गए सेशन कॉन्फ़िगरेशन का इस्तेमाल, कैमरा कैप्चर सेशन बनाने के लिए किया जा सकता है या नहीं.LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID—इसकी मदद से, लॉजिकल कैमरा डिवाइस के साथ काम करने वाले ऐक्टिव फ़िज़िकल कैमरे के आईडी का पता लगाया जा सकता है. लौटाए गए आईडी का इस्तेमाल करके, लॉजिकल स्ट्रीम और फ़िज़िकल सबकैमरा स्ट्रीम का अनुरोध किया जा सकता है. इससे बैटरी की खपत कम होती है.
सुलभता सेवाओं का एपीआई
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 constructor
UserData.Builder
कंस्ट्रक्टर को बदल दिया गया है, ताकि यह Builder पैटर्न के साथ बेहतर तरीके से अलाइन हो सके.
किसी वैल्यू को कई तरह के कैटगरी आईडी पर मैप करने की अनुमति देना
Android 10 में UserData.Builder का इस्तेमाल करते समय, अब किसी वैल्यू को कई तरह के कैटगरी आईडी पर मैप किया जा सकता है. पिछले वर्शन में, अगर कोई वैल्यू एक से ज़्यादा बार जोड़ी जाती थी, तो गड़बड़ी का मैसेज दिखता था.
क्रेडिट कार्ड नंबर के लिए बेहतर सहायता
फ़ील्ड क्लासिफ़िकेशन अब चार अंकों वाली संख्याओं को क्रेडिट कार्ड नंबर के आखिरी चार अंकों के तौर पर पहचान सकता है.
ऐप्लिकेशन के हिसाब से फ़ील्ड क्लासिफ़िकेशन के लिए सहायता
Android 10 में
FillResponse.setUserData()
जोड़ा गया है. इसकी मदद से, सेशन के दौरान ऐप्लिकेशन के हिसाब से उपयोगकर्ता का डेटा सेट किया जा सकता है.
इससे, पासवर्ड अपने-आप भरने, मैनेज करने, और सेव करने की सेवा को ऐप्लिकेशन के हिसाब से कॉन्टेंट वाले फ़ील्ड के टाइप का पता लगाने में मदद मिलती है.
यूज़र इंटरफ़ेस और सिस्टम कंट्रोल
Android 10 में, यूज़र इंटरफ़ेस में ये सुधार किए गए हैं:
जेवीएमटीआई पॉपफ़्रेम कैप के लिए सहायता
Android 10 में, Android जेवीएमटीआई को लागू करने के लिए,
can_pop_frames
की सुविधा जोड़ी गई है. डीबग करते समय, इस सुविधा की मदद से फ़ंक्शन को फिर से चलाया जा सकता है. इसके लिए, ब्रेकपॉइंट पर रुककर, लोकल, ग्लोबल या किसी फ़ंक्शन के लागू होने के तरीके में बदलाव करना होगा. ज़्यादा जानकारी के लिए, Oracle का पॉप फ़्रेम रेफ़रंस पेज देखें.
Surface control API
Android 10, सिस्टम-कंपोज़िटर (SurfaceFlinger) के लो-लेवल ऐक्सेस के लिए, SurfaceControl एपीआई उपलब्ध कराता है. ज़्यादातर उपयोगकर्ताओं के लिए, कंपोज़िटर का फ़ायदा पाने का सही तरीका SurfaceView है. SurfaceControl एपीआई कुछ मामलों में मददगार हो सकता है. उदाहरण के लिए:
- एक से ज़्यादा प्लैटफ़ॉर्म को सिंक करना
- क्रॉस-प्रोसेस सरफ़ेस एंबेडिंग
- लोअर-लेवल लाइफ़टाइम मैनेजमेंट
SurfaceControl एपीआई, एसडीके और एनडीके, दोनों बाइंडिंग में उपलब्ध है.
एनडीके को लागू करने के तरीके में, कंपोज़िटर के साथ बफ़र को मैन्युअल तरीके से एक्सचेंज करने के लिए एक एपीआई शामिल होता है. यह उन उपयोगकर्ताओं के लिए एक विकल्प है जो BufferQueue की सीमाओं से परेशान हैं.
WebView में रेंडरर के हैंग होने का पता लगाना
Android 10 में
WebViewRenderProcessClient
ऐब्स्ट्रैक्ट क्लास को शामिल किया गया है. ऐप्लिकेशन इसका इस्तेमाल करके यह पता लगा सकते हैं कि कोई
WebView काम कर रहा है या नहीं. इस क्लास का इस्तेमाल करने के लिए:
- अपनी सबक्लास तय करें और उसके
onRenderProcessResponsive()औरonRenderProcessUnresponsive()तरीकों को लागू करें. - अपने
WebViewRenderProcessClientके इंस्टेंस को एक या उससे ज़्यादाWebViewऑब्जेक्ट से अटैच करें. - अगर
WebViewजवाब नहीं देता है, तो सिस्टम क्लाइंट केonRenderProcessUnresponsive()तरीके को कॉल करता है. साथ ही,WebViewऔरWebViewRenderProcessको पास करता है. (अगर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 की जगह लेता है.
Sharing Shortcuts API, ऐप्लिकेशन को सीधे तौर पर कॉन्टेंट शेयर करने के लिए चुने गए लोगों या ग्रुप को पहले से पब्लिश करने की सुविधा देता है. इससे, मांग के हिसाब से नतीजे पाने की ज़रूरत नहीं पड़ती. ShortcutManager इस तरह काम करता है.
दोनों एपीआई एक जैसे हैं. इसलिए, हमने ShortcutInfo एपीआई को बेहतर बनाया है, ताकि दोनों सुविधाओं का इस्तेमाल करना आसान हो सके. Sharing Shortcuts API की मदद से, शेयर करने के टारगेट के लिए कैटगरी या लोगों को सीधे तौर पर असाइन किया जा सकता है. शेयर करने के टारगेट, सिस्टम में तब तक बने रहते हैं, जब तक कि ऐप्लिकेशन उन्हें अपडेट नहीं करता या ऐप्लिकेशन को अनइंस्टॉल नहीं किया जाता.
डायरेक्ट शेयर करने का पुराना तरीका अब भी काम करता है. हालांकि, इसका इस्तेमाल करने वाले ऐप्लिकेशन को, शेयर करने के शॉर्टकट वाले एपीआई का इस्तेमाल करने वाले ऐप्लिकेशन की तुलना में कम प्राथमिकता मिलती है.
ShortcutInfo.Builder
शेयर टारगेट के बारे में ज़्यादा जानकारी देने के लिए, नए तरीके जोड़ता है और मौजूदा तरीकों को बेहतर बनाता है.
सीधे तौर पर कॉन्टेंट शेयर करने के लिए चुने गए लोग या ग्रुप
डाइनैमिक शॉर्टकट को डायरेक्ट शेयर टारगेट के तौर पर पब्लिश किया जा सकता है. सीधे तौर पर कॉन्टेंट शेयर करने के लिए चुने गए लोग या ग्रुप पब्लिश करना देखें.
ShortcutManagerCompat एक नया AndroidX एपीआई है जो पुराने DirectShare एपीआई के साथ पुराने सिस्टम के साथ काम करने की सुविधा देता है. शेयर टारगेट पब्लिश करने के लिए, यह सबसे सही तरीका है.
टेक्स्ट की झलक देखना
जब कोई ऐप्लिकेशन टेक्स्ट कॉन्टेंट शेयर करता है, तो वह शेयरशीट यूज़र इंटरफ़ेस (यूआई) में कॉन्टेंट की झलक दिखा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
रिच टेक्स्ट की झलक जोड़ना देखें
ज़्यादा जानें
ऐप्लिकेशन, डेटा कैसे शेयर कर सकते हैं, इस बारे में ज़्यादा जानने के लिए, दूसरे ऐप्लिकेशन को सामान्य डेटा भेजना और दूसरे ऐप्लिकेशन से सामान्य डेटा पाना देखें
गहरे रंग वाली थीम
Android 10 में गहरे रंग वाली थीम की सुविधा उपलब्ध है. यह Android सिस्टम के यूज़र इंटरफ़ेस (यूआई) और डिवाइस पर चल रहे ऐप्लिकेशन, दोनों पर लागू होती है. ज़्यादा जानकारी के लिए, गहरे रंग वाली थीम देखें.
फ़ोरग्राउंड सेवाओं के टाइप
Android 10 में, foregroundServiceType
एक्सएमएल मेनिफ़ेस्ट एट्रिब्यूट को शामिल किया गया है. इसे कई खास सेवाओं की परिभाषा में शामिल किया जाता है. किसी सेवा को फ़ोरग्राउंड सेवा के कई टाइप असाइन किए जा सकते हैं. हालांकि, ऐसा करना सही नहीं होता.
यहां दी गई टेबल में, फ़ोरग्राउंड सेवा के अलग-अलग टाइप और वे सेवाएं दिखाई गई हैं जिनके लिए किसी खास टाइप का एलान करना सही होता है:
| फ़ोरग्राउंड सेवा का टाइप | इस टाइप का एलान करने वाली सेवा के इस्तेमाल का उदाहरण |
|---|---|
connectedDevice
| पहने जाने वाले फ़िटनेस ट्रैकर को मॉनिटर करना |
dataSync
| किसी नेटवर्क से फ़ाइलें डाउनलोड करना |
location
| उपयोगकर्ता की ओर से शुरू की गई कार्रवाई को जारी रखना |
mediaPlayback
| कोई ऑडियो बुक, पॉडकास्ट या संगीत चलाएं |
mediaProjection
| कुछ समय के लिए, डिवाइस के डिसप्ले का वीडियो रिकॉर्ड करें |
phoneCall
| जारी फ़ोन कॉल को मैनेज करना |
Kotlin
Android 10 में, Kotlin डेवलपमेंट के लिए ये अपडेट शामिल हैं.
libcore एपीआई के लिए शून्यता एनोटेशन
Android 10, libcore एपीआई के लिए एसडीके में, शून्यता एनोटेशन के कवरेज को बेहतर बनाता है. इन एनोटेशन की मदद से, Android Studio में Kotlin या Java की शून्यता का विश्लेषण करने वाले ऐप्लिकेशन डेवलपर, इन एपीआई के साथ इंटरैक्ट करते समय शून्यता की जानकारी पा सकते हैं.
आम तौर पर, Kotlin में शून्यता के नियमों का उल्लंघन करने पर, कंपाइलेशन से जुड़ी गड़बड़ियां होती हैं. आपके मौजूदा कोड के साथ काम करने के लिए, सिर्फ़ @RecentlyNullable और @RecentlyNonNull एनोटेशन जोड़े गए हैं. इसका मतलब है कि शून्यता के उल्लंघन की वजह से, गड़बड़ियों के बजाय चेतावनियां मिलती हैं.
इसके अलावा, Android 9 में जोड़े गए @RecentlyNullable या @RecentlyNonNull एनोटेशन, क्रमशः @Nullable और @NonNull में बदल रहे हैं.
इसका मतलब है कि Android 10 और इसके बाद के वर्शन में, शून्यता के उल्लंघन की वजह से चेतावनियों के बजाय गड़बड़ियां दिखती हैं.
एनोटेशन में हुए बदलावों के बारे में ज़्यादा जानने के लिए, Android डेवलपर ब्लॉग पर Android Pie SDK is now more Kotlin-friendly देखें.
एनडीके (NDK)
Android 10 में, एनडीके से जुड़े ये बदलाव शामिल हैं.
फ़ाइल डिस्क्रिप्टर के मालिकाना हक को डीबग करने की सुविधा को बेहतर बनाया गया
Android 10 में fdsan को जोड़ा गया है. इससे आपको फ़ाइल डिस्क्रिप्टर के मालिकाना हक से जुड़ी समस्याओं को आसानी से ढूंढने और उन्हें ठीक करने में मदद मिलती है.
फ़ाइल डिस्क्रिप्टर के मालिकाना हक को गलत तरीके से मैनेज करने से जुड़ी गड़बड़ियां, use-after-close और double-close के तौर पर दिखती हैं. ये गड़बड़ियां, मेमोरी के बंटवारे से जुड़ी use-after-free और double-free गड़बड़ियों जैसी होती हैं. हालांकि, इनका पता लगाना और इन्हें ठीक करना ज़्यादा मुश्किल होता है. fdsan, फ़ाइल डिस्क्रिप्टर के मालिकाना हक को लागू करके, फ़ाइल डिस्क्रिप्टर के गलत मैनेजमेंट का पता लगाने और/या उसे रोकने की कोशिश करता है.
इन समस्याओं से जुड़े क्रैश के बारे में ज़्यादा जानकारी के लिए, fdsan से पता चली गड़बड़ी देखें. fdsan के बारे में ज़्यादा जानने के लिए, fdsan के बारे में Googlesource पेज देखें.
ईएलएफ़ टीएलएस
एनडीके का इस्तेमाल करके बनाए गए ऐसे ऐप्लिकेशन जिनका एपीआई लेवल कम से कम 29 है, वे emutls के बजाय ELF TLS का इस्तेमाल कर सकते हैं. थ्रेड-लोकल वैरिएबल को मैनेज करने के इस तरीके के लिए, डाइनैमिक और स्टैटिक लिंकर की सुविधा जोड़ी गई है.
एपीआई लेवल 28 और इससे पहले के लेवल के लिए बनाए गए ऐप्लिकेशन में, libgcc/compiler-rt के लिए सुधार किए गए हैं. इससे emutls से जुड़ी कुछ समस्याओं को हल किया जा सकेगा.
ज़्यादा जानकारी के लिए, एनडीके डेवलपर के लिए 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() का इस्तेमाल करें.