Il modulo ExtServices aggiorna i componenti del framework per la funzionalità di base del sistema operativo, come la classificazione delle notifiche, le strategie di corrispondenza del testo per la compilazione automatica, la cache di archiviazione, il watchdog dei pacchetti e altri servizi in esecuzione continua. Questo modulo è aggiornabile, il che significa che può ricevere aggiornamenti delle funzionalità al di fuori del normale ciclo di rilascio di Android.
Componenti di servizio
Il modulo ExtServices contiene i seguenti servizi.
DisplayHashingServicea partire da Android 12TextClassifierServicea partire da Android 11InlineSuggestionsRenderServicea partire da Android 11AutofillFieldClassificationServicea partire da Android 10NotificationAssistantServicea partire da Android 10ResolverRankerServicea partire da Android 10CacheQuotaServicea partire da Android 10
DisplayHashingService
In Android 12, DisplayHashingService viene utilizzato per
generare un'istanza di DisplayHash per il buffer specificato. Viene inoltre utilizzato
per verificare che un hash di visualizzazione specifico sia stato generato dal sistema. Quando
genera un hash di visualizzazione, il chiamante può specificare quale degli algoritmi di hashing
supportati vuole utilizzare.
TextClassifierService
Il componente di servizio
TextClassifierService
supporta le API TextClassifier
e le funzionalità di 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 ottenere un'istanza.
InlineSuggestionRenderService
Il componente di 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 compilazione automatica in linea.
L'implementazione predefinita per questo servizio di rendering chiama
androidx.autofill.inline.Renderer
per eseguire il rendering del suggerimento. Questo comportamento è verificato dai test CTS in
/autofillservice/cts/inline/.
Nome pacchetto
I dispositivi con 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 della configurazione viene verificata dal
test CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java.
Confine 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/testse file per la nuova funzionalità)jni/(file per la nuova funzionalità)native/(file per la nuova funzionalità)
Il limite del modulo ExtServices è in packages/modules/ExtServices. Android
11 sposta anche diverse classi di implementazione TextClassifier
fuori 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 del testo predefinito (tuttavia, questa operazione non è consigliata). In Android 10, il modulo ExtServices non fornisce opzioni di personalizzazione.
Test
La suite di test di compatibilità (CTS) di Android verifica la funzionalità del modulo ExtServices eseguendo un insieme completo di test CTS su ogni release del modulo. Inoltre, la Mainline Test Suite (MTS) contiene anche diversi test ExtServices. Di seguito è riportato l'elenco completo dei test ExtServices:
Modifiche alla configurazione. Verificato dal test CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java.TextClassifierconfig. Verificato dal test CTScts/TextClassifierPolicyTest.java.Suggerimento in linea di Compilazione automatica. Verificato dai test CTS in
cts/inline/.