Servizio isolato

public abstract class IsolatedService
extends Service

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service
         ↳ android.adservices.ondevicepersonalization.IsolatedService


Classe base per i servizi avviati da ODP su una chiamata a OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) ed eseguiti in un processo isolato. Il servizio può produrre contenuti da visualizzare in un SurfaceView in un'app per chiamate e scrivere risultati persistenti nello spazio di archiviazione on-device, che può essere utilizzato da Federated Analytics per l'analisi statistica cross-device o da Federated Learning per l'addestramento del modello. Le app client utilizzano OnDevicePersonalizationManager per interagire con un IsolatedService.

Riepilogo

Costanti ereditate

Costruttori pubblici

IsolatedService()

Metodi pubblici

final EventUrlProvider getEventUrlProvider(RequestToken requestToken)

Restituisce un valore EventUrlProvider per la richiesta corrente.

final FederatedComputeScheduler getFederatedComputeScheduler(RequestToken requestToken)

Restituisce un valore FederatedComputeScheduler per la richiesta corrente.

final MutableKeyValueStore getLocalData(RequestToken requestToken)

Restituisce un oggetto di accesso ai dati per la tabella LOCAL_DATA.

final LogReader getLogReader(RequestToken requestToken)

Restituisce un DAO per le tabelle REQUESTS ed EVENTS che forniscono l'accesso alle righe leggibili da IsolatedService.

final KeyValueStore getRemoteData(RequestToken requestToken)

Restituisce un oggetto di accesso ai dati per la tabella REMOTE_DATA.

final UserData getUserData(RequestToken requestToken)

Restituisce il valore UserData fornito dalla piattaforma per la richiesta corrente.

IBinder onBind(Intent intent)

Gestisce l'associazione a IsolatedService.

void onCreate()

Crea un binder per un IsolatedService.

abstract IsolatedWorker onRequest(RequestToken requestToken)

Restituisci un'istanza di IsolatedWorker che gestisce le richieste del client.

Metodi ereditati

Costruttori pubblici

Servizio isolato

public IsolatedService ()

Metodi pubblici

getEventUrlProvider

public final EventUrlProvider getEventUrlProvider (RequestToken requestToken)

Restituisce un valore EventUrlProvider per la richiesta corrente. L'EventUrlProvider fornisce URL che possono essere incorporati nel codice HTML. Quando il codice HTML viene visualizzato in un WebView, la piattaforma intercetta le richieste a questi URL e richiama IsolatedWorker#onEvent(EventInput, Consumer).

Parametri
requestToken RequestToken: un token opaco che identifica la richiesta corrente al servizio. Questo valore non può essere null.

Ritorni
EventUrlProvider Un EventUrlProvider che restituisce gli URL di monitoraggio eventi. Questo valore non può essere null.

getFederatedComputeScheduler

public final FederatedComputeScheduler getFederatedComputeScheduler (RequestToken requestToken)

Restituisce un valore FederatedComputeScheduler per la richiesta corrente. FederatedComputeScheduler può essere utilizzato per pianificare e annullare i job di calcolo federato. Il calcolo federato include l'apprendimento federato e i job di analisi federati.

Parametri
requestToken RequestToken: un token opaco che identifica la richiesta corrente al servizio. Questo valore non può essere null.

Ritorni
FederatedComputeScheduler Un FederatedComputeScheduler che restituisce uno scheduler di job di calcolo federato. Questo valore non può essere null.

getLocalData

public final MutableKeyValueStore getLocalData (RequestToken requestToken)

Restituisce un oggetto di accesso ai dati per la tabella LOCAL_DATA. La tabella LOCAL_DATA è un archivio chiave-valore permanente che il servizio può utilizzare per archiviare qualsiasi dato. I contenuti di questa tabella sono visibili solo al servizio in esecuzione in un processo isolato e non possono essere inviati all'esterno del dispositivo.

Parametri
requestToken RequestToken: un token opaco che identifica la richiesta corrente al servizio. Questo valore non può essere null.

Ritorni
MutableKeyValueStore Un oggetto MutableKeyValueStore che fornisce l'accesso alla tabella LOCAL_DATA. I metodi nell'oggetto MutableKeyValueStore restituito stanno bloccando le operazioni e dovrebbero essere richiamati da un thread di lavoro e non dal thread principale o da un thread binder. Questo valore non può essere null.

getLogReader

public final LogReader getLogReader (RequestToken requestToken)

Restituisce un DAO per le tabelle REQUESTS ed EVENTS che forniscono l'accesso alle righe leggibili da IsolatedService.

Parametri
requestToken RequestToken: un token opaco che identifica la richiesta corrente al servizio. Questo valore non può essere null.

Ritorni
LogReader Un oggetto LogReader che fornisce l'accesso alle tabelle REQUESTS ed EVENTS. I metodi nell'oggetto LogReader restituito stanno bloccando le operazioni e dovrebbero essere richiamati da un thread di lavoro e non dal thread principale o da un thread binder. Questo valore non può essere null.

getRemoteData

public final KeyValueStore getRemoteData (RequestToken requestToken)

Restituisce un oggetto di accesso ai dati per la tabella REMOTE_DATA. La tabella REMOTE_DATA è un archivio chiave-valore di sola lettura che contiene dati scaricati periodicamente da un endpoint dichiarato nel tag nel manifest ODP del servizio, come mostrato nell'esempio seguente.

<!-- Contents of res/xml/OdpSettings.xml -->
 <on-device-personalization>
 <!-- Name of the service subclass -->
 <service "com.example.odpsample.SampleService">
   <!-- If this tag is present, ODP will periodically poll this URL and
    download content to populate REMOTE_DATA. Adopters that do not need to
    download content from their servers can skip this tag. -->
   <download-settings url="https://example.com/get" />
 </service>
 </on-device-personalization>
 

Parametri
requestToken RequestToken: un token opaco che identifica la richiesta corrente al servizio. Questo valore non può essere null.

Ritorni
KeyValueStore Un oggetto KeyValueStore che fornisce l'accesso alla tabella REMOTE_DATA. I metodi nell'oggetto KeyValueStore restituito stanno bloccando le operazioni e dovrebbero essere richiamati da un thread di lavoro e non dal thread principale o da un thread di binder. Questo valore non può essere null.

getUserData

public final UserData getUserData (RequestToken requestToken)

Restituisce il valore UserData fornito dalla piattaforma per la richiesta corrente.

Parametri
requestToken RequestToken: un token opaco che identifica la richiesta corrente al servizio. Questo valore non può essere null.

Ritorni
UserData Un oggetto UserData. Questo valore può essere null.

onBind

public IBinder onBind (Intent intent)

Gestisce l'associazione a IsolatedService.

Parametri
intent Intent: l'intent utilizzato per l'associazione a questo servizio, come specificato a Context.bindService. Tieni presente che eventuali extra inclusi nell'intent in quel momento non saranno visualizzati qui. Questo valore non può essere null.

Ritorni
IBinder Questo valore può essere null.

onCreate

public void onCreate ()

Crea un binder per un IsolatedService.

su richiesta

public abstract IsolatedWorker onRequest (RequestToken requestToken)

Restituisci un'istanza di IsolatedWorker che gestisce le richieste del client.

Parametri
requestToken RequestToken: un token opaco che identifica la richiesta corrente al servizio che deve essere passata ai metodi del servizio che dipendono dallo stato della richiesta. Questo valore non può essere null.

Ritorni
IsolatedWorker Questo valore non può essere null.