即刻体验 | Android 14 开发者预览版 2

即刻体验 | Android 14 开发者预览版 2
www.zeeklog.com  - 即刻体验 | Android 14 开发者预览版 2

作者 / Dave Burke, VP of Engineering

今天,我们为大家带来了 Android 14 的第二个开发者预览版。在上个月发布的 Android 14 的基础上,我们进一步增强了隐私、安全、性能、开发者生产力和用户定制功能,同时继续完善平板电脑、可折叠设备等上的体验。

每一年 Android 都会带来改进和新的功能,在这一路的进化过程中,大家在 Android 14 开发者预览版和季度平台发布 (Quarterly Platform Release, QPR) Beta 版测试计划中提交的反馈至关重要。我们在 Android 14 开发者网站提供了很多关于本次预览版的信息,包括 Pixel 系统映像的下载和发布时间表。非常期待听到大家的想法,在这里我们提前感谢大家,是大家的持续支持,让 Android 能成为属于每一个人的平台!

  • Android 14 开发者预览版

https://developer.android.google.cn/about/versions/14/get

季度平

台发布

https://developer.android.google.cn/about/versions/13/get-qpr

An

droid

14 开发者网站

https://developer.android.google.cn/about/versions/14

获取

Goo

gle Pixel 系统映像

https://developer.android.google.cn/about/versions/14/download

布时间

https://developer.android.google.cn/about/versions/14/overview#timeline

交反

https://developer.android.google.cn/about/versions/14/feedback

跨设备以及多尺寸屏幕的支持

Android 14 在  和  的基础上,继续对平板电脑和可折叠设备带来良好的支持。您可以从 "大屏幕使用入门" 和 "为可折叠设备构建应用" 开始,快速了解如何让您的应用做好准备,我们也在大屏设备应用质量指南中提供了详细的检查清单。我们最近也发布了新的开发库来支持低延迟手写笔和运动预测等功能。

大屏幕

使

用入门

https://developer.android.google.cn/guide/topics/large-screens/get-started-with-large-screens

为可折叠设

备构

建应用

https://developer.android.google.cn/guide/topics/ui/foldables

大屏设备

应用

质量

https://developer.android.google.cn/docs/quality-guidelines/tablet-app-quality

延迟 | 图

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

运动

|

输入

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

大屏幕设计图库里则为大家提供了社交和通信、多媒体、生产力、购物和阅读等市面上常见应用类型的设计参考。

通过大

屏设备

扩展用户体验

https://developer.android.google.cn/large-screens/gallery

多类

别应用

的设计参考

https://developer.android.google.cn/large-screens/gallery/social

https://developer.android.google.cn/large-screens/gallery/media

https://developer.android.google.cn/large-screens/gallery/productivity

https://developer.android.google.cn/large-screens/gallery/shopping

https://developer.android.google.cn/large-screens/gallery/reading

隐私和安全

Android 的隐私和安全建立在应用沙盒、开源代码和开放式应用开发的基础上,且一直都是 Android 的核心使命。在 Android 14 中,我们提供了更安全的设备环境,并赋予用户更多的控制权,以保护他们的信息,从而为所有人打造最高质量的平台。

可选照片访问权限

如果您的应用需要访问用户选择的媒体文件,我们建议使用照片选择器 (Photo Picker): 通过整合核心平台功能、Google Play 系统更新和 Google Play 服务,照片选择器可以在 Android 4.4 及以上的设备上为用户提供无需权限的流畅体验。

片选

择器

https://developer.android.google.cn/training/data-storage/shared/photopicker

And

roid 4

.4

https://developer.android.google.cn/about/versions/kitkat

如果您无法使用照片选择器,那么在 Android 14 中,当您的应用请求可视内容媒体权限 (READ_MEDIA_IMAGES / READ_MEDIA_VIDEO,于 SDK 33 中引入) 时,用户可以授权您的应用访问指定的照片和视频。

www.zeeklog.com  - 即刻体验 | Android 14 开发者预览版 2

READ_

MEDIA_

IMAGES

https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_IMAGES

READ_

MED

IA_VIDEO

