无缝构建跨设备体验 | Google I/O 大会精彩回顾

无缝构建跨设备体验 | Google I/O 大会精彩回顾
www.zeeklog.com  - 无缝构建跨设备体验 | Google I/O 大会精彩回顾

作者 / Android 团队

在今年的  大会上,我们讨论了您的应用如何适配 Android 设备的。如果您错过了大会直播,可通过本文了解其中最重要的内容:

△ 无缝构建跨设备体验 | Google I/O 大会精彩回顾

平板设备、可折叠设备和大屏设备

在设计应用时,使其能够在 (包括平板设备、可折叠设备和 Chrome OS 笔记本电脑) 上流畅运行变得越来越重要。目前已经有超过 2.5 亿台大屏幕的 Android 设备投入使用。与此同时,全新可折叠设备也让用户能够更轻松地处理多项任务,并开创了无需持握的桌面模式新体验。请参阅在 Samsung Galaxy Z Fold2 上使用桌面模式的 Disney+ 示例。

www.zeeklog.com  - 无缝构建跨设备体验 | Google I/O 大会精彩回顾

△ 在 Samsung Galaxy Z Fold2 上使用桌面模式的 Disney+ 示例

幸运的是,设计可无缝缩放以适配任何设备尺寸的应用也变得更加容易——包括在 Chrome OS 和可折叠设备上动态调整大小,以及利用 Jetpack Compose 或 ConstraintLayout 构建响应式布局。我们还研究了用户与大屏幕设备的交互方式,例如手指在屏幕上放置的位置,并为您提供 API 和工具以简化此类交互体验:

  • SlidingPaneLayout 1.2.0 可帮助您自动调整内容大小,以适配更多空间;
  • 垂直导航栏在大屏幕上提供更符合人体工程学的体验;
  • Constraint Layout 2.1 和 MotionLayout 有助于更新折叠和过渡状态;
  • 组件上的最大宽度可避免操作过程中出现糟糕的 UI 拉伸问题;
  • Jetpack WindowManager 可让您轻松运用新硬件功能,如铰链和折叠。

响应式布局

https://developer.android.google.cn/guide/topics/ui/responsive-layout-overview

SlidingPaneLayout 1.2.0

https://developer.android.google.cn/jetpack/androidx/releases/slidingpanelayout

垂直导航栏

https://material.io/components/navigation-rail

Constraint Layout 2.1

https://developer.android.google.cn/jetpack/androidx/releases/constraintlayout

MotionLayout

https://developer.android.google.cn/reference/androidx/constraintlayout/motion/widget/MotionLayout

Jetpack WindowManager

https://developer.android.google.cn/jetpack/androidx/releases/window

我们还对 、Chrome OS 和 Jetpack WindowManager 进行了更新,优化默认情况下的应用运行体验。例如,许多 UI 元素现在具有默认的最大宽度值,以确保其在大屏幕上的呈现效果更加美观,而对 Display API 的改进可确保现有应用即使不使用 WindowManager 来查询窗口指标,也能够继续在可折叠设备上正确呈现。

您可以观看下方演讲视频,详细了解本次 Google I/O 上更多帮助您针对大屏幕设备进行构建的详情:

△ 可折叠设备,平板电脑和大屏幕更新一览

腾讯视频链接

https://v.qq.com/x/page/g3248o9baj7.html

Bilibili 视频链接

https://www.bilibili.com/video/BV1r44y1r7Q2

△ 针对大屏幕,为您的应用做好准备的 5 个技巧

△ Chrome OS 的输入事项

△ 优化您的 Android 游戏和应用,以便在 Chrome OS 上运行

更多详情,您可以查看 "Android 开发者" 公众号之前的推文《》,或查看有关 Google Duo 如何提高参与度和改进评分的案例研究。

Google Duo 如何提高参与度和改进评分

https://developer.android.google.cn/stories/apps/google-duo

Wear OS

我们发布了  平台迄今为止最大的更新,其中包含新功能、API 和工具,可帮助开发者打造美观、高品质的可穿戴体验。

我们推出的全新 Jetpack API 可帮助您简化开发。Jetpack 卡片库让。另一项值得注意的新增功能是 Ongoing Activities API,使您能够让用户在导航至别处 (以开始一些其他任务,例如音乐播放) 后再返回到您的应用。这两个库目前都处于 Alpha 阶段。

卡片库

https://developer.android.google.cn/training/articles/wear-tiles

Ongoing Activities API

https://developer.android.google.cn/training/wearables/ongoing-activity

我们还发布了一套新的健康和健身 API,其作为设备上传感器和相关算法的中介,为应用提供与活动、锻炼和健康相关的高质量数据。健康服务平台 Alpha 版现在已开放使用。

健康服务平台

https://developer.android.google.cn/training/wearables/health-services

下载 试用新的 Wear 系统镜像开发者预览版,并开始为新平台准备您的应用。您可以查看下方的本次 Google I/O 演讲视频详细了解相关公告:

△ Wear 更新一览

△ 在 Wear 中创建您的第一张卡片

即刻下载 Android Studio Arctic Fox Beta 版

https://developer.android.google.cn/studio/preview

