O módulo ExtServices atualiza componentes de framework para funcionalidades principais do SO, como classificação de notificações, estratégias de correspondência de texto de preenchimento automático, cache de armazenamento, vigilância de pacotes e outros serviços que são executados continuamente. Esse módulo pode ser atualizado, ou seja, ele pode receber atualizações de funcionalidade fora do ciclo normal de lançamento do Android.
Componentes de serviço
O módulo ExtServices contém os seguintes serviços.
- DisplayHashingServicea partir do Android 12
- TextClassifierServicea partir do Android 11
- InlineSuggestionsRenderServicea partir do Android 11
- AutofillFieldClassificationServicea partir do Android 10
- NotificationAssistantServicea partir do Android 10
- ResolverRankerServicea partir do Android 10
- CacheQuotaServicea partir do Android 10
DisplayHashingService
No Android 12, DisplayHashingService é usado para
gerar uma instância de DisplayHash para o buffer especificado. Ele também é usado para verificar se um hash de exibição específico foi gerado pelo sistema. Ao
gerar um hash de exibição, o caller pode especificar qual dos algoritmos de hash
compatíveis ele quer usar.
TextClassifierService
O componente de serviço
TextClassifierService
oferece suporte a APIsTextClassifier
e recursos do Android, como seleção inteligente de texto e sugestões inteligentes em
notificações. O módulo ExtServices contém o classificador de texto padrão,
que é verificado pelo teste CTS
TextClassifierPolicyTest.java.
Se necessário, configure um serviço de classificação de texto personalizado especificando
config_defaultTextClassifierPackage em
config.xml.
Os classificadores de texto personalizados podem depender do classificador de texto padrão chamando
TextClassifierService.getDefaultTextClassifierImplementation(Context)
para receber uma instância dele.
InlineSuggestionRenderService
O componente de serviço InlineSuggestionRenderService permite que as sugestões inline
sejam mostradas na linha de sugestões do teclado. Esse serviço é chamado para renderizar um objeto View que contém a sugestão inline para o novo fluxo de preenchimento automático inline.
A implementação padrão desse serviço de renderização chama
androidx.autofill.inline.Renderer
para renderizar a sugestão. Esse comportamento é verificado por testes do CTS em
/autofillservice/cts/inline/.
Nome do pacote
Os dispositivos com Android 11 precisam definir
config_servicesExtensionPackage (em
frameworks/base/core/res/res/values/config.xml) como o nome do pacote
ExtServices (com.android.ext.services). Essa mudança de configuração é verificada pelo
teste CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java.
Limite do módulo
No Android 12, o código do módulo ExtServices
é movido de frameworks/base/apex/extservices
(um subdiretório de frameworks/base project)
e
packages/modules/ExtServices.
A nova estrutura de projeto para packages/modules/ExtServices é a seguinte:
- apex/(arquivos de- frameworks/base/apex/extservices)
- java/(arquivos de- packages/modules/ExtServices/res,- packages/modules/ExtServices/src,- packages/modules/ExtServices/tests, e arquivos para o novo recurso)
- jni/(arquivos para o novo recurso)
- native/(arquivos para o novo recurso)
O limite do módulo ExtServices está em packages/modules/ExtServices. O Android
11 também move várias classes de implementação
TextClassifier para fora de frameworks/base/core/.
Formato do módulo
No Android 11, o módulo ExtServices
(com.android.ext.services) está no formato
APEX. No Android 10, esse módulo está no formato APK.
Personalização
No Android 11, é possível configurar um serviço de classificação de texto personalizado que chama o classificador de texto padrão, mas isso não é recomendado. No Android 10, o módulo ExtServices não oferece opções de personalização.
Teste
O Teste de compatibilidade do Android (CTS) verifica a funcionalidade do módulo ExtServices executando um conjunto abrangente de testes do CTS em todas as versões do módulo. Além disso, o Mainline Test Suite (MTS) também contém vários testes ExtServices. Confira a lista completa de testes do ExtServices:
- Mudanças de configuração. Verificado pelo teste do CTS - cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java.
- Configuração do - TextClassifier. Verificado pelo teste CTS- cts/TextClassifierPolicyTest.java.
- Sugestão inline de preenchimento automático. Verificado por testes do CTS em - cts/inline/.
