MTK 11A 操作流程解析:从触摸到通话的内部机制
5星 · 超过95%的资源 需积分: 3 90 浏览量
更新于2024-09-14
收藏 5KB TXT 举报
本文主要总结了关于mtk 11A平台在处理触摸消息栈方面的经验,特别是与拨号器应用程序启动流程相关的调用链路。文中提到了一系列的函数调用过程,从`mmi_dialer_instance_create()`开始,直至`mmi_pen_touch_panel_event_ind()`,涉及到了用户界面响应、信号处理以及协议处理等多个层次。
在mtk 11A平台上,当用户进行触摸操作时,事件处理的流程大致如下:
1. 首先,创建拨号器实例`mmi_dialer_instance_create()`,这是拨号应用初始化的关键步骤。
2. 接着,通过`mmi_dialer_launch_ex()`和`mmi_dialer_launch()`来启动拨号器,这两个函数可能用于处理不同的启动逻辑或参数。
3. 启动流程继续深入系统服务层,`srv_nativeappfactory_launch_ex()`和`srv_appmgr_launch_adp()`被调用,这通常涉及到应用管理器和服务管理器对应用的调度和加载。
4. 继续通过`srv_appmgr_launch_ex()`和`srv_appmgr_launch()`来实际执行应用的启动,这部分是系统级的通用应用启动机制。
5. 当用户点击应用时,事件会传递到`VappDrawerShortcutBar::onAppClicked()`,这是用户界面响应的一部分,它触发了一个信号`VfxSignal1<int>::emitEntry()`。
6. 信号进一步通过`VfxBaseSignal::emitSlots()`和`VfxAsyncSignalUtil::processPostEmit()`进行分发和处理,确保异步操作的正确执行。
7. `VfxAsyncSignalQueue::processEmit()`负责处理信号队列,确保事件按照正确的顺序和时间执行。
8. 在这一过程中,触控输入被处理,`vfx_mmi_check_update()`检查是否有新的触控事件,然后调用`vfxPenProcessPenInput()`来处理笔输入。
9. `vfxPenPrePenEventProc()`和`execute_evt_cb()`等函数用于预处理笔事件,确保事件能够正确地被系统识别。
10. `emit_evt_cb()`和`process_cb_table()`进一步处理回调函数,将事件发送给相应的处理程序。
11. 事件最终到达`mmi_frm_cb_emit_event()`,该函数是框架层处理事件的关键,它调用`excecute_pen_event()`来执行具体的笔事件处理。
12. `handle_single_touch_event()`针对单个触摸事件进行处理,`mmi_pen_poll_hdlr()`则负责对触控面板的轮询,以检测新的触摸输入。
13. `mmi_pen_touch_panel_event_ind()`是触控面板事件指示器,它通知系统触控面板上的最新事件。
14. 事件处理链路的最后,`mmi_frm_execute_current_protocol_handler()`和`ProtocolEventHandler()`执行当前协议处理,这可能是为了处理特定的应用交互或通信协议。
15. 最后,`MMI_task()`作为主任务循环,负责接收并处理所有与MMI(多媒体接口)相关的任务。
此外,文中还提到了电话呼叫的相关流程,如`srv_ucm_act_request()`用于发起呼叫请求,`mmi_ucm_dial_option()`、`mmi_ucm_call_launch()`和`cui_dialer_call_launch()`用于处理拨号选项和实际拨号操作。这些函数在拨打电话时扮演着重要角色,确保拨号请求能正确地转化为实际的通话行为。
mtk 11A平台在处理触摸事件和拨号应用启动时,涉及到多个层级的交互和处理,包括用户界面、系统服务、应用管理和触控输入的处理。这些经验总结对于理解平台的底层工作原理以及优化相关功能具有重要价值。
261 浏览量
149 浏览量
240 浏览量
114 浏览量
146 浏览量
146 浏览量
shuimiaohuangyong
- 粉丝: 0
- 资源: 3
最新资源
- npp_7.4.2_Installer.zip
- Mapquiz-Front
- 行业文档-设计装置-木丝水泥板为免脱模板的混凝土墙体缺陷检测探针.zip
- frontend-mentors-social-proof-section
- Adaptive-Kalman-Filter.rar_adaptive kalman_kalman_卡尔曼滤波_自适应 卡尔曼_
- 【容智iBot】6容智信息·Infodator数字化生产力供应商.rar
- webcomponents-material:可重用的Custom元素库
- matlab标注字体代码-SynthTextHindi:此仓库包含用于生成印地语合成文本图像的代码
- FindNet-IP.zip
- FreeJeweled-开源
- obscenity:Obscenity是RubyRubinius,Rails(通过ActiveModel)和Rack中间件的亵渎性过滤器
- TestNG_Allure_best
- 【容智iBot】5容智信息成功案例分享——柯尼卡美能达数字化生产力项目.rar
- [已归档]一个可以轻松保存和恢复Android组件状态的库。-Android开发
- worker:高性能Node.jsPostgreSQL作业队列(也适用于使PostgreSQL触发器生成的作业将函数触发到另一个工作队列中)
- 正弦电气 EM329A用户手册.zip