Android.AdServices.OnDevicePersonalization Namespace

Provides the On-Device Personalization (ODP) APIs, which let an app run a service in an isolated process to personalize content with on-device data.

Classes

Name Description
AppInfo

Information about apps.

AppInfo.InterfaceConsts

Exposes constants from the Java interfaces implemented by AppInfo.

DownloadCompletedInput

The input data for IsolatedWorker#onDownloadCompleted(DownloadCompletedInput, android.os.OutcomeReceiver).

DownloadCompletedOutput

The result returned by IsolatedWorker#onDownloadCompleted(DownloadCompletedInput, android.os.OutcomeReceiver).

DownloadCompletedOutput.Builder

A builder for DownloadCompletedOutput

EventInput

The input data for IsolatedWorker#onEvent(EventInput, android.os.OutcomeReceiver).

EventLogRecord

Data to be logged in the EVENTS table.

EventLogRecord.Builder

A builder for EventLogRecord

EventLogRecord.InterfaceConsts

Exposes constants from the Java interfaces implemented by EventLogRecord.

EventOutput

The result returned by IsolatedWorker#onEvent(EventInput, android.os.OutcomeReceiver).

EventOutput.Builder

A builder for EventOutput

EventUrlProvider

Generates event tracking URLs for a request.

ExecuteInIsolatedServiceRequest

The request of OnDevicePersonalizationManager#executeInIsolatedService.

ExecuteInIsolatedServiceRequest.Builder

A builder for ExecuteInIsolatedServiceRequest

ExecuteInIsolatedServiceRequest.OutputSpec

The set of spec to indicate output of IsolatedService.

ExecuteInIsolatedServiceResponse

The response of OnDevicePersonalizationManager#executeInIsolatedService.

ExecuteInput

The input data for IsolatedWorker#onExecute(ExecuteInput, android.os.OutcomeReceiver).

ExecuteOutput

The result returned by IsolatedWorker#onExecute(ExecuteInput, android.os.OutcomeReceiver) in response to a call to OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) from a client app.

ExecuteOutput.Builder

A builder for ExecuteOutput

FederatedComputeInput

The input data for FederatedComputeScheduler#schedule.

FederatedComputeInput.Builder

A builder for FederatedComputeInput

FederatedComputeScheduler

Handles scheduling federated compute jobs.

FederatedComputeScheduler.Params

The parameters related to job scheduling.

FederatedComputeScheduleRequest

The input for FederatedComputeScheduler#schedule(FederatedComputeScheduleRequest, java.util.concurrent.Executor, android.os.OutcomeReceiver).

FederatedComputeScheduleResponse

The result returned by FederatedComputeScheduler#schedule(FederatedComputeScheduleRequest, java.util.concurrent.Executor, android.os.OutcomeReceiver) when successful.

InferenceInput

Contains all the information needed for a run of model inference.

InferenceInput.Builder

A builder for InferenceInput

InferenceInput.Params

Contains the parameters that identify and configure an on-device inference model.

InferenceInput.Params.Builder

A builder for Params

InferenceOutput

The result returned by ModelManager#run.

InferenceOutput.Builder

A builder for InferenceOutput

IsolatedService

Base class for services that are started by ODP on a call to OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) and run in an isolated process.

IsolatedServiceException

A class that an IsolatedService can use to signal a failure in handling a request and return an error to be logged and aggregated.

LogReader

An interface to a read logs from REQUESTS and EVENTS

ModelManager

Handles model inference and only support TFLite model inference now.

OnDevicePersonalizationException

Exception thrown by OnDevicePersonalization APIs.

OnDevicePersonalizationManager

OnDevicePersonalizationManager provides APIs for apps to load an IsolatedService in an isolated process and interact with it.

OnDevicePersonalizationManager.ExecuteResult

The result of a call to OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver)

RenderingConfig

Information returned by IsolatedWorker#onExecute(ExecuteInput, android.os.OutcomeReceiver) that is used in a subesequent call to IsolatedWorker#onRender(RenderInput, android.os.OutcomeReceiver) to identify the content to be displayed in a single android.view.View.

RenderingConfig.Builder

A builder for RenderingConfig

RenderingConfig.InterfaceConsts

Exposes constants from the Java interfaces implemented by RenderingConfig.

RenderInput

The input data for IsolatedWorker#onRender(RenderInput, android.os.OutcomeReceiver).

RenderOutput

The result returned by IsolatedWorker#onRender(RenderInput, android.os.OutcomeReceiver).

RenderOutput.Builder

A builder for RenderOutput

RequestLogRecord

Contains data that will be written to the REQUESTS table at the end of a call to IsolatedWorker#onExecute(ExecuteInput, android.os.OutcomeReceiver).

RequestLogRecord.Builder

A builder for RequestLogRecord

RequestLogRecord.InterfaceConsts

Exposes constants from the Java interfaces implemented by RequestLogRecord.

RequestToken

An opaque token that identifies the current request to an IsolatedService.

SurfacePackageToken

An opaque reference to content that can be displayed in a android.view.SurfaceView.

TrainingExampleRecord

One record of TrainingExamplesOutput.

TrainingExampleRecord.Builder

A builder for TrainingExampleRecord

TrainingExampleRecord.InterfaceConsts

Exposes constants from the Java interfaces implemented by TrainingExampleRecord.

TrainingExamplesInput

The input data for IsolatedWorker#onTrainingExamples.

TrainingExamplesOutput

The output data of IsolatedWorker#onTrainingExamples

TrainingExamplesOutput.Builder

A builder for TrainingExamplesOutput

TrainingInterval

Training interval settings required for federated computation jobs.

TrainingInterval.Builder

A builder for TrainingInterval

UserData

User data provided by the platform to an IsolatedService.

UserData.InterfaceConsts

Exposes constants from the Java interfaces implemented by UserData.

WebTriggerInput

The input data for IsolatedWorker#onWebTrigger(WebTriggerInput, android.os.OutcomeReceiver).

WebTriggerOutput

The result that should be returned by IsolatedWorker#onWebTrigger(WebTriggerInput, android.os.OutcomeReceiver).

WebTriggerOutput.Builder

A builder for WebTriggerOutput

Interfaces

Name Description
IIsolatedWorker

Interface with methods that need to be implemented to handle requests from the OnDevicePersonalization service to an IsolatedService.

IKeyValueStore

An interface to a read-only key-value store.

IMutableKeyValueStore

An interface to a read-write key-value store.

Enums

Name Description
DelegateType

Identifies the hardware delegate that runs an inference model.

ModelType

Identifies the format of an on-device inference model.

OnDevicePersonalizationError

Identifies why an On-Device Personalization operation failed.

OnDevicePersonalizationFeature

Identifies the availability status of an On-Device Personalization feature.

OutputType

Identifies the kind of result that the caller requests from an IsolatedService.

TrainingIntervalSchedulingMode

Identifies whether a federated compute training task runs one time or again at intervals.

Remarks

Apps use OnDevicePersonalizationManager to run an IsolatedService. The service creates an IIsolatedWorker for each request. The worker can generate content to display in the app, and it can write results to on-device storage for federated analytics and federated learning. The calling app cannot read the displayed content or the stored results directly. These APIs are deprecated in Android API level 37. See the Android source and the Android package reference.