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实现。

更多相关文章

  1. Android(安卓)registerContentObserver 接口监视数据库变化
  2. Android(安卓)View的滚动scroll 、android.widget.Scroller和 属
  3. android APK 调用G—sensor驱动的过程
  4. Android(安卓)App 性能优化之稳定性
  5. 布局添加下划线
  6. Android(安卓)View初始化基本流程
  7. Android(安卓)Donut Makefile分析
  8. Rexsee API介绍:Android视频播放,Rexsee的VideoPlayer函数说明与源
  9. android suspend and resume

随机推荐

  1. [置顶] Android异步加载数据库和多线程编
  2. Android(安卓)Context关于POWER_SERVICE
  3. Android(安卓)对象型数据库 db4o
  4. Android(安卓)Material Design中的Bottom
  5. Android手机开发(一)
  6. Android2.3与Android4.0有什么区别?
  7. Android坐标的简单方法介绍
  8. Android(安卓)SAX方式解析XML文件
  9. Android之AAC架构尝试
  10. J2ME移植Android