ExtServices मॉड्यूल, ओएस की मुख्य सुविधाओं के लिए फ़्रेमवर्क कॉम्पोनेंट को अपडेट करता है. जैसे, सूचनाओं की रैंकिंग, टेक्स्ट से मैच करने वाली ऑटोमैटिक भरने की रणनीतियां, स्टोरेज कैश मेमोरी, पैकेज वॉचडॉग, और लगातार चलने वाली अन्य सेवाएं. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि Android के सामान्य रिलीज़ साइकल के अलावा, इस मॉड्यूल के फ़ंक्शन के लिए अपडेट मिल सकते हैं.
सेवा के कॉम्पोनेंट
ExtServices मॉड्यूल में ये सेवाएं शामिल हैं.
DisplayHashingService
Android 12 में शुरू की गई सुविधाTextClassifierService
Android 11 से शुरू किया गयाInlineSuggestionsRenderService
, Android 11 में शुरू होने वाली सुविधाAutofillFieldClassificationService
, Android 10 में शुरू किया गयाNotificationAssistantService
, Android 10 में शुरू किया गयाResolverRankerService
, Android 10 में शुरू किया गयाCacheQuotaService
Android 10 और इसके बाद के वर्शन में
DisplayHashingService
Android 12 में, DisplayHashingService
का इस्तेमाल, तय किए गए बफ़र के लिए DisplayHash
का इंस्टेंस जनरेट करने के लिए किया जाता है. इसका इस्तेमाल, इस बात की पुष्टि करने के लिए भी किया जाता है कि सिस्टम ने कोई खास डिसप्ले हैश जनरेट किया है या नहीं. डिसप्ले हैश जनरेट करते समय, कॉलर यह तय कर सकता है कि वह इस्तेमाल किए जा सकने वाले कौनसे हैशिंग एल्गोरिदम का इस्तेमाल करना चाहता है.
TextClassifierService
TextClassifierService
सेवा कॉम्पोनेंट, TextClassifier
एपीआई और Android की सुविधाओं का बैक अप लेता है. जैसे, सूचनाओं में स्मार्ट टेक्स्ट चुनने और स्मार्ट सुझाव की सुविधा. ExtServices मॉड्यूल में, टेक्स्ट को कैटगरी में बांटने वाला डिफ़ॉल्ट टूल शामिल होता है. इसकी पुष्टि, सीटीएस टेस्ट TextClassifierPolicyTest.java
से की जाती है.
अगर ज़रूरी हो, तो config.xml
में config_defaultTextClassifierPackage
की जानकारी देकर, कस्टम टेक्स्ट की कैटगरी तय करने वाली सेवा कॉन्फ़िगर करें.
कस्टम टेक्स्ट क्लासिफ़ायर, डिफ़ॉल्ट टेक्स्ट क्लासिफ़ायर पर निर्भर हो सकते हैं. इसके लिए, उन्हें TextClassifierService.getDefaultTextClassifierImplementation(Context)
को कॉल करके उसका इंस्टेंस पाना होगा.
InlineSuggestionRenderService
InlineSuggestionRenderService
सेवा कॉम्पोनेंट, इनलाइन सुझावों को कीबोर्ड के सुझाव वाले बार में दिखाने की सुविधा चालू करता है. इस सेवा को, नए इनलाइन ऑटोमैटिक भरने के फ़्लो के लिए इनलाइन सुझाव रखने वाले View
ऑब्जेक्ट को रेंडर करने के लिए कॉल किया जाता है.
सुझाव रेंडर करने के लिए, इस रेंडरर सेवा को डिफ़ॉल्ट रूप से लागू करने पर, androidx.autofill.inline.Renderer
को कॉल किया जाता है. इस व्यवहार की पुष्टि, /autofillservice/cts/inline/
में सीटीएस टेस्ट से हुई है.
पैकेज का नाम
Android 11 पर चलने वाले डिवाइसों के लिए, config_servicesExtensionPackage
(frameworks/base/core/res/res/values/config.xml
में) को ExtServices पैकेज के नाम (com.android.ext.services
) पर सेट करना ज़रूरी है. कॉन्फ़िगरेशन में हुए इस बदलाव की पुष्टि, cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
के CTs टेस्ट से की जाती है.
मॉड्यूल की सीमा
Android 12 में, ExtServices
मॉड्यूल कोड को frameworks/base/apex/extservices
(यह frameworks/base project
की सबडायरेक्ट्री है) और
packages/modules/ExtServices
से हटा दिया गया है.
packages/modules/ExtServices
के लिए प्रोजेक्ट का नया स्ट्रक्चर इस तरह का है:
apex/
(frameworks/base/apex/extservices
से फ़ाइलें)java/
(packages/modules/ExtServices/res
,packages/modules/ExtServices/src
,packages/modules/ExtServices/tests
की फ़ाइलें और नई सुविधा के लिए फ़ाइलें)jni/
(नई सुविधा वाली फ़ाइलें)native/
(नई सुविधा वाली फ़ाइलें)
ExtServices मॉड्यूल की सीमा packages/modules/ExtServices
में है. Android 11 में, TextClassifier
को लागू करने वाली कई क्लास को frameworks/base/core/
से बाहर भी ले जाया गया है.
मॉड्यूल का फ़ॉर्मैट
Android 11 में, ExtServices मॉड्यूल (com.android.ext.services
) APEX फ़ॉर्मैट में है. Android 10 में, यह मॉड्यूल APK फ़ॉर्मैट में होता है.
पसंद के मुताबिक बनाएं
Android 11 में, डिफ़ॉल्ट टेक्स्ट क्लासिफ़ायर को कॉल करने वाली कस्टम टेक्स्ट क्लासिफ़ायर सेवा को कॉन्फ़िगर किया जा सकता है. हालांकि, हमारा सुझाव है कि ऐसा न करें. Android 10 में, ExtServices मॉड्यूल कस्टमाइज़ेशन के विकल्प उपलब्ध नहीं कराता.
टेस्ट करना
Android Compatibility Test Suite (CTS), हर मॉड्यूल रिलीज़ पर CTS टेस्ट का पूरा सेट चलाकर, ExtServices मॉड्यूल की मुख्य सुविधाओं की पुष्टि करता है. इसके अलावा, मेनलाइन टेस्ट सुइट (एमटीएस) में कई ExtServices टेस्ट भी शामिल होते हैं. ExtServices के टेस्ट की पूरी सूची यहां दी गई है:
कॉन्फ़िगरेशन में बदलाव. सीटीएस टेस्ट की मदद से पुष्टि की गई
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
config. सीटीएस टेस्टcts/TextClassifierPolicyTest.java
से पुष्टि हुई है.ऑटोमैटिक भरने की सुविधा के लिए इनलाइन सुझाव.
cts/inline/
में सीटीएस टेस्ट की मदद से पुष्टि की गई.