Android 桌面窗口新功能推进,聊一聊 Android 桌面化的未来

news2024/12/27 5:53:57

Android 桌面化支持可以说是 Android 15 里被多次提及的 new features,例如在 Android 15 QPR1 Beta 2 里就提到为 Pixel 平板引入了桌面窗口支持,桌面窗口允许用户在自由窗口同时运行多个应用,同时可以像在传统 PC 平台上一样调整这些窗口的大小。

其实 Android 早在 2019 年的 Android 10 版本中就首次添加了桌面模式,但那时候它实际上是「准系统支持」,虽然用户可以在自由窗口启动应用,但其实并没有办法执行其他基本操作,例如将窗口对齐到两侧或将它们最小化到任务栏。

其实 Android 10 的桌面模式并不是为了让用户使用,它更多是为了激活一些开发者场景,所以它一直被锁定在开发人员选项。

不过从 2022 年开始,Google 就一直在慢慢努力改进 Android 的内置桌面模式,而大部分的支持都在今年的 Android 新版本中体现,例如添加了适当的窗口标题、捕捉窗口的能力、悬停选项、窗口大小调整、最小化支持、app-to-web 等

在搭载 Android 15 QPR 1 Beta 2 的 Pixel 平板,可以通过 Settings > Developer options > Enable freeform windows 体验到桌面窗口的新功能:

不同与分屏,Freeform windows 更多是将应用转换为单独的自由格式窗口,就像传统 PC 应用上的自由窗口。

同时,今年 6 月份的时候,在 Pixel Feature Drop 更新中首次激活了 Pixel 手机上的显示输出支持,也就是你可以将手机连接到显示器上,结合桌面模式的改进,这很容易让人联想到 Android PC 的场景。

在 Android 15 QPR1 Beta 1 下,可以在 Settings > Developer options > Enable freeform windows 看到一个 Enable desktop mode on secondary display,也就是在辅助显示器上启用桌面模式的支持,它取代了以前版本的 Android 中旧的 Force desktop mode 切换:

所以个人猜测,这和 Google 面临的反垄断法案有一定关系,因为在更早的时间点,就有人发现 Google 正在 Android 上重建 ChromeOS,同时 ChromeOS 也开始使用一些 Android 能力,而未来的 Chromebook 会完全运行 Android 系统这种可能性很高,例如之前提到过的将 Linux 终端直接支持到 Android 平台的相关支持,就可以在 Chromebook 过渡到 Android 时提供类似 Crostini 的适配,所以难免让人猜测,这一切都和前段时间「强制谷歌出售Chrome」的相关消息有一定关联。

当然,Android 对桌面模式的改进,也可以理解为在努力跟上 Apple iPad 等竞争对手的步伐,当然这些都需要在 Android 15 QPR2 Beta 1 版本后才能体验到。

回到桌面支持上,在 Android 平板上调用桌面窗口会比过去容易,默认情况下所有应用都是全屏模式打开,但用户可以按住状态栏中的「窗口小药丸」(小白条),并将其拖动到任意位置,App 就会将 UI 弹出到其自己的窗口中,而一旦应用被窗口化并且位于桌面空间,所有未来的应用都会以桌面窗口启动,直到用户退出所有桌面窗口:

在这里插入图片描述

在桌面窗口用户可同时运行多个应用, 与分屏类似,桌面窗口鼓励用户打开多个窗口,但是开发人员也需要做一些适配,例如:

  • 多任务支持:为了提高工作效率,用户可以同时打开两个或多个应用,这时候用户大概率会希望可以在应用之间共享内容,因此需要开发者添加对拖放]手势的支持,另外「焦点切换」时如摄像头和麦克风等的兼容处理也是适配重点
  • 多实例支持:用户可以并行运行应用的多个实例,例如文档编辑器应用一般会允许用户启动新文档,同时仍能够引用已打开的文档,应用可以通过设置 PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI 来声明,允许作为多个实例启动

在这里插入图片描述
另外桌面化场景一般 App 还可能需要支持自由大小调节,用户能够根据自己的喜好调整应用的大小
在这里插入图片描述

同时在桌面窗口中运行的所有应用都有一个标题栏 immersive mode ,通过 Android 15 全新的 appearance 类型 APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND 可以让标题栏透明,然后允许应用在标题栏内绘制自定义内容:

还有一个最近更新的支持:最小化按钮,应该说这么多年了,Android 的窗口终于有了 Minimize 按钮。

