Модуль 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 обеспечивает поддержку API TextClassifier и функций Android, таких как интеллектуальный выбор текста и интеллектуальные подсказки в уведомлениях. Модуль ExtServices содержит классификатор текста по умолчанию, который проверяется с помощью теста CTS TextClassifierPolicyTest.java .
При необходимости вы можете настроить собственную службу классификации текста, указав параметр config_defaultTextClassifierPackage в config.xml . Пользовательские классификаторы текста могут зависеть от классификатора текста по умолчанию, для чего можно вызвать TextClassifierService.getDefaultTextClassifierImplementation(Context) чтобы получить его экземпляр.
InlineSuggestionRenderService
Компонент службы InlineSuggestionRenderService позволяет отображать встроенные подсказки в панели подсказок клавиатуры. Эта служба вызывается для рендеринга объекта View , содержащего встроенную подсказку для нового потока автозаполнения. Реализация по умолчанию для этой службы рендеринга вызывает androidx.autofill.inline.Renderer для рендеринга подсказки. Это поведение проверяется тестами CTS в /autofillservice/cts/inline/ .
Название пакета
На устройствах под управлением Android 11 необходимо установить config_servicesExtensionPackage (в frameworks/base/core/res/res/values/config.xml ) на имя пакета ExtServices ( com.android.ext.services ). Это изменение конфигурации проверяется тестом CTS 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 (CTS) проверяет функциональность модуля ExtServices, запуская полный набор тестов CTS для каждого выпуска модуля. Кроме того, основной набор тестов (MTS) также содержит несколько тестов ExtServices. Полный список тестов ExtServices выглядит следующим образом:
Изменения в конфигурации. Проверено тестом CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java.Конфигурация
TextClassifier. Проверено с помощью теста CTScts/TextClassifierPolicyTest.java.Встроенные подсказки автозаполнения. Проверено тестами CTS в
cts/inline/.