MTK 10A MMI 主要新特征

来源:互联网 发布:大卫罗宾逊体测数据 编辑:程序博客网 时间:2024/04/30 06:24

1. 新 Event 机制

API:

#define MMI_FRM_SEND_EVENT(_evt, _proc, _user_data)    \

        mmi_frm_send_event((mmi_event_struct *)(_evt), (mmi_proc_func)(_proc), (void *)(_user_data))

#define MMI_FRM_POST_EVENT(_evt, _proc, _user_data)    \

        mmi_frm_post_event((mmi_event_struct *)(_evt), (mmi_proc_func)(_proc), (void *)(_user_data))

mmi_frm_send_event = 直接函数调用

mmi_frm_post_event 发消息稍后调用(据 MTK 说是为了防止循环调用)

mmi_frm_invoke_post_event 可以处理队列里的消息,这个 mtk 已经做好了在一些必要的地方调用

Event 处理机制在 MTK 10A mmi framework 代码中很重要,在后续特征中会有体现

2. Callback 管理机制

10A 中 callback 其实还是用 event 机制实现的

在 mmi_cb_mgr_cfg.h 中可以看到如何注册一个 event 的 callback ,也可以通过调用 mmi_ret mmi_frm_cb_reg_event(U16 evt_id, mmi_proc_func call_back, void *user_data) 来注册,一个 event 可以注册多个 callback ,会依次调用,如果有需要截断后面的处理,则不能返回 MMI_RET_OK

MTK 新版本中已有的 event 数量已经非常多,也可以自己添加,需要在以后熟悉代码中慢慢熟悉已有的 event 的意义

此时的 callback event 和上面 1 中的 event 有些区别的,使用 mmi_frm_cb_emit_post_event 来发送,在 mmi_frm_invoke_post_event 中会判断然后和 1 中的 event 区别处理

3. Screen Group 机制

见图形化文档

跟原来的 screen 机制并不能完全兼容,如需移植代码需要注意,独立的功能最好添加一个 group id ,否则可以使用已有的 group id

4. CUI

Common UI

5. 添加 XML 方式描述 Mmi Resource

可见代码: phonebook.res MTK 会解析 *.res 文件生成 mmi_rp_{APP_NAME}_def.h

兼容以前的添加资源方式

6. 新按键处理

static void process_key_event_routing(mmi_frm_key_evt_struct *key_evt_p)

参考 PRST_FRM_NewInputHandler.pdf

7. 新屏幕刷新机制

MTK 为了避免屏幕闪的问题,改在特定的时间刷新屏幕,如果需要马上刷新需要设置

    mmi_frm_set_curr_scr_blt_mode(MMI_FRM_SCR_BLT_IMMEDIATE); (有些需要频繁刷新屏幕的应用需要)


原创粉丝点击