El módulo ExtServices actualiza los componentes del framework para la funcionalidad principal del SO, como la clasificación de notificaciones, las estrategias de coincidencia de texto de autocompletar, el caché de almacenamiento, el watchdog 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 funciones fuera del ciclo normal de actualización de Android.
Componentes del servicio
El módulo ExtServices contiene los siguientes servicios.
DisplayHashingServicea partir de Android 12TextClassifierServicea partir de Android 11InlineSuggestionsRenderServicea partir de Android 11AutofillFieldClassificationServicea partir de Android 10NotificationAssistantServicea partir de Android 10ResolverRankerServicea partir de Android 10CacheQuotaServicea partir de Android 10
DisplayHashingService
En Android 12, DisplayHashingService se usa 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 pantalla específico. Cuando se genera un hash de pantalla, la persona que llama puede especificar cuál de los algoritmos de hash compatibles desea usar.
TextClassifierService
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 este.
InlineSuggestionRenderService
El componente de servicio InlineSuggestionRenderService permite que se muestren sugerencias intercaladas 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 autocompletado intercalado.
La implementación predeterminada para este servicio de renderizador llama a
androidx.autofill.inline.Renderer
para renderizar la sugerencia. Este comportamiento se verifica con las pruebas de CTS en
/autofillservice/cts/inline/.
Nombre del 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 de CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java verifica este cambio de configuración.
Límites del módulo
En Android 12, el código del módulo ExtServices
se mueve de frameworks/base/apex/extservices
(este es un subdirectorio del 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 para la función nueva)jni/(archivos para la función nueva)native/(archivos para la función nueva)
Los límites del módulo ExtServices se encuentran 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 ejecutando un conjunto completo de pruebas de CTS en cada versión del módulo. Además, el Conjunto de pruebas de línea principal (MTS) también contiene varias pruebas de ExtServices. La lista completa de pruebas de ExtServices es la siguiente:
Cambios de configuración. Se verifican con la prueba de CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java.Configuración de
TextClassifier. Se verifica con la prueba de CTScts/TextClassifierPolicyTest.java.Sugerencia intercalada de autocompletar. Se verifica con las pruebas de CTS en
cts/inline/.