MTK 内存管理简单总结 5
来源:互联网 发布:理正边坡稳定分析软件 编辑:程序博客网 时间:2024/06/06 09:20
在 MTK 内存管理简单总结 4 提到,当内存不足时,可以调用 mmi_frm_appmem_prompt_to_release_mem 来显示后台应用,
让用户去选择关闭后台应用释放内存,下面看一下具体流程
当选者某一后台应用,选择stop 按键时,会触发 mmi_frm_appmem_prompt_screen_stop_highlighted 函数 (触发过程跟MTK的UI事件机制想关,以后分析)。
mmi_frm_appmem_prompt_screen_stop_highlighted
该函数没有做什么,只是通过选择list 选项 来获得应该被stop的后台应用id。接着进入到确认界面 ( mmi_frm_appmem_entry_stop_confirm_screen ), 当用户选择yes后,进入到
mmi_frm_appmem_stop_confirm_screen_yes 函数,这个函数执行真正的释放内存动作
static void mmi_frm_appmem_stop_confirm_screen_yes(void){ g_mmi_frm_appmem_prompt.stop_state = MMI_FRM_APPMEM_STOP_STATE_WAITING; //调用相应应用注册的函数,通知应用却释放内存 //这个就是为什么应用要用共享内存前,需要调用 applib_mem_ap_register 来注册的原因 applib_mem_ap_stop_app_by_MMI_task(g_mmi_frm_appmem_prompt.app_id_confirm_to_stop); MMI_TRACE(MMI_FW_TRC_G1_FRM, MMI_FRM_ASM_STOP_CONFIRM_YES, g_mmi_frm_appmem_prompt.app_id_confirm_to_stop, g_mmi_frm_appmem_prompt.stop_state); //判断释放是否完成,如果没有完成,那么显示正在处理界面 //这里不直接认为回调完应用的就直接认为内存释放了,是因为 //应用stop的过程有可能是一个异步操作,这一点需要特别注意 if (g_mmi_frm_appmem_prompt.stop_state != MMI_FRM_APPMEM_STOP_STATE_FINISHED) { /* mmi_frm_appmem_stop_finished_handler() was not invoked inside applib_mem_ap_stop_app_by_MMI_task(), we display progressing screen to wait for mmi_frm_appmem_stop_finished_handler() */ mmi_frm_appmem_entry_progressing_screen(); } }注意点:
相应的app 在释放完毕内存后,一定要调用 applib_mem_ap_notify_stop_finished 来通知 ASM内存管理器,内存释放成功或者失败。
该函数最后会调用 mmi_frm_appmem_stop_finished_handler 来通知 内存管理器,内存释放结果。
这套机制,回调函数调来调去,一开始让人有点晕,不过这么设计主要是考虑应用的异步性,有些应用停止是一些异步动作,
需要等到异步动作结束才能知道最后结果。
- MTK 内存管理简单总结 5
- MTK 内存管理简单总结
- MTK 内存管理简单总结
- MTK 内存管理简单总结
- MTK 内存管理简单总结
- MTK 内存管理简单总结 2
- MTK 内存管理简单总结 3
- MTK 内存管理简单总结 4
- MTK 内存管理简单总结1
- MTK 内存管理简单总结 2
- MTK 内存管理简单总结 3
- MTK 内存管理简单总结 4
- MTK 内存管理
- MTK 内存管理
- 内存管理的简单总结
- python 内存管理简单总结
- MTK内存管理机制简单分析
- IOS 简单内存管理
- [windows] win7中使用hlp文件
- unresolved external symbol _Netbios@4 解决办法
- 《自己动手写操作系统》之分页机制源码错误(pmtest6/pmtest7/pmtest8)
- WEB页面导出为EXCEL并控制格式(ie only)
- JAVA中如何获得word,excel,pdf等文档的内容
- MTK 内存管理简单总结 5
- 动态修改WCF客户端配置文件终结点的地址的几种方法
- To JavaScript Prompts for Buttons in Asp::DataGrid for Delete Column(ZT)
- oracle exp/imp时版本规则(转载)
- Nginx配置解析
- 感悟3
- Linux就业形势报告
- nginx配置文件详解
- SQL注入风险小例