O módulo ExtServices atualiza os componentes da estrutura para a funcionalidade principal do sistema operacional, como classificação de notificação, estratégias de correspondência de texto de preenchimento automático, cache de armazenamento, watchdog de pacote e outros serviços que são executados continuamente. Este módulo é atualizável, o que significa que pode receber atualizações de funcionalidades fora do ciclo normal de lançamento do Android.
Componentes de serviço
O módulo ExtServices contém os seguintes serviços.
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. 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 chamador pode especificar qual dos algoritmos de hash suportados deseja 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, você pode configurar um serviço classificador de texto customizado especificando config_defaultTextClassifierPackage
em config.xml
. Classificadores de texto personalizados podem depender do classificador de texto padrão chamando TextClassifierService.getDefaultTextClassifierImplementation(Context)
para obter uma instância dele.
InlineSuggestionRenderService
O componente de serviço InlineSuggestionRenderService
permite que sugestões embutidas sejam mostradas na faixa de sugestões do teclado. Este 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 deste serviço de renderização chama androidx.autofill.inline.Renderer
para renderizar a sugestão. Este comportamento é verificado pelos testes CTS em /autofillservice/cts/inline/
.
Nome do pacote
Os dispositivos que executam o Android 11 devem definir config_servicesExtensionPackage
(em frameworks/base/core/res/res/values/config.xml
) como o nome do pacote ExtServices ( com.android.ext.services
). Essa alteração 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
(este é um subdiretório do 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 novos recursos) -
jni/
(arquivos para novo recurso) -
native/
(arquivos para novo recurso)
O limite do módulo ExtServices está em packages/modules/ExtServices
. O Android 11 também remove várias classes de implementação TextClassifier
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, este módulo está no formato APK.
Personalização
No Android 11, você pode 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 Android Compatibility Test Suite (CTS) verifica a funcionalidade do módulo ExtServices executando um conjunto abrangente de testes CTS em cada versão do módulo. Além disso, o Mainline Test Suite (MTS) também contém vários testes ExtServices. A lista completa de testes ExtServices é a seguinte:
Mudanças de configuração. Verificado pelo teste CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.Configuração
TextClassifier
. Verificado pelo teste CTScts/TextClassifierPolicyTest.java
.Sugestão in-line de preenchimento automático. Verificado por testes CTS em
cts/inline/
.