您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > Android

提升性能与效率,Android 14 正式发布

时间:2023-10-08 12:21:16  来源:CSDN  作者:

Android 14 如期发布,Android 工程副总裁 Dave Burke 发文详细介绍了这一版本的新功能。

原文地址:https://android-developers.googleblog.com/2023/10/android-14-is-live-in-aosp.html

作者 | GPT-3.5 责编 | 梦依丹

出品 | CSDN(ID:CSDNnews)

提升性能与效率,Android 14 正式发布

Android 14 已正式发布,其源代码已上传至 Android 开源项目(AOSP)。Android 14 旨在提升开发者的工作效率,同时增强性能、隐私、安全性,以及用户的个性化体验。

从发布之日开始,Android 14 将逐步推向部分 Pixel 设备,而在今年晚些时候,您还可以在一些您喜爱的设备上找到它,包括三星 Galaxy、iQOO、Nothing、OnePlus、Oppo、Realme、Sharp、Sony、Tecno、vivo 和小米。

本文重点介绍了对开发者影响最大的 Android 14 变化。要查看 Android 14 的所有变更,请访问 Android 14 开发者网站:https://developer.android.com/about/versions/14。

性能与效率

Android 14 的一个主要关注点是提升平台的性能和效率。

冻结缓存应用

在 Android 14 之前,缓存应用程序的运行相对自由。而在 Android 14 中,我们会在一段时间后冻结这些缓存应用,使它们不再占用 CPU 时间。在 Android 14 Beta 版本中,我们发现相比于 Android 13 公开设备,缓存进程的 CPU 使用量降低了高达 50%。因此,除了传统的 Android 应用生命周期 API,如前台服务、JobScheduler 或 WorkManager,后台工作将受到限制。

广播优化

为了延长缓存应用程序的冻结时间(即不获得 CPU 时间),我们调整了应用程序在进入缓存状态后接收上下文注册广播的方式;这些广播可能会被排队,并且重复的广播,如电池状态改变(BATTERY_CHANGED),可能会合并成一个广播。

更快的应用启动

通过对缓存应用和广播进行优化,Android 14 增加了平台中缓存应用的最大数量的长期限制,从而减少了冷启动应用的次数,而这一改进将根据设备的内存容量而扩展。在 8GB 设备上,测试团队看到冷启动应用的数量减少了 20%,而在 12GB 设备上减少了超过 30%。冷启动相对于热启动来说速度较慢,而且在电能方面成本较高。这一工作有效地改善了电能使用和整体应用启动时间。

减少内存占用

改进 Android 运行时(ART)对 Android 用户体验有着重要影响。代码大小是我们关注的关键指标之一;生成的文件越小,对内存(包括 RAM 和存储空间)的影响就越小。在 Android 14 中,ART 包含了优化措施,将代码大小平均减少了 9.3%,而不会影响性能。

定制

定制一直是 Android 基因中的核心要素,而 Android 14 则延续了我们对 Android 用户的承诺,使他们能够根据个人需求调整自己的使用体验,包括增强的可访问性和国际化功能。

具有非非线性缩放功能的更大字体- 从 Android 14 开始,用户能够将字体放大到 200%。之前,在 Pixel 设备上,最大的字体缩放比例为 130%。我们采用了非线性字体缩放曲线,以确保已经足够大的文本不会像较小的文本一样以相同的速度增大。

提升性能与效率,Android 14 正式发布

每个应用的语言偏好设置 - 您可以使用 LocaleManager.setOverrideLocaleConfig 动态更新应用的 localeConfig,用来自定义 Android 设置中每个应用的语言列表中显示的语言集。输入法编辑器 (IME) 现在可以使用 LocaleManager.getApplicationLocales 来了解当前应用的界面语言,以便更新键盘语言。从 Android Studio Giraffe 和 AGP 8.1 开始,您可以配置您的应用以自动支持 Android 13 的每个应用的语言偏好。

区域偏好设置- 区域偏好设置允许用户个性化温度单位、每周的第一天以及数字系统。

Grammatical Inflection - Grammatical InflectionAPI 允许您更轻松地为使用有语法性别的语言的用户添加支持。为了展示个性化的翻译,您只需要为受影响的语言添加每个语法性别的翻译并集成该 API。

新媒体功能