您还可以查看 "Android 开发者" 公众号之前的推文《》了解更多详情,也可以通过下方演讲视频了解 Spotify 如何在 Wear 上进行构建。

△ Spotify 如何在 Wear 上进行构建

Android TV

在今年的 I/O 大会上,我们发布了几项新工具和新功能,以简化 Android TV 操作系统的开发:

  • Cast Connect 与 Stream Transfer 搭配,支持现有音频和视频在投射设备之间流式传输,而 Stream Expansion 可支持同时在多个设备上播放音频。
  • 我们现在将首款 Google TV 模拟器与 Android TV 模拟器一并推出,两者都在 Android 11 上运行。
  • Firebase Test Lab 即将增加 Android TV 支持,以便您能够在云端通过成百上千部虚拟设备测试您的应用。实体设备即将推出。
  • 我们将在 ADT-3 上为电视提供 。

Cast Connect

https://developers.google.cn/cast/docs/android_tv_receiver/core_features

这些更新让您可以更轻松地在一系列设备配置中构建和测试应用,同时将最新的 Android 12、Google Assistant 和 Cast 功能引入电视。如需了解详情,请观看 I/O 大会的 Android TV 和 Google TV 更新一览演讲视频:

△ Android TV 和 Google TV 更新一览

Android for Cars

Android Auto 支持应用程序与许多现代汽车中内置的信息娱乐显示器连接。为了简化操作,我们最近将 Android for Cars 应用库纳入 Jetpack。该库支持导航、电动汽车充电和停车应用直接与兼容的汽车集成。

我们计划在未来将其扩展到更多应用类别,因此如果您有兴趣将您的应用引入 Android Auto,请填写这份意向表,也可以访问官方文档,立即开始使用 Android for Cars 应用库。请观看 I/O 大会的 Android for Cars 更新一览演讲视频,或阅读博文了解更多详情。

△ Android for Cars 更新一览

Android for Cars 应用库纳入 Jetpack

https://android-developers.googleblog.com/2021/03/android-auto-apps-powered-by-jetpack.html

意向表

https://docs.google.com/forms/d/1qu-KzNZH260dbZlDSXEHMkd1iqm2fMv2AoFxPozeXgs/viewform

官方文档

https://developer.android.google.cn/cars

博文: Android for Cars 更新一览

https://android-developers.googleblog.com/2021/05/whats-new-with-android-for-cars.html

www.zeeklog.com  - 无缝构建跨设备体验 | Google I/O 大会精彩回顾

推荐阅读

如页面未加载,请刷新重试

www.zeeklog.com  - 无缝构建跨设备体验 | Google I/O 大会精彩回顾

点击屏末 | 阅读原文 | 即刻查看更多 Google I/O 2021 精彩视频


www.zeeklog.com  - 无缝构建跨设备体验 | Google I/O 大会精彩回顾
www.zeeklog.com  - 无缝构建跨设备体验 | Google I/O 大会精彩回顾
www.zeeklog.com  - 无缝构建跨设备体验 | Google I/O 大会精彩回顾

Read more

深入理解 Proxy 和 Object.defineProperty

在JavaScript中,对象是一种核心的数据结构,而对对象的操作也是开发中经常遇到的任务。在这个过程中,我们经常会使用到两个重要的特性:Proxy和Object.defineProperty。这两者都允许我们在对象上进行拦截和自定义操作,但它们在实现方式、应用场景和灵活性等方面存在一些显著的区别。本文将深入比较Proxy和Object.defineProperty,包括它们的基本概念、使用示例以及适用场景,以帮助读者更好地理解和运用这两个特性。 1. Object.defineProperty 1.1 基本概念 Object.defineProperty 是 ECMAScript 5 引入的一个方法,用于直接在对象上定义新属性或修改已有属性。它的基本语法如下: javascript 代码解读复制代码Object.defineProperty(obj, prop, descriptor); 其中,obj是目标对象,prop是要定义或修改的属性名,descriptor是一个描述符对象,用于定义属性的特性。 1.2 使用示例 javascript 代码解读复制代码//

By Ne0inhk

Proxy 和 Object.defineProperty 的区别

Proxy 和 Object.defineProperty 是 JavaScript 中两个不同的特性,它们的作用也不完全相同。 Object.defineProperty 允许你在一个对象上定义一个新属性或者修改一个已有属性。通过这个方法你可以精确地定义属性的特征,比如它是否可写、可枚举、可配置等。该方法的使用场景通常是需要在一个对象上创建一个属性,然后控制这个属性的行为。 Proxy 也可以用来代理一个对象,但是相比于 Object.defineProperty,它提供了更加强大的功能。使用 Proxy 可以截获并重定义对象的基本操作,比如访问属性、赋值、函数调用等等。在这些操作被执行之前,可以通过拦截器函数对这些操作进行拦截和修改。因此,通过 Proxy,你可以完全重写一个对象的默认行为。该方法的使用场景通常是需要对一个对象的行为进行定制化,或者需要在对象上添加额外的功能。 对比 以下是 Proxy 和 Object.defineProperty 的一些区别对比: 方面ProxyObject.defineProperty语法使用 new Proxy(target,

By Ne0inhk