Android 15 正式发布至 AOSP

news2024/12/25 17:23:39

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.coloradmin.cn/o/2144934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

easy_cloudantivirus

0x00前言 必须安装在virtualbox 攻击机:kali 靶机 easy_cloudantivirus 链接: https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/ 0x01信息搜集 经过测试发现靶场IP为192.168.56.106 进一部对IP搜集信息 发现8080端口youhttp服务。…

MySQL系列—12.Undo log

1、概念 DML 操作导致数据变化 , 将变化前的记录写入 Undo 日志。 作用 用于记录更改前的一份 copy ,在操作出错时,可以用于回滚、撤销还原,只将数据库 逻辑地恢复到原来的样子 你 插入一条记录时,至少要把这条记录的主键值记下来…

上汽集团社招入职SHL测评:语言理解及数字推理高分攻略、真题题库

上汽集团社招待遇 上汽集团作为国内领先的汽车制造企业,其社招待遇和面试问题一直是求职者关注的焦点。以下是根据最新信息整理的上汽集团社招待遇及面试问题概览: 工资待遇:上汽集团的工资待遇在国内汽车行业中属于较高水平。根据不同职位和…

【C++二叉树】236.二叉树的最近公共祖先

236. 二叉树的最近公共祖先 - 力扣(LeetCode) 思路分析: 公共祖先满足的特征: p是q的孩子,则q是祖先,反之亦然。p和q是“我”的左子树和右子树中的节点,则“我”是祖先。(如题目中给…

物联网——USART协议

接口 串口通信 硬件电路 电平标准 串口参数、时序 USART USART主要框图 TXE: 判断发送寄存器是否为空 RXNE: 判断接收寄存器是否非空 RTS为输出信号,用于表示MCU串口是否准备好接收数据,若输出信号为低电平,则说明MCU串口可以接收数据&#…

springboot实训学习笔记(5)(用户登录接口的主逻辑)

接着上篇博客学习。上篇博客是已经基本完成用户模块的注册接口的开发以及注册时的参数合法性校验。具体往回看了解的链接如下。 springboot实训学习笔记(4)(Spring Validation参数校验框架、全局异常处理器)-CSDN博客文章浏览阅读576次,点赞7…

NANO 9K玩转RISCV之ARDUINO开发环境

一、前言 在从0-1探索RISCV指令集的路上,我们用百元不到的NANO 9K开发板一步步的实现:  1)最小的内核架构 2)取值,译码和执行的过程(电路实现ISA指令集) &#xff1…

使用神经网络拟合6项参数

使用神经网络拟合6项参数 1. 数据预处理1.1 添加参数解析1.2 数据预处理逻辑1.3 数据归一化及划分1.4 数据标签处理逻辑1.5 数据转torch 2. 定义model2.1 CNN_LSTM2.2 Transformer 3. 定义train脚本3.1 loss和optimizer3.2 train3.3 predict 1. 数据预处理 1.1 添加参数解析 …

Vue+nodejs+express汽车配件商城销售管理系统 i9cgz

目录 技术栈具体实现截图系统设计思路技术可行性nodejs类核心代码部分展示可行性论证研究方法解决的思路Express框架介绍源码获取/联系我 技术栈 该系统将采用B/S结构模式,开发软件有很多种可以用,本次开发用到的软件是vscode,用到的数据库是…

动态分析基础

实验一 Lab03-01.exe文件中发现的恶意代码 问题: 1.找出这个恶意代码的导入函数与字符串列表? 2.这个恶意代码在主机上的感染迹象特征是什么? 3.这个恶意代码是否存在一些有用的网络特征码?如果存在,它们是什么? 解答: 1.找出这个恶意代…

上调铁矿石产量预期后,淡水河谷股价能否重振?

猛兽财经的核心观点: (1)尽管市场面临挑战,但淡水河谷(VALE)还是上调了2024年的铁矿石产量预期。 (2)第二季度业绩喜忧参半;收入减少,但铁矿石出货量却很强劲。 (3)投资者…

【渗透测试】-vulnhub源码框架漏洞-Os-hackNos-1

vulnhub源码框架漏洞中的CVE-2018-7600-Drupal 7.57 文章目录  前言 1.靶场搭建: 2.信息搜集: 主机探测: 端口扫描: 目录扫描: 3.分析: 4.步骤: 1.下载CVE-2018-7600的exp 2.执行exp: 3.写入木…

QCustomPlot笔记(一)

文章目录 简介将帮助文档添加到Qt Creator中编译共享库cmake工程编译提示ui_mainwindow.h找不到qcustomplot.h文件 环境:windowsQt Creator 10.0.1cmake 简介 QT中用于绘制曲线的第三方工具 下载地址:https://www.qcustomplot.com/index.php/download 第一个压缩…

心觉:不能成事的根本原因

很多人一直都很努力,每天都很忙 每天都学习很多东西,学习各种道,各种方法论 但是许多年过去了依然一事无成 自己的目标没有达成,梦想没有实现 为什么呢 关键是没有开悟 那么什么是开悟呢 现在很多人都在讲开悟 貌似开悟很…

Docker Registry API best practice 【Docker Registry API 最佳实践】

文章目录 1. 安装 docker2. 配置 docker4. 配置域名解析5. 部署 registry6. Registry API 管理7. 批量清理镜像8. 其他 👋 这篇文章内容:实现shell 脚本批量清理docker registry的镜像。 🔔:你可以在这里阅读:https:/…

《深度学习》—— PyTorch的神经网络模块中常用的损失函数

文章目录 前言一、回归模型中常用的损失函数1、平均绝对误差损失(L1Loss)2、均方误差损失(MSELoss也称L2Loss)3、SmoothL1Loss 二、分类模型中常用的损失函数1、负对数似然损失(NLLLoss)2、二元交叉熵损失&…

XML映射器-动态sql

01-动态sql 1.实现动态条件SQL 第一种方法在sql语句中加入where 11其他条件都加and就行,这样就可以根据if条件来判断要传递的参数可以有几个 第二种方法用where标签给if语句包起来 where标签的作用如下图 第三种方法用trim标签解释如下图 用choose也可以实现条件查询如下图,…

【数据结构与算法 | 灵神题单 | 自底向上DFS篇】力扣508, 1026, 951

1. 力扣508:出现次数最多的子树元素和 1.1 题目: 给你一个二叉树的根结点 root ,请返回出现次数最多的子树元素和。如果有多个元素出现的次数相同,返回所有出现次数最多的子树元素和(不限顺序)。 一个结…

在Ubuntu中编译含有JSON的文件出现报错

在ubuntu中进行JSON相关学习的时候,我发现了一些小问题,决定与大家进行分享,减少踩坑时候出现不必要的时间耗费 截取部分含有JSON部分的代码进行展示 char *str "{ \"title\":\"JSON Example\", \"author\&…

Web植物管理系统-下位机部分

本节主要展示上位机部分,采用BSP编程,不附带BSP中各个头文件的说明,仅仅是对main逻辑进行解释 main.c 上下位机通信 通过串口通信,有两位数据验证头(verify数组中保存对应的数据头 0xAA55) 通信格式 上位发送11字节…