El módulo ExtServices actualiza los componentes del framework para la funcionalidad principal del SO, como la clasificación de las notificaciones, las estrategias de coincidencia de texto de autocompletado, la caché de almacenamiento, el perro guardián de paquetes y otros servicios que se ejecutan de forma continua. Este módulo se puede actualizar, lo que significa que puede recibir actualizaciones de funcionalidad fuera del ciclo normal de lanzamiento de Android.
Componentes del servicio
El módulo ExtServices contiene los siguientes servicios.
DisplayHashingService
a partir de Android 12TextClassifierService
a partir de Android 11InlineSuggestionsRenderService
a partir de Android 11AutofillFieldClassificationService
a partir de Android 10NotificationAssistantService
a partir de Android 10ResolverRankerService
a partir de Android 10CacheQuotaService
a partir de Android 10
Servicio de hash de display
En Android 12, se usa DisplayHashingService
para generar una instancia de DisplayHash
para el búfer especificado. También se usa para verificar que el sistema haya generado un hash de visualización específico. Cuando se genera un hash de visualización, el llamador puede especificar cuál de los algoritmos de hash compatibles desea usar.
Servicio de clasificación de texto
El componente de servicio TextClassifierService
admite las APIs de TextClassifier
y las funciones de Android, como la selección de texto inteligente y las sugerencias inteligentes en las notificaciones. El módulo ExtServices contiene el clasificador de texto predeterminado, que se verifica con la prueba de CTS TextClassifierPolicyTest.java
.
Si es necesario, puedes configurar un servicio de clasificador de texto personalizado especificando config_defaultTextClassifierPackage
en config.xml
.
Los clasificadores de texto personalizados pueden depender del clasificador de texto predeterminado llamando a TextClassifierService.getDefaultTextClassifierImplementation(Context)
para obtener una instancia de él.
InlineSuggestionRenderService
El componente de servicio InlineSuggestionRenderService
permite que las sugerencias intercaladas se muestren en la barra de sugerencias del teclado. Se llama a este servicio para renderizar un objeto View
que contiene la sugerencia intercalada para el nuevo flujo de Autocompletar intercalado.
La implementación predeterminada de este servicio de renderización llama a androidx.autofill.inline.Renderer
para renderizar la sugerencia. Las pruebas del CTS verifican este comportamiento en /autofillservice/cts/inline/
.
Nombre de paquete
Los dispositivos que ejecutan Android 11 deben establecer config_servicesExtensionPackage
(en frameworks/base/core/res/res/values/config.xml
) en el nombre del paquete ExtServices (com.android.ext.services
). La prueba CTS cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
verifica este cambio de configuración.
Límite del módulo
En Android 12, el código del módulo ExtServices se mueve de frameworks/base/apex/extservices
(que es un subdirectorio de frameworks/base project
) y packages/modules/ExtServices
.
La nueva estructura del proyecto para packages/modules/ExtServices
es la siguiente:
apex/
(archivos deframeworks/base/apex/extservices
)java/
(archivos depackages/modules/ExtServices/res
,packages/modules/ExtServices/src
,packages/modules/ExtServices/tests
y archivos de funciones nuevas)jni/
(archivos para la función nueva)native/
(archivos para la función nueva)
El límite del módulo ExtServices está en packages/modules/ExtServices
. Android 11 también mueve varias clases de implementación de TextClassifier
fuera de frameworks/base/core/
.
Formato del módulo
En Android 11, el módulo ExtServices (com.android.ext.services
) está en formato APEX. En Android 10, este módulo está en formato APK.
Personalización
En Android 11, puedes configurar un servicio de clasificador de texto personalizado que llame al clasificador de texto predeterminado (sin embargo, no se recomienda). En Android 10, el módulo ExtServices no proporciona opciones de personalización.
Prueba
El Conjunto de pruebas de compatibilidad (CTS) de Android verifica la funcionalidad del módulo ExtServices mediante la ejecución de un conjunto completo de pruebas de CTS en cada versión del módulo. Además, el conjunto de pruebas principal (MTS) también contiene varias pruebas de ExtServices. La lista completa de pruebas de ExtServices es la siguiente:
Cambios en la configuración. Se verifica con la prueba del CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.Configuración de
TextClassifier
Verificado con la pruebacts/TextClassifierPolicyTest.java
del CTS.Sugerencia intercalada de Autocompletar. Se verifica con pruebas de CTS en
cts/inline/
.