privacysandbox 界面
| 最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
|---|---|---|---|---|
| 2025 年 5 月 20 日 | - | - | - | 1.0.0-alpha16 |
声明依赖项
如需添加 privacysandbox-ui 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。
在应用或模块的 build.gradle 文件中添加所需工件的依赖项:
Groovy
dependencies { // Use to implement privacysandbox ui-client implementation "androidx.privacysandbox.ui:ui-client:1.0.0-alpha16" // Use to implement privacysandbox ui-core implementation "androidx.privacysandbox.ui:ui-core:1.0.0-alpha16" // Use to implement privacysandbox ui-core implementation "androidx.privacysandbox.ui:ui-provider:1.0.0-alpha16" }
Kotlin
dependencies { // Use to implement privacysandbox ui-client implementation("androidx.privacysandbox.ui:ui-client:1.0.0-alpha16") // Use to implement privacysandbox ui-core implementation("androidx.privacysandbox.ui:ui-core:1.0.0-alpha16") // Use to implement privacysandbox ui-provider implementation("androidx.privacysandbox.ui:ui-provider:1.0.0-alpha16") }
如需详细了解依赖项,请参阅添加 build 依赖项。
反馈
您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。
如需了解详情,请参阅问题跟踪器文档。
1.0 版
版本 1.0.0-alpha16
2025 年 5 月 20 日
发布了 androidx.privacysandbox.ui:ui-*:1.0.0-alpha16。版本 1.0.0-alpha16 包含这些提交内容。
新功能
- 添加了用于测量
SandboxedSdkView上障碍物的逻辑,如果关联的SessionObserverFactory.signalOptions中包含SandboxedUiAdapterSignalOptions.OBSTRUCTIONS,则会在SessionObserver.onUiContainerChanged()中发送这些障碍物信息。系统会相对于视图本身报告遮挡物。
API 变更
- 将
SandboxedSdkUi从 ui-client 移到了新的 ui-client-compose 库。 - 添加了用于衡量界面容器上遮挡物的逻辑。(I34bea)
bug 修复
- 修复了
SandboxedSdkView.setAlpha(),该函数现在会更新其内容视图的 Alpha 值。
版本 1.0.0-alpha15
2025 年 3 月 26 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha15、androidx.privacysandbox.ui:ui-core:1.0.0-alpha15 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha15。版本 1.0.0-alpha15 包含这些提交内容。
新功能
- 将
SandboxedSdkView和SandboxedSdkUi的默认 Z 排序设置为“below”,表示提供方的 Surface 现在位于客户端窗口下方。添加了对界面提供程序在客户端窗口收到MotionEvents后在此模式下接收MotionEvents的支持。 - 向
SessionObserverFactory接口添加了signalOptions字段。此方法可用于定义一组字符串选项,这些选项将用于确定为关联的SessionObserver收集哪些信号。初始信号集在SandboxedUiAdapterSignalOptions中定义。如果未设置任何信号选项,则只会调用SessionObserver.onSessionOpened()和SessionObserver.onSessionClosed()。
API 变更
- 在
SandboxedUiAdapter.openSession()中将SessionConstants重命名为SessionData。
已知问题
- 当 SDK 在 SDK 运行时加载且
SandboxedSdkView或SandboxedSdkUi的 Z 顺序为“上方”时,提供程序窗口将独占接收手势,而不会再将其传输到客户端窗口。
版本 1.0.0-alpha14
2025 年 2 月 26 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha14、androidx.privacysandbox.ui:ui-core:1.0.0-alpha14 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha14。版本 1.0.0-alpha14 包含这些提交内容。
新功能
- 您现在可以创建“共享界面”,即可以包含客户端和提供方所拥有的元素的界面。共享界面可以使用
SharedUiContainer进行托管,该扩展程序基于ViewGroup。新 API 采用了与SandboxedSdkView和SandboxedUiAdapter类似的会话管理概念。 - 此版本中添加的所有 API 都位于
SharedUiPresentationApi@RequiresOptIn标志后面。
API 变更
- 向
SharedUiContainer添加了会话管理和素材资源注册 API。会话管理是使用同一版本中引入的SharedUiAdapter实现的。(Ic60b0) - 添加了
SharedUiContainer,可托管客户端和提供方拥有的界面。它会将所有子视图放置在左上角。(Ia7310) - 添加了对
SharedUiAdapter的向后兼容性支持。(I56d7a) - 添加了
SharedUiAdapter,用于管理可托管客户端和提供方所拥有的界面的 View 容器的会话。会话管理逻辑与SandboxedUiAdapter类似。(I501f6)
bug 修复
- 在调用
onVisibilityAggregated时计算可见度。(I91c69)
已知问题
- 放置在
PoolingContainer中时,SharedUiContainer会在窗口分离时关闭会话。
版本 1.0.0-alpha13
2025 年 1 月 29 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha13、androidx.privacysandbox.ui:ui-core:1.0.0-alpha13 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha13。版本 1.0.0-alpha13 包含这些提交内容。
新功能
- 添加了一个名为
SandboxedSdkUi的可组合对象,可用于在 Compose 界面中显示远程内容。此对象利用现有的SandboxedSdkView概念来管理会话和事件监听器。(I009cf) - 更改了
SandboxedUiAdapter.openSession签名,以添加一个新的SessionConstants参数来替换之前的windowInputToken。此参数用于传递在SandboxedUiAdapter.Session的生命周期内保持不变的值。(Ibc0df、I28435)
已知问题
- 滚动
SandboxedSdkUi时,系统不会发送SessionObserver事件。 - 当
SandboxedSdkUi处于 Z-above 模式时,不会被父视图剪裁。
API 变更
- 移除了已废弃的
SDKActivityLauncher代码 (I49a4f) - 通过添加新的
SessionObserverFactoryRegistry接口,将观察器工厂注册逻辑与SandboxedUiAdapter分离开来。(I245cc)
版本 1.0.0-alpha12
2024 年 12 月 11 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha12、androidx.privacysandbox.ui:ui-core:1.0.0-alpha12 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha12。版本 1.0.0-alpha12 包含这些提交内容。
新功能
- 已将
StateChangedListener替换为SandboxedSdkViewEventListener。此事件监听器可用于监听界面显示、会话关闭和会话错误事件。
API 变更
- 添加了
SandboxedSdkViewEventListener,用于监听SandboxedSdkView内的界面事件。此版本还移除了StateChangedListener。(Id71ea)
bug 修复
- 从
SandboxedSdkView中移除了剪裁边界逻辑。如果SandboxedSdkView放置在可滚动容器中且尚未调用orderProviderUiAboveClientUi(false)(在底层框架 bug 得到修复之前),这将导致用户体验问题。(Id420d) - 修复了在使用
DelegatingSandboxedUiAdapter时远程进程终止时可能会发生的RemoteException。
版本 1.0.0-alpha11
2024 年 11 月 13 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha11、androidx.privacysandbox.ui:ui-core:1.0.0-alpha11 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha11。版本 1.0.0-alpha11 包含这些提交内容。
新功能
- 引入了实验性 API
DelegatingSandboxedUiAdapter,该 API 扩展了SandboxedUiAdapter,可用于在不同的SandboxedUiAdapters之间委托。在客户端容器(例如SandboxedSdkView)上设置此适配器后,委托适配器可以使用updateDelegate更改委托适配器。这将关闭现有会话,并为新代理创建新的SandboxedUiAdapter.Session。这样,便可以在代理之间实现流畅的转换。(I5f1c5、I9e3e7) - 改进了对内边距的
SandboxedSdkView支持。(Ic414f)
bug 修复
- 修复了全局布局事件中可能会发生的
NullPointerException。
版本 1.0.0-alpha10
2024 年 9 月 18 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha10、androidx.privacysandbox.ui:ui-core:1.0.0-alpha10 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha10。版本 1.0.0-alpha10 包含这些提交内容。
新功能
- 更新了会话打开逻辑,以便仅在包含
SandboxedSdkView的窗口可见时在SandboxedSdkView内打开会话。 - 更新了
SessionObserver逻辑,以便在包含SandboxedSdkView的窗口的可见性发生变化时发送onUiContainerChanged。
bug 修复
- 在窗口可见性发生变化时调用
onUiContainerChanged(I541cf) - 移除了手动说明对新平台 API 的访问权限,因为当将 R8 与 AGP 7.3 或更高版本(例如 R8 版本 3.3)搭配使用时,系统会通过 API 建模自动执行此操作;当使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)时,系统会针对所有 build 自动执行此操作。建议不使用 AGP 的客户更新到 D8 8.1 或更高版本。如需了解详情,请参阅这篇文章。(If6b4c、b/345472586)
版本 1.0.0-alpha09
2024 年 6 月 26 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha09、androidx.privacysandbox.ui:ui-core:1.0.0-alpha09 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha09。版本 1.0.0-alpha09 包含这些提交内容。
新功能
- 引入了
AbstractSandboxedUiAdapter和AbstractSandboxedUiAdapter.AbstractSession抽象类,可供界面提供程序使用,以避免实现整个SandboxedUiAdapter或Session接口。建议界面提供程序使用这些抽象类。 - 添加了
registerObserverFactory逻辑,允许将SessionObserverFactory附加到SandboxedUiAdapter。将SessionObserverFactory附加到适配器后,系统会为为该适配器创建的每个新界面会话创建一个SessionObserver。创建的SessionObserver将在界面会话打开时收到onSessionOpened回调。当Session视图的界面呈现方式发生变化时,系统会调用SessionObserver.onUiContainerChanged。onUiContainerChanged会受到节流限制,最多每 200 毫秒调用一次。 - 添加了
SandboxedSdkViewUiInfo,可从SessionObserver.onUiContainerChanged中发送的Bundle创建。此对象表示托管界面会话的SandboxedSdkView的界面状态。它包含高度和宽度信息、一个表示屏幕上可见的视图的几何图形的Rect,以及一个表示视图不透明度的不透明度提示。
API 变更
- 向
SandboxedSdkViewUiInfo添加了不透明度提示。(I093ac) - 添加了
SessionObserver.onUiContainerChanged和SandboxedSdkViewUiInfo。(Ie98bc) - 添加了
SessionObserver接口和注册逻辑。(I047dc) - 添加了
AbstractSandboxedUiAdapter和AbstractSession。(I3617a)
已知问题
- 当界面提供程序与客户端应用位于同一进程中时,容器滚动时不会发送
SessionObserver.onUiContainerChanged。
版本 1.0.0-alpha08
2024 年 5 月 14 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha08、androidx.privacysandbox.ui:ui-core:1.0.0-alpha08 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha08。版本 1.0.0-alpha08 包含这些提交内容。
新功能
- 添加了对在
PoolingContainer(例如RecyclerView)中使用SandboxedSdkView的支持。当SandboxedSdkView的父级为PoolingContainer时,其界面会话的生命周期将与PoolingContainer的生命周期保持一致,以确保会话可以在窗口分离后保持不变。
API 变更
- 废弃了 Privacy Sandbox Activity API。现在,您可以在专用 activity 库
androidx.privacysandbox.activity中找到这些 API。(I68beb)
bug 修复
- 修复了在池化容器中显示远程内容时出现的渲染 bug。(I804df)
- 修复了导致向后兼容模式下
ViewGroups出现渲染问题的 bug。(I8de92) - 当
SandboxedSdkView的父级之一是PoolingContainer时,请在PoolingContainer指示可以释放资源时关闭界面会话,而不是在窗口分离时关闭。(I2046b)
外部贡献
- 由于
minSdk中提供了GestureDetector,因此GestureDetectorCompat现已废弃。(Icc4cd)
版本 1.0.0-alpha07
2023 年 10 月 18 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha07、androidx.privacysandbox.ui:ui-core:1.0.0-alpha07 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha07。版本 1.0.0-alpha07 中包含这些提交内容。
新功能
- 添加了对该库的向后兼容性支持。在 API 33 及更低版本中,提供程序的视图将在应用进程中的其他类加载器中呈现。(If0b7a)
- 添加了逻辑,以允许在同一帧中提交主机和提供程序容器的大小调整,以避免出现明显的界面卡顿。(Ic2cd9)
API 变更
- 该库的 MinSdk 已提升为 API 21。(I474b8)
版本 1.0.0-alpha06
2023 年 9 月 20 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha06、androidx.privacysandbox.ui:ui-core:1.0.0-alpha06 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha06。版本 1.0.0-alpha06 中包含这些提交内容。
新功能
- 添加了逻辑,用于将
SandboxedSdkView剪裁到它可以滚动的“边界父级”视图。这样可确保SandboxedSdkView的内容不会遮挡根内容视图之外的其他视图或任何界面组件。(I9ea94)
API 变更
- 将
SandboxedSdkView.setZOrderOnTopAndEnableUserInteraction重命名为orderProviderUiAboveClientUi(Iecb7e)
bug 修复
版本 1.0.0-alpha05
2023 年 8 月 9 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha05、androidx.privacysandbox.ui:ui-core:1.0.0-alpha05 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha05。版本 1.0.0-alpha05 中包含这些提交内容。
新功能
- 添加了逻辑,以便在来自
SandboxedSdkView的滚动和快速滑动手势时将轻触焦点转移到主机。这样,客户端的可滚动容器托管提供方界面就可以正确响应滚动和快速滑动。
API 变更
- 向
SandboxedUiAdapter添加了windowInputToken参数 (Ief578)
bug 修复
- 在首次绘制后将会话状态设为“活跃”(I36f3f)
- 修复了
SandboxedSdkView的布局问题。(I09cb8) - 添加了将触摸焦点传递给主机的逻辑。(I33b54)
- 向
SandboxedUiAdapter添加了windowInputToken参数。这对于确保SurfaceControlViewHost的令牌与嵌入式层次结构的主机正确关联至关重要。(Ief578) - 在主线程中运行
notifyResized。(I62440) - 修复了
Session.close()流程中的崩溃问题。(I5392e)
版本 1.0.0-alpha04
2023 年 6 月 21 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha04、androidx.privacysandbox.ui:ui-core:1.0.0-alpha04 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha04。版本 1.0.0-alpha04 中包含这些提交内容。
新功能
- 介绍
SdkActivityLauncher。用于允许支持运行时的 SDK 启动 activity 的接口。(I5b3dc)
bug 修复
- 修复了
notifyZOrderChanged竞态条件。确保系统会针对所有 Z 顺序更改通知界面提供程序。如果在调用 openSession 之前更改了SandboxedSdkView的 Z 顺序,界面提供程序将不会收到明确通知。
版本 1.0.0-alpha03
2023 年 5 月 24 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha03、androidx.privacysandbox.ui:ui-core:1.0.0-alpha03 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha03。版本 1.0.0-alpha03 中包含这些提交内容。
新功能
StateChangedListener会通知应用界面会话中的更改
API 变更
- 添加了
StateChangedListener以替换ErrorConsumer(Icd5d3)
bug 修复
- 修复了
notifyZOrderChanged竞态条件,以便在发生所有 Z 顺序更改时通知界面提供程序
版本 1.0.0-alpha02
2023 年 4 月 19 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha02、androidx.privacysandbox.ui:ui-core:1.0.0-alpha02 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha02。版本 1.0.0-alpha02 中包含这些提交内容。
bug 修复
- 停用了不可靠的 testChangingSandboxedSdkViewLayoutChangesChildLayout 测试
版本 1.0.0-alpha01
2023 年 3 月 8 日
发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha01、androidx.privacysandbox.ui:ui-core:1.0.0-alpha01 和 androidx.privacysandbox.ui:ui-provider:1.0.0-alpha01。版本 1.0.0-alpha01 中包含这些提交内容。
新功能
- 这些是新的 Jetpack 库,应用和支持运行时的 SDK (Privacy Sandbox) 可以使用这些库让应用(客户端)托管 SDK(提供方)提供的任何界面。