IsolatedService

public abstract class IsolatedService
extends Service

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


Basisklasse für Dienste, die von ODP bei einem Aufruf von OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) gestartet und in einem isolierten Prozess ausgeführt werden. Der Dienst kann Inhalte erstellen, die in einer SurfaceView in einer aufrufenden App angezeigt werden, und persistente Ergebnisse in den On-Device-Speicher schreiben, die von Federated Analytics für geräteübergreifende statistische Analysen oder von Federated Learning für das Modelltraining verwendet werden können. Client-Apps verwenden OnDevicePersonalizationManager, um mit einer IsolatedService zu interagieren.

Zusammenfassung

Übernommene Konstanten

Öffentliche Konstruktoren

IsolatedService()

Öffentliche Methoden

final EventUrlProvider getEventUrlProvider(RequestToken requestToken)

Gibt eine EventUrlProvider für die aktuelle Anfrage zurück.

final FederatedComputeScheduler getFederatedComputeScheduler(RequestToken requestToken)

Gibt eine FederatedComputeScheduler für die aktuelle Anfrage zurück.

final MutableKeyValueStore getLocalData(RequestToken requestToken)

Gibt ein Data Access Object für die Tabelle „LOCAL_DATA“ zurück.

final LogReader getLogReader(RequestToken requestToken)

Gibt eine DAO für die Tabellen „REQUESTS“ und „EVENTS“ zurück, die Zugriff auf die Zeilen bietet, die vom IsolatedService gelesen werden können.

final KeyValueStore getRemoteData(RequestToken requestToken)

Gibt ein Data Access Object für die Tabelle REMOTE_DATA zurück.

final UserData getUserData(RequestToken requestToken)

Gibt die von der Plattform bereitgestellte UserData für die aktuelle Anfrage zurück.

IBinder onBind(Intent intent)

Verwaltet die Bindung an die IsolatedService.

void onCreate()

Erstellt einen Binder für eine IsolatedService.

abstract IsolatedWorker onRequest(RequestToken requestToken)

Gibt eine Instanz eines IsolatedWorker zurück, die Clientanfragen verarbeitet.

Übernommene Methoden

Öffentliche Konstruktoren

Isolierter Dienst

public IsolatedService ()

Öffentliche Methoden

getEventUrlProvider

public final EventUrlProvider getEventUrlProvider (RequestToken requestToken)

Gibt eine EventUrlProvider für die aktuelle Anfrage zurück. Die EventUrlProvider enthält URLs, die in HTML eingebettet werden können. Wenn das HTML in einer WebView gerendert wird, fängt die Plattform Anfragen an diese URLs ab und ruft IsolatedWorker#onEvent(EventInput, Consumer) auf.

Parameter
requestToken RequestToken: Ein undurchsichtiges Token, das die aktuelle Anfrage an den Dienst identifiziert. Dieser Wert darf nicht null sein.

Returns
EventUrlProvider Ein EventUrlProvider, das Ereignis-Tracking-URLs zurückgibt. Dieser Wert darf nicht null sein.

Weitere Informationen:

getFederatedComputeScheduler

public final FederatedComputeScheduler getFederatedComputeScheduler (RequestToken requestToken)

Gibt eine FederatedComputeScheduler für die aktuelle Anfrage zurück. Mit FederatedComputeScheduler können Sie föderierte Rechenjobs planen und abbrechen. Die föderierte Datenverarbeitung umfasst föderierte Lern- und föderierte Analysejobs.

Parameter
requestToken RequestToken: Ein undurchsichtiges Token, das die aktuelle Anfrage an den Dienst identifiziert. Dieser Wert darf nicht null sein.

Returns
FederatedComputeScheduler Ein FederatedComputeScheduler, das einen Job-Scheduler für föderierte Berechnungen zurückgibt. Dieser Wert darf nicht null sein.

Weitere Informationen:

getLocalData

public final MutableKeyValueStore getLocalData (RequestToken requestToken)

Gibt ein Data Access Object für die Tabelle „LOCAL_DATA“ zurück. Die Tabelle „LOCAL_DATA“ ist ein persistenter Schlüssel/Wert-Speicher, in dem der Dienst beliebige Daten speichern kann. Der Inhalt dieser Tabelle ist nur für den Dienst sichtbar, der in einem isolierten Prozess ausgeführt wird, und kann nicht außerhalb des Geräts gesendet werden.