图像的 Ultra HDR - Android 14 增加了对 10 位高动态范围(HDR)图像的支持,并支持超级高动态范围图像格式。该格式与 JPEG 完全向后兼容,使应用程序能够与 HDR 图像无缝交互。

相机扩展中的缩放、对焦、后视图等功能- Android 14 升级并改进了相机扩展,允许应用程序处理更长的处理时间,从而在支持的设备上使用计算密集型算法,例如低光条件下的摄影,以获得更出色的图像。

无损 USB 音频- Android 14 设备可以支持无损音频格式,从而实现了通过USB有线耳机获得音乐发烧友级别的音频体验。

新的图形能力

使用顶点和片段着色器的自定义网格- Android 14 增加了对自定义网格的支持,这些网格可以定义为三角形或三角形条带,并且可以选择进行索引。这些网格是通过自定义属性、顶点步幅、varying,以及在 AGSL 中编写的顶点/片段着色器来指定的。

Canvas 的硬件缓冲渲染器- Android 14 引入了 HardwareBufferRenderer 来协助使用 Android 的 Canvas API 以硬件加速的方式绘制到 HardwareBuffer 中。这在您的使用情况涉及通过 SurfaceControl 与系统合成器进行低延迟绘制时特别有帮助。

跨形态开发

Android 14 在 Android 12L 和 13 中的工作基础上,支持平板电脑和可折叠外形因素,包括支持增强多任务处理的任务栏、大屏幕优化的系统应用和通知界面、活动嵌入、增强型信函板、改进的媒体投影等功能。我们提供了适用于大屏幕的应用质量指导,以及关于为大屏幕和可折叠设备开发的额外学习机会,帮助您优化应用在所有 Android 设备上的表现。此外,大屏幕设计画廊还包括了社交与通讯、媒体、生产力、购物和阅读应用的设计模式和灵感。

提高生产力

Android 14 包含了许多更新,专注于使您的开发体验更加一致、有趣和高效。这些更新中的许多通过结合使用Google Play系统更新、Jetpack库和Google Play服务,已经在较旧的平台版本上提供,因此您可以借此触达更多用户。

OpenJDK 17 支持- 得益于 Google Play 系统更新(Project MAInline),超过 6 亿台设备都能够接收到随 Android 14一同发布的最新 Android 运行时(ART)更新。

凭据管理器和密码匙支持- 凭据管理器是一种新的 Jetpack API,它支持多种登录方法,包括用户名和密码、密码匙以及联合登录解决方案(例如,与谷歌一起登录),全部集成在一个API中,从而简化了您的集成过程。通过使用Google Play 服务,Credential Manager 支持回溯至 Android 4.4(API级别19)。

Health Connect - Health Connect 是一个由用户控制的设备上存储用户健康健身数据的仓库,它使得跨应用程序和连接设备之间实现集成的健康和健身体验变得比以往更加容易。Health Connect 是 Android 平台的一部分,通过 Google Play 系统更新进行更新,无需单独下载,同时也可在 Google Play 商店上作为应用提供给旧版设备。

卓越的系统共享表- 为了让您的应用程序用户获得丰富、一致的共享体验,Android 14 中的系统共享表可以进行自定义操作和改进排名的配置。

更一致、更可靠的前台服务- 我们与三星等硬件制造商合作,旨在打造更一致的开发者体验和更可靠的用户体验。因此,Android 14 引入了新的要求,需要声明前台服务类型并请求特定类型的权限,同时我们也制定了 Google Play 政策来强制执行这些 API 的适当使用。此外,我们还新增了一种用户发起的数据传输工作类型,通过利用 JobScheduler 的约束条件(例如,无计量的 wifi 等网络约束条件),使用户能够更顺畅地管理大型用户发起的上传和下载操作。

用户体验

预测性返回- Android 14 引入了新的预测性返回系统动画,包括跨活动和跨任务的动画,以扩展 Android 13 中引入的返回主页动画。这些系统动画仍然处于开发者选项之后,以便有更多的时间进行进一步的完善,并让更多的应用程序选择使用预测性返回功能。Material 和 Jetpack 预测性返回动画已经可以供用户使用。

隐私和安全

数据共享更新- 用户将在位置运行时权限对话框中看到一个新的部分,该部分突出显示了应用程序与第三方共享位置数据的情况,用户可以在此获取更多信息并控制应用程序的数据访问。

