इस पेज पर, Android 10 की रिलीज़ में शामिल मुख्य सुविधाओं के बारे में खास जानकारी दी गई है. साथ ही, ज़्यादा जानकारी के लिए लिंक दिए गए हैं. सुविधा के बारे में खास जानकारी देने वाले इन लेखों को, इस साइट पर सुविधा के दस्तावेज़ की जगह के हिसाब से व्यवस्थित किया गया है.
बनाएं
java_sdk_library
Android 10 में java_sdk_library
नाम का एक नया बिल्ड नियम पेश किया गया है. इससे शेयर की गई Java लाइब्रेरी के साथ काम न करने की समस्याओं को ठीक किया जा सकता है. डिवाइस बनाने वाली कंपनियां, इस तरीके का इस्तेमाल अपनी शेयर की गई 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
Offload BroadcastQueue
Android 10 में, मौजूदा बैकग्राउंड और फ़ोरग्राउंड कतारों के लिए, नया ऑफ़लोड BroadcastQueue
शामिल है. ऑफ़लोड करने के लिए तैयार की गई सूची में, बैकग्राउंड सूची की तरह ही प्राथमिकता और टाइमआउट का तरीका होता है. बैकग्राउंड में मौजूद क्यू को ब्लॉक होने से रोकने के लिए, ऑफ़लोड क्यू BOOT_COMPLETED
ब्रॉडकास्ट को हैंडल करता है. इस क्यू में ज़्यादा दिलचस्प या उपयोगकर्ता को दिखने वाले ब्रॉडकास्ट हो सकते हैं. कई ऐप्लिकेशन इस ब्रॉडकास्ट को सुनते हैं और इसे पूरा होने में लंबा समय लग सकता है.
फ़िलहाल, ऑफ़लोड करने की सुविधा सिर्फ़ BOOT_COMPLETED
ब्रॉडकास्ट को मैनेज करती है. हालांकि, यह सुविधा अन्य लंबे ब्रॉडकास्ट को भी मैनेज कर सकती है.
SystemSuspend सेवा
Android 10 में, सिस्टम को निलंबित करने की प्रोसेस शुरू करने के लिए ज़िम्मेदार थ्रेड को libsuspend
SystemSuspend HIDL सेवा से बदल दिया गया है. इस सुविधा को लागू करने से, पिछले वर्शन की तरह ही काम किया जा सकता है. साथ ही, Android HIDL इन्फ़्रास्ट्रक्चर के फ़ायदों का इस्तेमाल किया जा सकता है.
एचआईडीएल में safe_union
Android 10 में, एचआईडीएल में safe_union
पेश किया गया है. यह एक साफ़ तौर पर टैग किया गया यूनियन टाइप है.
कॉन्फ़िगरेशन
ConfigStore HAL
Android 10 में, ConfigStore HAL का इस्तेमाल बंद कर दिया गया है. इसकी वजह यह है कि यह ज़्यादा मेमोरी इस्तेमाल करता है और इसका इस्तेमाल करना मुश्किल है. इसलिए, HAL को सिस्टम प्रॉपर्टी से बदल दिया गया है.
Config File Schema API
Android प्लैटफ़ॉर्म में, कॉन्फ़िगरेशन डेटा सेव करने के लिए कई एक्सएमएल फ़ाइलें होती हैं. ज़्यादातर एक्सएमएल फ़ाइलें vendor
पार्टीशन में हैं, लेकिन उन्हें system
पार्टीशन में पढ़ा जाता है. इस मामले में, एक्सएमएल फ़ाइल का स्कीमा, दो पार्टीशन के बीच इंटरफ़ेस के तौर पर काम करता है. इसलिए, स्कीमा को साफ़ तौर पर बताया जाना चाहिए. साथ ही, यह पिछले वर्शन के साथ काम करने वाला होना चाहिए. Android 10 से पहले, प्लैटफ़ॉर्म में एक्सएमएल स्कीमा को तय करने और इस्तेमाल करने के लिए, कोई तरीका उपलब्ध नहीं था. साथ ही, स्कीमा में ऐसे बदलावों को रोकने का भी कोई तरीका नहीं था जो साथ काम नहीं करते. Android 10 में यह सुविधा उपलब्ध है. इसे कॉन्फ़िगरेशन फ़ाइल स्कीमा एपीआई कहा जाता है.
सिस्टम प्रॉपर्टी को एपीआई के तौर पर इस्तेमाल करना
अलग-अलग पार्टीशन में ऐक्सेस की गई सिस्टम प्रॉपर्टी को sysprop
ब्यौरे वाली फ़ाइलों में व्यवस्थित किया जाता है. साथ ही, प्रॉपर्टी ऐक्सेस करने के लिए एपीआई, C++ के लिए कॉन्क्रीट फ़ंक्शन और Java के लिए क्लास के तौर पर जनरेट किए जाते हैं.
वेंडर इंटरफ़ेस (वीआईएनटीएफ़) ऑब्जेक्ट
VINTF
Android 10 में VINTF से जुड़े ये बदलाव किए गए हैं:
- AVB वर्शन टैग बंद किए जा रहे हैं
- OTA पैकेज में कर्नल की जानकारी जोड़ना
- ODM के मेनिफ़ेस्ट को आधिकारिक तौर पर बनाना
- प्रॉडक्ट कंपैटबिलिटी मैट्रिक्स जोड़ना
- बिल्ड सिस्टम में, मेनिफ़ेस्ट एंट्री को HAL मॉड्यूल से असोसिएट करना
बूटलोडर
रैमडिस्क
Android 10 में, रूट फ़ाइल सिस्टम को ramdisk.img
में शामिल नहीं किया गया है. इसके बजाय, इसे system.img
में मर्ज कर दिया गया है.
ओडीएम पार्टिशन बनाना
Android 10 में, Android बिल्ड सिस्टम का इस्तेमाल करके odm
पार्टीशन बनाने की सुविधा शामिल है. कस्टम बनाने की सुविधा के लिए, अलग /odm
पार्टीशन का इस्तेमाल किया जा सकता है. इससे, एक ही वेंडर की इमेज को कई हार्डवेयर SKU के लिए इस्तेमाल किया जा सकता है. इससे ओरिजनल डिज़ाइन मैन्युफ़ैक्चरर (ओडीएम), सिस्टम-ऑन-चिप (एसओसी) वेंडर के बोर्ड-सपोर्ट पैकेज (बीएसपी) को अपने डिवाइसों (उनके बोर्ड) के हिसाब से पसंद के मुताबिक बना सकते हैं. वे बोर्ड के हिसाब से कॉम्पोनेंट, बोर्ड के हिसाब से डेमॉन या हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) पर अपनी सुविधाओं के लिए कर्नल मॉड्यूल लागू कर सकते हैं. ये SoC कॉम्पोनेंट को बदल भी सकते हैं या उन्हें पसंद के मुताबिक बना सकते हैं.
बूट इमेज हेडर वर्शनिंग
Android 10, बूट इमेज हेडर को वर्शन 2 में अपडेट करता है. इसमें डिवाइस ट्री ब्लॉब (डीटीबी) इमेज को सेव करने के लिए एक सेक्शन शामिल होता है. Android 10 के वीटीएस टेस्ट से यह पुष्टि की जाती है कि Android 10 के साथ लॉन्च होने वाले सभी डिवाइस, बूट इमेज हेडर के वर्शन 2 का इस्तेमाल करते हैं. साथ ही, इनमें बूट/रिकवरी इमेज के हिस्से के तौर पर मान्य डीटीबी इमेज शामिल होती है.
A/B पार्टीशन वाले डिवाइसों के अलावा अन्य डिवाइसों के लिए रिकवरी इमेज
Android 9 और उसके बाद के वर्शन में, डिवाइस की रिकवरी इमेज में ओवरले इमेज की जानकारी शामिल होनी चाहिए. डिवाइस बनाने वाली कंपनियां, DeviceTree या Advanced Configuration and Power Interface (ACPI) का इस्तेमाल करके, उन सभी डिवाइसों के बारे में जानकारी दे सकती हैं जिन्हें खोजा नहीं जा सकता. Android 10 और इसके बाद के वर्शन में, ऐसे आर्किटेक्चर के लिए सहायता शामिल है जो ओवरले (DTBO) के लिए DeviceTree ब्लॉब के बजाय ACPI का इस्तेमाल करते हैं.
स्टेबल एआईडीएल
Android 10 में, स्टेबल Android इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एआईडीएल) के लिए सहायता जोड़ी गई है. यह एआईडीएल इंटरफ़ेस के ज़रिए उपलब्ध कराए गए ऐप्लिकेशन प्रोग्राम इंटरफ़ेस (एपीआई)/ऐप्लिकेशन बाइनरी इंटरफ़ेस (एबीआई) को ट्रैक करने का नया तरीका है.
fastboot को उपयोगकर्ता स्पेस में ले जाएं
Android 10 में, साइज़ बदलने वाले पार्टिशन की सुविधा जोड़ी गई है. इसके लिए, फ़ास्टबूट इंप्लिमेंटेशन को बूटलोडर से यूज़र स्पेस में ले जाया गया है.
डिसप्ले
एचडीआर वीडियो चलाना
Android 10 पर HDR10, VP9, और HDR10+ फ़ॉर्मैट में वीडियो चलाए जा सकते हैं.
टेक्स्ट क्लासिफ़िकेशन
टेक्स्ट क्लासिफ़िकेशन, मशीन लर्निंग की तकनीकों का इस्तेमाल करता है. इससे डेवलपर को टेक्स्ट को क्लासिफ़ाई करने में मदद मिलती है. Android 10 में, TextClassifier API के लिए दो तरीके पेश किए गए हैं:
suggestConversationActions
और detectLanguage
.
suggestConversationActions
तरीके से, बातचीत के आधार पर जवाब और कार्रवाइयों के सुझाव जनरेट किए जाते हैं. वहीं, detectLanguage
तरीके से, टेक्स्ट की भाषा का पता लगाया जाता है.
ज़ॉगी फ़ॉन्ट रेंडर करने की सुविधा
Zawgyi, म्यांमार में सबसे ज़्यादा इस्तेमाल किया जाने वाला फ़ॉन्ट है. Android 9 और इससे पहले के वर्शन में, Zawgyi फ़ॉन्ट को रेंडर करने की सुविधा नहीं थी, क्योंकि यह यूनिकोड के मुताबिक नहीं है. Android 10 में, इस समस्या को ठीक करने के लिए एक यूनिकोड फ़ॉन्ट शामिल किया गया है. यह यूनिकोड फ़ॉन्ट, यूनिकोड बर्मीज़ और ज़ॉगी, दोनों को एक साथ रेंडर कर सकता है. Android 10 के साथ लॉन्च होने वाले डिवाइसों पर, Zawgyi फ़ॉन्ट रेंडरिंग की सुविधा के लिए, कोई अतिरिक्त काम करने की ज़रूरत नहीं है. अगर आपके डिवाइसों में Zawgyi को सपोर्ट करने के लिए कस्टम इंपलीमेंटेशन है, तो:
- उन बदलावों को पहले जैसा करें और प्लैटफ़ॉर्म के साथ काम करने वाले तरीके का इस्तेमाल करें.
- अपने सिस्टम में सामान्य Zawgyi फ़ॉन्ट रखें और अपने
fonts.xml
में स्थानीय भाषा का कोडmy-qaag
इस्तेमाल करें. ज़्यादा जानकारी के लिए, ज़ॉगी (क़ाग) के बारे में यूनिकोड CLDR के रिलीज़ नोट देखें.
ऐप्लिकेशन के आइकॉन छिपाने से जुड़ी सीमाएं
Android 10 में, ऐप्लिकेशन के पास लॉन्चर आइकॉन छिपाने की सुविधा सीमित होती है. अगर किसी ऐप्लिकेशन के लिए लॉन्चर गतिविधि चालू नहीं है, तो सिस्टम लॉन्चर में सिंथसाइज़ की गई गतिविधि दिखाता है. यह सिंथेसाइज़ की गई गतिविधि, सिस्टम सेटिंग में ऐप्लिकेशन की ज़्यादा जानकारी वाले पेज को दिखाती है.
ऐप्लिकेशन के आइकॉन दिखाने के लिए इस्तेमाल किए गए लॉजिक के बारे में ज़्यादा जानने के लिए, एपीआई के रेफ़रंस में getActivityList()
का दस्तावेज़ देखें. इसमें उन ऐप्लिकेशन के टाइप के बारे में भी बताया गया है जिनके आइकॉन नहीं दिखाए जाते.
सेटिंग
सुलभता को बेहतर बनाने के लिए, Android 10 में टाइम आउट की सेटिंग को उपयोगकर्ता के हिसाब से सेट करने की सुविधा शामिल है. एपीआई और सेटिंग में किए गए बदलाव, Android 10 के साथ उपलब्ध हैं. अगर आपने अपनी सेटिंग को पसंद के मुताबिक़ बनाया है, तो पक्का करें कि यह सुविधा काम करती हो. अगर आपके डिवाइस पर यूज़र इंटरफ़ेस (यूआई) एलिमेंट का समय खत्म हो जाता है, तो उन पर timeouts API का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Android डेवलपर के लिए सुलभता से जुड़ी गाइडलाइन देखें.
इनके साथ काम करता है
Android कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी)
Android 10 का कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट, पिछले वर्शन के साथ काम करता है. इसमें नई सुविधाओं के अपडेट और पहले रिलीज़ किए गए फ़ंक्शन के लिए ज़रूरी शर्तों में बदलाव शामिल हैं.
परीक्षण
Compatibility Test Suite (CTS)
Android CTS के लिए, एक अलग रिलीज़ नोट पेज है. इसमें Android 10 के लिए कई अहम बदलावों की सूची दी गई है.
CTS डाउनलोड
Android 10 के साथ काम करने वाले सीटीएस पैकेज, सीटीएस डाउनलोड पेज पर उपलब्ध हैं. शामिल की गई जांचों के सोर्स कोड को, ओपन-सोर्स ट्री में मौजूद android-cts-10_r1
टैग के साथ सिंक किया जा सकता है.
CTS शिम एपेक्स
Android 10 में CtsShimApex
नाम का एक पैकेज पेश किया गया है. APEX मैनेजमेंट के लिए सीटीएस टेस्ट लिखने के लिए, इस पैकेज को डिवाइस पर पहले से इंस्टॉल होना चाहिए.
टेस्ट हार्नेस मोड
सीटीएस टेस्ट हार्नेस मोड की मदद से डेवलपर, किसी डिवाइस या डिवाइसों के फ़्लीट के लिए टेस्टिंग को ऑटोमेट कर सकते हैं.
Instant Apps मोड
Android 10 से, CTS झटपट ऐप्लिकेशन मोड में चलता है. इसका मतलब है कि टेस्ट APK को झटपट ऐप्लिकेशन के तौर पर इंस्टॉल करना और टेस्ट चलाना.
Android 10 में, झटपट ऐप्लिकेशन के लिए सीटीएस मोड के साथ-साथ, झटपट ऐप्लिकेशन के लिए सीटीएस वेरिफ़ायर भी शामिल है
सीटीएस वेरिफ़ायर प्रो ऑडियो टेस्ट
Android 10 में, प्रो ऑडियो के मानकों का पालन करने के लिए, CTS Verifier टेस्ट जोड़ा गया है.
सीटीएस की पुष्टि करने वाले टूल के मिडी टेस्ट
Android 10 में, CTS Verifier MIDI test, यूएसबी एमआईडीआई इंटरफ़ेस, ब्लूटूथ एमआईडीआई इंटरफ़ेस, और वर्चुअल एमआईडीआई डिवाइस पाथ के साथ एमआईडीआई फ़ंक्शन की जांच करता है.
सीटीएस टेस्ट के नतीजों को समझना
Android 10, सीटीएस के नतीजों को समझने के तरीके को अपडेट करता है.
Vendor Test Suite (VTS)
डीबग रैमडिस्क के साथ वीटीएस टेस्टिंग
Android 10 में, CTS-on-GSI/VTS कंप्लायंस टेस्टिंग को रन करने के लिए इस्तेमाल की जाने वाली सामान्य सिस्टम इमेज (जीएसआई) का टाइप, यूज़रडीबग से बदलकर यूज़र बिल्ड हो जाता है. ऐसा इसलिए होता है, क्योंकि जीएसआई को रिलीज़ के लिए साइन किया जाता है. हालांकि, adb root
कमांड, Android डिवाइस पर होस्ट को रूट अनुमतियां देती है. यह कमांड, यूज़र बिल्ड में उपलब्ध नहीं होती. यह एक समस्या है, क्योंकि वीटीएस को चलाने के लिए adb root
की ज़रूरत होती है.
अगर डिवाइस अनलॉक है, तो adb root
को चालू करने के लिए debug ramdisk को लॉन्च किया गया है. इससे टेस्टिंग का तरीका आसान हो जाता है. ऐसा इसलिए, क्योंकि इसमें एक ही यूज़र बिल्ड system.img
(जीएसआई या ओईएम का system.img
) का दोबारा इस्तेमाल किया जाता है.
हार्डवेयर कंपोज़र की पुष्टि करना
Android 10 में, IComposerClient.hal
में readback
इंटरफ़ेस के ज़रिए, Hardware Composer की पुष्टि करने के लिए नया VTS टेस्ट क्लास जोड़ा गया है.
अगर वेंडर readback
लागू नहीं करते हैं, तो टेस्ट अपने-आप पास हो जाते हैं.
डीबग करना
अलग-अलग क्लास लोडर के साथ शेयर की गई लाइब्रेरी लोड करना
Android 9 और इससे पहले के वर्शन में, ऐप्लिकेशन अपनी लिंक की गई Java शेयर की गई लाइब्रेरी को ऐप्लिकेशन के क्लास लोडर में लोड करते थे. Android 10 में, फ़्रेमवर्क, ऐप्लिकेशन के क्लास लोडर के बजाय किसी दूसरे क्लास लोडर का इस्तेमाल करता है. ऐसा, uses-library
या uses-static-library
के ज़रिए लिंक की गई Java की शेयर की गई लाइब्रेरी को लोड करने के लिए किया जाता है.
आम तौर पर, ऐप्लिकेशन को किसी खास क्लास लोडर का इस्तेमाल नहीं करना चाहिए. इसलिए, इस बदलाव से ऐप्लिकेशन के व्यवहार पर कोई असर नहीं पड़ना चाहिए. हालांकि, अगर कोई ऐप्लिकेशन एक ही क्लास लोडर का इस्तेमाल करता है, तो यह सुविधा काम नहीं करती. इसके अलावा, एक ही पैकेज में मौजूद क्लास के लिए package-private विज़िबिलिटी अब भी काम करती है. हालांकि, यह शेयर की गई लाइब्रेरी में काम नहीं करती.
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 के बाउंड सैनिटाइज़र का इस्तेमाल करता है. यह कम करने की सुविधा, हर मॉड्यूल के हिसाब से चालू की जाती है. इससे 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 सिस्टम बाइनरी के लिए एक्ज़ीक्यूटेबल कोड सेक्शन को सिर्फ़ एक्ज़ीक्यूट किया जा सकता है (पढ़ा नहीं जा सकता). ऐसा, जस्ट-इन-टाइम कोड के फिर से इस्तेमाल से जुड़े हमलों से बचने के लिए किया जाता है. डेटा और कोड को एक साथ मिलाने वाला कोड और जान-बूझकर इन सेक्शन की जांच करने वाला कोड (मेमोरी सेगमेंट को पहले पढ़ने लायक के तौर पर रीमैप किए बिना) अब काम नहीं करता. अगर ऐप्लिकेशन, execute-only memory (XOM) की सुविधा वाली सिस्टम लाइब्रेरी के कोड सेक्शन को पढ़ने की कोशिश करता है, तो Android 10 (एपीआई लेवल 29 या इससे ऊपर) के टारगेट एसडीके वाले ऐप्लिकेशन पर इसका असर पड़ता है. ऐसा तब होता है, जब ऐप्लिकेशन पहले सेक्शन को पढ़ने लायक के तौर पर मार्क नहीं करता.
Scudo
Scudo, डाइनैमिक यूज़र-मोड मेमोरी ऐलोकेटर है. इसे हीप से जुड़ी कमज़ोरियों से ज़्यादा सुरक्षित रहने के लिए डिज़ाइन किया गया है. यह स्टैंडर्ड सी ऐलोकेशन और डीऐलोकेशन प्रिमिटिव के साथ-साथ 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
कहा जाता है. इससे ऐप्लिकेशन को, दूसरे ऐप्लिकेशन से चलाए जा रहे ऑडियो को कॉपी करने की सुविधा मिलती है. यह सुविधा, स्क्रीन कैप्चर करने की सुविधा की तरह ही है. हालांकि, यह ऑडियो के लिए है.
इसका मुख्य इस्तेमाल, स्ट्रीमिंग ऐप्लिकेशन को गेम से चलने वाले ऑडियो को कैप्चर करने की अनुमति देना है.
Capture API से, उस ऐप्लिकेशन की लेटेन्सी पर कोई असर नहीं पड़ता जिसका ऑडियो कैप्चर किया जा रहा है.
MIDI
Android 10 की मदद से, MIDI का इस्तेमाल करने वाले पेशेवर ऑडियो ऐप्लिकेशन को Android प्लैटफ़ॉर्म पर पोर्ट करना आसान हो जाता है. इसके लिए, AMidi
NDK API का इस्तेमाल किया जाता है.
कैमरा
Android 10 में, कैमरा एपीआई, कैमरा HAL, और कैमरा मॉड्यूल में किए गए बदलावों की खास जानकारी के लिए, Android 10 में कैमरा अपडेट देखें.
कैमरा फ़्रेमवर्क की निजता से जुड़े सुधार
Android 10 में, कैमरा फ़्रेमवर्क के लिए निजता से जुड़ी बेहतर सुविधाएं जोड़ी गई हैं. उपयोगकर्ता की सहमति के बिना, CameraCharacteristics
में संभावित रूप से संवेदनशील स्टैटिक कैमरा जानकारी को ज़ाहिर होने से रोकने के लिए, ऐप्लिकेशन को CAMERA
अनुमति लेनी होगी. इससे वे getCameraCharacteristics
तरीके का इस्तेमाल करके, निजता के लिहाज़ से संवेदनशील टैग के साथ स्टैटिक मेटाडेटा को वापस पा सकेंगे.
CAMERA
अनुमति की ज़रूरत वाली कैमरा सुविधा की कुंजियों की सूची पाने के लिए, getKeysNeedingPermission
तरीके को कॉल करें.
सेशन को फिर से कॉन्फ़िगर करने की क्वेरी
Android 10 में, सेशन को फिर से कॉन्फ़िगर करने की क्वेरी की सुविधा जोड़ी गई है. इससे इंटरनल सेशन पैरामीटर को फिर से कॉन्फ़िगर करने के लॉजिक पर ज़्यादा कंट्रोल मिलता है. इससे परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.
Camera HAL3 buffer management API
Android 10 में, कैमरा HAL3 बफ़र मैनेजमेंट एपीआई का इस्तेमाल करना ज़रूरी नहीं है. इनकी मदद से, बफ़र मैनेजमेंट लॉजिक लागू किया जा सकता है. इससे कैमरा HAL के लागू होने पर, मेमोरी और कैप्चर लेटेंसी के बीच समझौता किया जा सकता है.
कैमरा एचएएल की मदद से, फ़िज़िकल कैमरे को डाइनैमिक तरीके से स्विच करना
Android 10 में डाइनैमिक मेटाडेटा टैग, ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
पेश किया गया है. यह लॉजिकल कैमरा डिवाइस के चालू फ़िज़िकल कैमरे के बारे में बताता है. ज़्यादा जानकारी के लिए, एक साथ कई कैमरे इस्तेमाल करने की सुविधा लेख पढ़ें.
फ़िज़िकल कैमरों को छिपाने की सुविधा
Android 10 में, कैमरा एचएएल उन फ़िज़िकल कैमरों की संख्या को कम कर सकता है जिन्हें कोई ऐप्लिकेशन सीधे तौर पर खोल सकता है. ज़्यादा जानकारी के लिए, एक से ज़्यादा कैमरों के लिए सहायता देखें.
Camera2 VNDK API
Android 10 में, वेंडर मॉड्यूल, दो नए स्टैंडर्ड HIDL इंटरफ़ेस android.frameworks.cameraservice.service@2.0
और android.frameworks.cameraservice.device@2.0
के ज़रिए कैमरा डिवाइसों को ऐक्सेस और कंट्रोल कर सकते हैं. HIDL इंटरफ़ेस का इस्तेमाल ज़्यादा आसानी से करने के लिए, Android 10 में वेंडर के लिए उपलब्ध एक लाइब्रेरी, libcamera2_vendor
भी पेश की गई है. यह लाइब्रेरी, Camera NDK लाइब्रेरी से मिलती-जुलती है. हालांकि, इसमें कुछ मामूली बदलाव किए गए हैं.
स्ट्रीम कॉन्फ़िगरेशन
Android 10 में ऐसी सुविधाएं जोड़ी गई हैं जिनकी मदद से, कैमरा बनाने वाली कंपनियां, कैमरा क्लाइंट को सुझाई गई कैमरा स्ट्रीम के बारे में बता सकती हैं. साथ ही, स्ट्रीम कॉम्बिनेशन के बारे में क्वेरी करने के लिए एपीआई का इस्तेमाल कर सकती हैं.
कैमरे की स्ट्रीम को एक साथ दिखाने से जुड़ी ज़रूरी शर्तें
Android 10 पर काम करने वाले डिवाइसों के लिए, अब यह ज़रूरी नहीं है कि वे फ़िज़िकल सबकैमरा स्ट्रीम के साथ स्ट्रीम कॉम्बिनेशन की सुविधा के साथ काम करें. हालांकि, Android 10 पर काम करने वाले ऐसे डिवाइस जिनमें कैमरा एचएएल डिवाइस का वर्शन 3.5 है उनमें isStreamCombinationSupported()
की सुविधा होनी चाहिए. इससे ऐप्लिकेशन यह क्वेरी कर पाएंगे कि फ़िज़िकल स्ट्रीम वाले स्ट्रीम कॉम्बिनेशन काम करते हैं या नहीं.
ज़्यादा जानकारी के लिए, एक साथ कई कैमरे इस्तेमाल करने की सुविधा लेख पढ़ें.
HEIF इमेज खींचने की सुविधा
Android 10 में, कैमरा ऐप्लिकेशन के लिए हाई इफ़िशिएंसी इमेज फ़ाइल फ़ॉर्मैट (HEIF) वाली इमेज का इस्तेमाल किया जा सकता है. 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
क्लास, एक से ज़्यादा एम्बेड किए गए सिम (ई-सिम) या eUICC वाले डिवाइसों के साथ काम करती है.
ई-सिम से जुड़े अपडेट
Android 10 पर चलने वाले और eSIM की सुविधा वाले डिवाइसों के लिए, eUICC स्लॉट आईडी का ऐसा ऐरे तय किया जाना चाहिए जिसे हटाया न जा सके. डिवाइसों पर IRadio HAL v1.4 और IRadioConfig HAL v1.2 भी काम करना चाहिए. ज़्यादा जानकारी के लिए, eSIM लागू करना और HAL की ज़रूरी शर्तें देखें.
5G नॉन-स्टैंडअलोन (एनएसए)
Android 10 में 5G नॉन-स्टैंडअलोन (एनएसए) के लिए सहायता जोड़ी गई है. 5G NSA, 5G नेटवर्क के लिए एक समाधान है. इसमें नेटवर्क को मौजूदा 4G इन्फ़्रास्ट्रक्चर से सपोर्ट मिलता है. Android 10 पर, डिवाइस 5G नेटवर्क से कनेक्ट होने पर, स्टेटस बार में 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()
नाम का एक वैकल्पिक एपीआई तरीका पेश किया गया है. इससे डिवाइस के एक जगह पर होने पर, प्रीफ़र्ड नेटवर्क ऑफ़लोड (पीएनओ) स्कैन के बीच का इंटरवल बढ़ जाता है. इससे बैटरी की खपत कम होती है.
मोबाइल और इंटरनेट सेवा देने वाली कंपनी का वाई-फ़ाई
Android 10 में, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के वाई-फ़ाई नेटवर्क की सुविधा वाले डिवाइस, कॉन्फ़िगर किए गए मोबाइल और इंटरनेट सेवा देने वाली कंपनी के वाई-फ़ाई नेटवर्क (सार्वजनिक कुंजी वाले सर्टिफ़िकेट वाले नेटवर्क) से अपने-आप कनेक्ट हो जाते हैं.
वाई-फ़ाई से आसानी से कनेक्ट करने की सुविधा
Android 10 में, डिवाइस वाई-फ़ाई इज़ी कनेक्ट का इस्तेमाल कर सकते हैं. यह वाई-फ़ाई डिवाइसों को प्रोविज़न और कॉन्फ़िगर करने के लिए, डिवाइस प्रोविज़निंग प्रोटोकॉल (डीपीपी) का इस्तेमाल करता है. इसे वाई-फ़ाई एलायंस (डब्ल्यूएफ़ए) ने लॉन्च किया है.
वाई-फ़ाई लो-लेटेंसी मोड
Android 10 में वाई-फ़ाई लो-लेटेंसी मोड की सुविधा दी गई है. यह वाई-फ़ाई चिप को कॉन्फ़िगर करके, लेटेंसी को कम करता है.
डीएचसीपी सर्वर अपडेट किया गया
"आईपी सर्वर" सेवा के तहत, dnsmasq
को मिटाया जा रहा है. Android 10 में, DHCPv4 सर्वर के फ़ंक्शनल इस्तेमाल को एक अलग कॉम्पोनेंट से बदल दिया गया है. इसे मुख्य रूप से Java में लिखा गया है, ताकि इसे Java फ़्रेमवर्क कंट्रोल प्लेन के साथ बेहतर तरीके से इंटिग्रेट किया जा सके. इससे डीएचसीपी सर्वर की सुरक्षा और अपडेट करने की क्षमता बेहतर होती है. ज़्यादा जानकारी के लिए, packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java
देखें.
इस बदलाव को लागू करने के लिए, किसी कार्रवाई की ज़रूरत नहीं है: Android 10 पर रिलीज़ और अपग्रेड होने वाले सभी डिवाइस, डिफ़ॉल्ट रूप से DhcpServer
का इस्तेमाल करते हैं.
अगर आपने डीएचसीपी सर्वर में बदलाव किए हैं, तो ग्लोबल सेटिंग tether_enable_legacy_dhcp_server=1
को सेट करके, Android 9 के डिफ़ॉल्ट व्यवहार पर वापस जाया जा सकता है.
नया DhcpServer
, नेटवर्किंग कॉम्पोनेंट मॉड्यूल में शामिल है. इसलिए, DHCP सर्वर की सुविधा में किए गए किसी भी बदलाव को अपस्ट्रीम किया जाना चाहिए.
WPA3 और Wi-Fi Enhanced Open
Android 10 में, Wi-Fi Protected Access 3 (WPA3) और Wi-Fi Enhanced Open सुरक्षा मानकों के लिए सहायता जोड़ी गई है. इससे बेहतर निजता मिलती है और जाने-पहचाने हमलों से सुरक्षा मिलती है.
Wi-Fi Direct
Wi-Fi Direct को Wi-Fi P2P भी कहा जाता है. इसकी मदद से, वाई-फ़ाई डायरेक्ट प्रोटोकॉल का इस्तेमाल करके, वाई-फ़ाई डायरेक्ट की सुविधा वाले डिवाइस एक-दूसरे को ढूंढ सकते हैं और उनसे सीधे कनेक्ट हो सकते हैं. इसके लिए, इंटरनेट या मोबाइल नेटवर्क की ज़रूरत नहीं होती.
एमएसी पता बदलने की सुविधा में सुधार
Android 10 से, क्लाइंट मोड, SoftAp, और Wi-Fi Direct के लिए, मैक पता बदलने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. डिवाइसों को सिस्टम यूज़र इंटरफ़ेस (यूआई) में, हर एसएसआईडी के लिए मैक पते को बिना किसी तय नियम के बदलने की सुविधा को चालू या बंद करने का विकल्प देना होगा.
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
एचएएल, ऑडियो एचएएल के लिए वाहन के हिसाब से एक्सटेंशन उपलब्ध कराता है.
जेस्चर वाला नेविगेशन
Android 10 में, सिस्टम नेविगेशन के लिए पूरी तरह से जेस्चर का इस्तेमाल करने का विकल्प दिया गया है. इस सुविधा का इस्तेमाल करने के लिए, ऐप्लिकेशन तैयार करने के बारे में जानने के लिए, Android Developer साइट पर हावभाव से नेविगेट करने की सुविधा वाला पेज देखें.
न्यूरल नेटवर्क
Android 10 में, न्यूरल नेटवर्क एपीआई और न्यूरल नेटवर्क HAL के लिए अपडेट पेश किए गए हैं. बदलावों की खास जानकारी के लिए, न्यूरल नेटवर्क देखें.
Android 10 के लिए, न्यूरल नेटवर्क के नए और अपडेट किए गए दस्तावेज़:
- खास जानकारी
- AHardwareBuffer
- बर्स्ट एक्ज़ीक्यूशन और फ़ास्ट मैसेज कतारें
- कंपाइलेशन को कैश मेमोरी में सेव करना
- डिवाइस ढूंढना और असाइन करना
- वेंडर एक्सटेंशन
सेंसर
Sensors HAL 2.0
Sensors HAL 2.0, फ़ास्ट मैसेज कतारों (एफ़एमक्यू) का इस्तेमाल करने की सुविधा देता है. इससे सेंसर इवेंट को एचएएल से Android Sensors Framework में भेजा जा सकता है.
सेंसर बंद हैं
Android 10 में, डेवलपर के लिए एक सेटिंग शामिल है. इसकी मदद से, डिवाइस के सभी सेंसर बंद किए जा सकते हैं. इस सुविधा से डेवलपर को, उन स्थितियों में अपने ऐप्लिकेशन की सुविधाओं को टेस्ट करने में मदद मिलती है जहां सेंसर उपलब्ध नहीं होते. साथ ही, इससे उपयोगकर्ताओं को अपने डिवाइस में सेंसर को कंट्रोल करने का तरीका भी मिलता है.
अगर आपके डिवाइसों में SensorService
, CameraService
, और AudioPolicyService
के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है, तो रेफ़रंस डिज़ाइन के लिए किसी अन्य कस्टमाइज़ेशन की ज़रूरत नहीं है. अगर आपके पास अन्य सेंसर हैं, तो इस सुविधा के साथ काम करने वाले सेंसर के बारे में ज़्यादा जानने के लिए, पसंद के मुताबिक बनाना लेख पढ़ें.
मीडिया
अपडेट किए जा सकने वाले मीडिया कॉम्पोनेंट
Android 10 में अपडेट किए जा सकने वाले मीडिया कॉम्पोनेंट उपलब्ध हैं. इनकी मदद से, मीडिया से जुड़े मॉड्यूलर सिस्टम कॉम्पोनेंट को अपडेट किया जा सकता है. इसके लिए, Google Play Store के इन्फ़्रास्ट्रक्चर का इस्तेमाल किया जा सकता है. इसके अलावा, पार्टनर की ओर से उपलब्ध कराए गए ओवर-द-एयर (OTA) अपडेट का इस्तेमाल किया जा सकता है.
मीडिया के लिए डीआरएम
Android 10, MediaDrm
Java और NDK API के इस्तेमाल और उपयोगिता को बेहतर बनाता है.
डिकोडिंग
Android 10, AV1 SW डिकोडिंग को सपोर्ट करता है.
अनुमतियां
Android 10 में, पारदर्शिता और उपयोगकर्ता की निजता के लिए, अनुमति से जुड़े अतिरिक्त कॉन्फ़िगरेशन उपलब्ध हैं.
संपर्क की जानकारी देने वाली कंपनी और अफ़िनिटी की जानकारी
Android 10 से, Contacts Provider कॉम्पोनेंट मैनेज करता है. यह कॉम्पोनेंट, संपर्कों से जुड़े डेटा को ऐक्सेस करने का तरीका Android 9 और इससे पहले के वर्शन से अलग है. डेटा ऐक्सेस करने से जुड़े इन बदलावों से, Android 10 के उन सभी डिवाइसों में उपयोगकर्ता की निजता को बेहतर बनाया जा सकता है जो Contacts Provider कॉम्पोनेंट का इस्तेमाल करते हैं. डेटाबेस में अब संपर्क अफ़िनिटी का डेटा मौजूद नहीं है. इसलिए, ऐप्लिकेशन इस मेमोरी में डेटा सेव नहीं कर सकते या यहां से डेटा नहीं पढ़ सकते.
Android 10 में हुए बदलावों का असर, एपीआई पर काफ़ी ज़्यादा पड़ सकता है. अगर आपके ऐप्लिकेशन, Contacts Provider और Affinities Information में बताई गई बंद की गई सुविधाओं पर निर्भर करते हैं, तो आपको अपने ऐप्लिकेशन अपडेट करने पड़ सकते हैं, ताकि किसी भी बदलाव की भरपाई की जा सके. इसके अलावा, अगर Contacts Provider के फ़ोर्क किए गए वर्शन का इस्तेमाल किया जाता है, तो आपको Contacts Provider को अपडेट करना होगा.
जगह की जानकारी ऐक्सेस करने की अनुमतियों की तीन स्थितियां
Android 10 में जगह की जानकारी के लिए तीन तरह की अनुमतियां उपलब्ध हैं. इनसे लोगों को यह तय करने का ज़्यादा कंट्रोल मिलता है कि ऐप्लिकेशन उनके डिवाइस की जगह की जानकारी को कैसे ऐक्सेस करें.
बैकग्राउंड में जगह की जानकारी ऐक्सेस करने की अनुमति के बारे में रिमाइंडर
Android 10 में बैकग्राउंड में जगह की जानकारी ऐक्सेस करने के बारे में सूचना देने की सुविधा दी गई है. इससे यह पता चलता है कि ऐप्लिकेशन के पास डिवाइस की जगह की जानकारी का कितना ऐक्सेस है. साथ ही, इससे लोगों को इस ऐक्सेस को कंट्रोल करने में मदद मिलती है.
मौके के हिसाब से चुनी गई जगहों को प्रतिबंधित करना
जब कोई ऐप्लिकेशन, डिवाइस की जगह की जानकारी का अनुरोध करता है, तो ऐप्लिकेशन अनुरोध के जवाब का इंतज़ार कर सकता है. इसके अलावा, ऐप्लिकेशन, जगह की जानकारी को लगातार ट्रैक करने वाले सिस्टम का इस्तेमाल करके, जगह की जानकारी को अपडेट कर सकता है. Android 10 और इसके बाद के वर्शन में, मौजूदा जगह की जानकारी के अपडेट पाने के लिए, डेवलपर को यह बताना होगा कि उन्हें FusedLocationProviderClient
क्लास से, जगह की जानकारी के पैसिव अपडेट चाहिए.
बैकग्राउंड में ऐप्लिकेशन लॉन्च करना
Android 10 में, बिना खास अधिकारों वाले ऐप्लिकेशन, अपने-आप फ़ोरग्राउंड में लॉन्च नहीं हो सकते. इसके लिए, उनकी विंडो दिखनी चाहिए. इस बदलाव से, विज्ञापन वाले पॉप-अप और नुकसान पहुंचाने वाले टेकओवर को दबाया जाता है. इसे चालू करने के लिए, आपको कुछ भी करने की ज़रूरत नहीं है.
ऐप्लिकेशन सैंडबॉक्सिंग
Android 10 में, ऐप्लिकेशन के पास फ़ाइल सिस्टम का सीमित रॉ व्यू होता है. साथ ही, उनके पास /sdcard/DCIM
जैसे पाथ का सीधा ऐक्सेस नहीं होता. हालांकि, ऐप्लिकेशन के पास अपने पैकेज के हिसाब से पाथ का पूरा ऐक्सेस होता है. यह ऐक्सेस, Context.getExternalFilesDir()
जैसे लागू होने वाले किसी भी तरीके से मिलता है.
ऐप्लिकेशन के पास अब भी अपने पैकेज के हिसाब से पाथ का पूरा ऐक्सेस होता है.
डेटा शेयर करने की सही जानकारी देने के लिए, फ़ाइलें शेयर करने से जुड़ी गाइडलाइन के तहत, ऐप्लिकेशन सैंडबॉक्स का इस्तेमाल करें.
ऐप्लिकेशन के क्लिपबोर्ड ऐक्सेस पर पाबंदी लगाना
Android 10 में, क्लिपबोर्ड के ऐक्सेस में बदलाव किया गया है. इससे क्लिपबोर्ड के कॉन्टेंट को ClipboardManager.getPrimaryClip
को कॉल करके या क्लिपबोर्ड में बदलाव होने पर सूचना पाने के लिए onPrimaryClipChangedListener
लिसनर जोड़कर नहीं देखा जा सकता. इससे उपयोगकर्ता की निजता बढ़ती है. साथ ही, मैलवेयर वाले ऐप्लिकेशन को क्लिपबोर्ड में बदलाव करने से रोका जाता है.
Android 10 में, सिर्फ़ इन ऐप्लिकेशन को पढ़ने की अनुमति दी जाती है: मौजूदा ऐप्लिकेशन, जिसमें इनपुट फ़ोकस है या मौजूदा कीबोर्ड. ClipboardManager.onPrimaryClipChanged()
लिसनर कॉल अब सिर्फ़ उन ऐप्लिकेशन के लिए ट्रिगर होता है जो इन पाबंदियों का पालन करते हैं.
ClipboardManager.getPrimaryClip
और ClipboardManager.getPrimaryClipDescription
अनुरोध करने वाला ऐप्लिकेशन, डिफ़ॉल्ट इनपुट मेथड एडिटर (आईएमई) नहीं है या उसके पास इनपुट फ़ोकस नहीं है, तो null
दिखाता है.
रनटाइम की अनुमतियों में, गतिविधि की पहचान करने की अनुमति शामिल है
जब कोई ऐप्लिकेशन बैकग्राउंड में डिवाइस की जगह की जानकारी ऐक्सेस करता है, तो उपयोगकर्ताओं को अब गतिविधि पहचानने वाला डायलॉग दिखता है. Android 10 में, रनटाइम के दौरान अनुमति देने से जुड़ी पाबंदियों को सही तरीके से वाइटलिस्ट किया जाना चाहिए.
MANAGE_DEVICE_ADMINS अनुमति
Android 10 में, MANAGE_DEVICE_ADMINS
अनुमति को सिग्नेचर या खास अधिकार से बदलकर सिर्फ़ सिग्नेचर कर दिया जाता है. इसका मतलब है कि सिर्फ़ प्लैटफ़ॉर्म पर साइन किए गए ऐप्लिकेशन, अन्य ऐप्लिकेशन को डिवाइस एडमिन के तौर पर सेट कर सकते हैं.
शेयर करने वाले एपीआई में सुधार
Android 10 में, शेयर करने से जुड़ी Android प्लैटफ़ॉर्म एपीआई की कई नई सुविधाएं उपलब्ध हैं. अगर आपने अपने ऐप्लिकेशन में शेयर शीट के कोड में बदलाव किया है, तो पक्का करें कि आपका ऐप्लिकेशन इन नई सुविधाओं के साथ काम करता हो. अगर आपने लागू करने के दौरान शेयर शीट के कोड में बदलाव नहीं किया है, तो इन नई सुविधाओं का इस्तेमाल करने के लिए आपको कुछ भी करने की ज़रूरत नहीं है.
Android रनटाइम (एआरटी)
साइन किया गया कॉन्फ़िगरेशन
हस्ताक्षर किए गए कॉन्फ़िगरेशन सुविधा की मदद से, एसडीके से बाहर के इंटरफ़ेस पर लगी पाबंदियों के कॉन्फ़िगरेशन को APK में एम्बेड किया जा सकता है. इससे, ब्लैकलिस्ट से कुछ गैर-एसडीके इंटरफ़ेस हटाने में मदद मिलती है, ताकि AndroidX उनका सुरक्षित तरीके से इस्तेमाल कर सके. इस बदलाव के बाद, AndroidX, Android के पुराने वर्शन पर नई सुविधाओं के लिए सहायता जोड़ सकता है.
परफ़ॉर्मेंस
Cgroup ऐब्स्ट्रैक्शन लेयर
Android 10 में cgroup ऐब्स्ट्रैक्शन लेयर और टास्क प्रोफ़ाइलें शामिल हैं. इनका इस्तेमाल करके डेवलपर, किसी थ्रेड या प्रोसेस पर लागू होने वाली पाबंदियों के बारे में बता सकते हैं.
लो मेमोरी किलर डीमन (एलएमकेडी)
Android 10 में एक नया lmkd
मोड काम करता है. यह मेमोरी प्रेशर का पता लगाने के लिए, कर्नल प्रेशर स्टॉल इन्फ़ॉर्मेशन (पीएसआई) मॉनिटर का इस्तेमाल करता है.
ताकत
प्लैटफ़ॉर्म का पावर मैनेजमेंट
Android 10 में, डोज़ मोड को हमेशा चालू रहने वाले डिवाइसों के साथ-साथ, बैटरी से चलने वाले डिवाइसों पर भी चालू किया जा सकता है.
बैटरी सेवर मोड को रूटीन के हिसाब से चालू करने की सुविधा
Android 10 में, बैटरी सेवर को शेड्यूल करने का एक नया विकल्प पेश किया गया है. इसे रूटीन के हिसाब से कहा जाता है. रूटीन बैटरी सेवर की सुविधा, ओईएम की ओर से चुने गए ऐप्लिकेशन को सिस्टम को सिग्नल देने की अनुमति देती है. इससे बैटरी सेवर को ज़्यादा स्मार्ट तरीके से शेड्यूल किया जा सकता है. इस विकल्प के लिए कॉन्फ़िगरेशन की ज़रूरत होती है. हालांकि, इसे लागू करना ज़रूरी नहीं है.
पावर स्टैट्स एचएएल
Android 10 में, IPowerStats.hal
, IPower.hal
में मौजूद पावर स्टैट्स कलेक्शन एपीआई की जगह लेता है.
पावर एचएएल अब भी एपीआई के साथ काम करता है. हालांकि, आने वाले समय में इन्हें सिर्फ़ पावर स्टैट्स एचएएल पर माइग्रेट किया जाएगा.
पावर के आंकड़े दिखाने वाले HAL में नए एपीआई शामिल हैं. इनकी मदद से, उन डिवाइसों के लिए डिवाइस पर पावर मेज़रमेंट से डेटा इकट्ठा किया जा सकता है जिन पर यह सुविधा काम करती है. पावर के मौजूदा आंकड़ों को इकट्ठा करने वाले एपीआई को भी अपडेट किया गया है, ताकि उन्हें ज़्यादा आसानी से इस्तेमाल किया जा सके. पावर हिंटिंग एपीआई, पावर एचएएल में ही रहेंगे और उनमें कोई बदलाव नहीं होगा.
डिवाइस के गर्म होने की समस्या को कम करना
Android 10 में थर्मल फ़्रेमवर्क, डिवाइस के इंटरफ़ेस को थर्मल सबसिस्टम के तापमान सेंसर के लिए ऐब्स्ट्रैक्ट करता है. इनमें सीपीयू, जीपीयू, बैटरी, त्वचा, और कूलिंग डिवाइस शामिल हैं. यह फ़्रेमवर्क, थ्रॉटलिंग शुरू करने के लिए थर्मल स्टेटस के बारे में क्वेरी करने के लिए, पोलिंग इंटरफ़ेस उपलब्ध कराता है. साथ ही, थ्रेशोल्ड से ज़्यादा होने पर उपयोगकर्ता को मैसेज भेजने के लिए, कॉलबैक इंटरफ़ेस उपलब्ध कराता है.
Android 10, इन तीन नए तरीकों का इस्तेमाल करके, IThermalService
इंटरफ़ेस के ज़रिए नए डेटा टाइप उपलब्ध कराता है:
getCurrentThermalStatus()
डिवाइस के तापमान की मौजूदा स्थिति को पूर्णांक के तौर पर दिखाता है. हालांकि, ऐसा तब नहीं होता, जब डिवाइस की परफ़ॉर्मेंस कम हो रही हो.addThermalStatusListener()
लिसनर जोड़ता है.removeThermalStatusListener()
इस कमांड से, पहले से जोड़े गए श्रोता को हटाया जाता है.
ऐप्लिकेशन, PowerManager
क्लास में लिसनर जोड़ते और हटाते हैं. साथ ही, तापमान की स्थिति को ऐक्सेस करते हैं. भरोसेमंद सिस्टम सेवा, जैसे कि Android API या डिवाइस बनाने वाली कंपनी का API ही, वजह बताने वाले इवेंट से जुड़ी जानकारी को ऐक्सेस कर सकता है. डिवाइस बनाने वाली कंपनियों या SoC बनाने वाली कंपनियों को thermal HAL 2.0
लागू करना होगा, ताकि थर्मल फ़्रेमवर्क की सभी सुविधाओं को चालू किया जा सके.
गर्मी कम करने की सुविधा लागू करने के उदाहरण के लिए, रेफ़रंस के तौर पर लागू करने का तरीका देखें.
अपडेट
APEX फ़ाइल फ़ॉर्मैट
Android Pony EXpress (APEX) एक नया कंटेनर फ़ॉर्मैट है. इसका इस्तेमाल, मॉड्यूलर सिस्टम कॉम्पोनेंट को इंस्टॉल करने के लिए किया जाता है.
डाइनैमिक पार्टिशन
डाइनैमिक पार्टिशन, Android में यूज़रस्पेस पार्टिशनिंग सिस्टम को लागू करते हैं. इससे, ओटीए अपडेट के दौरान पार्टिशन बनाए जा सकते हैं, उनका साइज़ बदला जा सकता है या उन्हें हटाया जा सकता है. डिवाइस बनाने वाली कंपनियों को, system
, vendor
, और product
जैसे पार्टीशन के अलग-अलग साइज़ के बारे में चिंता करने की ज़रूरत नहीं है. इसके बजाय, एक बड़ा super
पार्टिशन असाइन किया जाता है. साथ ही, इसके अंदर सब-पार्टिशन का साइज़ डाइनैमिक तौर पर तय किया जा सकता है.
डाइनैमिक सिस्टम अपडेट
डाइनैमिक सिस्टम अपडेट (डीएसयू) की मदद से, Android सिस्टम इमेज बनाई जा सकती है. इसे उपयोगकर्ता इंटरनेट से डाउनलोड कर सकते हैं. साथ ही, मौजूदा सिस्टम इमेज को नुकसान पहुंचाए बिना इसे आज़मा सकते हैं.
एक से ज़्यादा उपयोगकर्ताओं के लिए बैकअप लेने और उसे वापस लाने की सुविधा
Android 10 में, डिवाइस इस्तेमाल करने वाले सभी लोगों के लिए बैकअप लेने और उसे वापस लाने की सुविधा उपलब्ध है. इससे पहले, बैकअप लेने और वापस पाने की सुविधा सिर्फ़ सिस्टम उपयोगकर्ता के लिए उपलब्ध थी. सिस्टम के उपयोगकर्ता नहीं होने पर, बैकअप लेने और उसे वापस पाने की सुविधा डिफ़ॉल्ट रूप से बंद होती है. ऐसा इसलिए, क्योंकि यह सुविधा सिर्फ़ सेटिंग, वॉलपेपर, और सिस्टम कॉम्पोनेंट के लिए काम करती है.
Overlayfs
userdebug
या eng
बिल्ड पर काम करने वाले उपयोगकर्ताओं को उम्मीद होती है कि वे सिस्टम पार्टीशन को रीड-राइट के तौर पर फिर से आसानी से माउंट कर सकें. इसके बाद, सिस्टम इमेज को फिर से फ़्लैश किए बिना, जितनी चाहें उतनी फ़ाइलें जोड़ सकें या उनमें बदलाव कर सकें. Overlayfs
का इस्तेमाल किया जा सकता है. यह लिखने लायक फ़ाइल सिस्टम के लिए, बैकअप स्टोरेज को अपने-आप सेट अप करता है. यह ऊपरी रेफ़रंस के तौर पर काम करता है और निचले रेफ़रंस पर माउंट होता है. ये कार्रवाइयां, adb disable-verity
और adb remount
अनुरोधों में होती हैं. ज़्यादा जानकारी के लिए, AOSP में Overlayfs README देखें.
रिकवरी मोड में शेयर की गई लाइब्रेरी की सुविधा
Android 10 में, शेयर की गई लाइब्रेरी रिकवरी पार्टीशन में उपलब्ध होती हैं. इससे, सभी रिकवरी मोड एक्ज़ीक्यूटेबल के स्टैटिक होने की ज़रूरत नहीं होती. शेयर की गई लाइब्रेरी, पार्टीशन में मौजूद /system/lib
(या 64-बिट वाले डिवाइसों के लिए /system/lib64
) डायरेक्ट्री में मौजूद होती हैं.
रिकवरी पार्टीशन में नई शेयर की गई लाइब्रेरी जोड़ने के लिए, शेयर की गई लाइब्रेरी के Android.bp
में recovery_available: true
या recovery: true
जोड़ें. पहले विकल्प से, लाइब्रेरी को सिस्टम और रिकवरी, दोनों पार्टीशन में इंस्टॉल किया जाता है. वहीं, दूसरे विकल्प से इसे सिर्फ़ रिकवरी पार्टीशन में इंस्टॉल किया जाता है.
Android के मेक-आधारित बिल्ड सिस्टम के साथ, शेयर की गई लाइब्रेरी की सुविधा नहीं बनाई जा सकती.
रिकवरी मोड के लिए, किसी मौजूदा स्टैटिक एक्ज़ीक्यूटेबल को डाइनैमिक में बदलने के लिए, Android.mk
में LOCAL_FORCE_STATIC_EXECUTABLE := true
या static_executable: true
(Android.bp
में) हटाएं.
यूज़र डेटा चेकपॉइंट (यूडीसी)
Android 10 में यूज़र डेटा चेकपॉइंट (यूडीसी) सुविधा पेश की गई है. इसकी मदद से, Android को पिछली स्थिति में वापस लाया जा सकता है. ऐसा तब होता है, जब Android ओवर-द-एयर (ओटीए) अपडेट काम नहीं करता है.