Servizi esterni

Il modulo ExtServices aggiorna i componenti del framework per le funzionalità di base del sistema operativo, come il ranking delle notifiche, le strategie di corrispondenza automatica del testo, la cache di archiviazione, il watchdog dei pacchetti e altri servizi eseguiti continuamente. Questo modulo è aggiornabile, il che significa che può ricevere aggiornamenti alle funzionalità al di fuori del normale ciclo di rilascio di Android.

Componenti di servizio

Il modulo ExtServices contiene i seguenti servizi.

DisplayHashingService

In Android 12, DisplayHashingService viene utilizzato per generare un'istanza di DisplayHash per il buffer specificato. Viene utilizzato anche per verificare che il sistema abbia generato uno specifico hash di visualizzazione. Quando genera un hash di visualizzazione, il chiamante può specificare quali algoritmi di hashing supportati desidera utilizzare.

TextClassifierService

Il componente del servizio TextClassifierService supporta le TextClassifier API e le funzionalità di Android come la selezione di testo intelligente e i suggerimenti intelligenti nelle notifiche. Il modulo ExtServices contiene il classificatore di testo predefinito, che viene 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 mostrare 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 visualizzare il suggerimento. Questo comportamento viene 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 di configurazione viene verificata dal test CTS cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java.

Confine 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 da frameworks/base/apex/extservices)
  • java/ (file da packages/modules/ExtServices/res, packages/modules/ExtServices/src, packages/modules/ExtServices/tests, e file per la nuova funzionalità)
  • jni/ (file per la nuova funzionalità)
  • native/ (file per la nuova funzionalità)

Il confine del modulo ExtServices si trova in packages/modules/ExtServices. Android 11 sposta anche diverse classi di implementazione 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 del testo predefinito (questa operazione non è consigliata). In Android 10, il modulo ExtServices non offre opzioni di personalizzazione.

Test

Android Compatibility Test Suite (CTS) verifica la funzionalità dei moduli ExtServices eseguendo una serie completa di test CTS su ogni release del modulo. Inoltre, la Mainline Test Suite (MTS) contiene anche diversi test ExtServices. L'elenco completo dei test ExtServices è il seguente: