当前位置: 首页 > article >正文

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/


http://www.kler.cn/a/413098.html

相关文章:

  • Flink Sink的使用
  • 关闭AWS账号后,服务是否仍会继续运行?
  • 浅谈pdfbox2.0和pdfbox3.0的运用与区别
  • FreeRTOS 内存管理
  • 【ComfyUI】前景分割ComfyUI-BiRefNet-Hugo (无法选定分割的主体,背景鉴别由模型数据,也叫二分分割,显著性分割)
  • wordpress二开-WordPress新增页面模板-说说微语
  • Unity 中 多种资源加载方式的优缺点
  • MySQL(8)【聚合函数 | group by分组查询】
  • 衡山派D133EBS 开发环境安装及SDK编译烧写镜像烧录
  • Scala中字符串
  • 选修课(Java Python JS C++ C )
  • 【汇编语言】call 和 ret 指令(一) —— 探讨汇编中的ret和retf指令以及call指令及其多种转移方式
  • 搜索引擎中广泛使用的文档排序算法——BM25(Best Matching 25)
  • 【从零开始的LeetCode-算法】3206. 交替组 I
  • 《Opencv》基础操作<1>
  • 天通物联网应用:首创渐进式图片压缩算法,实现1000倍高效图传,可一键拨打天通电话
  • C#开发合集
  • CentOS8.5.2111(8)LAMP部署综合实验
  • Linux之网络基础
  • 图片预览 图片上传到服务器
  • FFmpeg 简介与编译
  • 第12章 手写Spring MVC
  • Android CameraX双流更新:实现双摄像头流的便捷解决方案
  • 计算机网络头歌——单臂路由实现VLAN间通信
  • vue2 G6绘制辐射状布局图
  • OpenCV截取指定图片区域