ExtServices मॉड्यूल, ओएस की मुख्य सुविधाओं के लिए फ़्रेमवर्क कॉम्पोनेंट को अपडेट करता है. जैसे, सूचनाओं को रैंक करना, टेक्स्ट मैच करने की ऑटोमैटिक भरने की रणनीतियां, स्टोरेज कैश मेमोरी, पैकेज वॉचडॉग, और लगातार चलने वाली अन्य सेवाएं. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि इसे Android की सामान्य रिलीज़ साइकल के बाहर, फ़ंक्शन से जुड़े अपडेट मिल सकते हैं.
सेवा के कॉम्पोनेंट
ExtServices मॉड्यूल में ये सेवाएं शामिल हैं.
DisplayHashingServiceAndroid 12 से शुरू हो रहा हैTextClassifierServiceAndroid 11 से शुरू हो रहा हैInlineSuggestionsRenderServiceAndroid 11 से शुरू हो रहा हैAndroid 10 से शुरू होने वाले
AutofillFieldClassificationServiceAndroid 10 से शुरू होने वाले
NotificationAssistantServiceAndroid 10 से शुरू होने वाले
ResolverRankerServiceCacheQuotaServiceAndroid 10 से शुरू होने वाले वर्शन में
DisplayHashingService
Android 12 में, DisplayHashingService का इस्तेमाल, तय किए गए बफ़र के लिए DisplayHash का इंस्टेंस जनरेट करने के लिए किया जाता है. इसका इस्तेमाल यह पुष्टि करने के लिए भी किया जाता है कि किसी खास डिसप्ले हैश को सिस्टम ने जनरेट किया है. डिस्प्ले हैश जनरेट करते समय, कॉलर यह तय कर सकता है कि उसे हैशिंग के लिए कौनसे एल्गोरिदम का इस्तेमाल करना है.
TextClassifierService
TextClassifierService
सर्विस कॉम्पोनेंट, TextClassifier
एपीआई
और Android की सुविधाओं को सपोर्ट करता है. जैसे, सूचनाओं में स्मार्ट टेक्स्ट चुनने और स्मार्ट सुझाव देने की सुविधा. ExtServices मॉड्यूल में डिफ़ॉल्ट टेक्स्ट क्लासिफ़ायर होता है. इसकी पुष्टि CTS टेस्ट TextClassifierPolicyTest.java से की जाती है.
अगर ज़रूरत हो, तो config.xml में config_defaultTextClassifierPackage को तय करके, कस्टम टेक्स्ट क्लासिफ़ायर सेवा को कॉन्फ़िगर किया जा सकता है.
कस्टम टेक्स्ट क्लासिफ़ायर, डिफ़ॉल्ट टेक्स्ट क्लासिफ़ायर पर निर्भर हो सकते हैं. इसके लिए, उन्हें TextClassifierService.getDefaultTextClassifierImplementation(Context) को कॉल करना होगा, ताकि वे इसका इंस्टेंस पा सकें.
InlineSuggestionRenderService
InlineSuggestionRenderService सेवा कॉम्पोनेंट की मदद से, कीबोर्ड पर मौजूद सुझाव वाले बार में इनलाइन सुझाव दिखाए जा सकते हैं. इस सेवा को, View ऑब्जेक्ट को रेंडर करने के लिए कॉल किया जाता है. यह ऑब्जेक्ट, इनलाइन अपने-आप भरने की नई सुविधा के लिए इनलाइन सुझाव देता है.
इस रेंडरर सेवा के लिए डिफ़ॉल्ट तौर पर लागू करने की सुविधा, सुझाव को रेंडर करने के लिए androidx.autofill.inline.Renderer को कॉल करती है. इस व्यवहार की पुष्टि, /autofillservice/cts/inline/ में सीटीएस टेस्ट से की जाती है.
पैकेज का नाम
Android 11 पर काम करने वाले डिवाइसों को ExtServices पैकेज के नाम (com.android.ext.services) के लिए, config_servicesExtensionPackage (frameworks/base/core/res/res/values/config.xml में) सेट करना होगा. कॉन्फ़िगरेशन में हुए इस बदलाव की पुष्टि, सीटीएस टेस्ट cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java से की जाती है.
मॉड्यूल की सीमा
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), ExtServices मॉड्यूल की सुविधाओं की पुष्टि करता है. इसके लिए, वह मॉड्यूल की हर रिलीज़ पर CTS के टेस्ट का पूरा सेट चलाता है. इसके अलावा, Mainline Test Suite (MTS) में कई ExtServices टेस्ट भी शामिल होते हैं. ExtServices के सभी टेस्ट की सूची यहां दी गई है:
कॉन्फ़िगरेशन में बदलाव. सीटीएस टेस्ट
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.javaसे पुष्टि की गई.TextClassifierकॉन्फ़िगर करें. सीटीएस टेस्ट से पुष्टि की गईcts/TextClassifierPolicyTest.java.ऑटोमैटिक भरने की सुविधा से मिला इनलाइन सुझाव.
cts/inline/में सीटीएस टेस्ट से पुष्टि की गई है.