https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_VIDEO

在新的授权对话框中有如下几个选项:

  • 允许访问所有照片: 设备上的所有照片和视频库都可以访问
  • 允许访问指定照片: 只可以通过 MediaStore 临时访问用户选择的照片和视频
  • 不允许访问: 所有照片和视频都不可访问

应用可以再次提请用户选择媒体文件并授权访问,只需在应用清单中声明 READ_MEDIA_VISUAL_USER_SELECTED 权限即可。

应用

单概览

https://developer.android.google.cn/guide/topics/manifest/manifest-intro

READ_MEDIA_VISUA

L_USER_S

ELECTED

https://developer.android.google.cn/reference/android/Manifest.permission.html#READ_MEDIA_VISUAL_USER_SELECTED

请大家在应用中测试这套新行为,并调整应用的用户体验以适配新的授权和媒体选择流程。

凭据管理器

Android 14 在平台 API 中增加了凭据管理器 (Credential Manager),并且通过 Jetpack 开发库和 Google Play 服务,让该功能可以一直向下支持到 Android 4.4 (API 级别 19) 的设备。凭据管理器提供了 API 来检索和存储凭据,且用户可以设置凭据提供方,从而让登录更加轻松便捷。除了使用密码登录外,这个 API 还允许您的应用使用通行密钥 (Passkey) 来进行登录,这是一种无密码登录的全新行业标准。通行密钥建立在扎实的行业标准上,可以在不同的操作系统和浏览器环境中使用,且同时支持网页端和应用端。开发者预览版 2 改进了账户选择的用户界面设计,并且基于开发者预览 1 中收到的反馈对 API 进行了调整。请访问官方文档了解更多:

https://developer.android.google.cn/training/sign-in/passkeys

凭据

理器

https://developer.android.google.cn/reference/android/credentials/package-summary

使用凭据管理

器让

用户登录

https://developer.android.google.cn/training/sign-in/passkeys

通行

密钥

https://fidoalliance.org/passkeys/

更加安全的隐式 Intent

以 Android 14 为目标平台的应用在使用隐式 Intent 创建可变的 PendingIntent 时将抛出一个异常,以防它们被用来触发意外的代码路径。应用在使用 PendingIntent 时需要确保其不可变,或使用显式 Intent。请访问官方文档了解更多:

https://developer.android.google.cn/about/versions/14/behavior-changes-14#safer-intents

Pendi

ngIntent

https://developer.android.google.cn/reference/android/app/PendingIntent

后台启动 Activity

Android 10 (API 级别 29) 及以上版本对在后台运行的应用启动 Activity 的时机施加了限制。这些限制有助于最大限度地减少对用户的干扰,并使他们更容易控制屏幕上显示的内容。为了进一步减少这类干扰因素,Android 14 给前台应用更多的控制权,让它们能够控制与之交互的应用启动 Activity 的能力。具体来说,以 Android 14 为目标平台的应用在发送 PendingIntent 或绑定服务时,需要授予优先权才能在后台启动 Activity。

A

ctivity

简介

https://developer.android.google.cn/guide/components/activities/intro-activities

从后台

启动 Activity 的

限制

https://developer.android.google.cn/guide/components/activities/background-starts

行为变更:

从后台启

动 Activity 的限制

https://developer.android.google.cn/about/versions/14/behavior-changes-14#background-activity-restrictions

精简后台工作

我们在 Android 14 中继续优化应用的协作方式,以改善系统健康状况和电池寿命,并提升终端用户体验。

后台优化

我们在开发者预览版 2 中优化了 Android 的内存管理系统,以改善应用在后台运行时的资源使用情况。在应用进入缓存状态几秒钟后,常规的 Android 应用生命周期 API (如前台服务、JobScheduler 或者 WorkManager) 之外的后台工作将被禁止,且这个禁止过程比 Android 13 快一个数量级。

进程

和应用生命周

https://developer.android.google.cn/guide/components/activities/process-lifecycle

减少无法清除的通知数量

