【Android系统视窗模块】Android 8与Android 9分屏模块设计差异

1. Android 9新增ActivityDisplay对象,针对每一个逻辑屏幕分配此对象,ActivityDisplay管理屏幕上每个ActivityStack显示边界以及位置;
2.  Android 9新增任务的WindowingMode与ActivityType属性,每个ActivityStack拥有此属性,启动Activity的时候系统调度在哪个ActivityStack分配任务;
3. Android 9取消了moveTaskToDockedStack函数,新增setTaskWindowingModeSplitScreenPrimary函数,该函数可将任务移动至WindowingMode与ActivityType匹配SPLIT属性栈的Stack运行;
4. Android 9不再固定主应用栈、DOCK栈、HOME栈的ID,完全由Activity属性动态查找和创建。
总结,Android 9强化了屏幕对象的概念,屏幕对象作为所有任务的最主要上下文,规定了任务对应窗体的显示屏幕、区域、大小,管理在此逻辑屏幕上所有任务栈的运行与销毁。关系如下所示:
ActivityDisplay -> ActivityStack -> ActivityRecord -> TaskRecord
新版本系统对视窗模块的重构,有利于今后大屏场景以及多屏场景的应用开发与系统定制。
TIPS: 比如一键分屏,系统可以通过扩展am stack系列命令,通过定制ActivityStackSupervisor模块,实现将HOME栈前台TOP任务移动到左分屏任务显示等,而不需依赖系统UI提供的RecentActivity实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值