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 मॉड्यूल की मुख्य सुविधाओं की पुष्टि करता है. इसके अलावा, Mainline Test Suite (MTS) में कई ExtServices टेस्ट भी शामिल होते हैं. ExtServices के टेस्ट की पूरी सूची यहां दी गई है:
कॉन्फ़िगरेशन में बदलाव. सीटीएस टेस्ट की मदद से पुष्टि की गई
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
कॉन्फ़िगरेशन. सीटीएस टेस्ट की मदद से पुष्टि की गईcts/TextClassifierPolicyTest.java
.ऑटोमैटिक भरने की सुविधा के लिए इनलाइन सुझाव.
cts/inline/
में सीटीएस टेस्ट की मदद से पुष्टि की गई.