1// Signature format: 2.0 2package android.adservices.ondevicepersonalization { 3 4 public final class AppInfo implements android.os.Parcelable { 5 method public int describeContents(); 6 method @NonNull public boolean isInstalled(); 7 method public void writeToParcel(@NonNull android.os.Parcel, int); 8 field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.AppInfo> CREATOR; 9 } 10 11 public final class DownloadCompletedInput { 12 method @NonNull public android.adservices.ondevicepersonalization.KeyValueStore getDownloadedContents(); 13 } 14 15 public final class DownloadCompletedOutput { 16 method @NonNull public java.util.List<java.lang.String> getRetainedKeys(); 17 } 18 19 public static final class DownloadCompletedOutput.Builder { 20 ctor public DownloadCompletedOutput.Builder(); 21 method @NonNull public android.adservices.ondevicepersonalization.DownloadCompletedOutput.Builder addRetainedKey(@NonNull String); 22 method @NonNull public android.adservices.ondevicepersonalization.DownloadCompletedOutput build(); 23 method @NonNull public android.adservices.ondevicepersonalization.DownloadCompletedOutput.Builder setRetainedKeys(@NonNull java.util.List<java.lang.String>); 24 } 25 26 public final class EventInput { 27 method @NonNull public android.os.PersistableBundle getParameters(); 28 method @Nullable public android.adservices.ondevicepersonalization.RequestLogRecord getRequestLogRecord(); 29 } 30 31 public final class EventLogRecord implements android.os.Parcelable { 32 method public int describeContents(); 33 method @Nullable public android.content.ContentValues getData(); 34 method @Nullable public android.adservices.ondevicepersonalization.RequestLogRecord getRequestLogRecord(); 35 method @IntRange(from=0) public int getRowIndex(); 36 method @NonNull public java.time.Instant getTime(); 37 method @IntRange(from=1, to=127) public int getType(); 38 method public void writeToParcel(@NonNull android.os.Parcel, int); 39 field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.EventLogRecord> CREATOR; 40 } 41 42 public static final class EventLogRecord.Builder { 43 ctor public EventLogRecord.Builder(); 44 method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord build(); 45 method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord.Builder setData(@Nullable android.content.ContentValues); 46 method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord.Builder setRequestLogRecord(@Nullable android.adservices.ondevicepersonalization.RequestLogRecord); 47 method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord.Builder setRowIndex(@IntRange(from=0) int); 48 method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord.Builder setType(@IntRange(from=1, to=127) int); 49 } 50 51 public final class EventOutput { 52 method @Nullable public android.adservices.ondevicepersonalization.EventLogRecord getEventLogRecord(); 53 } 54 55 public static final class EventOutput.Builder { 56 ctor public EventOutput.Builder(); 57 method @NonNull public android.adservices.ondevicepersonalization.EventOutput build(); 58 method @NonNull public android.adservices.ondevicepersonalization.EventOutput.Builder setEventLogRecord(@Nullable android.adservices.ondevicepersonalization.EventLogRecord); 59 } 60 61 public class EventUrlProvider { 62 method @NonNull @WorkerThread public android.net.Uri createEventTrackingUrlWithRedirect(@NonNull android.os.PersistableBundle, @Nullable android.net.Uri); 63 method @NonNull @WorkerThread public android.net.Uri createEventTrackingUrlWithResponse(@NonNull android.os.PersistableBundle, @Nullable byte[], @Nullable String); 64 } 65 66 public final class ExecuteInput { 67 method @NonNull public String getAppPackageName(); 68 method @NonNull public android.os.PersistableBundle getAppParams(); 69 } 70 71 public final class ExecuteOutput { 72 method @NonNull public java.util.List<android.adservices.ondevicepersonalization.EventLogRecord> getEventLogRecords(); 73 method @Nullable public byte[] getOutputData(); 74 method @Nullable public android.adservices.ondevicepersonalization.RenderingConfig getRenderingConfig(); 75 method @Nullable public android.adservices.ondevicepersonalization.RequestLogRecord getRequestLogRecord(); 76 } 77 78 public static final class ExecuteOutput.Builder { 79 ctor public ExecuteOutput.Builder(); 80 method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder addEventLogRecord(@NonNull android.adservices.ondevicepersonalization.EventLogRecord); 81 method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput build(); 82 method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder setEventLogRecords(@NonNull java.util.List<android.adservices.ondevicepersonalization.EventLogRecord>); 83 method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder setOutputData(@Nullable byte...); 84 method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder setRenderingConfig(@Nullable android.adservices.ondevicepersonalization.RenderingConfig); 85 method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder setRequestLogRecord(@Nullable android.adservices.ondevicepersonalization.RequestLogRecord); 86 } 87 88 public final class FederatedComputeInput { 89 method @NonNull public String getPopulationName(); 90 } 91 92 public static final class FederatedComputeInput.Builder { 93 ctor public FederatedComputeInput.Builder(); 94 method @NonNull public android.adservices.ondevicepersonalization.FederatedComputeInput build(); 95 method @NonNull public android.adservices.ondevicepersonalization.FederatedComputeInput.Builder setPopulationName(@NonNull String); 96 } 97 98 public class FederatedComputeScheduler { 99 method @WorkerThread public void cancel(@NonNull android.adservices.ondevicepersonalization.FederatedComputeInput); 100 method @WorkerThread public void schedule(@NonNull android.adservices.ondevicepersonalization.FederatedComputeScheduler.Params, @NonNull android.adservices.ondevicepersonalization.FederatedComputeInput); 101 } 102 103 public static class FederatedComputeScheduler.Params { 104 ctor public FederatedComputeScheduler.Params(@NonNull android.adservices.ondevicepersonalization.TrainingInterval); 105 method @NonNull public android.adservices.ondevicepersonalization.TrainingInterval getTrainingInterval(); 106 } 107 108 public final class InferenceInput { 109 method public int getBatchSize(); 110 method @NonNull public android.adservices.ondevicepersonalization.InferenceOutput getExpectedOutputStructure(); 111 method @NonNull public Object[] getInputData(); 112 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params getParams(); 113 } 114 115 public static final class InferenceInput.Builder { 116 ctor public InferenceInput.Builder(@NonNull android.adservices.ondevicepersonalization.InferenceInput.Params, @NonNull Object[], @NonNull android.adservices.ondevicepersonalization.InferenceOutput); 117 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput build(); 118 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Builder setBatchSize(int); 119 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Builder setExpectedOutputStructure(@NonNull android.adservices.ondevicepersonalization.InferenceOutput); 120 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Builder setInputData(@NonNull java.lang.Object...); 121 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Builder setParams(@NonNull android.adservices.ondevicepersonalization.InferenceInput.Params); 122 } 123 124 public static class InferenceInput.Params { 125 method public int getDelegateType(); 126 method @NonNull public android.adservices.ondevicepersonalization.KeyValueStore getKeyValueStore(); 127 method @NonNull public String getModelKey(); 128 method public int getModelType(); 129 method @IntRange(from=1) public int getRecommendedNumThreads(); 130 field public static final int DELEGATE_CPU = 1; // 0x1 131 field public static final int MODEL_TYPE_TENSORFLOW_LITE = 1; // 0x1 132 } 133 134 public static final class InferenceInput.Params.Builder { 135 ctor public InferenceInput.Params.Builder(@NonNull android.adservices.ondevicepersonalization.KeyValueStore, @NonNull String); 136 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params build(); 137 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setDelegateType(int); 138 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setKeyValueStore(@NonNull android.adservices.ondevicepersonalization.KeyValueStore); 139 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setModelKey(@NonNull String); 140 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setModelType(int); 141 method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setRecommendedNumThreads(@IntRange(from=1) int); 142 } 143 144 public final class InferenceOutput { 145 method @NonNull public java.util.Map<java.lang.Integer,java.lang.Object> getDataOutputs(); 146 } 147 148 public static final class InferenceOutput.Builder { 149 ctor public InferenceOutput.Builder(); 150 method @NonNull public android.adservices.ondevicepersonalization.InferenceOutput.Builder addDataOutput(int, @NonNull Object); 151 method @NonNull public android.adservices.ondevicepersonalization.InferenceOutput build(); 152 method @NonNull public android.adservices.ondevicepersonalization.InferenceOutput.Builder setDataOutputs(@NonNull java.util.Map<java.lang.Integer,java.lang.Object>); 153 } 154 155 public abstract class IsolatedService extends android.app.Service { 156 ctor public IsolatedService(); 157 method @NonNull public final android.adservices.ondevicepersonalization.EventUrlProvider getEventUrlProvider(@NonNull android.adservices.ondevicepersonalization.RequestToken); 158 method @NonNull public final android.adservices.ondevicepersonalization.FederatedComputeScheduler getFederatedComputeScheduler(@NonNull android.adservices.ondevicepersonalization.RequestToken); 159 method @NonNull public final android.adservices.ondevicepersonalization.MutableKeyValueStore getLocalData(@NonNull android.adservices.ondevicepersonalization.RequestToken); 160 method @NonNull public final android.adservices.ondevicepersonalization.LogReader getLogReader(@NonNull android.adservices.ondevicepersonalization.RequestToken); 161 method @NonNull public final android.adservices.ondevicepersonalization.ModelManager getModelManager(@NonNull android.adservices.ondevicepersonalization.RequestToken); 162 method @NonNull public final android.adservices.ondevicepersonalization.KeyValueStore getRemoteData(@NonNull android.adservices.ondevicepersonalization.RequestToken); 163 method @Nullable public final android.adservices.ondevicepersonalization.UserData getUserData(@NonNull android.adservices.ondevicepersonalization.RequestToken); 164 method @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent); 165 method @NonNull public abstract android.adservices.ondevicepersonalization.IsolatedWorker onRequest(@NonNull android.adservices.ondevicepersonalization.RequestToken); 166 } 167 168 public final class IsolatedServiceException extends java.lang.Exception { 169 ctor public IsolatedServiceException(@IntRange(from=1, to=127) int); 170 } 171 172 public interface IsolatedWorker { 173 method public default void onDownloadCompleted(@NonNull android.adservices.ondevicepersonalization.DownloadCompletedInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.DownloadCompletedOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>); 174 method public default void onEvent(@NonNull android.adservices.ondevicepersonalization.EventInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.EventOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>); 175 method public default void onExecute(@NonNull android.adservices.ondevicepersonalization.ExecuteInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.ExecuteOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>); 176 method public default void onRender(@NonNull android.adservices.ondevicepersonalization.RenderInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.RenderOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>); 177 method public default void onTrainingExamples(@NonNull android.adservices.ondevicepersonalization.TrainingExamplesInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.TrainingExamplesOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>); 178 method public default void onWebTrigger(@NonNull android.adservices.ondevicepersonalization.WebTriggerInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.WebTriggerOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>); 179 } 180 181 public interface KeyValueStore { 182 method @Nullable @WorkerThread public byte[] get(@NonNull String); 183 method @NonNull @WorkerThread public java.util.Set<java.lang.String> keySet(); 184 } 185 186 public class LogReader { 187 method @NonNull @WorkerThread public java.util.List<android.adservices.ondevicepersonalization.EventLogRecord> getJoinedEvents(@NonNull java.time.Instant, @NonNull java.time.Instant); 188 method @NonNull @WorkerThread public java.util.List<android.adservices.ondevicepersonalization.RequestLogRecord> getRequests(@NonNull java.time.Instant, @NonNull java.time.Instant); 189 } 190 191 public class ModelManager { 192 method @WorkerThread public void run(@NonNull android.adservices.ondevicepersonalization.InferenceInput, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.InferenceOutput,java.lang.Exception>); 193 } 194 195 public interface MutableKeyValueStore extends android.adservices.ondevicepersonalization.KeyValueStore { 196 method @Nullable @WorkerThread public byte[] put(@NonNull String, @NonNull byte[]); 197 method @Nullable @WorkerThread public byte[] remove(@NonNull String); 198 } 199 200 public class OnDevicePersonalizationException extends java.lang.Exception { 201 method public int getErrorCode(); 202 field public static final int ERROR_ISOLATED_SERVICE_FAILED = 1; // 0x1 203 field public static final int ERROR_PERSONALIZATION_DISABLED = 2; // 0x2 204 } 205 206 public class OnDevicePersonalizationManager { 207 method public void execute(@NonNull android.content.ComponentName, @NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.OnDevicePersonalizationManager.ExecuteResult,java.lang.Exception>); 208 method public void requestSurfacePackage(@NonNull android.adservices.ondevicepersonalization.SurfacePackageToken, @NonNull android.os.IBinder, int, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.view.SurfaceControlViewHost.SurfacePackage,java.lang.Exception>); 209 } 210 211 public static class OnDevicePersonalizationManager.ExecuteResult { 212 method @Nullable public byte[] getOutputData(); 213 method @Nullable public android.adservices.ondevicepersonalization.SurfacePackageToken getSurfacePackageToken(); 214 } 215 216 public final class RenderInput { 217 method public int getHeight(); 218 method @Nullable public android.adservices.ondevicepersonalization.RenderingConfig getRenderingConfig(); 219 method public int getWidth(); 220 } 221 222 public final class RenderOutput { 223 method @Nullable public String getContent(); 224 method @Nullable public String getTemplateId(); 225 method @NonNull public android.os.PersistableBundle getTemplateParams(); 226 } 227 228 public static final class RenderOutput.Builder { 229 ctor public RenderOutput.Builder(); 230 method @NonNull public android.adservices.ondevicepersonalization.RenderOutput build(); 231 method @NonNull public android.adservices.ondevicepersonalization.RenderOutput.Builder setContent(@Nullable String); 232 method @NonNull public android.adservices.ondevicepersonalization.RenderOutput.Builder setTemplateId(@Nullable String); 233 method @NonNull public android.adservices.ondevicepersonalization.RenderOutput.Builder setTemplateParams(@NonNull android.os.PersistableBundle); 234 } 235 236 public final class RenderingConfig implements android.os.Parcelable { 237 method public int describeContents(); 238 method @NonNull public java.util.List<java.lang.String> getKeys(); 239 method public void writeToParcel(@NonNull android.os.Parcel, int); 240 field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.RenderingConfig> CREATOR; 241 } 242 243 public static final class RenderingConfig.Builder { 244 ctor public RenderingConfig.Builder(); 245 method @NonNull public android.adservices.ondevicepersonalization.RenderingConfig.Builder addKey(@NonNull String); 246 method @NonNull public android.adservices.ondevicepersonalization.RenderingConfig build(); 247 method @NonNull public android.adservices.ondevicepersonalization.RenderingConfig.Builder setKeys(@NonNull java.util.List<java.lang.String>); 248 } 249 250 public final class RequestLogRecord implements android.os.Parcelable { 251 method public int describeContents(); 252 method @NonNull public java.util.List<android.content.ContentValues> getRows(); 253 method @NonNull public java.time.Instant getTime(); 254 method public void writeToParcel(@NonNull android.os.Parcel, int); 255 field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.RequestLogRecord> CREATOR; 256 } 257 258 public static final class RequestLogRecord.Builder { 259 ctor public RequestLogRecord.Builder(); 260 method @NonNull public android.adservices.ondevicepersonalization.RequestLogRecord.Builder addRow(@NonNull android.content.ContentValues); 261 method @NonNull public android.adservices.ondevicepersonalization.RequestLogRecord build(); 262 method @NonNull public android.adservices.ondevicepersonalization.RequestLogRecord.Builder setRows(@NonNull java.util.List<android.content.ContentValues>); 263 } 264 265 public class RequestToken { 266 } 267 268 public class SurfacePackageToken { 269 } 270 271 public final class TrainingExampleRecord implements android.os.Parcelable { 272 method public int describeContents(); 273 method @Nullable public byte[] getResumptionToken(); 274 method @Nullable public byte[] getTrainingExample(); 275 method public void writeToParcel(@NonNull android.os.Parcel, int); 276 field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.TrainingExampleRecord> CREATOR; 277 } 278 279 public static final class TrainingExampleRecord.Builder { 280 ctor public TrainingExampleRecord.Builder(); 281 method @NonNull public android.adservices.ondevicepersonalization.TrainingExampleRecord build(); 282 method @NonNull public android.adservices.ondevicepersonalization.TrainingExampleRecord.Builder setResumptionToken(@Nullable byte...); 283 method @NonNull public android.adservices.ondevicepersonalization.TrainingExampleRecord.Builder setTrainingExample(@Nullable byte...); 284 } 285 286 public final class TrainingExamplesInput { 287 method @NonNull public String getPopulationName(); 288 method @Nullable public byte[] getResumptionToken(); 289 method @NonNull public String getTaskName(); 290 } 291 292 public final class TrainingExamplesOutput { 293 method @NonNull public java.util.List<android.adservices.ondevicepersonalization.TrainingExampleRecord> getTrainingExampleRecords(); 294 } 295 296 public static final class TrainingExamplesOutput.Builder { 297 ctor public TrainingExamplesOutput.Builder(); 298 method @NonNull public android.adservices.ondevicepersonalization.TrainingExamplesOutput.Builder addTrainingExampleRecord(@NonNull android.adservices.ondevicepersonalization.TrainingExampleRecord); 299 method @NonNull public android.adservices.ondevicepersonalization.TrainingExamplesOutput build(); 300 method @NonNull public android.adservices.ondevicepersonalization.TrainingExamplesOutput.Builder setTrainingExampleRecords(@NonNull java.util.List<android.adservices.ondevicepersonalization.TrainingExampleRecord>); 301 } 302 303 public final class TrainingInterval { 304 method @NonNull public java.time.Duration getMinimumInterval(); 305 method public int getSchedulingMode(); 306 field public static final int SCHEDULING_MODE_ONE_TIME = 1; // 0x1 307 field public static final int SCHEDULING_MODE_RECURRENT = 2; // 0x2 308 } 309 310 public static final class TrainingInterval.Builder { 311 ctor public TrainingInterval.Builder(); 312 method @NonNull public android.adservices.ondevicepersonalization.TrainingInterval build(); 313 method @NonNull public android.adservices.ondevicepersonalization.TrainingInterval.Builder setMinimumInterval(@NonNull java.time.Duration); 314 method @NonNull public android.adservices.ondevicepersonalization.TrainingInterval.Builder setSchedulingMode(int); 315 } 316 317 public final class UserData implements android.os.Parcelable { 318 method public int describeContents(); 319 method @NonNull public java.util.Map<java.lang.String,android.adservices.ondevicepersonalization.AppInfo> getAppInfos(); 320 method @IntRange(from=0) public long getAvailableStorageBytes(); 321 method @IntRange(from=0, to=100) public int getBatteryPercentage(); 322 method @NonNull public String getCarrier(); 323 method public int getDataNetworkType(); 324 method @Nullable public android.net.NetworkCapabilities getNetworkCapabilities(); 325 method public int getOrientation(); 326 method @NonNull public java.time.Duration getTimezoneUtcOffset(); 327 method public void writeToParcel(@NonNull android.os.Parcel, int); 328 field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.UserData> CREATOR; 329 } 330 331 public final class WebTriggerInput { 332 method @NonNull public String getAppPackageName(); 333 method @NonNull public byte[] getData(); 334 method @NonNull public android.net.Uri getDestinationUrl(); 335 } 336 337 public final class WebTriggerOutput { 338 method @NonNull public java.util.List<android.adservices.ondevicepersonalization.EventLogRecord> getEventLogRecords(); 339 method @Nullable public android.adservices.ondevicepersonalization.RequestLogRecord getRequestLogRecord(); 340 } 341 342 public static final class WebTriggerOutput.Builder { 343 ctor public WebTriggerOutput.Builder(); 344 method @NonNull public android.adservices.ondevicepersonalization.WebTriggerOutput.Builder addEventLogRecord(@NonNull android.adservices.ondevicepersonalization.EventLogRecord); 345 method @NonNull public android.adservices.ondevicepersonalization.WebTriggerOutput build(); 346 method @NonNull public android.adservices.ondevicepersonalization.WebTriggerOutput.Builder setEventLogRecords(@NonNull java.util.List<android.adservices.ondevicepersonalization.EventLogRecord>); 347 method @NonNull public android.adservices.ondevicepersonalization.WebTriggerOutput.Builder setRequestLogRecord(@Nullable android.adservices.ondevicepersonalization.RequestLogRecord); 348 } 349 350} 351 352