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

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/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue+Vite 组件开发的环境准备(零基础搭建)

一、什么是Vite Vue3作为一款现代化的JavaScript框架,配合Vite这样的构建工具,极大地简化了流程,提升了效率。Vite 是一个基于现代浏览器原生的 ES 模块系统,能够以原生模块导入的方式运行源代码的开发服务器。它被设计用来替代传…

linux高级系统编程之进程

进程 一个正在进行的程序 并行与并发 并行:执行的程序在不同CPU上同时执行 并发:一个CPU,多个进程交替执行,因为交替速度很快,所以从宏观上来看是同时执行的,但是从围观的角度是交替执行的 单道与多道 单道程序设计:所有进程一个一个排队执行,若A阻塞,B只能等待,,即使CPU处于空…

git 命令之只提交文件的部分更改

git 命令之只提交文件的部分更改 有时,我们在一个文件中进行了多个更改,但只想提交其中的一部分更改。这时可以使用 使用 git add -p 命令 Git add -p命令允许我们选择并添加文件中的特定更改。它将会显示一个交互式界面,显示出文件中的每个更…

Excel中根据某列内容拆分为工作簿

简介:根据A列的内容进行筛选,将筛选出来的数据生成一个新的工作簿(可以放到指定文件夹下),且工作簿名为筛选内容。 举例: 将上面的内容使用VBA会在当前test1下生成5个工作簿,工作簿名分别为TEST1.xls TEST2.xls TEST3…

数据结构 (10)队列

前言 队列是一种特殊的数据结构,它遵循先进先出(FIFO,First In First Out)的原则。 一、定义与基本概念 定义:队列是一种只允许在一端(队尾)进行插入操作,而在另一端(队头…

Tomcat10部署Servlet加载错误问题解决

Servlet加载错误:HelloServlet不是Servlet 环境信息:IDEA中的maven项目,tomcat10.1.33 问题信息:XXX.Servlet不是Servlet 问题原因:tomcat10将JavaEE也换成了Jakarta EE; Jakarta EE较以前的JavaEE有一个重…

2024年第十三届”认证杯“数学中国数学建模国际赛(小美赛)

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

百度智能云发布首个空间智能解决方案,百度AI优势如何分析?

首先,百度智能云此次推出的空间智能解决方案,在技术底座上展现了其强大的AI异构计算能力。百度百舸AI异构计算平台作为该方案的底层支撑,为2D和3D应用中的人物、物件及场景生成提供了强大的算力支持。这一平台的推出,不仅提升了空…

RTSP摄像头、播放器为什么需要支持H.265?

H.264还是H.265? 好多开发者在做选RTSP播放器的时候,经常问我们的问题是,用H.264好还是H.265好?本文我们就H.264 和 H.265的主要区别和适用场景,做个大概的交流。 一、压缩效率 H.265 更高的压缩比 H.265 在相同视频…

BGP协议路由黑洞

一、实验环境 1、分公司与运营商AS自治系统内运行IGP路由协议OSPF、RIP或静态路由,AS自治系统内通过IBGP路由协议建立BGP邻居关系。 2、公司AS自治系统与运营商AS自治系统间运行EBGP路由协议。 3、通过loopback建立IBGP与EBGP邻居关系,发挥loopback建立…

解决数据传送问题:内网http传输

在服务器上启http服务 在服务器上输入命令: python3 -m http.server 1234 回车启动 访问和下载方法: 然后可以在本地的浏览器上访问:服务器IP:1234 例如192.11.1.1:1234,然后就可以下载对应文件夹下的东西了 在本地上启htt…

飞塔防火墙只允许国内IP访问

飞塔防火墙只允许国内IP访问 方法1 新增地址对象,注意里面已经细分为中国内地、中国香港、中国澳门和中国台湾 方法2 手动新增国内IP的对象组,目前好像一共有8632个,每个对象最多支持600个IP段

《Learn Three.js》学习(3)光源

前言: WebGL本身不支持光源,不使用three.js,则需使用着色程序来模拟光源。 学习大纲: Three.js中的光源 特定光源的使用时机 如何调整和配置所有光源的行为 如何创建镜头光晕 光源表 基础光源:THRER.AmbientLight、THERE.Point…

Linux——基础命令(2) 文件内容操作

目录 ​编辑 文件内容操作 1.Vim (1)移动光标 (2)复制 (3)剪切 (4)删除 (5)粘贴 (6)替换,撤销,查找 (7&#xff…

鸿蒙开发App 如何通过抓包查看 http 网络请求?

通过借助第三方工具 Charles https://www.charlesproxy.com/ https://www.zzzmode.com/mytools/charles/https://www.zzzmode.com/mytools/charles/ Charles 激活码计算器 相关博客日志:https://zhuanlan.zhihu.com/p/281126584 MAC上的使用方法: ch…

【Git】Git 完全指南:从入门到精通

Git 完全指南:从入门到精通 Git 是现代软件开发中最重要的版本控制工具之一,它帮助开发者高效地管理项目,支持分布式协作和版本控制。无论是个人项目还是团队开发,Git 都能提供强大的功能来跟踪、管理代码变更,并保障…

分布式锁的实现原理

作者:来自 vivo 互联网服务器团队- Xu Yaoming 介绍分布式锁的实现原理。 一、分布式锁概述 分布式锁,顾名思义,就是在分布式环境下使用的锁。众所周知,在并发编程中,我们经常需要借助并发控制工具,如 mu…

全新AI模型家族登场:完全可复现的开源语言模型OLMo 2

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

探索Python WebSocket新境界:picows库揭秘

文章目录 探索Python WebSocket新境界:picows库揭秘第一部分:背景介绍第二部分:picows库概述第三部分:安装picows库第四部分:简单库函数使用方法第五部分:场景应用第六部分:常见Bug及解决方案第…

Jenkins Nginx Vue项目自动化部署

目录 一、环境准备 1.1 Jenkins搭建 1.2 NVM和Nodejs安装 1.3 Nginx安装 二、Jenkins配置 2.1 相关插件安装 2.2 全局工具安装 2.3 环境变量配置 2.4 邮箱配置(构建后发送邮件) 2.5 任务配置 三、Nginx配置 3.1 配置路由转发 四、部署项目 …