WMS
文章平均质量分 80
AmyTan小小燕
这个作者很懒,什么都没留下…
展开
-
了解AsyncRotationController
基于android 15.0, 以从强制横屏App上滑退回桌面流程来分析AsyncRotationController 是一种控制器,用于处理设备显示屏旋转时非活动窗口的异步更新。这种控制器通过异步处理来优化屏幕旋转或应用过渡动画的启动延迟,确保窗口在旋转过程中能够平滑过渡,避免闪烁或延迟问题。在旋转变化时处理窗口的淡出和淡入效果。隐藏和显示目标窗口以匹配新的旋转角度。使用同步事务管理无缝旋转,确保窗口能够平滑过渡到新的旋转状态。原创 2024-07-11 23:00:00 · 266 阅读 · 0 评论 -
WM Shell多动画场景处理
Track是一组连续且按顺序执行的transitions,如果一个transition与所有其他的transition并行(在动画就绪时),那么他将被分配一个新的track。然而,对于真正独立的transitions,他们的动画可以独立的运行。READY 及之后的生命周期按“track”进行管理,在一个track中,所有动画都按描述的方式进行排序,一个track内,一次只能有一个transition处于active状态;如果它不与他们重叠,它可以并行动画,在这种情况下,它将被分配一个新的track。原创 2024-05-08 20:03:34 · 985 阅读 · 0 评论 -
Bubbles原理解析
气泡使用户可以轻松查看和参与对话。 气泡内置于通知系统中。 它们漂浮在其他应用程序内容之上,无论用户走到哪里都会跟随他们。 气泡可以展开以显示应用程序功能和信息,并且可以在不使用时折叠。 当设备被锁定或始终显示处于活动状态时,气泡会像通常的通知一样出现。 气泡是一种选择退出功能原创 2023-01-14 00:15:00 · 1311 阅读 · 0 评论 -
窗口的显示过程
app进程执行完当前Activity的onResume方法后,会通过ViewRootImpl去告诉system server进程添加当前activity的窗口。窗口surface已经绘制完成,正在等待布局系统进行提交;suface创建完成后等待绘制。上次的Vsync信号来临主线程执行doFrame操作,并通过系列回调执行下一次的sheduleVsync。给窗口创建一个空白的surface,但是还没有开始绘制,所以surface是隐藏的。窗口对应surface的默认绘制状态为NO_SURFACE。原创 2022-10-14 14:30:07 · 1853 阅读 · 0 评论 -
android T分屏流程
android T上对分屏流程进行了重构,之前用WINDOWING_MODE_SPLIT_SCREEN_PRIMARY等windowingMode来判断当前窗口是否分屏已经失效;分屏的触发操作放在了wm shell下,运行在systemui进程;将分屏涉及到的reparent、reorder等系列操作封装到WindowContainerTransaction中通过WindowOrganizer的applyTransaction来通知system server进行相关处理实现分屏。原创 2022-09-28 20:57:10 · 4706 阅读 · 3 评论