已在 API 级别 34 中引入
也已在广告服务扩展 4 中引入

沙盒化 SDK

public final class SandboxedSdk
extends Object implements Parcelable

java.lang.Object
   ↳ android.app.sdksandbox.SandboxedSdk


表示沙盒进程中加载的 SDK。

成功响应 SdkSandboxManager#loadSdk 时返回。应用可以 可通过调用 SdkSandboxManager#loadSdk 获取。它应使用此对象获取 通过 getInterface() 连接到 SDK。

SDK 应在调用 SandboxedSdkProvider#onLoadSdk 时创建该标识符,并丢弃所有 在调用 SandboxedSdkProvider#beforeUnloadSdk() 时对该对象的引用。此外, 在以下时间后,SDK 应使对从 getInterface() 返回的 IBinder 发出的调用失败: 已调用 SandboxedSdkProvider#beforeUnloadSdk()

摘要

继承的常量

字段

public static final Creator<SandboxedSdk> CREATOR

公共构造函数

SandboxedSdk(IBinder sdkInterface)

创建一个 SandboxedSdk 对象。

公共方法

int describeContents()

描述此 Parcelable 中包含的特殊对象的种类。 实例的编排表示法。

IBinder getInterface()

返回为响应 SdkSandboxManager.loadSdk(String, Bundle, Executor, OutcomeReceiver) 而加载的 SDK 的接口。

SharedLibraryInfo getSharedLibraryInfo()

返回 SDK 的 SharedLibraryInfo

void writeToParcel(Parcel dest, int flags)

将此对象展平为 Parcel。

继承的方法

字段

CREATOR

已在 API 级别 34 中引入
也已在广告服务扩展 4 中引入
public static final Creator<SandboxedSdk> CREATOR

公共构造函数

沙盒化 SDK

已在 API 级别 34 中引入
也已在广告服务扩展 4 中引入
public SandboxedSdk (IBinder sdkInterface)

创建一个 SandboxedSdk 对象。

参数
sdkInterface IBinder:SDK 的接口。这将是沙盒化 SDK 的入口点 应用场景在 SDK 加载到沙盒中之前,SDK 应使其保持有效状态; 一旦卸载,此接口的调用就会失败。

稍后可以使用 getInterface() 检索此接口。 此值不能为 null

公共方法

describeContents

API 级别 34 中引入
public int describeContents ()

描述此 Parcelable 实例的编排表示中包含的特殊对象的种类。例如,如果对象将在 writeToParcel(android.os.Parcel, int) 的输出中添加一个文件描述符,那么此方法的返回值就必须包含 CONTENTS_FILE_DESCRIPTOR 位。

返回
int 一个位掩码,表示编组的特殊对象类型集 。 值为 0CONTENTS_FILE_DESCRIPTOR

getInterface

已在 API 级别 34 中引入
也已在广告服务扩展 4 中引入
public IBinder getInterface ()

返回为响应 SdkSandboxManager.loadSdk(String, Bundle, Executor, OutcomeReceiver) 而加载的 SDK 的接口。如果 Binder 已null 变为不可用状态,以响应 SDK 被卸载。

返回
IBinder

getSharedLibraryInfo

已在 API 级别 34 中引入
也已在广告服务扩展 5 中引入
public SharedLibraryInfo getSharedLibraryInfo ()

返回 SDK 的 SharedLibraryInfo

返回
SharedLibraryInfo 此值不能为 null

抛出
IllegalStateException 如果系统服务尚未将 SharedLibraryInfo 附加到 SDK 发送的 SandboxedSdk 对象,则会发生该错误。

writeToParcel

API 级别 34 中引入
public void writeToParcel (Parcel dest, 
                int flags)

将此对象扁平化为 Parcel。

参数
dest Parcel:此值不能为 null

flags int:关于如何写入对象的其他标志。可为 0 或 Parcelable.PARCELABLE_WRITE_RETURN_VALUE。 值为 0Parcelable.PARCELABLE_WRITE_RETURN_VALUE 和 android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES 的组合