照片和视频的部分访问权限 - 当您的应用程序针对 SDK 34 请求 SDK 33 引入的任何视觉媒体权限(READ_MEDIA_IMAGES / READ_MEDIA_VIDEO)时,Android 14 用户现在可以选择只允许您的应用程序访问特定的照片和视频。为了使您的应用程序适应这一变化,我们建议您遵循我们最近的最佳实践。

后台活动启动- Android 10(API 级别 29)及更高版本对应用程序在后台运行时启动活动的时间做出了限制。为了进一步减少意外中断的情况,针对 Android 14 的应用程序需要在发送 PendingIntent 或绑定服务时授予后台启动活动的权限。

阻止安装旧版 SDK 的应用程序- 为了防止针对旧版 API 级别绕过安全和隐私保护措施的恶意软件,Android 14 不允许安装目标SDK版本低于23的应用程序。

运行时接收器- 针对 Android 14 的应用程序必须明确指示是否应将动态 Context.registerReceiver 的使用视为 "已导出" 或 "未导出",这是前几个版本中清单级工作的延续。

安全的全屏意图通知- 由于全屏意图通知设计用于极高优先级的通知,要求用户立即关注,因此 Android 14 仅在应用安装时授予权限给那些只提供通话和闹钟功能的应用程序。您的应用程序现在可以启动设置页面,让用户授予权限。

更安全的动态代码加载- 针对 Android 14 的应用程序要求将动态加载的文件标记为只读。

更安全的隐式意图- 针对 Android 14 的应用程序,使用隐式意图创建可变的待定意图将引发异常,从而防止它们被用于触发意外的代码路径。应用程序需要将待定意图设为不可变,或将意图设为显式。

应用程序兼容性

我们致力于通过优先考虑应用程序兼容性,使每个平台发布的更新更加快速和平稳。在 Android 14 中,我们将大多数影响应用程序的变化设置为选择性,直到您的应用程序目标 SDK 版本达到 34,以便您有更多时间进行必要的应用程序更改。我们还更新了工具和流程,以帮助您更早地做好准备。

更容易测试和调试更改- 为了让您更容易测试可能会影响您的应用程序的选择性更改,今年我们将再次提供许多开关功能。通过这些开关,您可以从开发者选项或使用 adb 单独启用或禁用这些更改。

提升性能与效率,Android 14 正式发布

为您的应用程序、库、工具和游戏引擎做好准备!

现在是完成最终兼容性测试并发布任何必要更新以确保应用程序体验顺畅的时候了。

如果您开发的是 SDK、库、工具或游戏引擎,那么现在更重要的是发布任何必要的更新,以防止下游的应用程序和游戏开发人员受到兼容性问题的阻碍,并让他们能够针对最新的 SDK 功能。请务必告知您的开发人员是否需要更新以完全支持 Android 14。

测试您的应用程序涉及将您的生产应用程序安装到运行 Android 14 的设备上;您可以使用 Google Play 或其他方式。在所有应用程序流程上进行测试,查找功能或用户界面方面的问题。查看行为变更以便更集中地进行测试。每个 Android 版本都包含对平台的变更,这些变更旨在改进隐私、安全性和整体用户体验,而这些变更可能会影响您的应用程序。以下是一些需要测试的主要变更:

允许对照片和视频进行部分访问- 在 Android 14 上,当应用程序请求 Android 13(API 级别 33)引入的任何可视媒体权限时:READ_MEDIA_IMAGES 或 READ_MEDIA_VIDEO,用户可以授予对其照片和视频的部分访问权限。如果您的应用程序已经使用了照片选择器,您无需采取任何措施来支持此更改。否则,您应该使用新的 READ_MEDIA_VISUAL_USER_SELECTED 权限来优化用户体验。

安全的全屏意图通知- 在 Android 14 上,创建全屏意图通知的应用程序仅限于提供电话和闹钟功能的应用程序。对于不符合这个配置的应用程序,Google Play 商店会撤销默认的 USE_FULL_SCREEN_INTENT 权限。

默认情况下拒绝安排精确的通知- 从 Android 14 开始,SCHEDULE_EXACT_ALARM 权限不再被预先授予大多数针对 Android 13 及更高版本的新安装应用程序,该权限默认被拒绝。

