11A的屏幕机制11A的屏幕机制刚接触11A的时候,相信大家也很迷茫,在断点打到EntryNewScreen或者mmi_frm_scrn_enter时,很少会跑到,导致开发的速率缓慢,我也是深受其害,所以就看了下现在的屏幕管理,只是简单的说了下现在的处理思路,没有很深的去分析各个函数。 11A中屏幕的概念十分淡薄,不过也有涉及,并没有摒弃掉10A中的树形结构的处理,下面根据新加一个应用来简单介绍下流程。1. 在新加一个APP时,我们会定义对应的launch函数,而他的实现会去执行VfxAppLaunc her::launch,而我们一般只传3个参数进去,其他当缺省值处理,第一个是APP_ID( 这个比较重要,维护树形结构的group_id是以其为base来获取),第二个是对应类的 信息,第三个是mmi_frm_group_send_event中被call的ID(这个一般是ROOT)。接着 他会去根据APP_ID创建group_ID并且进入。可以简单的理解为:VfxAppLauncher::la unch这个函数就是以前的mmi_frm_group_create和mmi_frm_group_enter,特殊的就是 我们不在去主动的定义ID,而且由APP_ID得到的GROUP_ID是放在ROOT下。(其实以前 的类似ID的定义也是根据APP_ID为基础累计,现在只是MTK帮我们做了这一步)2. 下来是进屏了,我们会去重新实现下VfxApp这个类的onRun函数(完成多态),在这个 函数中会去创建VfxXXXMainScr的类(继承于VfxMainScr),然后调用其成员函数sho w,这个函数会去主动获取个没有用过的screen_id来调用mmi_frm_scrn_enter,这样 我们熟悉的进屏……