privacysandbox ui
最新更新 | 稳定版本 | 发布候选版本 | 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") }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星形按钮为现有问题投票。
有关更多信息,请参阅问题跟踪器文档。
版本 1.0
版本 1.0.0-alpha16
2025 年 5 月 20 日
androidx.privacysandbox.ui:ui-*:1.0.0-alpha16
已发布。版本 1.0.0-alpha16 包含这些提交。
新功能
- 添加了测量
SandboxedSdkView
上的遮挡的逻辑,如果SandboxedUiAdapterSignalOptions.OBSTRUCTIONS
包含在关联的SessionObserverFactory.signalOptions
中,遮挡信息将通过SessionObserver.onUiContainerChanged()
发送。遮挡信息是相对于视图本身报告的。
API 变更
- 将
SandboxedSdkUi
从 ui-client 移到一个新的 ui-client-compose 库中。 - 添加了测量 UI 容器上的遮挡的逻辑。(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 顺序设置为“下方”,表示提供方的 surface 现在放置在客户端窗口下方。增加了在此模式下,UI 提供方在接收到客户端窗口的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 包含这些提交。
新功能
- 您现在可以创建“共享 UI”,即包含客户端拥有和提供方拥有元素的 UI。共享 UI 可以使用扩展
ViewGroup
的SharedUiContainer
进行托管。新的 API 利用了与SandboxedSdkView
和SandboxedUiAdapter
相似的会话管理概念。 - 此版本中添加的所有 API 均受
SharedUiPresentationApi
@RequiresOptIn
标志的限制。
API 变更
- 为
SharedUiContainer
添加了会话管理和资产注册 API。会话管理通过同一版本中引入的SharedUiAdapter
实现。(Ic60b0) - 添加了
SharedUiContainer
,可托管客户端拥有和提供方拥有的 UI。它将其所有子视图放置在左上角。(Ia7310) - 为
SharedUiAdapter
添加了向后兼容性支持。(I56d7a) - 为 View 容器的会话管理添加了
SharedUiAdapter
,该容器可以托管客户端拥有和提供方拥有的 UI。会话管理逻辑与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 UI 中显示远程内容。此对象利用现有的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
。此事件监听器可用于监听 UI 显示、会话关闭和会话错误事件。
API 变更
- 添加了
SandboxedSdkViewEventListener
以监听SandboxedSdkView
内的 UI 事件。此版本还移除了StateChangedListener
。(Id71ea)
bug 修复
- 从
SandboxedSdkView
中移除了裁剪边界逻辑。如果SandboxedSdkView
放置在可滚动容器中且未调用orderProviderUiAboveClientUi(false)
,这可能会导致 UX 问题(直到底层框架 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
,它扩展了SandboxedUiAdapter
,可用于在不同的SandboxedUiAdapter
之间进行委托。当此适配器设置为客户端容器(例如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 访问的手动概述,因为当使用 AGP 7.3 或更高版本(例如 R8 版本 3.3)的 R8 时,以及当使用 AGP 8.1 或更高版本(例如 D8 版本 8.1)的所有构建时,这都会通过 API 建模自动发生。建议不使用 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
抽象类,UI 提供方可以使用它们来避免实现整个SandboxedUiAdapter
或Session
接口。建议 UI 提供方使用这些抽象类。 - 添加了
registerObserverFactory
逻辑,允许将SessionObserverFactory
附加到SandboxedUiAdapter
。当SessionObserverFactory
附加到适配器时,将为该适配器创建的每个新 UI 会话创建一个SessionObserver
。当 UI 会话打开时,创建的SessionObserver
将收到onSessionOpened
回调。当Session
视图的 UI 呈现发生变化时,将调用SessionObserver.onUiContainerChanged
。onUiContainerChanged
受到节流,每 200 毫秒最多调用一次。 - 添加了
SandboxedSdkViewUiInfo
,它可以从SessionObserver.onUiContainerChanged
中发送的Bundle
创建。此对象表示托管 UI 会话的SandboxedSdkView
的 UI 状态。它包含高度和宽度信息,一个表示屏幕上可见视图几何图形的Rect
,以及一个表示视图不透明度的不透明度提示。
API 变更
- 将不透明度提示添加到
SandboxedSdkViewUiInfo
。(I093ac) - 添加
SessionObserver.onUiContainerChanged
和SandboxedSdkViewUiInfo
。(Ie98bc) - 添加
SessionObserver
接口和注册逻辑。(I047dc) - 添加
AbstractSandboxedUiAdapter
和AbstractSession
。(I3617a)
已知问题
- 当 UI 提供方与客户端应用程序在同一进程中时,当容器滚动时,不会发送
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
时,其 UI 会话的生命周期将与PoolingContainer
的生命周期保持一致,以确保会话可以在窗口分离后继续存在。
API 变更
- 已弃用隐私沙盒 Activity API。这些 API 现在可以在专用 Activity 库
androidx.privacysandbox.activity
中找到。(I68beb)
bug 修复
- 修复了在池化容器中显示远程内容时的渲染 bug。(I804df)
- 修复了在向后兼容模式下导致
ViewGroups
渲染问题的 bug。(I8de92) - 当
SandboxedSdkView
的某个父级是PoolingContainer
时,当PoolingContainer
指示可以释放资源时,关闭 UI 会话,而不是在窗口分离时关闭。(I2046b)
外部贡献
GestureDetectorCompat
现已弃用,因为GestureDetector
可从minSdk
获得。(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)
- 添加了允许在同一帧中提交主机和提供方容器大小调整的逻辑,以避免可见的 UI 卡顿。(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
的内容不会遮挡其他视图或根内容视图之外的任何 UI 组件。(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
时将触控焦点转移到主机的逻辑。这允许托管提供方 UI 的客户端可滚动容器正确响应滚动和甩动。
API 变更
- 将
windowInputToken
参数添加到SandboxedUiAdapter
(Ief578)
bug 修复
- 在首次绘制后将会话状态设置为“活动”(I36f3f)
- 修复
SandboxedSdkView
的布局问题。(I09cb8) - 添加了将触控焦点转移到主机的逻辑。(I33b54)
- 将
windowInputToken
参数添加到SandboxedUiAdapter
。这对于确保SurfaceControlViewHost
的 token 正确关联到嵌入式层次结构的主机是必需的。(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
竞态条件。确保 UI 提供方收到所有 Z 顺序更改的通知。如果SandboxedSdkView
的 Z 顺序在调用 openSession 之前更改,UI 提供方将不会收到明确通知。
版本 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
通知应用程序 UI 会话中的更改
API 变更
- 添加
StateChangedListener
以替换ErrorConsumer
(Icd5d3)
bug 修复
- 修复了
notifyZOrderChanged
竞态条件,以便 UI 提供方收到所有 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 修复
- 禁用了 flaking 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(提供方)提供的任何 UI。