SandboxedSdkProvider

public abstract class SandboxedSdkProvider
extends Object

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


封装了 SDK 沙盒可用于与其加载的 SDK 进行交互的 API。

SDK 必须实现此抽象类,才能为 SDK 沙盒生成入口点以便调用它。

摘要

公有构造函数

SandboxedSdkProvider()

公有方法

final void attachContext(Context context)

设置 SDK Context,然后可以使用 getContext() 接收此 Context。

void beforeUnloadSdk()

在 SDK 卸载前,执行释放其资源所需的工作。

final Context getContext()

返回之前通过 SandboxedSdkProvider#attachContext 设置的 Context

abstract View getView(Context windowContext, Bundle params, int width, int height)

请求将视图远程渲染到客户端应用进程。

abstract SandboxedSdk onLoadSdk(Bundle params)

执行 SDK 开始处理请求所需的工作。

继承的方法

公有构造函数

SandboxedSdkProvider

添加于 API 级别 34
也包含在 广告服务扩展程序 4
public SandboxedSdkProvider ()

公有方法

attachContext

添加于 API 级别 34
也包含在 广告服务扩展程序 4
public final void attachContext (Context context)

设置 SDK Context,然后可以使用 getContext() 接收此 Context。此方法会在调用 onLoadSdk(Bundle) 之前调用。在此之前不应执行任何需要 Context 的操作,因为在调用此方法之前,SandboxedSdkProvider#getContext 将返回 null。

如果已设置基本 Context,则抛出 IllegalStateException。

参数
context Context:新的基本 Context。此值不能为 null

beforeUnloadSdk

添加于 API 级别 34
也包含在 广告服务扩展程序 4
public void beforeUnloadSdk ()

在 SDK 卸载前,执行释放其资源所需的工作。

此函数由 SDK 沙盒管理器在卸载 SDK 之前调用。SDK 应使之前通过 SandboxedSdk.getInterface() 返回给客户端的 Binder 上的任何调用失败。

SDK 不应在此处执行任何长时间运行的任务,例如 I/O 和网络调用。

getContext

添加于 API 级别 34
也包含在 广告服务扩展程序 4
public final Context getContext ()

返回之前通过 SandboxedSdkProvider#attachContext 设置的 Context。如果之前未设置 Context,则此方法将返回 null。

返回
Context

getView

添加于 API 级别 34
也包含在 广告服务扩展程序 4
public abstract View getView (Context windowContext, 
                Bundle params, 
                int width, 
                int height)

请求将视图远程渲染到客户端应用进程。

返回将包装到 SurfacePackage 中的 View。生成的 SurfacePackage 将发送回客户端应用。

SDK 不应在此处执行任何长时间运行的任务,例如 I/O 和网络调用。这样做可能会阻止 SDK 接收来自客户端的请求。

参数
windowContext Context:用于显示视图的屏幕的 Context。此值不能为 null

params Bundle:客户端应用请求视图时传递的参数列表。此值不能为 null

width int:返回的视图将按此宽度(以像素为单位)窗口的方式布局。

height int:返回的视图将按此高度(以像素为单位)窗口的方式布局。

返回
View SDK 沙盒传递给请求视图的客户端应用的 View。此值不能为 null

onLoadSdk

添加于 API 级别 34
也包含在 广告服务扩展程序 4
public abstract SandboxedSdk onLoadSdk (Bundle params)

执行 SDK 开始处理请求所需的工作。

此函数由 SDK 沙盒在加载 SDK 后调用。

SDK 应执行任何工作以准备好处理即将到来的请求。不应在此处执行任何长时间运行的任务,例如 I/O 和网络调用。这样做可能会阻止 SDK 接收来自客户端的请求。此外,不应执行依赖于 SDK 沙盒中加载其他 SDK 的初始化。

在调用此方法之前,SDK 不应执行任何需要 Context 对象的操作。

参数
params Bundle:客户端加载 SDK 时传递的参数列表。此列表可以为空。此值不能为 null

返回
SandboxedSdk 返回传递回客户端的 SandboxedSdk。用于创建 SandboxedSdk 对象的 IBinder 将由客户端用于调用 SDK。此值不能为 null

抛出
LoadSdkException