Модуль ExtServices обновляет компоненты фреймворка для основных функций ОС, таких как ранжирование уведомлений, стратегии автозаполнения, кэширование хранилища, контроль пакетов и другие службы, работающие непрерывно. Этот модуль обновляется, то есть он может получать обновления функциональности вне стандартного цикла выпуска Android.
Компоненты обслуживания
Модуль ExtServices содержит следующие службы.
DisplayHashingService
запускается в Android 12TextClassifierService
, начиная с Android 11InlineSuggestionsRenderService
, начиная с Android 11AutofillFieldClassificationService
, запущенная в Android 10NotificationAssistantService
запускается в Android 10ResolverRankerService
запускается в Android 10CacheQuotaService
запускается в Android 10
DisplayHashingService
В Android 12 DisplayHashingService
используется для генерации экземпляра DisplayHash
для указанного буфера. Она также используется для проверки того, что система сгенерировала определённый хеш отображения. При генерации хеширования отображения вызывающий объект может указать, какой из поддерживаемых алгоритмов хеширования он хочет использовать.
TextClassifierService
Компонент службы 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 для каждого выпуска модуля. Кроме того, набор тестов Mainline Test Suite (MTS) также содержит несколько тестов ExtServices. Полный список тестов ExtServices приведен ниже:
Изменения конфигурации. Проверено тестом CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.Конфигурация
TextClassifier
. Проверено тестом CTScts/TextClassifierPolicyTest.java
.Автоматическое заполнение встроенных предложений. Проверено тестами CTS в
cts/inline/
.