10A MMI主要新特征

    技术2022-05-20  54

    10A MMI 主要新特征

    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); (有些需要频繁刷新屏幕的应用需要)

    8. 怎样添加一个新应用

    见文档 PRST_FRM_HOW_TO_WRITE_APP_10A.pdf

     


    最新回复(0)