Модуль 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/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/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.Конфигурация
TextClassifier
. Проверено тестомcts/TextClassifierPolicyTest.java
.Встроенное предложение автозаполнения. Проверено тестами CTS в
cts/inline/
.