IsolatedService

public abstract class IsolatedService
extends Service

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


ODP 在调用 时启动的服务的基类 OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) 并在一个可用区中 流程。该服务可以生成 在通话应用中实现 SurfaceView,并将持久性结果写入设备端 存储空间,可供 Federated Analytics 用于跨设备统计分析或 用于模型训练。 客户端应用使用 OnDevicePersonalizationManagerIsolatedService 交互。

摘要

继承的常量

公共构造函数

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)

为 REQUESTS 和 EVENTS 表返回一个 DAO,提供 对 IsolatedService 可读取的行提供的访问权限。

final KeyValueStore getRemoteData(RequestToken requestToken)

返回 REMOTE_DATA 表的数据访问对象。

final UserData getUserData(RequestToken requestToken)

返回平台为当前请求提供的 UserData

IBinder onBind(Intent intent)

处理与 IsolatedService 的绑定。

void onCreate()

IsolatedService 创建 binder。

abstract IsolatedWorker onRequest(RequestToken requestToken)

返回处理客户端请求的 IsolatedWorker 实例。

继承的方法

公共构造函数

IsolatedService

public IsolatedService ()

公共方法

getEventUrlProvider

public final EventUrlProvider getEventUrlProvider (RequestToken requestToken)

返回当前请求的 EventUrlProviderEventUrlProvider 提供可嵌入 HTML 的网址。当 HTML 以 WebView,平台会拦截对这些网址的请求并调用 IsolatedWorker#onEvent(EventInput, Consumer)

参数
requestToken RequestToken:一个不透明令牌,用于标识服务的当前请求。 此值不能为 null

返回
EventUrlProvider 返回事件跟踪网址的 EventUrlProvider。 此值不能为 null

getFederatedComputeScheduler

public final FederatedComputeScheduler getFederatedComputeScheduler (RequestToken requestToken)

返回当前请求的 FederatedComputeSchedulerFederatedComputeScheduler 可用于安排和取消联合计算作业。通过 联合计算包括联邦学习和联邦分析作业。

参数
requestToken RequestToken:一个不透明令牌,用于标识服务的当前请求。 此值不能为 null

返回
FederatedComputeScheduler 返回联合计算作业的 FederatedComputeScheduler 调度器。 此值不能为 null

getLocalData

public final MutableKeyValueStore getLocalData (RequestToken requestToken)

返回 LOCAL_DATA 表的数据访问对象。LOCAL_DATA 表是 键值对存储区,服务可以使用它来存储任何数据。此表格的内容是 仅对在隔离进程中运行的服务可见,并且不能发送到 设备。

参数
requestToken RequestToken:一个不透明令牌,用于标识服务的当前请求。 此值不能为 null

返回
MutableKeyValueStore 提供对 LOCAL_DATA 表的访问权限的 MutableKeyValueStore 对象。 返回的 MutableKeyValueStore 中的方法是阻塞操作, 应从工作线程调用,而不是从主线程或 binder 线程调用。 此值不能为 null

getLogReader

public final LogReader getLogReader (RequestToken requestToken)

为 REQUESTS 和 EVENTS 表返回一个 DAO,提供 对 IsolatedService 可读取的行提供的访问权限。

参数
requestToken RequestToken:一个不透明令牌,用于标识服务的当前请求。 此值不能为 null

返回
LogReader 一个 LogReader 对象,可提供对 REQUESTS 和 EVENTS 表的访问权限。 返回的 LogReader 中的方法是阻塞操作, 应从工作线程调用,而不是从主线程或 binder 线程调用。 此值不能为 null

getRemoteData

public final KeyValueStore getRemoteData (RequestToken requestToken)

返回 REMOTE_DATA 表的数据访问对象。REMOTE_DATA 表是只读表 键值对存储区,其中包含从声明了 标记内,如以下示例中所示。

<!-- 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 中的方法都是阻塞操作,应 从工作器线程而非主线程或 binder 线程调用。 此值不能为 null

getUserData

public final UserData getUserData (RequestToken requestToken)

返回平台为当前请求提供的 UserData

参数
requestToken RequestToken:一个不透明令牌,用于标识服务的当前请求。 此值不能为 null

返回
UserData 一个 UserData 对象。 此值可以为 null

onBind

public IBinder onBind (Intent intent)

处理与 IsolatedService 的绑定。

参数
intent Intent:用于绑定到此服务的 intent,提供给 Context.bindService。请注意, 在此处会显示。 此值不能为 null

返回
IBinder 此值可以为 null

onCreate

public void onCreate ()

IsolatedService 创建 binder。

onRequest

public abstract IsolatedWorker onRequest (RequestToken requestToken)

返回处理客户端请求的 IsolatedWorker 实例。

参数
requestToken RequestToken:一个不透明令牌,用于标识 传递给依赖于每个请求状态的服务方法。 此值不能为 null

返回
IsolatedWorker 此值不能为 null