发布移动平台Android 12

Google 发布了开放移动平台 Android 12 的版本。与新版本相关的源文本发布在项目的 Git 存储库(分支 android-12.0.0_r1)中。 固件更新适用于 Pixel 系列设备以及三星 Galaxy、OnePlus、Oppo、Realme、Tecno、Vivo 和小米制造的智能手机。 此外,还创建了通用 GSI(通用系统映像)程序集,适用于基于 ARM64 和 x86_64 架构的各种设备。

主要创新:

  • 提出了该项目历史上最重要的界面设计更新之一。 新设计贯彻了“Material You”概念,被誉为下一代材料设计。 新概念将自动应用于所有平台和界面元素,并且不需要应用程序开发人员进行任何更改。 XNUMX月份,计划向应用程序开发人员提供第一个稳定版本的用于开发图形界面的新工具包——Jetpack Compose。
    发布移动平台Android 12

    该平台本身采用了新的小部件设计。 小部件变得更加明显,角落更加圆润,并且提供了使用与系统主题相匹配的动态颜色的功能。 例如,添加了复选框和开关(CheckBox、Switch 和 RadioButton)等交互式控件,使您无需打开应用程序即可编辑 TODO 小部件中的任务列表。

    发布移动平台Android 12

    实现了从小部件启动的应用程序的更平滑的视觉过渡。 小部件的个性化已得到简化 - 添加了一个按钮(带有铅笔的圆圈),用于快速重新配置小部件在屏幕上的位置,当您长时间触摸小部件时会出现该按钮。

    发布移动平台Android 12发布移动平台Android 12

    提供了其他模式来限制小部件的大小,并能够使用小部件元素的自适应布局(响应式布局)来创建根据可见区域的大小而变化的标准布局(例如,您可以为平板电脑和智能手机)。 小部件选择器界面实现动态预览并能够显示小部件的描述。

    发布移动平台Android 12
  • 添加了自动使系统调色板适应所选壁纸颜色的功能 - 系统自动确定流行颜色,调整当前调色板并将更改应用于所有界面元素,包括通知区域、锁定屏幕、小部件和音量控制。
  • 实现了新的动画效果,例如在屏幕上滚动、出现和移动元素时逐渐缩放和平滑移动区域。 例如,当您在锁定屏幕上取消通知时,时间指示器会自动扩展并占据通知先前占用的空间。
  • 带有通知和快速设置的下拉区域的设计已经过重新设计。 Google Pay 和智能家居控制选项已添加到快速设置中。 按住电源按钮会调出 Google Assistant,您可以命令它拨打电话、打开应用程序或大声朗读文章。 具有应用程序指定内容的通知以通用形式给出。
    发布移动平台Android 12
  • 添加了拉伸过度滚动效果,以指示用户已移出滚动区域并到达内容的末尾。 有了新的效果,内容图像似乎拉伸并弹回。 默认情况下启用新的滚动结束行为,但设置中有一个选项可以恢复到旧的行为。
  • 该界面已针对具有折叠屏的设备进行了优化。
    发布移动平台Android 12
  • 实现了更平滑的音频转换 - 当从一个输出声音的应用程序切换到另一个输出声音的应用程序时,第一个应用程序的声音现在平滑地静音,而第二个应用程序的声音平滑地增加,而不会将一种声音叠加在另一种声音上。
  • 快速设置块、面板和系统配置器中用于管理网络连接的界面已实现现代化。 添加了新的 Internet 面板,使您可以在不同的提供商之间快速切换并诊断问题。
    发布移动平台Android 12
  • 添加了创建屏幕截图的功能,该屏幕截图不仅覆盖可见区域,还覆盖滚动区域中的内容。 将内容保留在可见区域之外的功能适用于所有使用 View 类进行输出的应用程序。 为了在使用特定接口的程序中实现对滚动屏幕截图的支持,人们提出了 ScrollCapture API。
    发布移动平台Android 12
  • 自动旋转屏幕内容功能得到了改进,现在可以使用前置摄像头的面部识别来确定是否需要旋转屏幕,例如当一个人躺着使用手机时。 为了确保机密性,信息会即时处理,无需中间存储图像。 该功能目前仅适用于 Pixel 4 及更新的智能手机。
  • 改进了画中画模式(PIP,画中画)并提高了过渡效果的平滑度。 如果您使用向上移动手势(将屏幕底部向上移动)启用自动转换到 PIP,则应用程序现在会立即切换到 PIP 模式,而无需等待动画完成。 改进了包含非视频内容的 PIP 窗口的大小调整。 添加了通过将 PIP 窗口拖动到屏幕左侧或右侧边缘来隐藏 PIP 窗口的功能。 触摸 PIP 窗口时的行为已更改 - 现在,单击一下即可显示控制按钮,双击可以更改窗口的大小。
  • 性能优化:
    • 对系统性能进行了重大优化——主系统服务的CPU负载下降了22%,从而使电池寿命增加了15%。 通过减少锁争用、减少延迟和优化 I/O,可以提高从一个应用程序转换到另一应用程序的性能并减少应用程序启动时间。

      在 PackageManager 中,当以只读模式使用快照时,锁争用减少了 92%。 Binder 的进程间通信引擎使用轻量级缓存,可将某些类型的调用的延迟减少多达 47 倍。 改进了处理 dex、odex 和 vdex 文件的性能,从而加快了应用程序加载时间,尤其是在内存较低的设备上。 从通知启动应用程序的速度得到了加快,例如,从通知启动 Google Photos 现在速度提高了 34%。

      通过在 CursorWindow 操作中使用内联优化,数据库查询的性能得到了提高。 对于少量数据,CursorWindow 的速度提高了 36%,对于超过 1000 行的数据集,加速可达 49 倍。

      提出了按性能对设备进行分类的标准。 根据设备的功能,为其分配一个性能等级,然后可以在应用程序中使用该性能等级来限制低功耗设备上编解码器的功能或在功能强大的硬件上处理更高质量的多媒体内容。

    • 实现了应用程序休眠模式,如果用户长时间没有与程序显式交互,则可以自动重置先前授予应用程序的权限,停止执行,返回应用程序使用的资源,例如内存,并阻止后台工作的启动和推送通知的发送。 该模式可用于大多数应用程序,并允许您保护长期被遗忘的程序继续访问的用户数据。 如果需要,可以在设置中选择性地禁用休眠模式。
    • 旋转屏幕时的动画进行了优化,旋转前的延迟减少了约25%。
    • 该结构包括一个新的高性能搜索引擎AppSearch,它允许您在设备上索引信息并执行全文搜索和排名结果。 AppSearch 提供两种类型的索引 - 用于组织单个应用程序中的搜索和搜索整个系统。
    • 添加了游戏模式 API 和相应的设置,允许您管理游戏的性能配置文件 - 例如,您可以牺牲性能来延长电池寿命或使用所有可用资源来实现最大 FPS。
    • 新增边下载边玩功能,安装过程中后台下载游戏资源,让您在下载完成之前就可以开始玩。 应用。
    • 提高处理通知时的响应能力和反应速度。 例如,当用户点击通知时,现在会立即将他们带到关联的应用程序。 应用程序限制通知蹦床的使用。
    • 优化Binder中的IPC调用。 通过使用新的缓存策略并消除锁争用,延迟显着减少。 总体而言,Binder 调用性能大约增加了一倍,但在某些领域甚至实现了更显着的加速。 例如,调用 refContentProvider() 速度提高了 47 倍,releaseWakeLock() 速度提高了 15 倍,JobScheduler.schedule() 速度提高了 7.9 倍。
    • 为了防止潜在的性能问题,除少数特殊情况外,禁止应用程序在后台运行时运行前台服务。 要在后台开始工作,建议使用 WorkManager。 为了简化过渡,JobScheduler 中提出了一种新的工作类型,它会立即启动,并提高了优先级和网络访问权限。
  • 影响安全和隐私的变化:
    • 隐私仪表板界面已实现所有权限设置的总体概述,使您可以了解应用程序可以访问哪些用户数据。 该界面还包括一​​个时间线,可直观地显示应用程序访问麦克风、摄像头和位置数据的历史记录。 对于每个应用程序,您可以查看访问敏感数据的详细信息和原因。
      发布移动平台Android 12
    • 面板中添加了麦克风和摄像头活动指示器,当应用程序访问摄像头或麦克风时会显示这些指示器。 单击指示器时,会出现一个包含设置的对话框,使您可以确定哪个应用程序正在使用摄像头或麦克风,并在必要时撤销权限。
    • 快速设置弹出块中添加了开关,您可以使用它们强制关闭麦克风和摄像头。 关闭后,尝试访问摄像头和麦克风将导致通知和空数据发送到应用程序。
      发布移动平台Android 12
    • 添加了一个新通知,每当应用程序尝试通过调用 getPrimaryClip() 函数读取剪贴板的内容时,该通知就会出现在屏幕底部。 如果将剪贴板中的内容复制到添加内容的同一应用程序中,则不会出现通知。
    • 添加了单独的权限 BLUETOOTH_SCAN 以通过蓝牙扫描附近的设备。 以前,此功能是基于对设备位置信息的访问来提供的,这导致需要向需要通过蓝牙与其他设备配对的应用程序授予额外的权限。
    • 用于访问有关设备位置的信息的对话框已实现现代化。 用户现在有机会向应用程序提供有关确切位置的信息或仅提供近似数据,以及将权限限制为仅与程序的活动会话(在后台时拒绝访问)。 选择大致位置时返回的数据的准确性级别可以在设置中更改,包括与各个应用程序相关的准确性级别。
      发布移动平台Android 12
    • 应用程序开发人员可以选择禁用与内容重叠的弹出警告。 以前,显示重叠窗口的能力是通过在安装显示重叠窗口的应用程序期间要求验证权限来控制的。 没有可用的工具来影响窗口重叠的应用程序的内容重叠。 当使用 Window#setHideOverlayWindows() 调用时,所有重叠窗口现在将自动隐藏。 例如,当显示特别重要的信息(例如交易确认)时,可以启用隐藏。
    • 应用程序获得了额外的设置来限制屏幕锁定时的通知操作。 以前,您只能在屏幕锁定时控制通知的可见性,但现在您可以启用强制身份验证,以便在屏幕锁定时对通知执行任何操作。 例如,消息传递应用程序可能需要在删除消息或将消息标记为已读之前进行身份验证。
    • 添加了 PackageManager.requestChecksums() API 以请求和验证已安装应用程序的校验和。 支持的算法包括 SHA256、SHA512 和 Merkle Root。
    • WebView Web 引擎实现了使用 SameSite 属性来控制 Cookie 处理的功能。 值“SameSite=Lax”限制为跨站点子请求发送 Cookie,例如请求图像或通过 iframe 从另一个站点加载内容。 在“SameSite=Strict”模式下,不会为任何类型的跨站点请求发送 Cookie,包括来自外部站点的所有传入链接。
    • 我们继续致力于随机化 MAC 地址,以消除连接到无线网络时设备被跟踪的可能性。 非特权应用程序对设备 MAC 地址的访问受到限制,并且调用 getHardwareAddress() 现在返回空值。
  • 应用程序开发人员的低级更改和改进:
    • 添加了使界面元素适应圆形屏幕设备的功能。 开发人员现在可以获得有关屏幕圆角的信息,并调整位于不可见角落区域的界面元素。 通过新的RoundedCorner API,您可以找到圆角的半径和中心等参数,并通过Display.getRoundedCorner()和WindowInsets.getRoundedCorner()可以确定屏幕每个圆角的坐标。
      发布移动平台Android 12
    • 添加了新的 CompanionDeviceService API,您可以使用它激活控制配套设备(例如智能手表和健身追踪器)的应用程序。 该 API 解决了当附近出现配套设备时启动和连接必要应用程序的问题。 当设备在附近时系统会激活该服务,并在设备断开连接或设备进入或离开范围时发送通知。 应用程序还可以使用新的配套设备配置文件来更轻松地设置加入设备的权限。
    • 完善产能预测系统。 应用程序现在可以请求有关与运营商、特定无线网络 (Wi-Fi SSID)、网络类型和信号强度相关的预测总吞吐量的信息。
    • 模糊和颜色失真等常见视觉效果的应用已得到简化,现在可以使用 RenderEffect API 将其应用到任何 RenderNode 对象或整个可见区域,包括与其他效果的链中。 例如,此功能允许您模糊通过 ImageView 显示的图像,而无需显式复制、处理和替换位图,将这些操作移至平台端。 此外,还提出了 Window.setBackgroundBlurRadius() API,通过该 API,您可以使用毛玻璃效果模糊窗口的背景,并通过模糊窗口周围的空间来突出显示深度。
      发布移动平台Android 12
    • 用于转码媒体流的集成工具,可在具有以 HEVC 格式保存视频的相机应用程序的环境中使用,以确保与不支持此格式的应用程序的兼容性。 对于此类应用,在更常见的 AVC 格式中添加了自动转码功能。
    • 添加了对 AVIF(AV1 图像格式)图像格式的支持,该格式使用 AV1 视频编码格式的帧内压缩技术。 AVIF 中分发压缩数据的容器与 HEIF 完全相似。 AVIF 支持 HDR(高动态范围)和宽色域色彩空间以及标准动态范围 (SDR) 中的图像。
    • 提出了一个统一的 OnReceiveContentListener API,用于使用各种数据源(包括剪贴板、键盘和拖放界面)在应用程序之间插入和移动扩展类型的内容(格式化文本、图像、视频、音频文件等)。
    • 添加了使用手机内置振动电机实现的触觉反馈效果,振动的频率和强度取决于当前输出声音的参数。 新效果使您可以实际感受到声音,并可用于为游戏和声音程序添加额外的真实感。
    • 在沉浸式模式下,程序以全屏显示,服务面板隐藏,使用控制手势简化了导航。 例如,现在可以通过单个滑动手势来导航书籍、视频和照片。
    • Mainline 项目允许您在不更新整个平台的情况下更新单个系统组件,除了 Android 22 中提供的 11 个模块之外,还准备了新的可更新系统模块。这些更新会影响通过以下方式下载的非硬件组件: Google Play 与制造商的 OTA 固件更新分开。 无需更新固件即可通过 Google Play 更新的新模块包括 ART(Android 运行时)和视频转码模块。
    • WindowInsets类中添加了一个API,用于确定摄像头和麦克风使用指示器的显示位置(指示器可以与部署到全屏的程序中的控件重叠,并且通过指定的API,应用程序可以调整其界面)。
    • 对于集中管理的设备,添加了一个选项以防止使用开关将麦克风和摄像头静音。
    • 对于在后台运行、控制智能手表和健身追踪器等配套设备的 CDM(配套设备管理器)应用程序,可以启动前台服务。
    • Android Wear 不是针对可穿戴设备的版本,而是与三星一起决定开发一个新的统一平台,该平台结合了 Android 和 Tizen 的功能。
    • 适用于汽车信息娱乐系统和智能电视的 Android 版本的功能得到了扩展。

    来源: opennet.ru

  • 添加评论