在 Android 14 中,未锁定的手持设备上的包含 FLAG_ONGOING_EVENT 标识的通知可被用户清除。而当设备被锁定时,通知无法清除,通知监听器也无法清除它们。对设备功能很重要的通知则彻底无法清除,比如系统和设备策略通知。

FLAG_

ONGOING

_EVENT

https://developer.android.google.cn/reference/android/app/Notification.html#FLAG_ONGOING_EVENT

更好的应用商店体验

Android 14 引入了几个新的 PackageInstaller API,以帮助应用商店改善用户体验。比如 requestUserPreapproval()方法可将 APK 的下载推迟到用户批准安装之后;setRequestUpdateOwnership() 方法可以让安装者表明它将负责正在安装的应用的后续更新;以及 setDontKillApp() 方法,可以让正在被使用的应用通过分割 APK 来无缝安装可选功能。另外,InstallConstraints API 可以确保应用在给定的时机进行更新,比如该应用没被使用时。

Packa

geInsta

ller

https://developer.android.google.cn/reference/android/content/pm/PackageInstaller

requestUser

Preappr

oval()

https://developer.android.google.cn/reference/android/content/pm/PackageInstaller.Session#requestUserPreapproval(android.content.pm.PackageInstaller.PreapprovalDetails,%20android.content.IntentSender)

setRequest

Update

Ownership()

https://developer.android.google.cn/reference/android/content/pm/PackageInstaller.SessionParams#setRequestUpdateOwnership(boolean)

setDon

tKillA

pp()

https://developer.android.google.cn/reference/android/content/pm/PackageInstaller.SessionParams?hl=en#setDontKillApp(boolean)

InstallCon

strai

nts

https://developer.android.google.cn/reference/android/content/pm/PackageInstaller.InstallConstraints

如果您在开发应用商店,欢迎体验这些 API 并和我们分享使用感受:

https://developer.android.google.cn/about/versions/14/feedback

定制化

区域偏好

用户可以通过区域偏好来定制温度单位、每周的第一天和计数系统。比如居住在美国的欧洲用户可能更喜欢用摄氏度而不是华氏度来作为温度单位,以及更习惯将周一 (而不是像美国一样用周日) 作为一周的开始。

www.zeeklog.com  - 即刻体验 | Android 14 开发者预览版 2

用户在新的 Android 设置菜单中会更容易找到并集中调整这些应用偏好设置,而且可以很方便地通过备份和恢复将设置转移到新设备中。我们也为您准备了 API 和 Intent 来读取用户的偏好设置,以调整您应用中信息的显示方式 (getTemperatureUnit, getFirstDayOfWeek)。您也可以注册 BroadcastReceiver 来监听 ACTION_LOCALE_CHANGED 并处理区域偏好的变化。

ACTIO

N_L

OCALE_CHANGED

https://developer.android.google.cn/reference/android/content/Intent#ACTION_LOCALE_CHANGED

应用兼容性

在发布新的平台版本时,我们会优先考虑应用的兼容性,以让更新过程更快、更顺畅。在 Android 14 中,大多数面向应用的变更依然是可选的,这样能为大家提供更多的时间进行调整和适配。我们还更新了工具和流程,帮助大家更快地做好准备。

Android

1

4

https://developer.android.google.cn/about/versions/14

在开发者预览版 2 这个阶段,我们依然在收集大家对 API 的使用反馈,以及了解平台变更对大家的应用带来的具体影响。因此,现在正是大家体验新功能,并向我们提交反馈的好时机!

行为变更 (针

对所有

应用)

https://developer.android.google.cn/about/versions/14/behavior-changes-all

提交

https://developer.android.google.cn/about/versions/14/feedback

现在也适合开展应用的兼容性测试并确定相关的工作内容。您无需修改应用的 targetSdkVersion,只需通过开发者选项中的行为变更开关即可进行测试,从而大致了解 Android 14 中的哪些可选变更可能会影响到您的应用。

www.zeeklog.com  - 即刻体验 | Android 14 开发者预览版 2

△ 开发者选项中的应用兼容性开关

应用迁移到 An

droid 14

https://developer.android.google.cn/about/versions/14/migration

targetS

dkVersio

n

https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element

