Android N 多窗口的设计

本文探讨了Android N开始支持的多窗口(分屏)功能的架构设计,阐述了分屏的交互方式,解析了Android界面的抽象层次(Activity、Window、Task和Stack)及其在分屏模式下的应用。重点介绍了设计要点,如如何声明界面的大小和位置,系统如何为分屏应用提供必要的支持,以及客户端如何进行适配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android从N(7.0)开始正式支持了多窗口(分屏),所谓多窗口,通俗来讲,就是同一时刻,用户可以看到一个以上的应用界面并与之进行交互,这就跟我们平常使用PC的操作系统一样,可以极大地提高操作效率,这对于大屏幕的手持设备来讲更为重要。

本文将讲解分屏的架构设计,旨在从一个比较高的角度将原生的分屏原理讲的通俗透彻。因本文不会对一些Android的基础知识展开描述,请自行补足Activity、Window、Task等概念,另外对于分屏相关的APK开发文档,请参考官方网站。


分屏的交互

要理解分屏的设计,首先要清楚它的交互(这个功能要做成什么样),主要的交互如下:

  1. 只有可分屏的应用才能进入分屏模式,假设A和B是可以分屏的两个应用
  2. 对于A和B,可通过在多任务中拖动其到上半屏进入分屏模式
  3. 下半屏可通过点击另一个分屏应用进入
  4. 对于A或B,切换到应用内的另一个界面,依然是分屏模式
  5. 假设A跟B已经分屏,按Home键退出后,点击可分屏的C应用,此时将是A和C分属上下屏
  6. 拖动中间的调节杠可以调整上下屏的大小

综上,我们大概可以得出如下基本结论:

  1. 应用可以向系统表达自己是否支持分屏,若支持则必须遵循一些规则
  2. 系统要标识分屏应用在屏幕上的位置及尺寸
  3. 分屏应用的位置和尺寸要能动态改变
  4. 系统应该为应用尺寸的改变提供必要的支持,以支撑其绘制出适配新尺寸的UI

关于第1点,相当于界定责任方。因为不管系统以什么样的方式来实现分屏,势必要求应用根据规则做一些适配,而应用当然可以选择不遵循,那么系统也就不提供其进入分屏的机会;而一旦应用声明支持分屏,就必须进行适配并遵守规则。因此这点只是进入分屏的一个限定条件,跟具体的实现无关,不做过多讨论,接下来只讨论后面几点。


Android对界面的抽象

在接下来的分析之前,我们必须先了解Android如何抽象界面的管理,Android自诞生以来基本都维持了一样的管理方式,任何界面相关的特性必然都建立在这套基础之上,抽象出主干的东西有助于我们更好地理解问题。

对应用开发者来说,最熟悉的莫过于Activity,Activity就是界面最小的抽象单位(但可以不显示)&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值