privacysandbox 界面

  
TODO
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2024 年 12 月 11 日 - - - 1.0.0-alpha12

声明依赖项

如需添加 privacysandbox-ui 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    // Use to implement privacysandbox ui
    implementation "androidx.privacysandbox.ui:ui:1.0.0-alpha09"

    // Use to implement privacysandbox ui-core
    implementation "androidx.privacysandbox.ui:ui-core:1.0.0-alpha09"
   
    // Use to implement privacysandbox ui-core
    implementation "androidx.privacysandbox.ui:ui-provider:1.0.0-alpha09"
}

Kotlin

dependencies {
    // Use to implement privacysandbox ui
    implementation("androidx.privacysandbox.ui:ui:1.0.0-alpha09")

    // Use to implement privacysandbox ui-core
    implementation("androidx.privacysandbox.ui:ui-core:1.0.0-alpha09")

    // Use to implement privacysandbox ui-provider
    implementation("androidx.privacysandbox.ui:ui-provider:1.0.0-alpha09")

    
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

1.0 版

版本 1.0.0-alpha12

2024 年 12 月 11 日

发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha12androidx.privacysandbox.ui:ui-core:1.0.0-alpha12androidx.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-alpha11androidx.privacysandbox.ui:ui-core:1.0.0-alpha11androidx.privacysandbox.ui:ui-provider:1.0.0-alpha11。版本 1.0.0-alpha11 包含这些提交内容

新功能

  • 引入了实验性 API DelegatingSandboxedUiAdapter,该 API 扩展了 SandboxedUiAdapter,可用于在不同的 SandboxedUiAdapters 之间委托。在客户端容器(例如 SandboxedSdkView)上设置此适配器后,委托适配器可以使用 updateDelegate 更改委托适配器。这将关闭现有会话,并为新代理创建新的 SandboxedUiAdapter.Session。这样,便可以在代理之间实现流畅的转换。(I5f1c5I9e3e7
  • 改进了对内边距的 SandboxedSdkView 支持。(Ic414f)

bug 修复

  • 修复了全局布局事件中可能会发生的 NullPointerException

版本 1.0.0-alpha10

2024 年 9 月 18 日

发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha10androidx.privacysandbox.ui:ui-core:1.0.0-alpha10androidx.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 或更高版本。如需了解详情,请参阅这篇文章。(If6b4cb/345472586

版本 1.0.0-alpha09

2024 年 6 月 26 日

发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha09androidx.privacysandbox.ui:ui-core:1.0.0-alpha09androidx.privacysandbox.ui:ui-provider:1.0.0-alpha09。版本 1.0.0-alpha09 包含这些提交内容

新功能

  • 引入了 AbstractSandboxedUiAdapterAbstractSandboxedUiAdapter.AbstractSession 抽象类,可供界面提供程序使用,以避免实现整个 SandboxedUiAdapterSession 接口。建议界面提供程序使用这些抽象类。
  • 添加了 registerObserverFactory 逻辑,允许将 SessionObserverFactory 附加到 SandboxedUiAdapter。将 SessionObserverFactory 附加到适配器后,系统会为为该适配器创建的每个新界面会话创建一个 SessionObserver。创建的 SessionObserver 将在界面会话打开时收到 onSessionOpened 回调。当 Session 视图的界面呈现方式发生变化时,系统会调用 SessionObserver.onUiContainerChangedonUiContainerChanged 会受到节流限制,最多每 200 毫秒调用一次。
  • 添加了 SandboxedSdkViewUiInfo,可从 SessionObserver.onUiContainerChanged 中发送的 Bundle 创建。此对象表示托管界面会话的 SandboxedSdkView 的界面状态。它包含高度和宽度信息、一个表示屏幕上可见的视图的几何图形的 Rect,以及一个表示视图不透明度的不透明度提示。

API 变更

  • SandboxedSdkViewUiInfo 添加了不透明度提示。(I093ac)
  • 添加了 SessionObserver.onUiContainerChangedSandboxedSdkViewUiInfo。(Ie98bc)
  • 添加了 SessionObserver 接口和注册逻辑。(I047dc)
  • 添加了 AbstractSandboxedUiAdapterAbstractSession。(I3617a)

已知问题

  • 当界面提供程序与客户端应用位于同一进程中时,容器滚动时不会发送 SessionObserver.onUiContainerChanged

版本 1.0.0-alpha08

2024 年 5 月 14 日

发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha08androidx.privacysandbox.ui:ui-core:1.0.0-alpha08androidx.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-alpha07androidx.privacysandbox.ui:ui-core:1.0.0-alpha07androidx.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-alpha06androidx.privacysandbox.ui:ui-core:1.0.0-alpha06androidx.privacysandbox.ui:ui-provider:1.0.0-alpha06版本 1.0.0-alpha06 中包含这些提交内容

新功能

  • 添加了逻辑,用于将 SandboxedSdkView 剪裁到它可以滚动的“边界父级”视图。这样可确保 SandboxedSdkView 的内容不会遮挡根内容视图之外的其他视图或任何界面组件。(I9ea94)

API 变更

  • SandboxedSdkView.setZOrderOnTopAndEnableUserInteraction 重命名为 orderProviderUiAboveClientUi (Iecb7e)

bug 修复

  • 向主机发送正确的 Z 顺序值。(Ib0ddf)
  • 仅针对垂直滚动/快速滑动转移触摸焦点。(I0528c)

版本 1.0.0-alpha05

2023 年 8 月 9 日

发布了 androidx.privacysandbox.ui:ui-client:1.0.0-alpha05androidx.privacysandbox.ui:ui-core:1.0.0-alpha05androidx.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-alpha04androidx.privacysandbox.ui:ui-core:1.0.0-alpha04androidx.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-alpha03androidx.privacysandbox.ui:ui-core:1.0.0-alpha03androidx.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-alpha02androidx.privacysandbox.ui:ui-core:1.0.0-alpha02androidx.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-alpha01androidx.privacysandbox.ui:ui-core:1.0.0-alpha01androidx.privacysandbox.ui:ui-provider:1.0.0-alpha01版本 1.0.0-alpha01 中包含这些提交内容

新功能

  • 这些是新的 Jetpack 库,应用和支持运行时的 SDK (Privacy Sandbox) 可以使用这些库让应用(客户端)托管 SDK(提供方)提供的任何界面。