- 1、本文档共68页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MMI软件开发平台1
MMI软件开发平台 Contents 平台介绍和计划安排 Kenel接口 GUI接口 开发和调试实例 平台介绍和计划 Spreadtrum提供了一套基于类似 mini widows机制的MMI开发平台,并且提供了与网络相关部分的MMI源码。同时我们也提供了MMI开发的配套工具软件包。客户可以基于此方便的做二次开发。现已有多款手机使用此平台进行开发。 平台结构 一个MMI示例 简述MMI开发平台的三个重要概念 Application :描述了MMI Kernel中处理PS消息非常重要的模块, 例如sms, cc….. WINDOW:窗口,用于处理focus消息(在此窗口下面才需要处理 的消息)… Control:控件,也就是窗口要用到的公共的特性,比如编辑特性、 Text显示特性、动画特性等等… Application、Window和Control的关系 2.Kernel接口 MMI Kernel主要提供完善的消息驱动流程和窗口管理 机制。 为各种上层应用(CC、SMS、WAP、MMS等)提供 良好的支持。 Kernel提供的功能 1.对消息流程进行管理 外部消息 主要包括PS消息、key消息、Timer消息和一些由其它模块发送过来的消息; 内部消息 MMI模块内部发送、接收和处理的消息,不与其它模块发生任何关系.(现在我们用到的就是focus消息,由窗口处理,这类消息使用最多最频繁) 2.提供窗口管理机制 了解Kernel对窗口的管理机制: 通过维护一个全局变量:是MMI Kernel中一个非常核心的数据结构,它是整个窗口调度过程的核心,这个数据结构由MMI Kernel维护。 Application的概念 Application:描述了MMI Kernel中非常重要的应用处理模块。 可以分为两类: 需要注册系统消息的(SMS Application, Call Application, Stk Application…) 不需要注册系统消息的(DC, Multimedia) 注册消息APPLICATION举例 系统消息由Application处理。如果需要系统消息,Application在初始化时要注册需处理的消息。Kernel只会根据注册的Application来分发。 一个PS消息可以被多个Application注册,Kernel会依次分发消息给各个Application。 我们现在需要注册消息的应用: g_main_app g_cc_app g_sms_app g_mmiphone_app g_stk_app ……. 静态的,全局,一般在初始化时建立。 Window的概念 Window:窗口是最终用户可以直接看到的一个个实在的屏幕,是直接和用户打交道的,专门处理用户的按键输入等操作,并且将最终用户输入后的处理结果显示在屏幕上。 窗口的消息处理函数,用来处理最终用户的直接输入。 窗口还要管理其所属的控件,将部分消息交给控件处理。 Control的概念 Control:控件,也就是窗口要用到的公共的特性,比如编辑特性、Text显示特性、动画特性等等。 使用控件可以使开发人员专注于应用的功能开发,而不是过多限制在界面的开发。 Kernel中的窗口管理 窗口管理是MMI Kernel中非常重要的部分,直接决定了上层应用的开发。 窗口管理主要包括应用窗口和控件之间的管理和通信、各个窗口间稳定的切换。 应用窗口负责上层的应用和显示等。 Kernel中的窗口管理, 举例 建立窗口的一些常量的属性:建立窗口wintab: WINDOW_TABLE( MMISMS_EDIT_WIN_TAB ) = { CLEAR_LCD, //清屏 WIN_PRIO( WIN_ONE_LEVEL ), //窗口优先级 WIN_TITLE_ID( TXT_SMS_WRITE ), /固定的title WIN_FUNC((uint32) HandleEditWinMsg ), //窗口消息处理函数 WIN_ID( MMISMS_EDIT_WIN_ID ), //ID CREATE_TEXTEDITBOX_CTRL( MMISMS_FULLSCREEN_CLIENT_LEFT, MMISMS_FULLSCREEN_CLIENT_TOP, MMISMS_FULLSCREEN_CLIENT_RIGHT, MMI_INPUT_EDITBOX_BOTTOM, MMISMS_MAX_UCS2_MESSAGE_LEN, MMISMS_MAX_MESSAGE_LEN, T9_P
文档评论(0)