IsolatedService

public abstract class IsolatedService
extends Service

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


OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) の呼び出しで ODP によって開始され、分離プロセスで実行されるサービスのベースクラス。このサービスは、呼び出し元のアプリの SurfaceView に表示するコンテンツを生成し、永続的な結果をオンデバイス ストレージに書き込むことができます。この結果は、クロスデバイス統計分析用のフェデレーション分析またはモデル トレーニング用のフェデレーション ラーニングで使用できます。クライアント アプリは OnDevicePersonalizationManager を使用して IsolatedService を操作します。

概要

継承される定数

パブリック コンストラクタ

IsolatedService()

パブリック メソッド

final EventUrlProvider getEventUrlProvider(RequestToken requestToken)

現在のリクエストの EventUrlProvider を返します。

final FederatedComputeScheduler getFederatedComputeScheduler(RequestToken requestToken)

現在のリクエストの FederatedComputeScheduler を返します。

final MutableKeyValueStore getLocalData(RequestToken requestToken)

LOCAL_DATA テーブルのデータ アクセス オブジェクトを返します。

final LogReader getLogReader(RequestToken requestToken)

IsolatedService によって読み取り可能な行へのアクセスを提供する REQUESTS テーブルと EVENTS テーブルの DAO を返します。

final KeyValueStore getRemoteData(RequestToken requestToken)

REMOTE_DATA テーブルのデータ アクセス オブジェクトを返します。

final UserData getUserData(RequestToken requestToken)

現在のリクエストのプラットフォーム提供の UserData を返します。

IBinder onBind(Intent intent)

IsolatedService へのバインディングを処理します。

void onCreate()

IsolatedService のバインダーを作成します。

abstract IsolatedWorker onRequest(RequestToken requestToken)

クライアント リクエストを処理する IsolatedWorker のインスタンスを返します。

継承されるメソッド

パブリック コンストラクタ

パブリック メソッド

getEventUrlProvider

public final EventUrlProvider getEventUrlProvider (RequestToken requestToken)

現在のリクエストの EventUrlProvider を返します。EventUrlProvider は、HTML に埋め込むことができる URL を提供します。HTML が WebView でレンダリングされると、プラットフォームはこれらの URL へのリクエストをインターセプトして IsolatedWorker#onEvent(EventInput, Consumer) を呼び出します。

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。この値が null になることはありません。

戻り値
EventUrlProvider イベント トラッキング URL を返す EventUrlProvider。この値を null にすることはできません。

関連項目:

getFederatedComputeScheduler

public final FederatedComputeScheduler getFederatedComputeScheduler (RequestToken requestToken)

現在のリクエストの FederatedComputeScheduler を返します。FederatedComputeScheduler は、連携コンピューティング ジョブのスケジュールとキャンセルに使用できます。連携コンピューティングには、フェデレーション ラーニングとフェデレーション分析ジョブが含まれます。

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。この値が null になることはありません。

戻り値
FederatedComputeScheduler 連携コンピューティング ジョブ スケジューラを返す FederatedComputeScheduler。この値が null になることはありません。

関連項目:

getLocalData

public final MutableKeyValueStore getLocalData (RequestToken requestToken)

LOCAL_DATA テーブルのデータ アクセス オブジェクトを返します。LOCAL_DATA テーブルは、サービスが任意のデータを保存するために使用できる永続的な Key-Value ストアです。このテーブルの内容は、分離プロセスで実行されているサービスにのみ表示され、デバイスの外部に送信することはできません。

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。この値が null になることはありません。

戻り値
MutableKeyValueStore LOCAL_DATA テーブルへのアクセスを提供する MutableKeyValueStore オブジェクト。返された MutableKeyValueStore のメソッドはブロッキング オペレーションであるため、メインスレッドやバインダー スレッドではなく、ワーカー スレッドから呼び出す必要があります。この値が null になることはありません。

関連項目:

getLogReader

public final LogReader getLogReader (RequestToken requestToken)

IsolatedService が読み取り可能な行へのアクセスを提供する、REQUESTS テーブルと EVENTS テーブルの DAO を返します。

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。この値が null になることはありません。

戻り値
LogReader REQUESTS テーブルと EVENTS テーブルへのアクセスを提供する LogReader オブジェクト。返された LogReader のメソッドはブロッキング オペレーションであるため、メインスレッドやバインダー スレッドではなく、ワーカー スレッドから呼び出す必要があります。この値が null になることはありません。

関連項目:

getRemoteData

public final KeyValueStore getRemoteData (RequestToken requestToken)

REMOTE_DATA テーブルのデータ アクセス オブジェクトを返します。REMOTE_DATA テーブルは読み取り専用の Key-Value ストアで、次の例に示すように、サービスの ODP マニフェストの タグで宣言されたエンドポイントから定期的にダウンロードされるデータが含まれています。

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

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。この値が null になることはありません。

戻り値
KeyValueStore REMOTE_DATA テーブルへのアクセスを可能にする KeyValueStore オブジェクト。返された KeyValueStore のメソッドはブロッキング オペレーションであるため、メインスレッドやバインダー スレッドではなく、ワーカー スレッドから呼び出す必要があります。この値が null になることはありません。

関連項目:

getUserData

public final UserData getUserData (RequestToken requestToken)

現在のリクエストのプラットフォーム提供の UserData を返します。

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。この値が null になることはありません。

戻り値
UserData UserData オブジェクト。この値は null であっても構いません。

関連項目:

onBind

public IBinder onBind (Intent intent)

IsolatedService へのバインディングを処理します。

パラメータ
intent Intent: Context.bindService で指定された、このサービスにバインドするために使用されたインテント。なお、その時点で Intent に含まれていたエクストラは、ここには表示されません。この値が null になることはありません。

戻り値
IBinder この値は null であっても構いません。

onCreate

public void onCreate ()

IsolatedService のバインダーを作成します。

onRequest

public abstract IsolatedWorker onRequest (RequestToken requestToken)

クライアント リクエストを処理する IsolatedWorker のインスタンスを返します。

パラメータ
requestToken RequestToken: サービスに対する現在のリクエストを識別する不透明トークン。リクエストごとの状態に依存するサービス メソッドに渡す必要があります。この値が null になることはありません。

戻り値
IsolatedWorker この値が null になることはありません。