Il modulo ExtServices aggiorna i componenti del framework per le funzionalità principali del sistema operativo, come il ranking delle notifiche, le strategie di corrispondenza del testo di compilazione automatica, la cache di archiviazione, il watchdog dei pacchetti e altri servizi che vengono eseguiti continuamente. Questo modulo è aggiornabile, il che significa che può ricevere aggiornamenti di funzionalità al di fuori del normale ciclo di rilascio di Android.
Componenti del servizio
Il modulo ExtServices contiene i seguenti servizi.
DisplayHashingService
a partire da Android 12TextClassifierService
a partire da Android 11InlineSuggestionsRenderService
a partire da Android 11AutofillFieldClassificationService
a partire da Android 10NotificationAssistantService
a partire da Android 10ResolverRankerService
a partire da Android 10CacheQuotaService
a partire da Android 10
DisplayHashingService
In Android 12, DisplayHashingService
viene utilizzato per generare un'istanza di DisplayHash
per il buffer specificato. Viene utilizzato anche per verificare che uno specifico hash di visualizzazione sia stato generato dal sistema. Quando si genera un hash di visualizzazione, il chiamante può specificare quale degli algoritmi di hashing supportati desidera utilizzare.
TextClassifierService
Il componente del servizio TextClassifierService
supporta le API TextClassifier
e le funzionalità Android come la selezione intelligente del testo e i suggerimenti intelligenti nelle notifiche. Il modulo ExtServices contiene il classificatore di testo predefinito, verificato dal test CTS TextClassifierPolicyTest.java
.
Se necessario, puoi configurare un servizio di classificazione del testo personalizzato specificando config_defaultTextClassifierPackage
in config.xml
. I classificatori di testo personalizzati possono dipendere dal classificatore di testo predefinito chiamando TextClassifierService.getDefaultTextClassifierImplementation(Context)
per ottenerne un'istanza.
InlineSuggestionRenderService
Il componente del servizio InlineSuggestionRenderService
consente di visualizzare i suggerimenti in linea nella barra dei suggerimenti della tastiera. Questo servizio viene chiamato per eseguire il rendering di un oggetto View
contenente il suggerimento in linea per il nuovo flusso di riempimento automatico in linea. L'implementazione predefinita per questo servizio di renderer chiama androidx.autofill.inline.Renderer
per eseguire il rendering del suggerimento. Questo comportamento è verificato dai test CTS in /autofillservice/cts/inline/
.
Nome del pacchetto
I dispositivi che eseguono Android 11 devono impostare config_servicesExtensionPackage
(in frameworks/base/core/res/res/values/config.xml
) sul nome del pacchetto ExtServices ( com.android.ext.services
). Questa modifica alla configurazione è verificata dal test CTS cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.
Limite del modulo
In Android 12, il codice del modulo ExtServices viene spostato da frameworks/base/apex/extservices
(questa è una sottodirectory di frameworks/base project
) e packages/modules/ExtServices
.
La nuova struttura del progetto per packages/modules/ExtServices
è la seguente:
-
apex/
(file daframeworks/base/apex/extservices
) -
java/
(file dapackages/modules/ExtServices/res
,packages/modules/ExtServices/src
,packages/modules/ExtServices/tests
e file per nuove funzionalità) -
jni/
(file per la nuova funzione) -
native/
(file per nuove funzionalità)
Il limite del modulo ExtServices è in packages/modules/ExtServices
. Android 11 sposta anche diverse classi di implementazione di TextClassifier
da frameworks/base/core/
.
Formato del modulo
In Android 11, il modulo ExtServices ( com.android.ext.services
) è in formato APEX . In Android 10, questo modulo è in formato APK.
Personalizzazione
In Android 11, puoi configurare un servizio di classificazione del testo personalizzato che chiama il classificatore di testo predefinito (tuttavia, questo non è consigliato). In Android 10, il modulo ExtServices non fornisce opzioni di personalizzazione.
Test
Android Compatibility Test Suite (CTS) verifica la funzionalità del modulo ExtServices eseguendo una serie completa di test CTS su ogni versione del modulo. Inoltre, la Mainline Test Suite (MTS) contiene anche diversi test ExtServices. L'elenco completo dei test ExtServices è il seguente:
Modifiche alla configurazione. Verificato dal test CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
. Verificato da CTS testcts/TextClassifierPolicyTest.java
.Compila automaticamente il suggerimento in linea. Verificato dai test CTS in
cts/inline/
.