Parameter
requestToken RequestToken: Ein undurchsichtiges Token, das die aktuelle Anfrage an den Dienst identifiziert. Dieser Wert darf nicht null sein.

Returns
MutableKeyValueStore Ein MutableKeyValueStore-Objekt, das Zugriff auf die Tabelle „LOCAL_DATA“ gewährt. Die Methoden in der zurückgegebenen MutableKeyValueStore sind blockierende Vorgänge und sollten aus einem Worker-Thread und nicht aus dem Haupt- oder Binder-Thread aufgerufen werden. Dieser Wert darf nicht null sein.

Weitere Informationen:

getLogReader

public final LogReader getLogReader (RequestToken requestToken)

Gibt eine DAO für die Tabellen „REQUESTS“ und „EVENTS“ zurück, die Zugriff auf die Zeilen bietet, die vom IsolatedService gelesen werden können.

Parameter
requestToken RequestToken: Ein undurchsichtiges Token, das die aktuelle Anfrage an den Dienst identifiziert. Dieser Wert darf nicht null sein.

Returns
LogReader Ein LogReader-Objekt, das Zugriff auf die Tabellen „REQUESTS“ und „EVENTS“ bietet. Die Methoden in der zurückgegebenen LogReader sind blockierende Vorgänge und sollten aus einem Worker-Thread und nicht aus dem Haupt- oder Binder-Thread aufgerufen werden. Dieser Wert darf nicht null sein.

Weitere Informationen

GetRemoteData

public final KeyValueStore getRemoteData (RequestToken requestToken)

Gibt ein Data Access Object für die Tabelle REMOTE_DATA zurück. Die Tabelle REMOTE_DATA ist ein schreibgeschützter Schlüssel/Wert-Speicher, der Daten enthält, die regelmäßig von einem Endpunkt heruntergeladen werden, der im -Tag im ODP-Manifest des Dienstes deklariert ist, wie im folgenden Beispiel gezeigt.

<!-- 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>
 

Parameter
requestToken RequestToken: Ein undurchsichtiges Token, das die aktuelle Anfrage an den Dienst identifiziert. Dieser Wert darf nicht null sein.

Returns
KeyValueStore Ein KeyValueStore-Objekt, das Zugriff auf die Tabelle REMOTE_DATA gewährt. Die Methoden in der zurückgegebenen KeyValueStore sind blockierende Vorgänge und sollten aus einem Worker-Thread und nicht aus dem Haupt- oder Binder-Thread aufgerufen werden. Dieser Wert darf nicht null sein.

Weitere Informationen:

getUserData

public final UserData getUserData (RequestToken requestToken)

Gibt die von der Plattform bereitgestellte UserData für die aktuelle Anfrage zurück.

Parameter
requestToken RequestToken: Ein undurchsichtiges Token, das die aktuelle Anfrage an den Dienst identifiziert. Dieser Wert darf nicht null sein.

Returns
UserData Ein UserData-Objekt. Dieser Wert kann null sein.

Weitere Informationen

onBind

public IBinder onBind (Intent intent)

Verwaltet die Bindung an die IsolatedService.

Parameter
intent Intent: Der Intent, der zur Bindung an diesen Dienst verwendet wurde und an Context.bindService übergeben wurde. Hinweis: Alle Extras, die zu diesem Zeitpunkt im Intent enthalten waren, werden hier nicht angezeigt. Dieser Wert darf nicht null sein.

Returns
IBinder Dieser Wert kann null sein.

onCreate

public void onCreate ()

Erstellt einen Binder für eine IsolatedService.

onRequest

public abstract IsolatedWorker onRequest (RequestToken requestToken)

Gibt eine Instanz eines IsolatedWorker zurück, die Clientanfragen verarbeitet.

Parameter
requestToken RequestToken: Ein undurchsichtiges Token, das die aktuelle Anfrage an den Dienst identifiziert und an Dienstmethoden übergeben werden muss, die vom Status pro Anfrage abhängen. Dieser Wert darf nicht null sein.

Returns
IsolatedWorker Dieser Wert darf nicht null sein.