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 用于跨设备统计分析或 用于模型训练。 客户端应用使用 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)

为 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)

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

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

返回
EventUrlProvider 返回事件跟踪网址的 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 表是 键值对存储区,服务可以使用它来存储任何数据。此表格的内容是 仅对在隔离进程中运行的服务可见,并且不能发送到 设备。

参数
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。