इस पेज पर, Android 10 की रिलीज़ में उपलब्ध मुख्य सुविधाओं के बारे में खास जानकारी दी गई है. साथ ही, ज़्यादा जानकारी के लिए लिंक दिए गए हैं. सुविधाओं के बारे में खास जानकारी देने वाले इन लेखों को, इस साइट पर सुविधा के दस्तावेज़ की जगह के हिसाब से व्यवस्थित किया गया है.
बनाएं
java_sdk_library
Android 10 में java_sdk_library नाम का एक नया बिल्ड नियम पेश किया गया है. इससे शेयर की गई Java लाइब्रेरी के साथ काम न करने की समस्याओं को ठीक किया जा सकता है. डिवाइस बनाने वाली कंपनियां, इस तरीके का इस्तेमाल अपनी शेयर की गई Java लाइब्रेरी के लिए कर सकती हैं. इससे वे अपने एपीआई के लिए, पिछले वर्शन के साथ काम करने की सुविधा को बनाए रख सकती हैं.
वास्तुकला
मॉड्यूलर सिस्टम कॉम्पोनेंट
Android 10, Android सिस्टम के कुछ कॉम्पोनेंट को मॉड्यूलर बनाता है. साथ ही, उन्हें Android के रिलीज़ होने के सामान्य साइकल के बाहर अपडेट करने की सुविधा देता है. कुछ मॉड्यूल में ये शामिल हैं:
- Android Runtime
- 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 में, सिस्टम को निलंबित करने की प्रोसेस शुरू करने के लिए ज़िम्मेदार थ्रेड को SystemSuspend HIDL सेवा से बदल दिया गया है.libsuspend इस सुविधा को लागू करने से, पिछले वर्शन की तरह ही काम किया जा सकता है. साथ ही, Android HIDL इन्फ़्रास्ट्रक्चर के फ़ायदों का इस्तेमाल किया जा सकता है.
HIDL में safe_union
Android 10 में, एचआईडीएल में safe_union पेश किया गया है. यह एक ऐसा यूनियन टाइप है जिसे साफ़ तौर पर टैग किया गया है.
कॉन्फ़िगरेशन
ConfigStore HAL
Android 10 में, ConfigStore HAL का इस्तेमाल बंद कर दिया गया है. इसकी वजह यह है कि यह ज़्यादा मेमोरी इस्तेमाल करता है और इसका इस्तेमाल करना मुश्किल है. इसलिए, HAL को सिस्टम प्रॉपर्टी से बदल दिया गया है.
कॉन्फ़िगरेशन फ़ाइल स्कीमा एपीआई
Android प्लैटफ़ॉर्म में, कॉन्फ़िगरेशन डेटा सेव करने के लिए बड़ी संख्या में एक्सएमएल फ़ाइलें होती हैं. ज़्यादातर एक्सएमएल फ़ाइलें vendor पार्टीशन में हैं, लेकिन उन्हें system पार्टीशन में पढ़ा जाता है. इस मामले में, एक्सएमएल फ़ाइल का स्कीमा, दोनों पार्टीशन के बीच इंटरफ़ेस के तौर पर काम करता है. इसलिए, स्कीमा को साफ़ तौर पर बताया जाना चाहिए. साथ ही, यह पिछले वर्शन के साथ काम करने वाला होना चाहिए. Android 10 से पहले, प्लैटफ़ॉर्म में एक्सएमएल स्कीमा को तय करने और इस्तेमाल करने के लिए, कोई तरीका उपलब्ध नहीं था. साथ ही, स्कीमा में ऐसे बदलावों को रोकने का भी कोई तरीका नहीं था जो काम नहीं करते. Android 10 में यह सुविधा उपलब्ध है. इसे कॉन्फ़िगरेशन फ़ाइल स्कीमा एपीआई कहा जाता है.
सिस्टम प्रॉपर्टी को एपीआई के तौर पर इस्तेमाल करना
अलग-अलग पार्टीशन में ऐक्सेस की गई सिस्टम प्रॉपर्टी को sysprop ब्यौरे वाली फ़ाइलों में व्यवस्थित किया जाता है. साथ ही, प्रॉपर्टी ऐक्सेस करने के लिए एपीआई, C++ के लिए कॉन्क्रीट फ़ंक्शन और Java के लिए क्लास के तौर पर जनरेट किए जाते हैं.
वेंडर इंटरफ़ेस (वीआईएनटीएफ़) ऑब्जेक्ट
VINTF
Android 10 में VINTF में ये बदलाव किए गए हैं:
- AVB वर्शन टैग बंद किए जा रहे हैं
- OTA पैकेज में कर्नल की जानकारी जोड़ना
- ओडीएम मेनिफ़ेस्ट को आधिकारिक तौर पर बनाना
- प्रॉडक्ट कंपैटबिलिटी मैट्रिक्स जोड़ना
- बिल्ड सिस्टम में, मेनिफ़ेस्ट एंट्री को एचएएल मॉड्यूल से असोसिएट करना
बूटलोडर
रैमडिस्क
Android 10 में, रूट फ़ाइल सिस्टम को ramdisk.img में शामिल नहीं किया गया है. इसके बजाय, इसे system.img में मर्ज कर दिया गया है.
ओडीएम पार्टिशन बनाना
Android 10 में, Android बिल्ड सिस्टम का इस्तेमाल करके odm पार्टीशन बनाने की सुविधा शामिल है. कस्टमाइज़ेशन के लिए, अलग /odm पार्टीशन का इस्तेमाल किया जा सकता है. इससे, एक ही वेंडर की इमेज को कई हार्डवेयर SKU के लिए इस्तेमाल किया जा सकता है. इससे ओरिजनल डिज़ाइन मैन्युफ़ैक्चरर (ओडीएम), सिस्टम-ऑन-चिप (एसओसी) वेंडर के बोर्ड-सपोर्ट पैकेज (बीएसपी) को अपने डिवाइसों (उनके बोर्ड) के हिसाब से पसंद के मुताबिक बना सकते हैं. वे बोर्ड के हिसाब से कॉम्पोनेंट, बोर्ड के हिसाब से डेमॉन या हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) पर अपनी सुविधाओं के लिए कर्नल मॉड्यूल लागू कर सकते हैं. ये कंपनियां, एसओसी कॉम्पोनेंट को बदल सकती हैं या उन्हें अपनी पसंद के मुताबिक बना सकती हैं.
बूट इमेज हेडर वर्शनिंग
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 इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एआईडीएल) के लिए सहायता जोड़ी गई है. यह एआईडीएल इंटरफ़ेस के ज़रिए उपलब्ध कराए गए ऐप्लिकेशन प्रोग्राम इंटरफ़ेस (एपीआई)/ऐप्लिकेशन बाइनरी इंटरफ़ेस (एबीआई) को ट्रैक करने का नया तरीका है.
फ़ास्टबूट को उपयोगकर्ता स्पेस में ले जाना
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 को सपोर्ट करने के लिए कस्टम इंपलीमेंटेशन है, तो:
- उन बदलावों को पहले जैसा करें और प्लैटफ़ॉर्म के साथ काम करने वाले तरीके का इस्तेमाल करें.
- अपने सिस्टम में सामान्य ज़ॉगी फ़ॉन्ट रखें और अपने
fonts.xmlमें स्थानीय भाषा का कोडmy-qaagइस्तेमाल करें. ज़्यादा जानकारी के लिए, ज़ॉगी (क़ाग) पर Unicode CLDR के रिलीज़ नोट देखें.
ऐप्लिकेशन के आइकॉन छिपाने से जुड़ी सीमाएं
Android 10 में, ऐप्लिकेशन के पास लॉन्चर आइकॉन छिपाने की सुविधा सीमित होती है. अगर किसी ऐप्लिकेशन के लिए लॉन्चर गतिविधि चालू नहीं है, तो सिस्टम लॉन्चर में सिंथसाइज़ की गई गतिविधि दिखाता है. यह सिंथेसाइज़ की गई गतिविधि, सिस्टम सेटिंग में ऐप्लिकेशन के ज़्यादा जानकारी वाले पेज को दिखाती है.
ऐप्लिकेशन के आइकॉन दिखाने के लिए इस्तेमाल किए गए लॉजिक के बारे में ज़्यादा जानने के लिए, एपीआई के संदर्भ में getActivityList() का दस्तावेज़ देखें. इसमें उन ऐप्लिकेशन के टाइप के बारे में भी बताया गया है जिनके आइकॉन नहीं दिखाए जाते.
सेटिंग
सुलभता को बेहतर बनाने के लिए, Android 10 में टाइम आउट की सेटिंग को उपयोगकर्ता की पसंद के मुताबिक सेट करने की सुविधा शामिल है. एपीआई और सेटिंग में किए गए बदलाव, Android 10 के साथ उपलब्ध हैं. अगर आपने सेटिंग को पसंद के मुताबिक़ बनाया है, तो पक्का करें कि यह सुविधा काम करती हो. अगर आपके डिवाइस पर यूज़र इंटरफ़ेस (यूआई) एलिमेंट का समय खत्म हो जाता है, तो उन पर timeouts API का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Android डेवलपर के लिए सुलभता से जुड़ी गाइडलाइन देखें.
इनके साथ काम करता है
Android कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी)
Android 10 का कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट, पिछले वर्शन के साथ काम करता है. इसमें नई सुविधाओं के अपडेट और पहले रिलीज़ की गई सुविधाओं के लिए ज़रूरी शर्तों में बदलाव शामिल हैं.
टेस्ट अपडेट
Compatibility Test Suite (CTS)
Android CTS के लिए, एक अलग रिलीज़ नोट पेज है. इसमें Android 10 के लिए कई अहम बदलावों की सूची दी गई है.
सीटीएस डाउनलोड
Android 10 के साथ काम करने वाले सीटीएस पैकेज, सीटीएस डाउनलोड पेज पर उपलब्ध हैं. शामिल की गई जांचों के सोर्स कोड को, ओपन-सोर्स ट्री में मौजूद android-cts-10_r1 टैग के साथ सिंक किया जा सकता है.
CTS शिम ऐपेक्स
Android 10 में CtsShimApex नाम का एक पैकेज पेश किया गया है. APEX मैनेजमेंट के लिए सीटीएस टेस्ट लिखने के लिए, इस पैकेज को डिवाइस पर पहले से इंस्टॉल होना चाहिए.
टेस्ट हार्नेस मोड
CTS टेस्ट हार्नेस मोड की मदद से डेवलपर, किसी डिवाइस या डिवाइसों के फ़्लीट के लिए टेस्टिंग को ऑटोमेट कर सकते हैं.
Instant Apps मोड
Android 10 से, CTS झटपट ऐप्लिकेशन मोड में चलता है. इसका मतलब है कि टेस्ट APK को झटपट ऐप्लिकेशन के तौर पर इंस्टॉल करना और टेस्ट चलाना.
Android 10 में, Instant Apps के लिए सीटीएस मोड के साथ-साथ, Instant Apps के लिए CTS Verifier भी शामिल है
सीटीएस वेरिफ़ायर प्रो ऑडियो टेस्ट
Android 10 में, प्रो ऑडियो की ज़रूरी शर्तों का पालन करने के लिए, CTS Verifier टेस्ट जोड़ा गया है.
सीटीएस की पुष्टि करने वाले टूल के MIDI टेस्ट
Android 10 में, CTS Verifier MIDI टेस्ट, MIDI फ़ंक्शन की जांच करता है. इसके लिए, यूएसबी MIDI इंटरफ़ेस, ब्लूटूथ MIDI इंटरफ़ेस, और वर्चुअल MIDI डिवाइस पाथ का इस्तेमाल किया जाता है.
सीटीएस टेस्ट के नतीजों को समझना
Android 10 में, CTS के नतीजों को समझने के तरीके को अपडेट किया गया है.
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 इंटरफ़ेस के ज़रिए, हार्डवेयर कंपोज़र की पुष्टि करने के लिए नई वीटीएस टेस्ट क्लास जोड़ी गई है.
अगर वेंडर 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 इन कोडेक में चालू है:
libFLAClibavcdeclibavcenclibhevcdeclibmpeg2libopuslibvpxlibspeexresamplerlibvorbisideclibaaclibxaac
पूर्णांक ओवरफ़्लो सैनिटाइज़ेशन
Android 10, सॉफ़्टवेयर कोडेक में पूर्णांक ओवरफ़्लो सैनिटाइज़ेशन (IntSan) की सुविधा चालू करता है. पक्का करें कि डिवाइस के हार्डवेयर में काम न करने वाले कोडेक के लिए, वीडियो चलाने की परफ़ॉर्मेंस ठीक हो. IntSan को इन कोडेक में चालू किया गया है:
libFLAClibavcdeclibavcenclibhevcdeclibmpeg2libopuslibvpxlibspeexresamplerlibvorbisidec
सिर्फ़ एक्ज़ीक्यूट की जा सकने वाली मेमोरी
डिफ़ॉल्ट रूप से, AArch64 सिस्टम बाइनरी के लिए एक्ज़ीक्यूटेबल कोड सेक्शन को सिर्फ़ एक्ज़ीक्यूट करने के लिए (पढ़ा नहीं जा सकता) मार्क किया जाता है. ऐसा, जस्ट-इन-टाइम कोड के फिर से इस्तेमाल से जुड़े हमलों को कम करने के लिए किया जाता है. डेटा और कोड को एक साथ मिलाने वाला कोड और जान-बूझकर इन सेक्शन की जांच करने वाला कोड (मेमोरी सेगमेंट को पहले पढ़ने लायक के तौर पर रीमैप किए बिना) अब काम नहीं करता. अगर ऐप्लिकेशन, मेमोरी में मौजूद सिर्फ़ एक्ज़ीक्यूट की जा सकने वाली मेमोरी (एक्सओएम) की सुविधा वाली सिस्टम लाइब्रेरी के कोड सेक्शन को पढ़ने की कोशिश करता है, तो Android 10 (एपीआई लेवल 29 या इससे ऊपर) के टारगेट एसडीके वाले ऐप्लिकेशन पर इसका असर पड़ता है. ऐसा तब होता है, जब ऐप्लिकेशन पहले सेक्शन को पढ़ने लायक के तौर पर मार्क नहीं करता.
Scudo
Scudo, डाइनैमिक यूज़र-मोड मेमोरी ऐलोकेटर है. इसे हीप से जुड़ी कमज़ोरियों से ज़्यादा सुरक्षित रहने के लिए डिज़ाइन किया गया है. यह स्टैंडर्ड सी ऐलोकेशन और डीऐलोकेशन प्रिमिटिव के साथ-साथ C++ प्रिमिटिव भी उपलब्ध कराता है.
ShadowCallStack
ShadowCallStack (SCS), LLVM इंस्ट्रूमेंटेशन का एक मोड है. यह फ़ंक्शन के रिटर्न पते को अलग से असाइन किए गए ShadowCallStack इंस्टेंस में सेव करके, रिटर्न पते को ओवरराइट होने से बचाता है. जैसे, स्टैक बफ़र ओवरफ़्लो. यह नॉनलीफ़ फ़ंक्शन के फ़ंक्शन प्रोलॉग में ऐसा करता है. साथ ही, फ़ंक्शन एपिलॉग में ShadowCallStack इंस्टेंस से रिटर्न पता लोड करता है.
ऑडियो
ऑडियो एचएएल
Android 10 में, ऑडियो एचएएल के लिए ये नई सुविधाएं शामिल हैं.
AudioSourceAudioFormatAudioChannelMask
ऑडियो एचएएल और सबसिस्टम लागू करने के लिए, अन्य ज़रूरी शर्तें जोड़ी गई हैं.
प्रीप्रोसेसिंग इफ़ेक्ट
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 में, Camera HAL3 बफ़र मैनेजमेंट एपीआई का इस्तेमाल करना ज़रूरी नहीं है. इनकी मदद से, बफ़र मैनेजमेंट लॉजिक लागू किया जा सकता है. इससे, Camera 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) वाली इमेज का इस्तेमाल करने की सुविधा मिलती है. इससे 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 में, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के वाई-फ़ाई नेटवर्क की सुविधा वाले डिवाइस, कॉन्फ़िगर किए गए मोबाइल और इंटरनेट सेवा देने वाली कंपनी के वाई-फ़ाई नेटवर्क (सार्वजनिक कुंजी वाले सर्टिफ़िकेट वाले नेटवर्क) से अपने-आप कनेक्ट हो जाते हैं.
Wi-Fi Easy Connect
Android 10 में, डिवाइस वाई-फ़ाई ईज़ी कनेक्ट का इस्तेमाल कर सकते हैं. यह वाई-फ़ाई डिवाइसों को प्रोविज़न और कॉन्फ़िगर करने के लिए, डिवाइस प्रोविज़निंग प्रोटोकॉल (डीपीपी) का इस्तेमाल करता है. इसे Wi-Fi Alliance (WFA) ने लॉन्च किया है.
वाई-फ़ाई लो-लेटेंसी मोड
Android 10 में वाई-फ़ाई लो-लेटेंसी मोड की सुविधा दी गई है. यह वाई-फ़ाई चिप को कॉन्फ़िगर करके, इंतज़ार का समय कम करता है.
डीएचसीपी सर्वर अपडेट किया गया
"आईपी सर्वर" सेवा के तहत, dnsmasq को मिटाया जा रहा है. Android 10 में, DHCPv4 सर्वर के फ़ंक्शनल इस्तेमाल को एक अलग कॉम्पोनेंट से बदल दिया गया है. इसे मुख्य रूप से Java में लिखा गया है, ताकि इसे Java फ़्रेमवर्क कंट्रोल प्लेन के साथ बेहतर तरीके से इंटिग्रेट किया जा सके. इससे डीएचसीपी सर्वर की सुरक्षा और अपडेट करने की क्षमता बेहतर होती है. ज़्यादा जानकारी के लिए, packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java देखें.
इस बदलाव को लागू करने के लिए, किसी कार्रवाई की ज़रूरत नहीं है: Android 10 पर रिलीज़ होने वाले और अपग्रेड किए जाने वाले सभी डिवाइस, डिफ़ॉल्ट रूप से DhcpServer का इस्तेमाल करते हैं.
अगर आपने डीएचसीपी सर्वर में बदलाव किए हैं, तो Android 9 के डिफ़ॉल्ट व्यवहार पर वापस जाने के लिए, ग्लोबल सेटिंग tether_enable_legacy_dhcp_server=1 को सेट करें.
नया DhcpServer नेटवर्किंग कॉम्पोनेंट मॉड्यूल में शामिल है. इसलिए, डीएचसीपी सर्वर की सुविधा में किए गए किसी भी बदलाव को अपस्ट्रीम किया जाना चाहिए.
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, और वाई-फ़ाई डायरेक्ट के लिए, मैक पते को बदलने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. डिवाइसों को सिस्टम यूज़र इंटरफ़ेस (यूआई) में, हर एसएसआईडी के लिए मैक पते को बिना किसी तय नियम के बदलने की सुविधा को चालू या बंद करने का विकल्प देना होगा.
Passpoint R2
Android 10 में, Passpoint R2 की सुविधाओं के लिए सपोर्ट जोड़ा गया है. Passpoint R2, ऑनलाइन साइन अप (ओएसयू) की सुविधा देता है. यह नई Passpoint प्रोफ़ाइलें उपलब्ध कराने का एक स्टैंडर्ड तरीका है. Android 10 में, SOAP-XML का इस्तेमाल करके EAP-TTLS प्रोफ़ाइलों को उपलब्ध कराने की सुविधा काम करती है.
एनएफ़सी
NFC सुरक्षित करें
सुरक्षित एनएफ़सी की सुविधा, डिवाइस की स्क्रीन अनलॉक होने पर ही, ऑफ़-होस्ट एनएफ़सी कार्ड इम्यूलेशन की सुविधा चालू करने की अनुमति देती है. इस सुविधा को लागू करने से, उपयोगकर्ताओं को बेहतर सुरक्षा के लिए सुरक्षित एनएफ़सी चालू करने का विकल्प मिलता है.
Android Beam अब काम नहीं करता
Android 10 में, Android Beam की सुविधा अब काम नहीं करती. साथ ही, यहां दिए गए इंटरफ़ेस और तरीकों को बंद कर दिया गया है.
इंटरफ़ेस:
NfcAdapter.CreateBeamUrisCallbackNfcAdapter.CreateNdefMessageCallbackNfcAdapter.OnNdefPushCompleteCallback
तरीके:
createBeamUrisinvokeBeamisNdefPushEnabledsetBeamPushUrissetBeamPushUrisCallbacksetNdefPushMessagesetNdefPushMessageCallbacksetOnNdefPushCompleteCallbackcreateNdefMessageCallbackonNdefPushCompleteCallback
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 में, परफ़ॉर्मेंस रिफ़्रेश रेट के लिए सपोर्ट जोड़ा गया है. यह सुविधा डिफ़ॉल्ट रूप से बंद होती है.
इंटरैक्शन
ऑटोमोटिव
ऑटोमोटिव ऑडियो
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 में बताई गई बंद की जा चुकी सुविधाओं पर निर्भर हैं, तो हो सकता है कि आपको अपने ऐप्लिकेशन अपडेट करने पड़ें, ताकि किसी भी बदलाव को पूरा किया जा सके. इसके अलावा, अगर संपर्क सूची के फ़ोर्क किए गए वर्शन का इस्तेमाल किया जाता है, तो आपको संपर्क सूची को अपडेट करना होगा.
जगह की जानकारी ऐक्सेस करने की अनुमतियों की तीन स्थितियां
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 Platform API की कई नई सुविधाएं उपलब्ध हैं. अगर आपने शेयर करने की सुविधा वाली शीट के कोड में बदलाव किया है, तो पक्का करें कि आपके कोड में इन नई सुविधाओं का इस्तेमाल किया जा सकता हो. अगर आपने लागू करने के दौरान शेयर शीट के कोड में बदलाव नहीं किया है, तो इन नई सुविधाओं का इस्तेमाल करने के लिए आपको कुछ भी करने की ज़रूरत नहीं है.
Android रनटाइम (एआरटी)
Signed Config
हस्ताक्षर किया गया कॉन्फ़िगरेशन सुविधा की मदद से, गैर-एसडीके इंटरफ़ेस पर लगी पाबंदियों के कॉन्फ़िगरेशन को 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 ओवर-द-एयर (ओटीए) अपडेट काम नहीं करता है.