इस पेज पर, Android 10 रिलीज़ की मुख्य सुविधाओं के बारे में खास जानकारी दी गई है. साथ ही, ज़्यादा जानकारी के लिए लिंक भी दिए गए हैं. सुविधा की खास जानकारी, इस साइट पर मौजूद दस्तावेज़ की जगह के हिसाब से व्यवस्थित की गई है.
बनाएं
java_sdk_library
Android 10 में, शेयर की गई Java लाइब्रेरी के साथ काम करने से जुड़ी समस्याओं को ठीक करने के लिए, java_sdk_library
नाम का एक नया बिल्ड नियम जोड़ा गया है. डिवाइस बनाने वाली कंपनियां, अपनी शेयर की गई Java लाइब्रेरी के लिए इस तरीके का इस्तेमाल कर सकती हैं, ताकि उनके एपीआई पुराने वर्शन के साथ काम करते रहें.
भवन निर्माण
मॉड्यूलर सिस्टम के कॉम्पोनेंट
Android 10, Android सिस्टम के कुछ कॉम्पोनेंट को मॉड्यूलर बनाता है. इससे, उन्हें Android के सामान्य रिलीज़ साइकल के बाहर अपडेट किया जा सकता है. कुछ मॉड्यूल में ये शामिल हैं:
- Android रनटाइम
- Conscrypt
- डीएनएस रिज़ॉल्वर
- DocumentsUI
- ExtServices
- मीडिया
- ModuleMetadata
- नेटवर्किंग
- PermissionController
- टाइम ज़ोन का डेटा
हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल)
Android 10 में, एचएएल के लिए ऐसा विकल्प जोड़ा गया है कि जब उनके पास कोई क्लाइंट न हो, तो वे अपने-आप बंद हो जाएं.
कर्नेल
ABI
Android 10 में, एबीआई मॉनिटरिंग की नई सुविधाओं के साथ काम करने की सुविधा शामिल है. इनकी मदद से, कर्नेल एबीआई में होने वाले बदलावों की तुलना की जा सकती है, उन्हें ट्रैक किया जा सकता है, और उनसे होने वाले नुकसान को कम किया जा सकता है. ये बदलाव, कर्नेल मॉड्यूल के साथ काम करने की सुविधा पर असर डालते हैं.
Android 10 में, सिंबल पर आधारित एबीआई के इस्तेमाल की जांच करने वाला टूल भी शामिल किया गया है. चेकर, बिल्ड के समय पहले से बने आउटडेटेड बाइनरी का पता लगा सकता है. इससे, शेयर की गई लाइब्रेरी के डेवलपर को यह पता चल सकता है कि बदलाव की वजह से कौनसी पहले से बने बाइनरी काम नहीं कर सकतीं और कौनसी पहले से बने बाइनरी को फिर से बनाना होगा.
Android Live-Lock Daemon
Android 10 में Android Live-Lock Daemon (llkd) शामिल है. इसे, कर्नेल डेडलॉक को ठीक करने और कम करने के लिए डिज़ाइन किया गया है.
ARM64 पर vDSO32
Android 10 में, 64-बिट कर्नेल पर vDSO32 का इस्तेमाल किया जा सकता है. इससे बैटरी लाइफ़ में 0.4 प्रतिशत की बढ़ोतरी होती है. साथ ही, परफ़ॉर्मेंस में भी सुधार होता है.
पहले से माउंट किए गए पार्टीशन के लिए fstab एंट्री
Android 10 के लिए, डिवाइसों को पहले चरण के रैमडिस्क में fstab
फ़ाइल का इस्तेमाल करके, पहले से माउंट किए गए पार्टीशन के लिए fstab
एंट्री बतानी होंगी.
HIDL
BroadcastQueue को ऑफ़लोड करना
Android 10 में, मौजूदा बैकग्राउंड और फ़ोरग्राउंड कतार में एक नया ऑफ़लोड BroadcastQueue
शामिल किया गया है. ऑफ़लोड सूची की प्राथमिकता और टाइम आउट, बैकग्राउंड सूची की तरह ही होता है. बैकग्राउंड सूची को ब्लॉक होने से बचाने के लिए, ऑफ़लोड सूची BOOT_COMPLETED
ब्रॉडकास्ट को मैनेज करती है. इस सूची में ऐसे ब्रॉडकास्ट शामिल होते हैं जो ज़्यादा दिलचस्प या उपयोगकर्ता को दिखने वाले होते हैं. कई ऐप्लिकेशन इन ब्रॉडकास्ट को सुनते हैं और इन्हें पूरा होने में काफ़ी समय लग सकता है.
फ़िलहाल, ऑफ़लोड करने की सूची में सिर्फ़ BOOT_COMPLETED
ब्रॉडकास्ट को शामिल किया जाता है. हालांकि, इसमें लंबी अवधि के अन्य ब्रॉडकास्ट को भी शामिल किया जा सकता है.
SystemSuspend सेवा
Android 10, libsuspend
में मौजूद थ्रेड को बदल देता है, जो सिस्टम को निलंबित करने की प्रोसेस शुरू करने के लिए ज़िम्मेदार है. इसे SystemSuspend HIDL सेवा से बदल दिया जाता है. इस तरीके से, Android HIDL इन्फ़्रास्ट्रक्चर के फ़ायदों का फ़ायदा लेते हुए, पिछले वर्शन जैसी ही सुविधाएं मिलती हैं.
HIDL में safe_union
Android 10 में, HIDL में साफ़ तौर पर टैग किया गया यूनियन टाइप safe_union
पेश किया गया है.
कॉन्फ़िगरेशन
ConfigStore HAL
Android 10 में, ज़्यादा मेमोरी खर्च करने और इस्तेमाल में मुश्किल होने की वजह से, ConfigStore HAL का इस्तेमाल बंद कर दिया गया है. साथ ही, HAL को सिस्टम प्रॉपर्टी से बदल दिया गया है.
Config File Schema API
Android प्लैटफ़ॉर्म में, कॉन्फ़िगरेशन डेटा को सेव करने के लिए बड़ी संख्या में एक्सएमएल फ़ाइलें होती हैं. कई एक्सएमएल फ़ाइलें vendor
पार्टीशन में होती हैं, लेकिन उन्हें system
पार्टीशन में पढ़ा जाता है. इस मामले में, एक्सएमएल फ़ाइल का स्कीमा, दोनों सेगमेंट के लिए इंटरफ़ेस के तौर पर काम करता है. इसलिए, स्कीमा को साफ़ तौर पर बताया जाना चाहिए और उसे पुराने सिस्टम के साथ काम करने वाले तरीके से अपडेट किया जाना चाहिए. Android 10 से पहले, प्लैटफ़ॉर्म पर एक्सएमएल स्कीमा की जानकारी देने और उसका इस्तेमाल करने की ज़रूरत नहीं होती थी. साथ ही, स्कीमा में ऐसे बदलावों को रोकने की सुविधा भी नहीं थी जो काम न करते. Android 10 में यह सुविधा उपलब्ध है. इसे कॉन्फ़िगरेशन फ़ाइल स्कीमा एपीआई कहा जाता है.
सिस्टम प्रॉपर्टी को एपीआई के तौर पर इस्तेमाल करना
सभी सेगमेंट में ऐक्सेस की गई सिस्टम प्रॉपर्टी को sysprop
ब्यौरे वाली फ़ाइलों में स्कीमा के तौर पर सेट किया जाता है. साथ ही, प्रॉपर्टी को ऐक्सेस करने के लिए, C++ के लिए कंक्रीट फ़ंक्शन और Java के लिए क्लास जनरेट की जाती हैं.
वेंडर इंटरफ़ेस (VINTF) ऑब्जेक्ट
VINTF
Android 10 में VINTF में किए गए बदलावों में ये शामिल हैं:
- AVB वर्शन टैग का इस्तेमाल बंद करना
- ओटीए पैकेज में कर्नेल की जानकारी जोड़ना
- आधिकारिक तौर पर ओडीएम मेनिफ़ेस्ट बनाना
- प्रॉडक्ट के साथ काम करने वाले डिवाइसों की जानकारी देने वाली मैट्रिक जोड़ना
- बिल्ड सिस्टम में, मेनिफ़ेस्ट एंट्री को HAL मॉड्यूल के साथ जोड़ना
बूटलोडर
Ramdisk
Android 10 में, रूट फ़ाइल सिस्टम को अब ramdisk.img
में शामिल नहीं किया गया है. इसके बजाय, इसे system.img
में मर्ज कर दिया गया है.
ओडीएम पार्टिशन बनाना
Android 10 में, Android बिल्ड सिस्टम का इस्तेमाल करके, odm
पार्टीशन बनाने की सुविधा शामिल है. पसंद के मुताबिक बनाने के लिए, /odm
के अलग-अलग सेगमेंट का इस्तेमाल किया जा सकता है. इससे, एक से ज़्यादा हार्डवेयर SKU के लिए, वेंडर की एक ही इमेज का इस्तेमाल किया जा सकता है. इससे ओरिजनल डिज़ाइन मैन्युफ़ैक्चरर (ओडीएम), सिस्टम-ऑन-चिप (SoC) वेंडर के बोर्ड-सपोर्ट पैकेज (बीएसपी) को अपने डिवाइसों (बोर्ड) के हिसाब से बना सकते हैं. वे बोर्ड के हिसाब से कॉम्पोनेंट, बोर्ड के हिसाब से डेमन या हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) पर अपनी सुविधाओं के लिए, कर्नेल मॉड्यूल लागू कर सकते हैं. वे SoC के कॉम्पोनेंट को बदल या पसंद के मुताबिक भी बना सकते हैं.
बूट इमेज के हेडर का वर्शन
Android 10, बूट इमेज हेडर को दूसरे वर्शन पर अपडेट करता है. इसमें डिवाइस ट्री ब्लॉब (डीटीबी) इमेज को सेव करने के लिए एक सेक्शन शामिल होता है. Android 10 के लिए उपलब्ध वीटीएस टेस्ट की मदद से यह पुष्टि की जाती है कि Android 10 के साथ लॉन्च होने वाले सभी डिवाइस, बूट इमेज हेडर के वर्शन 2 का इस्तेमाल करते हैं. साथ ही, बूट/रिकवरी इमेज के हिस्से के तौर पर, एक मान्य डीटीबी इमेज शामिल करते हैं.
A/B डिवाइसों के लिए रिकवरी इमेज
Android 9 और उसके बाद के वर्शन में, किसी डिवाइस की रिकवरी इमेज में ओवरले इमेज की जानकारी होनी चाहिए. डिवाइस बनाने वाली कंपनियां, डिवाइसट्री या बेहतर कॉन्फ़िगरेशन और पावर इंटरफ़ेस (ACPI) का इस्तेमाल करके, उन सभी डिवाइसों के बारे में बता सकती हैं जिन्हें ढूंढा नहीं जा सकता. Android 10 और इसके बाद के वर्शन में, ऐसे आर्किटेक्चर के लिए सहायता शामिल है जो ओवरले (DTBO) के लिए, डिवाइसट्री ब्लॉब के बजाय ACPI का इस्तेमाल करते हैं.
स्टेबल एआईडीएल
Android 10 में, स्थिर Android इंटरफ़ेस डेफ़िनिशन लैंग्वेज (AIDL) के लिए सहायता जोड़ी गई है. यह AIDL इंटरफ़ेस से मिलने वाले ऐप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई)/ऐप्लिकेशन बाइनरी इंटरफ़ेस (एबीआई) को ट्रैक करने का एक नया तरीका है.
fastboot को उपयोगकर्ता स्पेस में ले जाना
Android 10 में, फ़ास्टबूट को लागू करने की सुविधा को बूटलोडर से यूज़र स्पेस में ले जाकर, साइज़ में बदले जा सकने वाले पार्टीशन के लिए सहायता जोड़ी गई है.
डिसप्ले
एचडीआर वीडियो चलाना
Android 10 पर, HDR10, VP9, और HDR10+ प्लेबैक की सुविधा काम करती है.
टेक्स्ट का क्लासिफ़िकेशन
टेक्स्ट की कैटगरी तय करने की सुविधा, मशीन लर्निंग की तकनीकों का इस्तेमाल करके, डेवलपर को टेक्स्ट की कैटगरी तय करने में मदद करती है. Android 10 में, TextClassifier API के लिए दो तरीके जोड़े गए हैं:
suggestConversationActions
और detectLanguage
.
suggestConversationActions
तरीका, किसी बातचीत से जवाब और कार्रवाइयों के सुझाव जनरेट करता है. वहीं, detectLanguage
तरीका टेक्स्ट की भाषा का पता लगाता है.
Zawgyi फ़ॉन्ट रेंडरिंग के लिए सहायता
म्यांमार में Zawgyi सबसे लोकप्रिय फ़ॉन्ट है. Android 9 और उससे पहले के वर्शन में Zawgyi को रेंडर करने की सुविधा काम नहीं करती थी, क्योंकि यह यूनिकोड के मुताबिक नहीं है. Android 10 में एक यूनिकोड फ़ॉन्ट शामिल किया गया है, जो यूनिकोड बर्मी और ज़ावगयी, दोनों को एक साथ रेंडर कर सकता है. Android 10 के साथ लॉन्च होने वाले डिवाइसों पर, Zawgyi फ़ॉन्ट रेंडरिंग की सुविधा को लागू करने के लिए, कोई काम करने की ज़रूरत नहीं है. अगर आपके डिवाइसों पर Zawgyi के साथ काम करने के लिए, कस्टम तरीके से फ़ॉन्ट लागू किया गया है, तो:
- उन बदलावों को पहले जैसा करें और प्लैटफ़ॉर्म पर काम करने वाले तरीके का इस्तेमाल करें.
- अपने सिस्टम में सामान्य Zawgyi फ़ॉन्ट रखें और
fonts.xml
में स्थानीय भाषा कोडmy-qaag
का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Zawgyi (Qaag) पर यूनिकोड CLDR के रिलीज़ नोट देखें.
ऐप्लिकेशन के आइकॉन छिपाने से जुड़ी सीमाएं
Android 10 में, ऐप्लिकेशन के लिए लॉन्चर आइकॉन छिपाने की सुविधा सीमित है. अगर किसी ऐप्लिकेशन में लॉन्चर गतिविधि चालू नहीं है, तो सिस्टम लॉन्चर में एग्रीगेट की गई गतिविधि दिखाता है. एग्रीगेट की गई गतिविधि, सिस्टम सेटिंग में ऐप्लिकेशन की ज़्यादा जानकारी वाले पेज को दिखाती है.
ऐप्लिकेशन के आइकॉन दिखाने के लिए इस्तेमाल किए गए लॉजिक के बारे में ज़्यादा जानने के लिए, एपीआई रेफ़रंस में getActivityList()
के दस्तावेज़ देखें. इसमें उन ऐप्लिकेशन के टाइप के बारे में भी जानकारी मिलती है जिनके आइकॉन नहीं दिखाए जाते.
सेटिंग
सुलभता को बेहतर बनाने के लिए, Android 10 में उपयोगकर्ता के हिसाब से तय की जा सकने वाली टाइम आउट सेटिंग शामिल की गई हैं. एपीआई और सेटिंग में ये बदलाव, Android 10 के साथ आए हैं. अगर आपको सेटिंग में बदलाव करना है, तो पक्का करें कि आपके डिवाइस पर यह सुविधा काम करती हो. अगर आपके डिवाइस पर ऐसे यूज़र इंटरफ़ेस एलिमेंट हैं जिनका समय खत्म हो जाता है, तो उन पर timeouts API का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Android डेवलपर के लिए सुलभता से जुड़े दिशा-निर्देश देखें.
इनके साथ काम करता है
Android Compatibility Definition Document (CDD)
Android 10 के साथ काम करने की जानकारी देने वाला दस्तावेज़, पिछले वर्शन के बारे में बताता है. इसमें नई सुविधाओं के अपडेट और पहले रिलीज़ किए गए फ़ंक्शन की ज़रूरी शर्तों में हुए बदलावों के बारे में बताया गया है.
जाँचें
Compatibility Test Suite (CTS)
Android CTS में एक अलग रिलीज़ नोट पेज होता है. इसमें Android 10 के लिए किए गए कई अहम बदलावों की जानकारी होती है.
सीटीएस डाउनलोड
Android 10 के साथ काम करने वाले सीटीएस पैकेज, सीटीएस डाउनलोड पेज पर उपलब्ध हैं. शामिल की गई जांचों के सोर्स कोड को, ओपन-सोर्स ट्री में android-cts-10_r1
टैग के साथ सिंक किया जा सकता है.
CTS शिम APEX
Android 10 में CtsShimApex
नाम का एक पैकेज जोड़ा गया है.
APEX मैनेजमेंट के लिए सीटीएस टेस्ट लिखने के लिए, यह पैकेज डिवाइस पर पहले से इंस्टॉल होना चाहिए.
टेस्ट हार्नेस मोड
सीटीएस टेस्ट हार्नेस मोड की मदद से, डेवलपर किसी डिवाइस या डिवाइसों के ग्रुप की जांच को ऑटोमेट कर सकते हैं.
Instant Apps मोड
Android 10 से, सीटीएस इंस्टैंट ऐप्लिकेशन मोड में चलता है. इसका मतलब है कि टेस्टिंग के लिए इस्तेमाल किया जाने वाला APK, इंस्टैंट ऐप्लिकेशन के तौर पर इंस्टॉल किया जाता है और टेस्ट चलाए जाते हैं.
Android 10 में, इंस्टैंट ऐप्लिकेशन के लिए सीटीएस मोड के साथ-साथ, इंस्टैंट ऐप्लिकेशन के लिए सीटीएस की पुष्टि करने वाला टूल भी शामिल है
CTS Verifier के लिए ऑडियो की क्वालिटी की जांच
Android 10 में, Pro Audio के साथ काम करने की ज़रूरी शर्तों का पालन करने के लिए, सीटीएस की पुष्टि करने वाला टेस्ट जोड़ा गया है.
CTS Verifier MIDI टेस्ट
Android 10 में, CTS Verifier MIDI टेस्ट, यूएसबी एमआईडीआई इंटरफ़ेस, ब्लूटूथ एमआईडीआई इंटरफ़ेस, और वर्चुअल एमआईडीआई डिवाइस पाथ की मदद से, एमआईडीआई फ़ंक्शन की जांच करता है.
सीटीएस टेस्ट के नतीजों का विश्लेषण
Android 10 में, CTS के नतीजों को समझने के लिए, प्रोसेस को अपडेट किया गया है.
वेंडर टेस्ट सुइट (वीटीएस)
डीबग रैमडिस्क की मदद से VTS टेस्टिंग
Android 10 में, जीएसआई पर CTS/VTS की शर्तों के मुताबिक जांच करने के लिए इस्तेमाल किया जाने वाला सामान्य सिस्टम इमेज (जीएसआई), userdebug से user build टाइप में बदल जाता है. ऐसा इसलिए होता है, क्योंकि जीएसआई को रिलीज़ के लिए साइन किया जाता है. हालांकि, adb root
कमांड, उपयोगकर्ता के बिल्ड में उपलब्ध नहीं है. यह कमांड, टेस्ट किए जा रहे Android डिवाइस को होस्ट की रूट अनुमतियां देता है. यह समस्या है, क्योंकि VTS को चलाने के लिए adb root
ज़रूरी है.
डीबग करने के लिए इस्तेमाल होने वाला रैम डिस्क, डिवाइस के अनलॉक होने पर adb root
को चालू करने के लिए उपलब्ध कराया गया है. इससे, एक ही उपयोगकर्ता के बिल्ड system.img
(GSI या OEM का system.img
) का फिर से इस्तेमाल करके, टेस्टिंग फ़्लो को आसान बनाया जा सकता है.
Hardware Composer की पुष्टि करना
Android 10 में, IComposerClient.hal
में readback
इंटरफ़ेस की मदद से, हार्डवेयर कंपोज़र की पुष्टि करने के लिए, एक नई VTS टेस्ट क्लास जोड़ी गई है.
अगर वेंडर readback
को लागू नहीं करते हैं, तो टेस्ट अपने-आप पास हो जाते हैं.
डीबग करना
अलग-अलग क्लास लोडर की मदद से, शेयर की गई लाइब्रेरी लोड करना
Android 9 और उससे पहले के वर्शन में, ऐप्लिकेशन अपनी लिंक की गई Java शेयर की गई लाइब्रेरी को ऐप्लिकेशन के क्लास लोडर में लोड करते थे. Android 10 में, फ़्रेमवर्क uses-library
या uses-static-library
से लिंक की गई Java की शेयर की गई लाइब्रेरी को लोड करने के लिए, ऐप्लिकेशन के क्लास लोडर के बजाय किसी दूसरे क्लास लोडर का इस्तेमाल करता है.
आम तौर पर, ऐप्लिकेशन को किसी खास क्लास लोडर का इस्तेमाल नहीं करना चाहिए. इसलिए, इस बदलाव से ऐप्लिकेशन के काम करने के तरीके पर असर नहीं पड़ना चाहिए. हालांकि, अगर कोई ऐप्लिकेशन एक क्लास लोडर का इस्तेमाल करता है, तो यह तरीका काम नहीं करता. इसके अलावा, एक ही पैकेज में मौजूद क्लास के लिए, पैकेज-प्राइवेट के तौर पर सेट की गई विज़िबिलिटी की सुविधा अब भी काम करती है. हालांकि, यह सुविधा शेयर की गई लाइब्रेरी में काम नहीं करती.
डिवाइस बनाने वाली कंपनियों को, Android 10 पर काम करने वाले अपने डिवाइसों की जांच करते समय, ऐप्लिकेशन के साथ काम करने से जुड़ी समस्याएं दिख सकती हैं.
सुरक्षा से जुड़ी सुविधाएं
सिर्फ़ सुरक्षा और निजता से जुड़े बेहतर अनुभवों की पूरी सूची के लिए, Android 10 में सुरक्षा और निजता से जुड़े बेहतर अनुभव पेज पर जाएं.
चेहरे से अनलॉक करें
चेहरे की पहचान की सुविधा की मदद से, उपयोगकर्ता अपने डिवाइस के सामने देखकर उसे अनलॉक कर सकते हैं. Android 10 में, चेहरे की पहचान करने के लिए एक नया स्टैक जोड़ा गया है. यह स्टैक, कैमरे के फ़्रेम को सुरक्षित तरीके से प्रोसेस कर सकता है. साथ ही, चेहरे की पहचान करने की सुविधा के साथ काम करने वाले हार्डवेयर पर, सुरक्षा और निजता को बनाए रखता है. Android 10 में, सुरक्षा से जुड़ी शर्तों का पालन करने वाले ऐप्लिकेशन को आसानी से लागू करने का तरीका भी दिया गया है. इससे, ऑनलाइन बैंकिंग या अन्य सेवाओं जैसे लेन-देन के लिए, ऐप्लिकेशन इंटिग्रेशन की सुविधा चालू की जा सकती है.
एक्सटेंडेड ऐक्सेस
भरोसेमंद एजेंट, तीसरे पक्ष की पुष्टि करने वाले तरीकों, जैसे कि Smart Lock के लिए इस्तेमाल किए जाने वाले बुनियादी तरीके हैं. ये एजेंट, Android 10 में ही डिवाइस के अनलॉक होने की अवधि बढ़ा सकते हैं. भरोसेमंद एजेंट अब लॉक किए गए डिवाइस को अनलॉक नहीं कर सकते. साथ ही, वे किसी डिवाइस को ज़्यादा से ज़्यादा चार घंटे तक ही अनलॉक रख सकते हैं.
एन्क्रिप्ट (सुरक्षित) करने का तरीका
OEMCrypto
Android 10, OEMCrypto API के वर्शन 15 का इस्तेमाल करता है.
टेस्ट करना
BoundsSanitizer
Android 10, ब्लूटूथ और कोडेक में BoundsSanitizer (BoundSan) को डिप्लॉय करता है. BoundSan, UBSan के bounds sanitizer का इस्तेमाल करता है. यह सुविधा, हर मॉड्यूल के लेवल पर चालू होती है. इससे Android के अहम कॉम्पोनेंट सुरक्षित रहते हैं. इसलिए, इसे बंद नहीं किया जाना चाहिए. BoundSan इन कोडेक में चालू है:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
libaac
libxaac
पूर्णांक के ओवरफ़्लो को सैनिटाइज़ करना
Android 10, सॉफ़्टवेयर कोडेक में इंटिजर ओवरफ़्लो सैनिटाइज़ेशन (IntSan) की सुविधा चालू करता है. पक्का करें कि डिवाइस के हार्डवेयर पर काम न करने वाले कोडेक के लिए, वीडियो चलाने की परफ़ॉर्मेंस अच्छी हो. IntSan इन कोडेक में चालू है:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
सिर्फ़ एक्ज़ीक्यूट करने के लिए मेमोरी
डिफ़ॉल्ट रूप से, AArch64 सिस्टम बाइनरी के लिए एक्ज़ीक्यूटेबल कोड सेक्शन को सिर्फ़-इस्तेमाल करने के लिए (नहीं पढ़ा जा सकता) के तौर पर मार्क किया जाता है. ऐसा, सिर्फ़-समय पर कोड का फिर से इस्तेमाल करने से जुड़े हमलों को रोकने के लिए किया जाता है. डेटा और कोड को एक साथ मिलाने वाला कोड और ऐसे कोड जो पहले से ही मेमोरी सेगमेंट को पढ़ने लायक के तौर पर फिर से मैप किए बिना, इन सेक्शन की जांच करते हैं, अब काम नहीं करते. अगर कोई ऐप्लिकेशन, सिर्फ़-इंप्लिकेशन मेमोरी (XOM) की सुविधा वाली सिस्टम लाइब्रेरी के कोड सेक्शन को पढ़ने की कोशिश करता है, तो उस पर असर पड़ता है. ऐसा तब होता है, जब ऐप्लिकेशन सेक्शन को पढ़ने लायक के तौर पर मार्क किए बिना, मेमोरी में मौजूद लाइब्रेरी को पढ़ने की कोशिश करता है. यह असर, Android 10 (एपीआई लेवल 29 या इसके बाद के वर्शन) के टारगेट SDK टूल वाले ऐप्लिकेशन पर पड़ता है.
Scudo
Scudo, डाइनैमिक यूज़र-मोड मेमोरी ऐलोकेटर है. इसे हेप से जुड़ी कमजोरियों के ख़िलाफ़ ज़्यादा मज़बूत बनाने के लिए डिज़ाइन किया गया है. यह स्टैंडर्ड C एलोकेशन और डिएलोकेशन प्राइमटिव के साथ-साथ, C++ प्राइमटिव भी उपलब्ध कराता है.
ShadowCallStack
ShadowCallStack
(SCS) एक ऐसा LLVM इंस्ट्रूमेंटेशन मोड है जो रिटर्न पता बदलने (जैसे कि स्टैक बफ़र के ओवरफ़्लो) से बचाता है. ऐसा करने के लिए, यह फ़ंक्शन के रिटर्न पते को अलग से लिए गए ShadowCallStack
इंस्टेंस में सेव करता है. यह इंस्टेंस, नॉन-लीफ़ फ़ंक्शन के फ़ंक्शन प्रोलॉग में होता है. साथ ही, यह फ़ंक्शन के एपिलॉग में ShadowCallStack
इंस्टेंस से रिटर्न पता लोड करता है.
ऑडियो
ऑडियो एचएएल
Android 10 में, ऑडियो एचएएल के लिए ये नई सुविधाएं शामिल हैं.
AudioSource
AudioFormat
AudioChannelMask
ऑडियो एचएएल और सबसिस्टम लागू करने के लिए, अन्य ज़रूरी शर्तें जोड़ी गई हैं.
डेटा को प्रोसेस करने से पहले लागू होने वाले इफ़ेक्ट
Android, प्रीप्रोसेसिंग इफ़ेक्ट उपलब्ध कराता है. जैसे, ऑडियो इको को खत्म करने, ऑटोमैटिक गेन कंट्रोल, और शोर को कम करने की सुविधा.
Android 10 में, VOICE_COMMUNICATION
की मदद से कैप्चर करने के लिए नई ज़रूरी शर्तें शामिल हैं.
ऑडियो पॉलिसी मैनेजर
Android 10 में, ऑडियो नीति मैनेजर को फिर से डिज़ाइन किया गया है. इससे, वाहन में इस्तेमाल के मुश्किल उदाहरणों के लिए ज़्यादा सुविधाएं मिलती हैं.
हाई रिज़ॉल्यूशन वाला ऑडियो
Android 10 में, हाई रिज़ॉल्यूशन ऑडियो के लिए ये सुधार किए गए हैं.
- फ़्लोट के लिए सहायता
- 192 किलोहर्ट्ज़ फ़्रीक्वेंसी के साथ काम करना
- आठ चैनलों के लिए सहायता
- समय की जानकारी शामिल करना
एक साथ कई स्क्रीन कैप्चर करना
Android 10 में, एक साथ कई ऑडियो कैप्चर करने की सुविधा का उपयोगकर्ता अनुभव बेहतर बनाया गया है. इसके लिए, एक साथ एक से ज़्यादा ऑडियो कैप्चर करने की ज़रूरत होती है.
AudioPlaybackCapture
Android 10 में एक नया एपीआई है, जिसे AudioPlaybackCapture
कहा जाता है. इससे ऐप्लिकेशन, दूसरे ऐप्लिकेशन से चल रहे ऑडियो को कॉपी कर सकते हैं. यह सुविधा, स्क्रीन कैप्चर की तरह ही है, लेकिन यह ऑडियो के लिए है.
इसका मुख्य इस्तेमाल, स्ट्रीमिंग ऐप्लिकेशन को गेम में चल रहे ऑडियो को कैप्चर करने की अनुमति देने के लिए किया जाता है.
कैप्चर एपीआई का इस्तेमाल करने से, उस ऐप्लिकेशन के इंतज़ार का समय नहीं बढ़ता जिसका ऑडियो रिकॉर्ड किया जा रहा है.
MIDI
Android 10 में, AMidi
NDK API का इस्तेमाल करके, एमआईडीआई का इस्तेमाल करने वाले प्रोफ़ेशनल ऑडियो ऐप्लिकेशन को Android प्लैटफ़ॉर्म पर पोर्ट करना आसान हो गया है.
कैमरा
Android 10 में कैमरा एपीआई, कैमरा एचएएल, और कैमरा मॉड्यूल में किए गए बदलावों की खास जानकारी पाने के लिए, Android 10 के कैमरे से जुड़े अपडेट देखें.
कैमरा फ़्रेमवर्क की निजता से जुड़े सुधार
Android 10 में, कैमरा फ़्रेमवर्क को निजता से जुड़े बेहतर तरीके से अपडेट किया गया है. उपयोगकर्ता की सहमति के बिना, CameraCharacteristics
में कैमरे से ली गई संवेदनशील स्टैटिक जानकारी को ज़ाहिर होने से रोकने के लिए, ऐप्लिकेशन को CAMERA
की अनुमति लेनी होगी. इसके लिए, उन्हें getCameraCharacteristics
के तरीके का इस्तेमाल करके, निजता से जुड़े संवेदनशील टैग के साथ स्टैटिक मेटाडेटा को वापस लाना होगा.
कैमरे की उन विशेषता कुंजियों की सूची पाने के लिए जिनके लिए CAMERA
अनुमति की ज़रूरत होती है, getKeysNeedingPermission
तरीका कॉल करें.
सेशन को फिर से कॉन्फ़िगर करने की क्वेरी
Android 10 में, सेशन को फिर से कॉन्फ़िगर करने की क्वेरी की सुविधा जोड़ी गई है. इससे, इंटरनल सेशन पैरामीटर को फिर से कॉन्फ़िगर करने के लॉजिक पर ज़्यादा कंट्रोल करके, परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.
Camera HAL3 बफ़र मैनेजमेंट एपीआई
Android 10 में, camera HAL3 बफ़र मैनेजमेंट एपीआई का विकल्प दिया गया है. इन एपीआई की मदद से, बफ़र मैनेजमेंट लॉजिक लागू किया जा सकता है. इससे, कैमरा HAL लागू करने के दौरान, अलग-अलग मेमोरी और कैप्चर में लगने वाले समय में बदलाव किया जा सकता है.
Camera HAL डाइनैमिक फ़िज़िकल कैमरा स्विच
Android 10 में डाइनैमिक मेटाडेटा टैग,
ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
का इस्तेमाल किया गया है. इससे, लॉजिकल कैमरा डिवाइस के चालू कैमरे के बारे में पता चलता है. ज़्यादा जानकारी के लिए, एक से ज़्यादा कैमरे के साथ काम करने की सुविधा देखें.
फ़िज़िकल कैमरों को छिपाने की सुविधा
Android 10 में, कैमरा एचएएल उन फ़िज़िकल कैमरों की संख्या को कम कर सकता है जिन्हें ऐप्लिकेशन सीधे तौर पर खोल सकता है. ज़्यादा जानकारी के लिए, मल्टी-कैमरा की सुविधा देखें.
Camera2 VNDK API
Android 10 में, वेंडर मॉड्यूल, android.frameworks.cameraservice.service@2.0
और android.frameworks.cameraservice.device@2.0
नाम के दो नए स्टैंडर्ड HIDL इंटरफ़ेस की मदद से, कैमरा डिवाइसों को ऐक्सेस और कंट्रोल कर सकते हैं. HIDL इंटरफ़ेस का इस्तेमाल करना ज़्यादा आसान बनाने के लिए, Android 10 में एक वेंडर-उपलब्ध लाइब्रेरी, libcamera2_vendor
भी जोड़ी गई है. यह लाइब्रेरी, Camera NDK लाइब्रेरी से मिलती-जुलती है. हालांकि, इसमें कुछ छोटे बदलाव किए गए हैं.
स्ट्रीम कॉन्फ़िगरेशन
Android 10 में ऐसी सुविधाएं जोड़ी गई हैं जिनकी मदद से कैमरा वेंडर, कैमरा क्लाइंट को सुझाई गई कैमरा स्ट्रीम का विज्ञापन दिखा सकते हैं. साथ ही, स्ट्रीम के कॉम्बिनेशन के बारे में क्वेरी करने के लिए एपीआई का इस्तेमाल कर सकते हैं.
कैमरे की स्ट्रीम को किसी दूसरे डिवाइस पर स्ट्रीम करने से जुड़ी ज़रूरी शर्तें
Android 10 पर काम करने वाले डिवाइसों के लिए, अब फ़िज़िकल सब-कैमरे की स्ट्रीम के साथ स्ट्रीम के कॉम्बिनेशन काम नहीं करेंगे. हालांकि, कैमरा एचएएल डिवाइस के वर्शन 3.5 के साथ Android 10 चलाने वाले डिवाइसों में isStreamCombinationSupported()
की सुविधा होनी चाहिए, ताकि ऐप्लिकेशन यह क्वेरी कर सकें कि फ़िज़िकल स्ट्रीम वाले स्ट्रीम कॉम्बिनेशन काम करते हैं या नहीं.
ज़्यादा जानकारी के लिए, एक से ज़्यादा कैमरे के साथ काम करने की सुविधा देखें.
HEIF इमेज खींचने की सुविधा
Android 10 में, हाई इफ़िशिएन्सी इमेज फ़ाइल फ़ॉर्मैट (HEIF) इमेज के लिए, कैमरे की नेटिव सुविधा उपलब्ध है. इससे, JPEG इमेज की तुलना में बेहतर क्वालिटी और कम साइज़ वाली इमेज ली जा सकती हैं. HEIF इमेज इस्तेमाल करने के लिए, डिवाइसों में HEIC या HEVC एन्कोडर होना चाहिए.
मोनोक्रोम कैमरे
Android 10 में Y8 स्ट्रीम फ़ॉर्मैट, मोनोक्रोम और नियर-इंफ़्रारेड (एनआईआर) कलर फ़िल्टर ऐरे स्टैटिक मेटाडेटा के लिए ज़्यादा सहायता मिलती है. साथ ही, मोनोक्रोम कैमरे के लिए DngCreator
फ़ंक्शन भी मिलते हैं.
कनेक्टिविटी
कॉल करना और मैसेज भेजना
आपातकालीन नंबर और आपातकालीन कॉल करने की सुविधा
Android 10 में, आपातकालीन कॉल की सुविधा को बेहतर बनाया गया है. आपातकालीन स्थिति में, IRadio HAL v1.4 के साथ काम करने वाले डिवाइस, आपातकालीन नंबर का इस्तेमाल करके आपातकालीन कॉल कर सकते हैं. ये नंबर, सिम कार्ड, नेटवर्क सिग्नल या Android डेटाबेस जैसे सोर्स से लिए जाते हैं. नंबरों को आपातकालीन सेवाओं की कैटगरी के आधार पर बांटा जा सकता है. जैसे, पुलिस, फ़ायर ब्रिगेड, और एम्बुलेंस.
ग्रुप कॉल के लिए एपीआई
ग्रुप कॉल एपीआई, Android 9 में जोड़े गए eMBMS एपीआई का एक्सटेंशन हैं. नए एपीआई, ऐप्लिकेशन के लिए एक स्टैंडर्ड तय करते हैं. इससे ऐप्लिकेशन, eMBMS मिडलवेयर पैकेज के साथ इंटरैक्ट करके, सेल-ब्रॉडकास्ट ग्रुप कॉल में शामिल हो सकते हैं और उन पर ब्रॉडकास्ट कर सकते हैं. ग्रुप कॉल की सुविधा ठीक से काम करे, इसके लिए चिपसेट वेंडर, मिडलवेयर वेंडर, और मोबाइल और इंटरनेट सेवा देने वाली कंपनी की मदद की ज़रूरत होती है. डेवलपर के लिए दस्तावेज़, developer.google.com पर मौजूद हैं.
रिमोट सिम की सुविधाएं
Android 10 में, रिमोट सिम की सुविधाएं जोड़ी गई हैं. इनकी मदद से, Android होस्ट डिवाइस पर मैसेजिंग ऐप्लिकेशन, ब्लूटूथ जैसे तरीकों का इस्तेमाल करके फ़ोन से एसएमएस भेज सकते हैं. ज़्यादा जानकारी के लिए, getSubscriptionType
और SUBSCRIPTION_TYPE_REMOTE_SIM
के लिए रेफ़रंस दस्तावेज़ देखें.
एक से ज़्यादा ई-सिम
Android 10 में, EuiccManager
क्लास उन डिवाइसों के साथ काम करती है जिनमें एक से ज़्यादा एम्बेड किए गए सिम (eSIM) या eUICCs होते हैं.
ई-सिम से जुड़े अपडेट
Android 10 पर चलने वाले और eSIM की सुविधा वाले डिवाइसों के लिए, ऐसा eUICC स्लॉट आईडी कलेक्शन तय करना ज़रूरी है जिसे हटाया न जा सके. यह भी ज़रूरी है कि डिवाइसों पर IRadio HAL v1.4 और IRadioConfig HAL v1.2 काम करते हों. ज़्यादा जानकारी के लिए, eSIM लागू करना और एचएएल की ज़रूरी शर्तें देखें.
5G नॉन-स्टैंडअलोन (एनएसए)
Android 10 में, 5G नॉन-स्टैंडअलोन (एनएसए) के लिए सहायता जोड़ी गई है. 5G NSA, 5G नेटवर्क के लिए एक समाधान है. यह उन जगहों पर काम करता है जहां नेटवर्क, मौजूदा 4G इन्फ़्रास्ट्रक्चर पर काम करता है. Android 10 पर, डिवाइसों के कनेक्ट होने पर, स्टेटस बार में 5G आइकॉन दिख सकता है.
फ़ोन खाते का सुझाव
Android 10 में, फ़ोन खाते के सुझाव देने वाली सेवा को जोड़ा गया है. इसकी मदद से, कॉल करते समय उपयोगकर्ताओं को फ़ोन खातों के सुझाव दिखाए जा सकते हैं.
मोबाइल और इंटरनेट सेवा देने वाली कंपनी
मोबाइल नेटवर्क की सेटिंग माइग्रेट करना
Android 10 ने मोबाइल नेटवर्क की सेटिंग के यूज़र इंटरफ़ेस (यूआई) कोड को फिर से डिज़ाइन किया है और इसे टेलीफ़ोन स्टैक से सेटिंग स्टैक में ले जाया है. माइग्रेट किए गए कोड के साथ काम करने के लिए, मोबाइल नेटवर्क की सेटिंग के कॉन्फ़िगरेशन की इन वैल्यू को Android संसाधनों से CarrierConfig
संसाधनों में बदलें:
config_world_mode
->
CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL
config_support_tdscdma
->
CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL
config_support_tdscdma_roaming_on_networks
->
CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY
config_enabled_lte
->
CarrierConfigManager#KEY_LTE_ENABLED_BOOL
डिवाइस आइडेंटिफ़ायर
डिवाइस आइडेंटिफ़ायर (आईएमईआई/एमईआईडी, आईएमएसआई, और बिल्ड सीरियल) को खास अनुमति से सुरक्षित रखा जाता है. साथ ही, डिवाइस और प्रोफ़ाइल के मालिक के ऐप्लिकेशन को भी इसका ऐक्सेस दिया जाता है. आईएमएसआई और सिम का सीरियल नंबर, मोबाइल और इंटरनेट सेवा देने वाली कंपनी उपलब्ध कराती है. इसलिए, इन आइडेंटिफ़ायर का ऐक्सेस, मोबाइल और इंटरनेट सेवा देने वाली कंपनी की अनुमतियों वाले पैकेज को दिया जाता है.
वाई-फ़ाई
नेटवर्क चुनना
Android, कनेक्ट किए गए नेटवर्क की क्वालिटी का लगातार आकलन करता है. साथ ही, उपलब्ध नेटवर्क की क्वालिटी का भी आकलन करता है. Android 10 में, वाई-फ़ाई नेटवर्क चुनने और उनमें स्विच करने के लिए, एल्गोरिदम और प्रोसेस को अपडेट किया गया है.
वाई-फ़ाई को प्राथमिकता देने वाले नेटवर्क के लिए, ऑफ़लोड करने के लिए स्कैनिंग
Android 10 में, WifiManager
में setDeviceMobilityState()
नाम का एक वैकल्पिक एपीआई तरीका जोड़ा गया है. यह डिवाइस के स्टैटिक होने पर, प्राथमिक नेटवर्क ऑफ़लोड (PNO) स्कैन के बीच के इंटरवल को बढ़ाता है, ताकि डिवाइस की बैटरी का कम से कम इस्तेमाल हो.
मोबाइल और इंटरनेट सेवा देने वाली कंपनी का वाई-फ़ाई
Android 10 में, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के वाई-फ़ाई की सुविधा वाले डिवाइस, कॉन्फ़िगर किए गए मोबाइल और इंटरनेट सेवा देने वाली कंपनी के वाई-फ़ाई नेटवर्क (सार्वजनिक कुंजी सर्टिफ़िकेट वाले नेटवर्क) से अपने-आप कनेक्ट हो जाते हैं.
वाई-फ़ाई आसानी से कनेक्ट करना
Android 10 में, डिवाइसों के लिए Wi-Fi आसानी से कनेक्ट करें सुविधा उपलब्ध है. यह सुविधा, डिवाइसों को वाई-फ़ाई से कनेक्ट करने और कॉन्फ़िगर करने के लिए, डिवाइस के लिए प्रोवाइज़न करने वाले प्रोटोकॉल (डीपीपी) का इस्तेमाल करती है. डीपीपी को Wi-Fi Alliance (WFA) ने लॉन्च किया था.
वाई-फ़ाई का लो-लेटेंसी मोड
Android 10 में वाई-फ़ाई का कम इंतज़ार वाला मोड जोड़ा गया है. यह मोड, वाई-फ़ाई चिप को कॉन्फ़िगर करके, इंतज़ार का समय कम करता है.
अपडेट किया गया डीएचसीपी सर्वर
"आईपी सर्वर" सेवा के तहत, dnsmasq
को मिटाया जा रहा है. Android 10, अपने DHCPv4 सर्वर के फ़ंक्शनल इस्तेमाल को एक अलग कॉम्पोनेंट से बदलता है. यह कॉम्पोनेंट मुख्य रूप से Java में लिखा गया है, ताकि इसे Java फ़्रेमवर्क कंट्रोल प्लेन के साथ बेहतर तरीके से इंटिग्रेट किया जा सके. इससे DHCP सर्वर की सुरक्षा और अपडेट करने की सुविधा बेहतर होती है. ज़्यादा जानकारी के लिए, packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java
देखें.
इस बदलाव को लागू करने के लिए, कोई कार्रवाई करने की ज़रूरत नहीं है: Android 10 पर रिलीज़ होने वाले और अपग्रेड किए जाने वाले सभी डिवाइस, डिफ़ॉल्ट रूप से DhcpServer
का इस्तेमाल करते हैं.
अगर आपने डीएचसीपी सर्वर में पसंद के मुताबिक बदलाव किए हैं, तो ग्लोबल सेटिंग tether_enable_legacy_dhcp_server=1
को सेट करके, Android 9 के व्यवहार पर वापस लौटा जा सकता है.
नया DhcpServer
, नेटवर्किंग कॉम्पोनेंट मॉड्यूल में शामिल है. इसलिए, DHCP सर्वर की सुविधा में कोई भी बदलाव करने पर, उसे अपस्ट्रीम किया जाना चाहिए.
WPA3 और वाई-फ़ाई Enhanced Open
Android 10 में Wi-Fi Protected Access 3 (WPA3) और Wi-Fi Enhanced Open सुरक्षा मानकों के लिए सहायता जोड़ी गई है. इससे, आपको बेहतर निजता मिलती है और जाने-पहचाने हमलों से सुरक्षा मिलती है.
Wi-Fi Direct
Wi-Fi Direct को Wi-Fi P2P भी कहा जाता है. इसकी मदद से, एक-दूसरे से कनेक्ट करने वाले डिवाइसों को इंटरनेट या मोबाइल इंटरनेट कनेक्शन के बिना, Wi-Fi Direct प्रोटोकॉल का इस्तेमाल करके सीधे तौर पर एक-दूसरे का पता लगाने और कनेक्ट करने की सुविधा मिलती है.
मैक पते को रैंडम क्रम में सेट करने की सुविधा में सुधार
Android 10 में, क्लाइंट मोड, SoftAP, और वाई-फ़ाई डायरेक्ट के लिए, मैक पते को बदलने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. डिवाइसों में सिस्टम यूज़र इंटरफ़ेस (यूआई) में, हर SSID के लिए MAC पता बदलने की सुविधा को चालू या बंद करने का विकल्प होना चाहिए.
Passpoint R2
Android 10 में, Passpoint R2 की सुविधाओं के साथ काम करने की सुविधा जोड़ी गई है. Passpoint R2 में ऑनलाइन साइन अप (ओएसयू) की सुविधा लागू की गई है. यह नई Passpoint प्रोफ़ाइलों को प्रोविज़न करने का स्टैंडर्ड तरीका है. Android 10, SOAP-XML का इस्तेमाल करके EAP-TTLS प्रोफ़ाइलों को प्रोवाइड करने की सुविधा देता है.
एनएफ़सी
NFC सुरक्षित करें
सुरक्षित एनएफ़सी की मदद से, ऑफ़-होस्ट एनएफ़सी कार्ड एमुलेटर को सिर्फ़ तब चालू किया जा सकता है, जब डिवाइस की स्क्रीन अनलॉक हो. इस सुविधा को लागू करने पर, उपयोगकर्ताओं को बेहतर सुरक्षा के लिए, सुरक्षित एनएफ़सी को चालू करने का विकल्प मिलता है.
Android Beam की सुविधा बंद कर दी गई है
Android 10 में, Android Beam की ज़रूरत नहीं है. साथ ही, यहां दिए गए इंटरफ़ेस और तरीकों का इस्तेमाल नहीं किया जा सकता.
इंटरफ़ेस:
NfcAdapter.CreateBeamUrisCallback
NfcAdapter.CreateNdefMessageCallback
NfcAdapter.OnNdefPushCompleteCallback
तरीके:
createBeamUris
invokeBeam
isNdefPushEnabled
setBeamPushUris
setBeamPushUrisCallback
setNdefPushMessage
setNdefPushMessageCallback
setOnNdefPushCompleteCallback
createNdefMessageCallback
onNdefPushCompleteCallback
Android Beam का इस्तेमाल करने के लिए, android.sofware.nfc.beam
सुविधा के कॉन्स्टेंट की जानकारी दें.
ग्राफ़िक्स
ASurfaceControl
Android 10 में ASurfaceControl
जोड़ा गया है. यह SurfaceFlinger
के लिए, बफ़र स्वीकार करने का एक नया तरीका है.
ग्राफ़िक लागू करना
OpenGL ES लेयर
Android 10 में, GLES के लिए लेयर सिस्टम की सुविधा जोड़ी गई है.
EGL 1.5
Android 10 में, EGL 1.5 इंटरफ़ेस लागू किया गया है. EGL 1.5 की नई सुविधाओं के बारे में जानने के लिए, Khronos Releases EGL 1.5 Specification देखें.
Vulkan
Android 10 में, Vulkan 1.1 ग्राफ़िक्स के लिए सहायता शामिल है.
यह प्लैटफ़ॉर्म VK_KHR_swapchain
v70 के साथ भी काम करता है. इसलिए, Vulkan ऐप्लिकेशन, स्वैपचैन मेमोरी की मदद से VkImage
बना सकता है.
परफ़ॉर्मेंस रीफ़्रेश रेट
Android 10 में, परफ़ॉर्मेंस रीफ़्रेश रेट की सुविधा जोड़ी गई है. यह सुविधा डिफ़ॉल्ट रूप से बंद रहती है.
इंटरैक्शन
Automotive
वाहन का ऑडियो
Android 10 में, ऑडियो एचएएल कॉन्टेक्स्ट, आवाज़ों की पहचान करने के लिए AudioAttributes.usage
पर मैप करता है. Android, हर कॉन्टेक्स्ट के लिए एक
AUDIO_DEVICE_OUT_BUS
इंस्टेंस के साथ काम करता है. IAudioControl
HAL, वाहन के हिसाब से ऑडियो HAL के एक्सटेंशन उपलब्ध कराता है.
जेस्चर वाला नेविगेशन
Android 10 में, पूरी तरह से जेस्चर के आधार पर सिस्टम नेविगेट करने का विकल्प जोड़ा गया है. इस सुविधा का इस्तेमाल करने के लिए, ऐप्लिकेशन को तैयार करने के तरीके के बारे में जानने के लिए, Android Developers साइट पर जेस्चर नेविगेशन पेज देखें.
न्यूरल नेटवर्क
Android 10 में, न्यूरल नेटवर्क एपीआई और न्यूरल नेटवर्क एचएएल में अपडेट किए गए हैं. बदलावों की खास जानकारी के लिए, न्यूरल नेटवर्क देखें.
Android 10 के लिए, न्यूरल नेटवर्क से जुड़े नए और अपडेट किए गए दस्तावेज़:
- खास जानकारी
- AHardwareBuffer
- एक साथ कई टास्क चलाना और तेज़ी से मैसेज भेजना
- कंपाइलेशन कैश मेमोरी में सेव होना
- डिवाइस डिस्कवरी और असाइनमेंट
- वेंडर एक्सटेंशन
सेंसर
Sensors HAL 2.0
Sensors HAL 2.0, फ़ास्ट मैसेज कतार (एफ़एमक्यू) का इस्तेमाल करके, सेंसर से मिले इवेंट को HAL से Android Sensors Framework में भेजने की सुविधा देता है.
सेंसर बंद हैं
Android 10 में डेवलपर सेटिंग की सुविधा है. इसकी मदद से, किसी डिवाइस पर सभी सेंसर बंद किए जा सकते हैं. इस सुविधा की मदद से, डेवलपर उन स्थितियों में अपने ऐप्लिकेशन की मुख्य सुविधाओं की जांच कर सकते हैं जब सेंसर उपलब्ध न हों. साथ ही, उपयोगकर्ताओं को अपने डिवाइस में सेंसर को कंट्रोल करने का तरीका भी मिलता है.
अगर आपके डिवाइसों में SensorService
,
CameraService
, और AudioPolicyService
को डिफ़ॉल्ट रूप से लागू किया गया है, तो रेफ़रंस डिज़ाइन में कोई और कस्टमाइज़ेशन ज़रूरी नहीं है. अगर आपके पास अन्य सेंसर हैं, तो इस सुविधा के साथ काम करने के बारे में ज़्यादा जानकारी के लिए, पसंद के मुताबिक बनाने की सुविधा देखें.
मीडिया
अपडेट किए जा सकने वाले मीडिया कॉम्पोनेंट
Android 10 में, अपडेट किए जा सकने वाले मीडिया कॉम्पोनेंट उपलब्ध होते हैं. इनकी मदद से, मीडिया से जुड़े मॉड्यूलर सिस्टम कॉम्पोनेंट को Google Play Store के इन्फ़्रास्ट्रक्चर या पार्टनर की ओर से उपलब्ध कराए गए ओवर-द-एयर (ओटीए) तरीके से अपडेट किया जा सकता है.
मीडिया के लिए डीआरएम
Android 10 में, MediaDrm
Java और NDK API की सुविधाओं और इस्तेमाल करने के तरीके को बेहतर बनाया गया है.
डिकोड करना
Android 10, AV1 SW डिकोडिंग की सुविधा के साथ काम करता है.
अनुमतियां
Android 10 में, पारदर्शिता और उपयोगकर्ता की निजता को ध्यान में रखते हुए, अनुमतियों के लिए ज़्यादा कॉन्फ़िगरेशन उपलब्ध हैं.
संपर्कों की जानकारी देने वाली कंपनी और मिलते-जुलते ग्राहकों की जानकारी
Android 10 से, संपर्कों की जानकारी देने वाले कॉम्पोनेंट से मैनेज किए जाने वाले, संपर्कों से जुड़े अफ़िनिटी डेटा को Android 9 और उससे पहले के वर्शन के मुकाबले अलग तरीके से ऐक्सेस किया जाता है. डेटा ऐक्सेस करने से जुड़े इन बदलावों से, Contacts Provider कॉम्पोनेंट का इस्तेमाल करने वाले सभी Android 10 डिवाइसों पर उपयोगकर्ता की निजता को बेहतर बनाया जा सकता है. डेटाबेस में अब संपर्क से जुड़ी दिलचस्पी का डेटा नहीं है. इसलिए, ऐप्लिकेशन इस फ़ोल्डर में डेटा नहीं लिख सकते और न ही उसमें से डेटा पढ़ सकते हैं.
Android 10 में किए गए बदलावों का एपीआई पर काफ़ी असर पड़ने की उम्मीद है. अगर आपके ऐप्लिकेशन, संपर्क सेवा देने वाली कंपनी और मिलती-जुलती जानकारी में बताई गई, बंद की गई सुविधाओं पर निर्भर हैं, तो हो सकता है कि आपको अपने ऐप्लिकेशन अपडेट करने पड़ें, ताकि किसी भी बदलाव की भरपाई की जा सके. इसके अलावा, अगर आपने संपर्क सेवा देने वाली कंपनी के किसी फ़ोक्ड वर्शन का इस्तेमाल किया है, तो आपको संपर्क सेवा देने वाली कंपनी को अपडेट करना होगा.
जगह की जानकारी की तीन तरह की अनुमतियां
Android 10 में, जगह की जानकारी की तीन तरह की अनुमतियां की सुविधा उपलब्ध है. इससे, उपयोगकर्ताओं को यह कंट्रोल करने में मदद मिलती है कि ऐप्लिकेशन उनके डिवाइस की जगह की जानकारी को कैसे ऐक्सेस करें.
बैकग्राउंड में जगह की जानकारी ऐक्सेस करने का रिमाइंडर
Android 10 में, बैकग्राउंड में जगह की जानकारी ऐक्सेस करने का रिमाइंडर सुविधा मौजूद है. इससे, यह साफ़ तौर पर पता चलता है कि ऐप्लिकेशन के पास डिवाइस की जगह की जानकारी का कितना ऐक्सेस है. साथ ही, उपयोगकर्ताओं को इस ऐक्सेस को कंट्रोल करने में मदद मिलती है.
ऑपर्च्यूनिस्टिक लोकेशन की सुविधा पर पाबंदी लगाना
जब कोई ऐप्लिकेशन किसी डिवाइस की जगह की जानकारी का अनुरोध करता है, तो वह अनुरोध के जवाब का इंतज़ार कर सकता है या जगह की जानकारी सुनने वाले ऐप्लिकेशन का इस्तेमाल करके, जगह की जानकारी का अपडेट पा सकता है. Android 10 से, जगह की जानकारी के ऐसे अपडेट पाने के लिए, डेवलपर को यह बताना होगा कि उन्हें FusedLocationProviderClient
क्लास से जगह की जानकारी के पैसिव अपडेट चाहिए.
बैकग्राउंड में चल रहे ऐप्लिकेशन लॉन्च करना
Android 10 में, बिना विंडो वाले ऐसे ऐप्लिकेशन जो खास सुविधाओं का इस्तेमाल नहीं करते, वे अपने-आप फ़ोरग्राउंड में नहीं खुल सकते. इस बदलाव से, विज्ञापन पॉप-अप और नुकसान पहुंचाने वाले टेंप्लेट को रोका जा सकता है. इसे चालू करने के लिए, कुछ करने की ज़रूरत नहीं है.
ऐप्लिकेशन को सैंडबॉक्स में चलाना
Android 10 में, ऐप्लिकेशन के पास फ़ाइल सिस्टम का सीमित रॉ व्यू होता है. साथ ही, उनके पास /sdcard/DCIM
जैसे पाथ का सीधा ऐक्सेस नहीं होता. हालांकि, ऐप्लिकेशन के पास अपने पैकेज के हिसाब से पाथ का पूरा रॉ ऐक्सेस बना रहता है. यह ऐक्सेस, Context.getExternalFilesDir()
जैसे लागू तरीकों से मिलता है.
ऐप्लिकेशन के पास अब भी अपने पैकेज के हिसाब से पाथ का पूरा ऐक्सेस है.
डेटा शेयर करने के बारे में ज़्यादा जानकारी देने के लिए, ऐप्लिकेशन सैंडबॉक्स के फ़ाइलें शेयर करने के दिशा-निर्देशों का इस्तेमाल करें.
ऐप्लिकेशन के क्लिपबोर्ड के ऐक्सेस पर पाबंदी लगाना
Android 10 में, क्लिपबोर्ड का ऐक्सेस बदल गया है. इसलिए, क्लिपबोर्ड में बदलाव होने पर सूचना पाने के लिए, ClipboardManager.getPrimaryClip
को कॉल करके या onPrimaryClipChangedListener
को लिसनर के तौर पर जोड़कर, क्लिपबोर्ड का कॉन्टेंट नहीं देखा जा सकता. इससे उपयोगकर्ता की निजता बढ़ती है और नुकसान पहुंचाने वाले विज्ञापन दिखाने वाले ऐप्लिकेशन, क्लिपबोर्ड में बदलाव नहीं कर पाते.
Android 10 में, रीड ऐक्सेस की अनुमति सिर्फ़ इनपुट फ़ोकस वाले मौजूदा ऐप्लिकेशन या मौजूदा कीबोर्ड को दी जाती है. अब ClipboardManager.onPrimaryClipChanged()
listener कॉल सिर्फ़ उन ऐप्लिकेशन के लिए ट्रिगर होगा जो इन पाबंदियों को पूरा करते हैं.
ClipboardManager.getPrimaryClip
और ClipboardManager.getPrimaryClipDescription
, null
दिखाते हैं. ऐसा तब होता है, जब अनुरोध करने वाला ऐप्लिकेशन डिफ़ॉल्ट इनपुट तरीका एडिटर (आईएमई) न हो या उस पर इनपुट फ़ोकस न हो.
रनटाइम की अनुमतियों में, गतिविधि की पहचान करने की सुविधा शामिल है
जब कोई ऐप्लिकेशन बैकग्राउंड में डिवाइस की जगह की जानकारी ऐक्सेस करता है, तो अब उपयोगकर्ताओं को गतिविधि की पहचान करने वाला डायलॉग दिखता है. Android 10 में, रनटाइम के दौरान इस्तेमाल की जाने वाली उन अनुमतियों को ठीक से वाइटलिस्ट किया जाना चाहिए जिन पर पाबंदी लगी है.
MANAGE_DEVICE_ADMINS अनुमति
Android 10 में, MANAGE_DEVICE_ADMINS
की अनुमति को हस्ताक्षर या खास सुविधाओं के लिए से सिर्फ़ हस्ताक्षर के लिए बदल दिया गया है. इसका मतलब है कि सिर्फ़ प्लैटफ़ॉर्म से साइन किए गए ऐप्लिकेशन, दूसरे ऐप्लिकेशन को डिवाइस एडमिन के तौर पर सेट कर सकते हैं.
Sharing API में हुए सुधार
Android 10 में, शेयर करने से जुड़ी Android Platform API की कई नई सुविधाएं उपलब्ध हैं. अगर आपने शेयर शीट को लागू करने के लिए कोड में बदलाव किया है, तो पक्का करें कि आपके लागू किए गए कोड में ये नई सुविधाएं काम करती हों. अगर आपने Share Sheet को लागू करने के दौरान, कोड में बदलाव नहीं किया है, तो इन नई सुविधाओं का इस्तेमाल करने के लिए आपको कुछ करने की ज़रूरत नहीं है.
Android रनटाइम (ART)
हस्ताक्षर किया गया कॉन्फ़िगरेशन
साइन किया गया कॉन्फ़िगरेशन सुविधा की मदद से, APK में ऐसे इंटरफ़ेस की पाबंदियों का कॉन्फ़िगरेशन एम्बेड किया जा सकता है जो SDK टूल से नहीं जुड़े हैं. इससे, ब्लैकलिस्ट से ऐसे कुछ इंटरफ़ेस हटाए जा सकते हैं जो SDK टूल में उपलब्ध नहीं हैं. इससे AndroidX, उनका सुरक्षित तरीके से इस्तेमाल कर सकता है. इस बदलाव के बाद, AndroidX में Android के पुराने वर्शन पर नई सुविधाओं के इस्तेमाल की सुविधा जोड़ी जा सकती है.
परफ़ॉर्मेंस
Cgroup ऐब्स्ट्रैक्शन लेयर
Android 10 में cgroup एब्स्ट्रैक्शन लेयर और टास्क प्रोफ़ाइलें शामिल हैं. इनका इस्तेमाल करके, डेवलपर किसी थ्रेड या प्रोसेस पर पाबंदियों का सेट लागू कर सकते हैं.
Low Memory Killer Daemon (lmkd)
Android 10 में एक नया lmkd
मोड उपलब्ध है. यह मोड, मेमोरी के दबाव का पता लगाने के लिए, कर्नेल प्रेशर स्टॉल की जानकारी (पीएसआई) मॉनिटर का इस्तेमाल करता है.
ताकत
प्लैटफ़ॉर्म का पावर मैनेजमेंट
Android 10 में, Doze मोड को हमेशा चालू रहने वाले डिवाइसों के साथ-साथ, बैटरी से चलने वाले डिवाइसों पर भी चालू किया जा सकता है.
रूटीन के हिसाब से बैटरी सेवर मोड
Android 10 में, बैटरी सेवर मोड को शेड्यूल करने का एक नया विकल्प पेश किया गया है. इसे रूटीन के आधार पर कहा जाता है. रूटीन बैटरी सेवर की मदद से, OEM के चुने गए ऐप्लिकेशन को सिस्टम को सिग्नल देने की अनुमति मिलती है. इससे बैटरी सेवर मोड को ज़्यादा बेहतर तरीके से शेड्यूल किया जा सकता है. इस विकल्प को कॉन्फ़िगर करना ज़रूरी है. हालांकि, इसे लागू करना ज़रूरी नहीं है.
पावर के आंकड़े दिखाने वाला एचएएल
Android 10 में, IPowerStats.hal
, IPower.hal
में मौजूद, बैटरी के आंकड़े इकट्ठा करने वाले एपीआई की जगह लेता है.
पावर एचएएल अब भी एपीआई के साथ काम करता है. हालांकि, आने वाले समय में इन्हें खास तौर पर पावर के आंकड़े दिखाने वाले एचएएल पर माइग्रेट कर दिया जाएगा.
पावर के आंकड़े दिखाने वाले एचएएल में नए एपीआई शामिल हैं. इनकी मदद से, काम करने वाले डिवाइसों पर पावर मेज़रमेंट से डेटा इकट्ठा किया जा सकता है. बेहतर सुविधा देने के लिए, बिजली के आंकड़े इकट्ठा करने वाले मौजूदा एपीआई भी अपडेट किए गए हैं. पावर के सुझाव देने वाले एपीआई, पावर एचएएल में ही बने रहेंगे और इनमें कोई बदलाव नहीं होगा.
थर्मल मिटिगेशन
Android 10 में थर्मल फ़्रेमवर्क, थर्मल सबसिस्टम के तापमान सेंसर के लिए डिवाइस इंटरफ़ेस को अलग करता है. इसमें सीपीयू, जीपीयू, बैटरी, त्वचा, और कूलिंग डिवाइस शामिल हैं. फ़्रेमवर्क में, थ्रॉटल करने के लिए थर्मल स्टेटस की क्वेरी करने के लिए, पोलिंग इंटरफ़ेस और थ्रेशोल्ड पार होने पर उपयोगकर्ता को मैसेज भेजने के लिए, कॉलबैक इंटरफ़ेस जोड़ा गया है.
Android 10, IThermalService
इंटरफ़ेस की मदद से नए डेटा टाइप उपलब्ध कराता है. इसके लिए, ये तीन नए तरीके इस्तेमाल किए जाते हैं:
getCurrentThermalStatus()
डिवाइस के थर्मल स्टेटस की मौजूदा स्थिति को पूर्णांक के तौर पर दिखाता है. हालांकि, ऐसा तब तक नहीं होता, जब तक डिवाइस को थ्रॉटल नहीं किया जा रहा हो.addThermalStatusListener()
किसी दर्शक को जोड़ता है.removeThermalStatusListener()
पहले जोड़े गए दर्शक को हटाता है.
ऐप्लिकेशन, PowerManager
क्लास में सुनने वालों को जोड़ते और हटाते हैं. साथ ही, तापमान की स्थिति को ऐक्सेस करते हैं. सिर्फ़ भरोसेमंद सिस्टम सेवा, जैसे कि Android API या डिवाइस बनाने वाली कंपनी का एपीआई, समस्या से जुड़ी घटनाओं की जानकारी ऐक्सेस कर सकता है. डिवाइस बनाने वाली कंपनियों या SoC बनाने वाली कंपनियों को thermal HAL 2.0
लागू करना होगा, ताकि नए थर्मल फ़्रेमवर्क की सभी सुविधाएं चालू की जा सकें.
गर्मी को कम करने के लिए, डिवाइस के तापमान को कंट्रोल करने की सुविधा को लागू करने का उदाहरण देखने के लिए, लागू करने का रेफ़रंस देखें.
अपडेट
APEX फ़ाइल का फ़ॉर्मैट
Android Pony EXpress (APEX) एक नया कंटेनर फ़ॉर्मैट है. इसका इस्तेमाल, मॉड्यूलर सिस्टम कॉम्पोनेंट के इंस्टॉल फ़्लो में किया जाता है.
डाइनैमिक पार्टीशन
डाइनैमिक पार्टिशन, Android में उपयोगकर्ता के लिए पार्टिशन करने का एक सिस्टम पेश करते हैं. इससे, ओटीए अपडेट के दौरान पार्टिशन बनाए जा सकते हैं, उनका साइज़ बदला जा सकता है या उन्हें मिटाया जा सकता है. डिवाइस बनाने वालों को system
, vendor
, और
product
जैसे अलग-अलग साइज़ के पार्टीशन के बारे में चिंता करने की ज़रूरत नहीं है. इसके बजाय, एक बड़ा super
पार्टीशन दिया जाता है और उसके अंदर सब-पार्टिशन का साइज़ डाइनैमिक तौर पर तय किया जा सकता है.
डाइनैमिक सिस्टम अपडेट
डाइनैमिक सिस्टम अपडेट (डीएसयू) की मदद से, ऐसी Android सिस्टम इमेज बनाई जा सकती है जिसे उपयोगकर्ता इंटरनेट से डाउनलोड कर सकते हैं और मौजूदा सिस्टम इमेज को नुकसान पहुंचाए बिना आज़मा सकते हैं.
एक से ज़्यादा उपयोगकर्ताओं के लिए बैकअप और रीस्टोर
Android 10 पर, डिवाइस के सभी उपयोगकर्ताओं के लिए बैकअप लेने और उसे वापस लाने की सुविधा काम करती है. पहले, बैकअप लेने और डेटा वापस पाने की सुविधा सिर्फ़ सिस्टम के उपयोगकर्ता के लिए उपलब्ध थी. सिस्टम के उपयोगकर्ताओं के लिए, बैकअप लेने और उसे वापस पाने की सुविधा डिफ़ॉल्ट रूप से बंद रहती है. इसकी वजह यह है कि यह सुविधा, सेटिंग, वॉलपेपर, और सिस्टम के कॉम्पोनेंट के लिए ही काम करती है.
Overlayfs
userdebug
या eng
बिल्ड का इस्तेमाल करने वाले उपयोगकर्ता, सिस्टम के partition को रीड-राइट के तौर पर फिर से माउंट कर सकते हैं. इसके बाद, सिस्टम इमेज को फिर से फ़्लैश किए बिना, किसी भी संख्या में फ़ाइलें जोड़ी या उनमें बदलाव किया जा सकता है. Overlayfs
का इस्तेमाल किया जा सकता है. यह लिखने लायक फ़ाइल सिस्टम के लिए, ऊपरी रेफ़रंस के तौर पर बैकिंग स्टोरेज को अपने-आप सेट अप करता है और उसे निचले हिस्से पर माउंट करता है. ये कार्रवाइयां,
adb disable-verity
और adb remount
अनुरोधों में होती हैं. ज़्यादा जानकारी के लिए, AOSP में Overlayfs README देखें.
रिकवरी मोड में शेयर की गई लाइब्रेरी का इस्तेमाल करना
Android 10 में, शेयर की गई लाइब्रेरी रिकवरी पार्टिशन में उपलब्ध होती हैं. इससे, रिकवरी मोड में काम करने वाले सभी प्रोग्राम को स्टैटिक रखने की ज़रूरत नहीं होती. शेयर की गई लाइब्रेरी, partition में /system/lib
(या 64-बिट डिवाइसों के लिए /system/lib64
) डायरेक्ट्री में मौजूद होती हैं.
रिकवरी पार्टीशन में नई शेयर की गई लाइब्रेरी जोड़ने के लिए, शेयर की गई लाइब्रेरी के Android.bp
में recovery_available: true
या recovery: true
जोड़ें. पहला तरीका, लाइब्रेरी को सिस्टम और रिकवरी, दोनों सेगमेंट में इंस्टॉल करता है. वहीं, दूसरा तरीका सिर्फ़ रिकवरी सेगमेंट में इंस्टॉल करता है.
शेयर की गई लाइब्रेरी की सुविधा, Android के make-based बिल्ड सिस्टम की मदद से नहीं बनाई जा सकती.
रिकवरी मोड के लिए, मौजूदा स्टैटिक एक्सीक्यूटेबल को डाइनैमिक एक्सीक्यूटेबल में बदलने के लिए, Android.mk
में LOCAL_FORCE_STATIC_EXECUTABLE := true
या Android.bp
में static_executable: true
को हटाएं.
उपयोगकर्ता के डेटा का चेकपॉइंट (यूडीसी)
Android 10 में, उपयोगकर्ता डेटा चेकपॉइंट (यूडीसी) की सुविधा को जोड़ा गया है. इसकी मदद से, Android ओवर-द-एयर (ओटीए) अपडेट पूरा न होने पर, Android को उसकी पिछली स्थिति पर वापस लाया जा सकता है.