通过点击该按钮可最小化窗口,当应用窗口最小化时,可以通过点击任务栏中的应用图标来重新打开该窗口,应用图标下方的条形图会变为灰色,并在应用最小化时缩小,这类似于传统的桌面平台,当每个应用窗口都最小化时 Android 会退出桌面窗口模式,从这一点看会更贴近桌面场景。

另外最新的 Android 15 QPR2 Beta 版本还引入了用于桌面窗口的 “app-to-web” 功能,例如对于 Google Photos 等精选应用,下拉菜单中将出现“在浏览器中打开”选项,点按此按钮将打开与应用关联的网站,用户还可以点击「设置」来选择是在应用中打开 Web 还是在浏览器中打开 Web :

可以看到,Android 15 QPR2 Beta 下全新的 Freeform Windows 支持已经让 Android 越来越接近一个 PC 系统,例如支持移动窗口、对齐到一侧、调整窗口大小、最小化、最大化、与其他应用窗口联接、悬停支持、单独激活手机上的显示能力到额外显示器等,同时还有类似将 Linux 终端直接支持到 Android 平台等支持,所以未来 Android 替代 ChromeOS 看起来已然并不遥远,也许官方支持的用 Android 轻松开发 Android 真的快了。

参考资料

  • https://www.androidauthority.com/android-desktop-windowing-minimize-3503367/

  • https://www.androidauthority.com/android-15-qpr-2-beta-1-desktop-windowing-3481557/

  • https://www.androidauthority.com/chrome-os-becoming-android-3500661/

  • https://www.androidauthority.com/android-15-desktop-mode-tablets-3468619/

  • https://android-developers.googleblog.com/2024/09/developer-preview-desktop-windowing-on-android-tablets.html

  • https://developer.android.com/develop/ui/compose/layouts/adaptive/support-desktop-windowing

  • https://9to5google.com/2024/09/12/android-15-qpr1-beta-desktop-windowing/

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

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

相关文章

【深度学习】四大图像分类网络之VGGNet

2014年,牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司一起研发了新的卷积神经网络,并命名为VGGNet。VGGNet是比AlexNet更深的深度卷积神经网络,该模型获得了2014年ILSVRC竞赛的第二名&#xff0c…

Pytest框架学习20--conftest.py

conftest.py作用 正常情况下,如果多个py文件之间需要共享数据,如一个变量,或者调用一个方法 需要先在一个新文件中编写函数等,然后在使用的文件中导入,然后使用 pytest中定义个conftest.py来实现数据,参…

【力扣】389.找不同

问题描述 思路解析 只有小写字母,这种设计参数小的,直接桶排序我最开始的想法是使用两个不同的数组,分别存入他们单个字符转换后的值,然后比较是否相同。也确实通过了 看了题解后,发现可以优化,首先因为t相…

HarmonyOS4+NEXT星河版入门与项目实战(23)------组件转场动画

文章目录 1、控件图解2、案例实现1、代码实现2、代码解释3、实现效果4、总结1、控件图解 这里我们用一张完整的图来汇整 组件转场动画的用法格式、属性和事件,如下所示: 2、案例实现 这里我们对上一节小鱼游戏进行改造,让小鱼在游戏开始的时候增加一个转场动画,让小鱼自…

Wireshark常用功能使用说明

此处用于记录下本人所使用 wireshark 所可能用到的小技巧。Wireshark是一款强大的数据包分析工具,此处仅介绍常用功能。 Wireshark常用功能使用说明 1.相关介绍1.1.工具栏功能介绍1.1.1.时间戳/分组列表概况等设置 1.2.Windows抓包 2.wireshark过滤器规则2.1.wiresh…

Vue3 开源UI 框架推荐 (大全)

一 、前言 💥这篇文章主要推荐了支持 Vue3 的开源 UI 框架,包括 web 端和移动端的多个框架,如 Element-Plus、Ant Design Vue 等 web 端框架,以及 Vant、NutUI 等移动端框架,并分别介绍了它们的特性和资源地址。&#…

探索Python词云库WordCloud的奥秘

文章目录 探索Python词云库WordCloud的奥秘1. 背景介绍:为何选择WordCloud?2. WordCloud库简介3. 安装WordCloud库4. 简单函数使用方法5. 应用场景示例6. 常见Bug及解决方案7. 总结 探索Python词云库WordCloud的奥秘 1. 背景介绍:为何选择Wo…

Kali Linux系统一键汉化中文版及基础使用详细教程