兼容

性框架变更 (An

droid 14)

https://developer.android.google.cn/about/versions/14/reference/compat-framework-changes

我们预计将在 2023 年 6 月抵达平台稳定里程碑。届时我们将提供最终版的 SDK/NDK API 并锁定面向应用的系统行为。这样在正式版本发布之前,您还会有几周的时间进行最终测试。发布时间表详见:

https://developer.android.google.cn/about/versions/14/overview

即刻体验 Android 14

不论您是想体验 Android 14 的功能、测试应用还是提交反馈,都可以从这次的开发者预览版开始。如果您想要测试应用在平板电脑和可折叠设备上的兼容性,最简单的方法是使用 Android Studio SDK 管理器最新预览版中 Android 模拟器的平板电脑或可折叠设备配置进行测试。对于手机,只需将系统映像下载并刷入 Pixel 7 Pro / 7 / 6a / 6 Pro / 6 / 5a 5G / 5 / 4a (5G) 设备,即可立即开始使用。如果您没有 Pixel 设备,则可以在 Android Studio 中使用带有 64 位系统映像的 Android 模拟器。

馈与需

https://developer.android.google.cn/about/versions/14/feedback

安装

SD

K

https://developer.android.google.cn/about/versions/14/setup-sdk#install-sdk

获取系

统映

https://developer.android.google.cn/about/versions/14/download

为了获得最佳的 Android 14 开发体验,我们建议您使用 Android Studio Giraffe 的最新预览版或更高版本。

Android Stu

dio Giraf

fe

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

设置好 SDK 后,您可以:

体验新功能和 API - 在开发者预览版的早期阶段,您的反馈至关重要。您可以在我们的跟踪页

报告问题

  • 测试应用的兼容性 - 测试您的应用是否受到 Android 14 默认行为变更的影响。请将应用安装到运行 Android 14 的设备或模拟器上进行彻底的测试。

使用可选变更项测试应用 - Android 14 提供了可选的行为变更,这些变更仅在您的应用以新平台为目标时才会造成影响。尽早了解和评估这些变更十分重要。为了便于测试,您可以

单独启用或者禁用这些变更

设置 And

roi

d 14 SDK

https://developer.android.google.cn/about/versions/14/setup-sdk

报告

https://developer.android.google.cn/about/versions/14/feedback

单独启用或者禁

这些变更

https://developer.android.google.cn/about/versions/14/reference/compat-framework-changes

我们将在整个 Android 14 的发布周期内定期更新预览版系统映像和 SDK。这次发布的预览版仅供开发者使用,不面向日常或消费者使用,因此我们仅提供手动下载。在手动安装预览版后,您将通过 OTA 方式自动获得所有后续预览版和 Beta 版更新。请访问官方文档了解详细信息:

https://developer.android.google.cn/about/versions/14/get

如果您打算从 Android 13 QPR Beta 版转移到 Android 14 开发者预览版,并且不想擦除您的设备,我们建议您现在就安装本次的开发者预览版 2,否则之后 Android 13 Beta 版可能发布构建日期更新的版本,届时您就无法在不擦除数据的情况下直接安装 Android 14 开发者预览版了。

获取 Android 13 Q

PR B

eta 版

https://developer.android.google.cn/about/versions/13/get-qpr

随着我们接近 Beta 版的发布,我们也会邀请消费者来体验 Android 14,届时将开放 Android Beta 体验注册。但请注意,目前 Android 14 尚未提供 Beta 版本。

请访问 Android 14 开发者网站了解本次发布的详细信息:

https://developer.android.google.cn/about/versions/14

* Java 和 OpenJDK 是 Oracle 和/或其附属公司的商标或注册商标。

www.zeeklog.com  - 即刻体验 | Android 14 开发者预览版 2

点击屏末 | 阅读原文 | 进一步了解 Android 14 详细更新


www.zeeklog.com  - 即刻体验 | Android 14 开发者预览版 2
www.zeeklog.com  - 即刻体验 | Android 14 开发者预览版 2
www.zeeklog.com  - 即刻体验 | Android 14 开发者预览版 2

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