非线性字体缩放至 200% - 从 Android 14 开始,系统支持将小文字大小的字体缩放至 200%,为低视力用户提供了符合 Web 内容可访问性指南(WCAG)的附加可访问性选项。

切记在兼容性测试中使用应用程序正在使用的库和 SDK。您可能需要更新到当前的 SDK 版本,或向开发人员寻求帮助。

发布当前应用程序的兼容版本后,您就可以开始更新应用程序的 targetSdkVersion。查看应用针对 Android 14 时适用的行为变化,并使用兼容性框架帮助快速检测问题。



Tags:Android   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Android Emulator黑屏怎么办 Android模拟器黑屏解决方法
Android Emulator黑屏问题困扰了非常多的玩家,Android Emulator作为一款安卓模拟器,可以让你在电脑上运行和浏览安卓应用程序,但是程序本身不是很稳定,很容易会出现黑屏,启动不了...【详细内容】
2024-03-04  Search: Android  点击:(37)  评论:(0)  加入收藏
Android 谷歌三件套:解锁谷歌生态!
大家是不是遇到这个情况?当我们需要下载一些国外的游戏或者软件的时候,需要在手机里面安装Google Play商店,然后通过Google Play商店下载国外软件!为了帮助大家使用上各种好用的...【详细内容】
2024-01-02  Search: Android  点击:(110)  评论:(0)  加入收藏
Android开发中常见的Hook技术有哪些?
Hook技术介绍Hook技术是一种在软件开发中常见的技术,它允许开发者在特定的事件发生时插入自定义的代码逻辑。常见的应用场景包括在函数调用前后执行特定的操作,或者在特定的事...【详细内容】
2023-12-25  Search: Android  点击:(83)  评论:(0)  加入收藏
在Android应用开发中使用NFC功能
NFC介绍NFC是指“近场通讯”(Near Field Communication),它是一种短距离无线通信技术,允许设备在非接触或极短距离内进行通信。NFC通常用于移动支付、门禁系统、智能标签和其他...【详细内容】
2023-12-22  Search: Android  点击:(102)  评论:(0)  加入收藏
关于Android图像Bitmap类,你要知道的一切
Bitmap介绍Bitmap是一种图像文件格式,它由像素阵列组成,每个像素都有自己的颜色信息。在计算机图形学中,Bitmap图像可以被描述为一个二维的矩阵,其中每个元素代表一个像素的颜色...【详细内容】
2023-12-19  Search: Android  点击:(97)  评论:(0)  加入收藏
Android开发中如何进行单元测试?
单元测试介绍单元测试是软件开发中的一种测试方法,用于验证代码中的最小可测试单元(通常是函数或方法)是否按预期工作。单元测试通常由开发人员编写,旨在隔离和测试代码的特定部...【详细内容】
2023-12-11  Search: Android  点击:(166)  评论:(0)  加入收藏
我的手机我做主,如何为Android手机应用换图标?
作为一名Android用户,你是否曾经为自己的手机桌面感到单调而乏味?虽然Android系统的桌面定制性已经非常强大,但有时候我们还是希望能够在细节上做出一些改变,尤其是对于那些每天...【详细内容】
2023-12-10  Search: Android  点击:(61)  评论:(0)  加入收藏
了解Android系统架构中的HAL硬件抽象层
在Android系统中,HAL的存在使得不同厂商的硬件可以统一被上层的应用程序调用,从而提高了系统的兼容性和可移植性。HAL还可以帮助开发者更方便地开发应用程序,因为他们不需要为...【详细内容】
2023-12-06  Search: Android  点击:(200)  评论:(0)  加入收藏
谷歌 CEO 皮查伊建议 Android 用户不要侧载应用,称非常危险
iOS和Android的一个显著差异是,Android支持用户从第三方渠道安装应用程序(即“侧载”)。然而,谷歌似乎并不希望用户这样做。最近,在与Epic Store的法律诉讼中,谷歌首席执行官桑达...【详细内容】
2023-11-20  Search: Android  点击:(166)  评论:(0)  加入收藏
Android数据对象序列化原理与应用
序列化与反序列化「序列化」是将对象转换为可以存储或传输的格式的过程。在计算机科学中,对象通常是指内存中的数据结构,如数组、列表、字典等。通过序列化,可以将这些对象转换...【详细内容】
2023-11-14  Search: Android  点击:(272)  评论:(0)  加入收藏
▌简易百科推荐
Android Emulator黑屏怎么办 Android模拟器黑屏解决方法
Android Emulator黑屏问题困扰了非常多的玩家,Android Emulator作为一款安卓模拟器,可以让你在电脑上运行和浏览安卓应用程序,但是程序本身不是很稳定,很容易会出现黑屏,启动不了...【详细内容】
2024-03-04  18183游戏网    Tags:Android Emulator   点击:(37)  评论:(0)  加入收藏
Android开发中常见的Hook技术有哪些?
Hook技术介绍Hook技术是一种在软件开发中常见的技术,它允许开发者在特定的事件发生时插入自定义的代码逻辑。常见的应用场景包括在函数调用前后执行特定的操作,或者在特定的事...【详细内容】
2023-12-25  沐雨花飞蝶  微信公众号  Tags:Android   点击:(83)  评论:(0)  加入收藏
在Android应用开发中使用NFC功能
NFC介绍NFC是指“近场通讯”(Near Field Communication),它是一种短距离无线通信技术,允许设备在非接触或极短距离内进行通信。NFC通常用于移动支付、门禁系统、智能标签和其他...【详细内容】
2023-12-22  沐雨花飞蝶  微信公众号  Tags:Android   点击:(102)  评论:(0)  加入收藏
关于Android图像Bitmap类,你要知道的一切
Bitmap介绍Bitmap是一种图像文件格式,它由像素阵列组成,每个像素都有自己的颜色信息。在计算机图形学中,Bitmap图像可以被描述为一个二维的矩阵,其中每个元素代表一个像素的颜色...【详细内容】
2023-12-19  沐雨花飞蝶  微信公众号  Tags:Android   点击:(97)  评论:(0)  加入收藏
Android开发中如何进行单元测试?
单元测试介绍单元测试是软件开发中的一种测试方法,用于验证代码中的最小可测试单元(通常是函数或方法)是否按预期工作。单元测试通常由开发人员编写,旨在隔离和测试代码的特定部...【详细内容】
2023-12-11  沐雨花飞蝶  微信公众号  Tags:Android   点击:(166)  评论:(0)  加入收藏
一篇聊聊Jetpack Room实现数据存储持久性
Room介绍Room 是 Android Jetpack 组件库中的一部分,它是用于在 Android 应用中进行本地数据库访问和管理的库。Room 提供了一个抽象层,使开发者能够更轻松地访问 SQLite 数据...【详细内容】
2023-12-08  沐雨花飞蝶  微信公众号  Tags:Jetpack   点击:(142)  评论:(0)  加入收藏
了解Android系统架构中的HAL硬件抽象层
在Android系统中,HAL的存在使得不同厂商的硬件可以统一被上层的应用程序调用,从而提高了系统的兼容性和可移植性。HAL还可以帮助开发者更方便地开发应用程序,因为他们不需要为...【详细内容】
2023-12-06  沐雨花飞蝶  微信公众号  Tags:Android   点击:(200)  评论:(0)  加入收藏
我们一起聊聊 IntentService 与 Service 的区别?
Service介绍Service组件是Android应用开发中的四大组件之一,用于在后台执行长时间运行的操作或处理远程请求。它可以在没有用户界面的情况下执行任务,并且可以与其他应用组件...【详细内容】
2023-12-06  沐雨花飞蝶  微信公众号  Tags:IntentService   点击:(167)  评论:(0)  加入收藏
Android数据对象序列化原理与应用
序列化与反序列化「序列化」是将对象转换为可以存储或传输的格式的过程。在计算机科学中,对象通常是指内存中的数据结构,如数组、列表、字典等。通过序列化,可以将这些对象转换...【详细内容】
2023-11-14  沐雨花飞蝶  微信公众号  Tags:Android   点击:(272)  评论:(0)  加入收藏
你了解Android中的SELinux吗?
SELinux介绍SELinux(Security-Enhanced Linux)是一种安全增强的Linux操作系统,它通过强制访问控制(MAC)机制来提供更高级别的系统安全保护。相比于传统的Linux访问控制机制(DAC),SEL...【详细内容】
2023-11-09  沐雨花飞蝶  微信公众号  Tags:Android   点击:(263)  评论:(0)  加入收藏
站内最新
站内热门
站内头条