Kali Linux系统一键汉化中文版及基础使用详细教程 引言 Kali Linux是一款基于Debian的Linux发行版,专为渗透测试和网络安全而设计。由于其强大的功能和丰富的工具,Kali Linux在安全领域得到了广泛应用。然而,许多用户在使用Kali Linux时会遇…

网络安全(三):网路安全协议

网络安全协议设计的要求是实现协议过程中的认证性、机密性与不可否认性。网络安全协议涉及网络层、传输层与应用层。 1、网络层安全与IPSec协议、IPSec VPN 1.1、IPSec安全体系结构 IP协议本质上是不安全的额,伪造一个IP分组、篡改IP分组的内容、窥探传输中的IP分…

2. STM32_中断

中断 中断是什么: 打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断。 中断的意义: 中断可以高效处理紧急程序,不会一直占用CPU资源。如实时控制、故障处理、处理不确定…

【聚类】主成分分析 和 t-SNE 降维

1 主成分分析PCA PCA 是一种线性降维技术,旨在通过选择具有最大方差的特征方向(称为主成分)来压缩数据,同时尽可能减少信息损失。 1.1 原理 1.2 优缺点 from sklearn.decomposition import PCA import matplotlib.pyplot as plt…

ARM 嵌入式处理器内核与架构深度剖析:解锁底层技术逻辑

目录 一、ARM架构概述 1.1. 优势与特点 1.2. 应用领域 二、ARM内核的主要系列及特点 2.1. ARM内核与架构的关系 2.2. Cortex-A系列 2.2.1. 应用场景 2.2.2. 特点 2.3. Cortex-R系列 2.3.1. 应用场景 2.3.2. 特点 2.4. Cortex-M系列 2.4.1. 应用场景 2.4.2. 特点 …

数据结构 (21)树、森林和二叉树的关系

一、树 定义:树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。当集合为空时,是一棵空树;当集合非空时,有且仅有一个特定的称为根的结点。树中的每个结点可以有…

探索温度计的数字化设计:一个可视化温度数据的Web图表案例

随着科技的发展,数据可视化在各个领域中的应用越来越广泛。在温度监控和展示方面,传统的温度计已逐渐被数字化温度计所取代。本文将介绍一个使用Echarts库创建的温度计Web图表,该图表通过动态数据可视化展示了温度值,并通过渐变色…

计算机网络——数据链路层Mac帧详解

目录 前言 一、以太网 二、Mac帧 三、MTU——最大传输单元 四、Mac帧的传输过程 1.ARP协议 2.RARP协议 前言 在之前,我们学习过网络层的IP协议,了解到IP协议解决了从哪里来,到哪里去的问题,也就是提供了将数据从A到B的能力…

LabVIEW将TXT文本转换为CSV格式(多行多列)

在LabVIEW中,将TXT格式的文本文件内容转换为Excel格式(即CSV文件)是一项常见的数据处理任务,适用于将以制表符、空格或其他分隔符分隔的数据格式化为可用于电子表格分析的形式。以下是将TXT文件转换为Excel(CSV&#x…

响应式编程一、Reactor核心

目录 一、前置知识1、Lambda表达式2、函数式接口 Function3、StreamAPI4、Reactive-Stream1)几个实际的问题2)Reactive-Stream是什么?3)核心接口4)处理器 Processor5)总结 二、Reactor核心1、Reactor1&…

Vue3之弹窗

文章目录 第一步、引入JS第二步、弹框 在前端开发语言Vue3&#xff0c;在管理端如何进行弹窗&#xff1f;下面根据API实现效果。 Element API文档&#xff1a; Element-plus文档 搭建环境可参考博客【 初探Vue3环境搭建与nvm使用】 第一步、引入JS <script lang"ts&…

w~大模型~合集24

我自己的原文哦~ https://blog.51cto.com/whaosoft/12707697 #Time Travelling Pixels (TTP) 一种名为“时空旅行”&#xff08;TTP&#xff09;的新方法&#xff0c;该方法将SAM基础模型的通用知识整合到变化检测任务中。该方法有效地解决了在通用知识转移中的领域偏移问题…

git的简单使用与gdb

版本控制器git 为了能够更方便管理这些不同版本的文件&#xff0c;有了版本控制器&#xff0c;可以了解一个文件的历史&#xff0c;以及它的发展过程的系统&#xff0c;通俗的说就是一个可以记录工程的每一次改动和版本迭代的一个管理系统&#xff0c;同时也方便多人协作。 三…