O módulo ExtServices atualiza os componentes do framework para a funcionalidade principal do SO, como classificação de notificações, estratégias de correspondência de texto de preenchimento automático, cache de armazenamento, monitoramento de pacotes e outros serviços executados continuamente. Esse módulo é atualizável, o que significa que ele pode receber atualizações de funcionalidades fora do ciclo normal de versão do Android.
Componentes de serviço
O módulo ExtServices contém os serviços a seguir.
DisplayHashingService
a partir do Android 12TextClassifierService
a partir do Android 11InlineSuggestionsRenderService
a partir do Android 11AutofillFieldClassificationService
a partir do Android 10NotificationAssistantService
a partir do Android 10ResolverRankerService
a partir do Android 10CacheQuotaService
a 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 autor da chamada pode especificar qual dos algoritmos de hash
com suporte ele quer usar.
TextClassifierService
O
componente de serviço
TextClassifierService
oferece suporte a APIs
TextClassifier
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 personalizado de classificador de texto 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 para esse serviço de renderizador chama
androidx.autofill.inline.Renderer
para renderizar a sugestão. Esse comportamento é verificado por testes CTS em
/autofillservice/cts/inline/
.
Nome do pacote
Os dispositivos com o Android 11 precisam definir
config_servicesExtensionPackage
(em
frameworks/base/core/res/res/values/config.xml
) para 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 do projeto para packages/modules/ExtServices
é a seguinte:
apex/
(arquivos deframeworks/base/apex/extservices
)java/
(arquivos depackages/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 classificador de texto personalizado que chama o classificador de texto padrão. No entanto, isso não é recomendado. No Android 10, o módulo ExtServices não oferece opções de personalização.
Teste
O conjunto de teste de compatibilidade do Android (CTS) verifica a funcionalidade do módulo ExtServices executando um conjunto abrangente de testes do CTS em cada versão do módulo. Além disso, o pacote de testes principal (MTS) também contém vários testes de ExtServices. Confira a lista completa de testes de ExtServices:
Mudanças na configuração. Verificado pelo teste de CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.Configuração
TextClassifier
. Teste verificado pelo CTScts/TextClassifierPolicyTest.java
.Sugestão inline de preenchimento automático. Verificação por testes do CTS em
cts/inline/
.