ExtServices

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

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 de texto inteligente 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 de classificador de texto personalizado 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 as sugestões em linha sejam mostradas na faixa de sugestões do teclado. Esse serviço é chamado para renderizar um objeto View contendo a Sugestão Inline para o novo fluxo de Preenchimento Automático Inline. A implementação padrão desse 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 que executam o Android 11 devem definir config_servicesExtensionPackage (em frameworks/base/core/res/res/values/config.xml ) para 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 de frameworks/base/apex/extservices )
  • java/ (arquivos de packages/modules/ExtServices/res , packages/modules/ExtServices/src , packages/modules/ExtServices/tests e arquivos para novo recurso)
  • 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 move 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á em 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: