Android 15 正式发布至 AOSP

Google官方宣布,将于近期发布了 Android 15,而在早些时候,Google已经将其源代码推送至 Android 开源项目 (AOSP)。未来几周内,Android 15 将在受支持的 Pixel 设备上正式推出,并将于今年晚些时候在三星、Honor、iQOO、Lenovo、Motorola、Nothing、一加、OPPO、真我、夏普、索尼、Tecno、vivo 和小米等设备上推出。

源码地址:Android Open Source Project

Android 15 延续了我们构建私密、安全平台的使命,致力于帮助您提高工作效率,同时为您提供各种新功能,以便您制作精美的应用、打造卓越的媒体和相机体验,尤其是在平板电脑和可折叠设备上提供流畅的用户体验。

以下是Android 15版本推出的更新内容:

改善开发者体验

虽然我们提高工作效率的大部分工作都围绕 Android Studio、Jetpack Compose 和 Android Jetpack 库等工具展开,但每个新的 Android 平台版本都包含改善 QOL 的更新,以提升开发体验。例如,Android 15 为您提供新的见解和遥测数据,旨在帮助您进一步优化应用体验,从而改善应用在任何平台版本上的运行方式。

  • ApplicationStartInfo API 有助于您深入了解应用的启动情况,包括启动原因、启动阶段耗时、启动温度等。

  • Android Jetpack 中的 Profiling 类简化了在 Android 15 中使用新的 ProfilingManager API 的方式,允许您的应用请求堆分析报告、堆转储、堆栈采样或系统跟踪,以一种新的方式来收集用户设备上应用运行情况的遥测数据。

  • StorageStats.getAppBytesByDataType([type]) API 为您提供有关应用如何使用存储的新见解,包括 apk 文件拆分、提前编译 (AOT) 和加速相关代码、dex 元数据、库和引导配置文件。

  • PdfRenderer API 现在包括了集成高级功能的能力,例如渲染受密码保护的文件、注释、表单编辑、搜索以及复制选择。支持线性 PDF 优化功能,以加快本地 PDF 的查看速度并减少资源使用。Jetpack PDF 库不仅可以使用这些 API 来简化向应用添加 PDF 查看功能的操作,还计划支持较旧的 Android 版本。

  • 新增的 OpenJDK API 可支持额外的 Math/StrictMath 方法、包括 Sequenced Collection/Map/Set 在内的许多 util 更新、Deflater 中的 ByteBuffer 支持以及安全密钥更新。这些 API 更新通过 Google Play 系统更新推送到运行 Android 12+ 至 Android 15 的超十亿台设备上,以便您可以最大范围地使用最新的编程功能。

  • 新增的 SQLite API 包括对只读延迟事务的支持、在不发出额外查询的情况下检索已更改行数或最后插入的行 ID 的新方法,以及对原始 SQLite 语句的直接支持。

  • Android 15 增加了新的 Canvas 绘图功能,包括有助于在 3D 中处理 Canvas 的 Matrix44 和通过与当前着色器或当前着色器的差异相交来生成复杂形状的 clipShader/clipOutShader。

改进排版效果和提高国际化水平

Android 可帮助您打造出精美的应用,使其能在全球多样化的 Android 生态系统中流畅运行。

  • 现在,您可以使用 Android 15 中的可变字体创建 FontFamily 实例,而不必使用 buildVariableFamily API 指定 wght 和 ital 轴;文本渲染器将自动调整 wght 和 ital 轴的值,以便显示文本与兼容的字体相匹配。

  • Android 15 中,适用于中文、日文和韩文 (CJK) 的字体文件 NotoSansCJK 成为可变字体,为创意排版开辟了新的可能性。

  • Android 15 默认捆绑一个旧日文平假名 (即 "Hentaigana") 字体文件,这既有助于增添独特的设计风格,同时还让开发者可以更准确地理解和传达古代日本文献。

  • Android 15 中的 JUSTIFICATION_MODE_INTER_CHARACTER 针对中文和日文等使用空格进行分段的语言进行对齐优化。

相机和媒体改进

每次 Android 发布都会帮助您为用户带来卓越的媒体和相机体验。

  • 对于同时包含 HDR 和 SDR 内容的屏幕,Android 15 允许您使用 setDesiredHdrHeadroom 控制 HDR 余量,以防出现 SDR 内容呈现褪色效果。

  • Android 15 支持智能调整包含响度元数据的 AAC 音频的音频响度和动态范围压缩级别,以便音频级别可以适应用户设备和周围环境。要启用此功能,请使用来自关联 AudioTrack 中的音频会话 ID 实例化 LoudnessCodecController。

  • Android 15 中的弱光增强功能可在弱光条件下调整预览流的曝光度,从而实现图像预览增强、在弱光下扫描二维码等功能。

  • Android 15 中的高级闪光灯强度调整,可在拍摄图像时精确控制 SINGLE 和 TORCH 模式下的闪光强度。

  • Android 15 扩展了对虚拟 MIDI 应用的 UMP 支持,使作曲应用能够将合成器应用作为虚拟 MIDI 2.0 设备进行控制,就像控制 USB MIDI 2.0 设备一样。

改善用户体验

我们致力于在每个版本中不断改进 Android 用户体验,同时努力提高性能和电池寿命。以下是 Android 15 的一些改进,旨在提供更直观、更高性能、更便于访问的体验。

  • 在 Android 15 上,用户不仅可以保存自己偏好的分屏应用组合以快速访问,还可以在屏幕上固定任务栏以在应用之间快速切换,从而实现更好的大屏多任务处理。确保您的应用具有自适应性比以往任何时候都更为重要。

  • Android 15 默认在以 SDK 35 为目标时 "无边框" 显示应用。此外,系统栏将默认为透明或半透明,内容将在其后面绘制。要确保您的应用已准备就绪,请查看 "使用边衬区处理重叠"(视图) 或 "Compose 中的窗口边衬区"。此外,许多 Material 3 可组合项可帮助您处理边衬区。

  • Android 15 使 TalkBack 能够支持通过 USB 和安全蓝牙使用 HID 标准的盲文显示屏,以帮助 Android 支持更广泛的盲文显示屏。

  • 在受支持的 Android 15 设备上,NfcAdapter 允许应用请求观察模式以及注册过滤器,从而在大多数情况下在多个支持 NFC 的应用之间实现一键交易。

  • 应用可以声明一个属性,以允许您的应用或活动在受支持的 "翻盖式" 设备的小外屏上显示。

  • Android 15 大大增强了 AutomaticZenRules,通过添加类型、图标、触发描述和触发 ZenDeviceEffects 的能力,允许应用进一步自定义注意力管理 (勿扰) 规则。

  • Android 15 现在支持以操作系统级执行应用归档和取消归档。归档操作会删除 APK 和已缓存的文件,但会保留用户数据,并通过 LauncherApps API 返回可显示的应用,并且原始安装程序可以在请求取消归档时恢复相关数据。

  • 作为改善电池寿命和多任务性能工作的一部分,我们在 Android 15 中对前台服务做出了一些更改,包括新增数据同步超时、新的媒体处理前台服务类型,以及在应用拥有 SYSTEM_ALERT_WINDOWS 权限的情况下,限制从 BOOT_COMPLETED 启动前台服务。

  • 从 Android 15 开始,16 KB 页面大小支持将在特定设备上作为开发者选项提供。当 Android 使用这种较大的页面大小时,我们的初步测试结果显示,在额外使用约 9% 的内存时,整体性能提升了 5-10%。

隐私和安全增强功能

隐私和安全是我们所有工作的核心,所以我们致力于在每个平台版本中做出有意义的改进,以保护应用和我们的用户。

  • Android 15 中的私密空间支持用户在自己的设备上创建独立的空间,用户可以为该空间设置额外的身份验证步骤,防止敏感应用遭到窥探。对于某些类型的应用 (如医疗应用、启动器应用和应用商店),可能需要采取额外步骤才能让其在用户的私密空间中正常运行。

  • Android 15 支持使用通行密钥进行一键登录,并支持自动填充已保存的凭证到相关输入字段。

  • Android 15 增加了对应用的支持,使其能够检测自身行为是否被记录。这样一来,如果您的应用正在执行敏感操作,您便可以告知用户他们的行为正在被录制。

  • Android 15 添加了 allowCrossUidActivitySwitchFromBelow 属性,用以阻止与堆栈上的顶部 UID 不匹配的应用启动活动,以免发生任务劫持攻击。

  • 在 Android 15 中,PendingIntent 创建者默认会阻止后台活动启动,以帮助防止应用意外创建可能被恶意攻击者滥用的 PendingIntent。

应用、库、工具和游戏引擎整装待发

如果您开发的是 SDK、库、工具或游戏引擎,现在更重要的是准备所有必要更新,让下游应用和游戏开发者免受兼容性问题的阻碍,从而能针对最新的 SDK 功能进行开发。请务必告知开发者是否需要更新才能完全支持 Android 15。

测试应用的环节包括: 通过 Google Play 或其他方式将您的应用安装到运行 Android 15 的设备或模拟器上;运行应用的所有工作流程,检查是否有功能或界面问题;检查应用的行为变更以便您集中测试。即使您尚未针对 Android 15 采取任何行动,也请您关注以下几项变更:

  • 更改软件包停止状态 - Android 15 更新了软件包 FLAG_STOPPED 状态的行为,在用户启动应用或间接与应用交互之前,使应用保持停止状态。

  • 支持 16 KB 的页面大小 - 从 Android 15 开始,部分设备将支持配置为使用 16 KB 页面大小,并作为开发者选项提供。此外,Android Studio 还通过 SDK 管理器提供支持 16 KB 的模拟器系统映像。如果您的应用或库直接或通过 SDK 间接使用 NDK,您可以使用 QPR Beta 版或 Android 15 模拟器系统映像中的开发者选项来测试和修复应用,为即将采用 16 KB 页面大小的 Android 设备做好准备。

  • 私密空间支持 - 测试安装在私密空间中的应用/库是否可以正常运行;我们为医疗应用、启动器应用和应用商店提供了指南。

  • 移除旧版表情符号字体文件 - 某些搭载 Android 15 的设备 (如 Pixel) 将不再包含自 Android 13 以来针对兼容性提供的位图 NotoColorEmojiLegacy.ttf 文件,而是仅保留默认的矢量文件。

在兼容性测试中,请彻底测试您应用正在使用的库与 SDK。如果遇到任何问题,您可能需要更新到最新的 SDK 版本或联系开发者寻求帮助。

应用兼容性

我们优先考虑应用的兼容性,致力于更快、更流畅地完成每次的平台版本更新。在 Android 15 中,我们将大多数面向应用的更改设置为可选择,直到您的应用目标 SDK 版本为 35。这样,您就有更多时间对应用进行必要的更改。

为了让您能够更轻松地测试可能影响您应用的可选更改,我们今年又根据您的反馈对其中许多更改提供了可切换选项。通过切换开关,您可以从开发者选项或 adb 中单独强制启用或禁用这些更改。您可以在此处查看操作方法。

图片


为了帮助您针对 Android 15 迁移应用,最新的 Android Studio Koala Feature Drop 版本中的 Android SDK 升级助手现在涵盖了 Android 15 API 更改,并引导您完成升级 targetSdkVersion 的步骤。

图片

即刻体验 Android 15

如果您有受支持的 Pixel 设备,则将在 Android 15 可用时通过 OTA 收到更新。如果您不想等待,欢迎随时加入 Android 15 QPR Beta 版计划,以获取最新的季度平台发布 (QPR) 测试版。

如果您已经在支持下一个 Android 版本的 Pixel 设备上加入 QPR Beta 版计划,则有机会安装首个 Android 15 QPR Beta 版更新。如果您想在不擦除设备数据的情况下退出 Beta 版计划,请勿安装 Beta 版,而是等待针对 Pixel 设备发布的正式版本更新。应用稳定版本更新后,只要不应用下一个 Beta 版更新,您就可以在无需执行数据擦除操作的情况下退出测试计划。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/427334.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[vue2+axios]下载文件+文件下载为乱码

export function downloadKnowledage(parameter) {return axios({url: /knowledage/download,method: GET,params: parameter,responseType: blob}) }添加 responseType: blob’解决以下乱码现象 使用触发a标签下载文件 downloadKnowledage(data).then((res) > {let link …

高效处理NPE!!

相信不少小伙伴已经被java的NPE(Null Pointer Exception)所谓的空指针异常搞的头昏脑涨,有大佬说过“防止 NPE,是程序员的基本修养。”但是修养归修养,也是我们程序员最头疼的问题之一,那么我们今天就要尽可能的利用Java8的新特性 Optional来…

AI绘画与摄影新纪元:ChatGPT+Midjourney+文心一格 共绘梦幻世界

文章目录 一、AI艺术的新时代二、ChatGPT:创意的引擎与灵感的火花三、Midjourney:图像生成的魔法与技术的奇迹四、文心一格:艺术的升华与情感的共鸣五、融合创新:AI绘画与摄影实战的无限可能六、应用场景与实践案例AI艺术的美好未…

11 vue3之插槽全家桶

插槽就是子组件中的提供给父组件使用的一个占位符&#xff0c;用<slot></slot> 表示&#xff0c;父组件可以在这个占位符中填充任何模板代码&#xff0c;如 HTML、组件等&#xff0c;填充的内容会替换子组件的<slot></slot>标签。 匿名插槽 1.在子组…

一个场景是否可以同时选择CPU和GPU渲染

一个场景是否可以同时选择CPU和GPU渲染&#xff0c;主要取决于所使用的渲染软件及其支持的渲染引擎。在大多数情况下&#xff0c;现代渲染软件如3DMax等确实支持同时利用CPU和GPU进行渲染&#xff0c;以提高渲染效率和速度。 渲染软件的支持 以3DMax为例&#xff0c;它允许用…

xxl-job、Quartz、power-job、elastic-job对比选型

一、框架对比 1. Quartz 优点&#xff1a;稳定性和可扩展性好&#xff0c;适用于企业级应用&#xff1b;调度功能丰富&#xff0c;满足多种需求。 缺点&#xff1a;本身不提供原生的分布式支持&#xff0c;需要通过扩展或与其他组件结合来实现分布式任务调度&#xff1b;调度…

使用NotificationChannel实现后台视频上传

1、添加依赖 implementation net.gotev:uploadservice:4.8.0 implementation net.gotev:uploadservice-okhttp:4.8.02、在application中初始化服务&#xff1a; //初始化上传服务private fun initUploadService() {// 文件上传createNotificationChannel()//notificationChan…

算法里面的离散化

一、离散化&#xff08;discretization&#xff09;在算法和数据结构中指的是将连续的输入数据映射到离散的值或者范围&#xff0c;从而使得处理和计算变得更高效。通常用于处理大范围或者无限可能的输入&#xff0c;以便将其转化为有限的、可以有效处理的范围。 离散化的定义…

【深度学习】(3)--损失函数

文章目录 损失函数一、L1Loss损失函数1. 定义2. 优缺点3. 应用 二、NLLLoss损失函数1. 定义与原理2. 优点与注意3. 应用 三、MSELoss损失函数1. 定义与原理2. 优点与注意3. 应用 四、BCELoss损失函数1. 定义与原理2. 优点与注意3. 应用 五、CrossEntropyLoss损失函数1. 定义与原…

9.19总结

这几天学习了网络流 1&#xff0c;EK ek的主要思路是不断通过bfs找到增广路&#xff0c;找到增广路再建立反向边&#xff0c;直到不能再bfs到汇点&#xff0c;为什么可以通过建反向边呢&#xff1f;以上图举例&#xff0c;上图走完第一条增广路建立了一条反向边&#xff0c;当…

Maya动画基础

Maya动画基础教程&#xff08;完整&#xff09;_哔哩哔哩_bilibili 第一集 动画基础设置 altv播放动画 选择撕下副本 右键---播放预览 第二集 k帧记录物体的空间信息 初始位置清零 删除历史记录 s键key帧 自动记录位置信息 删除帧&#xff0c;按住右键选择delete 按shif…

Python if 语句优化技巧

大家好&#xff01;今天我们来聊聊Python中的if语句优化技巧。if语句是Python中最基本的控制结构之一&#xff0c;它用于根据条件执行不同的代码块。虽然if语句本身非常简单&#xff0c;但通过一些小技巧&#xff0c;可以让我们的代码更加高效、简洁。接下来&#xff0c;我们将…

LeetCode 算法笔记-第 04 章 基础算法篇

1.枚举 采用枚举算法解题的一般思路如下&#xff1a; 确定枚举对象、枚举范围和判断条件&#xff0c;并判断条件设立的正确性。一一枚举可能的情况&#xff0c;并验证是否是问题的解。考虑提高枚举算法的效率。 我们可以从下面几个方面考虑提高算法的效率&#xff1a; 抓住…

js中两种异步方式:async+await以及then

第一种方式 第二种方式 完整代码 前端代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>pywebv…

重学SpringBoot3-SpringApplicationRunListener

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-SpringApplicationRunListener 1. 基本作用2. 如何实现2.1. 创建SpringApplicationRunListener2.2. 注册SpringApplicationRunListener2.3. 完整示例 3.…

【机器学习】经典数据集鸢尾花的分类识别

【机器学习】经典数据集鸢尾花的分类识别 1、数据集介绍1.1 数据集详情 2、实验内容2.1 准备数据集2.2 创建颜色映射对象2.3 绘制特征散点图2.4 数据的归一化2.5 数据的标准化 3、实验截图提取萼片长度与萼片宽度分类提取萼片长度与花瓣长度分类提取萼片长度与花瓣宽度分类提取…

【海贼王航海日志:前端技术探索】一篇文章带你走进JavaScript(一)

目录 1 -> 初识JavaScript 1.1 -> JavaScript是什么 1.2 -> 发展历史 1.3 -> JavaScript和HTML和CSS之间的关系 1.4 -> JavaScript运行过程 1.5 -> JavaScript的组成 2 -> 前置知识 2.1 -> JavaScript的书写形式 2.2 -> 注释 2.3 -> 输…

使用OpenCV进行模糊检测(拉普拉斯算子)

参考&#xff1a; 使用OpenCV进行模糊检测&#xff08;拉普拉斯算子&#xff09; 代码&#xff1a; # import the necessary packages from imutils import paths import argparse import cv2 import osdef variance_of_laplacian(image):# compute the Laplacian of the ima…

ISSTA 2024盛大开幕:中国学者的录取数和投稿量均位列第一

随着夏日的尾声&#xff0c;全球软件测试领域的专家和学者齐聚在奥地利维也纳。共同参与这场科技盛宴——ISSTA 2024。这场国际会议正如火如荼地进行中&#xff0c;吸引了来自世界各地的专业人士参与。 会议实况&#xff1a; 9月16日与17日&#xff0c;大会安排了丰富的社交活…

把设计模式用起来!(3)用不好模式?之时机不对

上一篇&#xff1a;《把设计模式用起来&#xff08;2&#xff09;——用不好&#xff1f;之实践不足》 本篇继续讲设计模式用不好的常见原因&#xff0c;这是第二个&#xff1a;使用设计模式的时机不对。 二、时机不对 这里说的时机并不是单纯指软件研发周期中的时间阶段&…