MTK平台屏幕切换机制探索--group机制(11A版本)

本文深入探讨了MTK平台上的屏幕创建和管理机制,重点关注group节点和screen节点的创建、移动、激活及删除流程。通过代码追踪,揭示了屏幕节点如何在group节点中管理和切换,以及屏幕历史机制的工作原理。文章分析了开机流程、屏幕变换示例,并阐述了历史栈在屏幕回退中的关键作用。

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

    熟悉了几个模块的代码流程以后,发现屏幕创建并没有想像中的简单,每个程序似乎都要在创建自己的屏幕之前先创建一个群,随后又进入这个群后,这才开始自己屏幕的创建,为什么要这么多此一举呢,为了研究屏幕的运作流程?我用MODIS追踪了屏幕的创建过程。

    首先,介绍下两个根节点,一个是屏幕根节点ROOT,所有的有效屏幕都是它的子孙节点,还一个是scenario_dangle,用来暂存刚创建或马上要销毁的屏幕节点。

    然后屏幕节点分为group节点和screen节点。group节点用来管理它旗下的screen节点,它本身并不产生实际意义上的屏幕,screen节点可以理解为我们所见到的屏幕。其中ROOT下面的叶子节点必须得是screen节点。如图1所示,其中,ROOT节点下面的8101节点是开机最早创建的一个group节点,它旗下有四个screen节点,其中8105节点就是选择sim卡的界面,而8108则是选择sim卡进入待机界面前的动画绘制界面,8102节点比较奇怪,它本身好像没什么效果,不知道是不是为了保证叶子节点是screen节点才创建的。


    group节点和screen节点的创建过程也不太一样,我简要概括一下两者的创建和销毁流程:

    

1.group节点:

典型的函数: mmi_frm_group_create             mmi_frm_group_enter               mmi_frm_group_close

(1) 创建节点:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值