
《MMI软件开发平台》PPT课件.ppt
68页MMIMMI软件开发平台软件开发平台Date:3/3/2005 Created by:Phoebe Chen Figo Feng Lin Lin5/28/20221Proprietary and Confidential InformationContents1.平台介绍和计划安排平台介绍和计划安排2.Kenel接口接口3.GUI接口接口4.开发和调试实例开发和调试实例5/28/20222Proprietary and Confidential Information平台介绍和计划平台介绍和计划Spreadtrum提提供供了了一一套套基基于于类类似似 mini widows机机制制的的MMI开开发发平平台台,并并且且提提供供了了与与网网络络相相关关部部分分的的MMI源源码码同同时时我我们们也也提提供供了了MMI开开发发的的配配套套工工具具软软件件包包客客户户可可以以基基于于此此方方便便的的做做二二次次开开发发现现已已有有多多款款手机使使用用此此平平台台进进行开发5/28/20223Proprietary and Confidential Information平台结构平台结构SOFTWARE APPLICATION PLATFORMRTOSDiagnosticsDrivers(HAL)MN (Call,CB,NV,SS,SMS,GPRS)Layer 3Layer 1Layer 2TCP/UDPIP/PPPRTP/RTCPMultimedia ApplicationsAudio/Video/TestCall SMSCBS SSPB Game.MMI WAPMMS/WEBE-MailSIPH.324/MPTTATCMIDIMP3MPEG4H.263EnginesJ2MEJava AppDAL(LCD,KPD,CHR)AUDIO, VIDEOOSAEFSMMI Platform5/28/20224Proprietary and Confidential Information一个一个MMI示例示例5/28/20225Proprietary and Confidential Information简述简述MMI开发平台的三个重要概念开发平台的三个重要概念Application :描述了描述了MMI Kernel中处理中处理PS消息非常重要的模块,消息非常重要的模块,例如例如sms, cc.WINDOW:窗口,用于处理窗口,用于处理focus消息(在此窗口下面才需要处理消息(在此窗口下面才需要处理的消息)的消息)Control:控件,也就是窗口要用到的公共的特性,比如编辑特性、控件,也就是窗口要用到的公共的特性,比如编辑特性、Text显示特性、动画特性等等显示特性、动画特性等等5/28/20226Proprietary and Confidential InformationApplication、Window和和Control的关系的关系 APPLICATIONWINDOWCONTROLCONTROLCONTROL5/28/20227Proprietary and Confidential Information2.Kernel接口接口MMI Kernel主要提供完善的主要提供完善的消息驱动消息驱动流程和流程和窗口管理窗口管理机制。
机制为各种上层应用(为各种上层应用(CC、SMS、WAP、MMS等)提供等)提供良好的支持良好的支持 5/28/20228Proprietary and Confidential InformationKernel提供的功能提供的功能1.对消息流程进行管理对消息流程进行管理外部消息外部消息主主要要包包括括PS消消息息、key消消息息、Timer消消息息和和一一些些由由其其它它模模块块发送过来的消息;发送过来的消息;内部消息内部消息MMI模模块块内内部部发发送送、接接收收和和处处理理的的消消息息,不不与与其其它它模模块块发发生生任任何何关关系系.(现现在在我我们们用用到到的的就就是是focus消消息息,由由窗窗口口处处理理,这这类消息使用最多最频繁类消息使用最多最频繁)2.提供窗口管理机制提供窗口管理机制了解了解Kernel对窗口的管理机制:对窗口的管理机制:通通过过维维护护一一个个全全局局变变量量:是是MMI Kernel中中一一个个非非常常核核心心的的数数据据结结构构,它是整个窗口调度过程的核心,这个数据结构由它是整个窗口调度过程的核心,这个数据结构由MMI Kernel维护5/28/20229Proprietary and Confidential InformationApplication的概念的概念Application:描述了:描述了MMI Kernel中非常重要的应用处理模块。
中非常重要的应用处理模块可以分为两类:可以分为两类:需要注册系统消息的(需要注册系统消息的(SMS Application, Call Application, Stk Application)不需要注册系统消息的(不需要注册系统消息的(DC, Multimedia)5/28/202210Proprietary and Confidential Information注册消息注册消息APPLICATION举例举例系系统统消消息息由由Application处处理理如如果果需需要要系系统统消消息息,Application在在初初始始化化时时要要注注册册需需处处理理的的消消息息Kernel只只会会根根据据注注册册的的Application来来分发一一个个PS消消息息可可以以被被多多个个Application注注册册,Kernel会会依依次次分分发发消消息息给给各个各个Application 我们现在需要注册消息的应用:我们现在需要注册消息的应用: g_main_app g_cc_app g_sms_app g_mmiphone_app g_stk_app .静态的,全局,一般在初始化时建立静态的,全局,一般在初始化时建立。
5/28/202211Proprietary and Confidential InformationWindow的概念的概念Window:窗窗口口是是最最终终用用户户可可以以直直接接看看到到的的一一个个个个实实在在的的屏屏幕幕,是是直直接接和和用用户户打打交交道道的的,专专门门处处理理用用户户的的按按键键输输入入等等操操作作,并并且且将将最最终终用用户输入后的处理结果显示在屏幕上户输入后的处理结果显示在屏幕上窗口的消息处理函数,用来处理最终用户的直接输入窗口的消息处理函数,用来处理最终用户的直接输入窗口还要管理其所属的控件,将部分消息交给控件处理窗口还要管理其所属的控件,将部分消息交给控件处理5/28/202212Proprietary and Confidential InformationControl的概念的概念Control:控控件件,也也就就是是窗窗口口要要用用到到的的公公共共的的特特性性,比比如如编编辑辑特特性性、Text显示特性、动画特性等等显示特性、动画特性等等使使用用控控件件可可以以使使开开发发人人员员专专注注于于应应用用的的功功能能开开发发,而而不不是是过过多多限限制制在在界面的开发。
界面的开发 5/28/202213Proprietary and Confidential InformationKernel中的窗口管理中的窗口管理窗窗口口管管理理是是MMI Kernel中中非非常常重重要要的的部部分分,直直接接决决定定了了上上层层应应用用的的开开发窗窗口口管管理理主主要要包包括括应应用用窗窗口口和和控控件件之之间间的的管管理理和和通通信信、各各个个窗窗口口间间稳稳定的切换定的切换应用窗口负责上层的应用和显示等应用窗口负责上层的应用和显示等 5/28/202214Proprietary and Confidential InformationKernel中的窗口管理,中的窗口管理, 举例举例建立窗口的一些常量的属性:建立窗口建立窗口的一些常量的属性:建立窗口wintab:WINDOW_TABLE( MMISMS_EDIT_WIN_TAB ) = CLEAR_LCD, /清屏清屏WIN_PRIO( WIN_ONE_LEVEL ), /窗口优先级窗口优先级WIN_TITLE_ID( TXT_SMS_WRITE ), /固定的固定的titleWIN_FUNC(uint32) HandleEditWinMsg ), /窗口消息处理函数窗口消息处理函数WIN_ID( MMISMS_EDIT_WIN_ID ), /IDCREATE_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_PINYIN | T9_STROKE | T9_ENGLISH | T9_CHARACTER | T9_DIGITAL, T9_PINYIN_MODE, MMISMS_EDITWIN_EDITCTRL_ID), /控件控件END_WIN;详细的讲解请见后面应用实例详细的讲解请见后面应用实例5/28/202215Proprietary and Confidential Information窗口窗口Priority 设设置置窗窗口口优优先先级级的的目目的的是是为为了了保保护护那那些些重重要要的的窗窗口口在在处处于于Focus状状态态下下不不被被打打断断,比比如如Call窗窗口口,在在Call的的过过程程中中不不应应该该出出现现被被SMS或或者者Alarm窗口打断,否则会影响窗口打断,否则会影响Call的过程。
的过程我我 们们 在在 这这 里里 暂暂 时时 制制 定定 了了 4个个 优优 先先 级级 : WIN_LOWEST_LEVEL ,WIN_ONE_LEVEL,WIN_TWO_LEVEL,WIN_THREE_LEVEL 我我 们们 提提 供供 了了 操操 作作 窗窗 口口 优优 先先 级级 的的 两两 个个 函函 数数 : GetWinPriority, SetWinPriority用用户户可可以以根根据据应应用用来来调调用用这这两两个个操操作作窗窗口口优优先先级级的的函函数数在在窗窗口口的的初初始始化化(针针对对静静态态常常口口)和和创创建建(针针对对动动态态窗窗口口)过过程中,需要对窗口优先级进行设置程中,需要对窗口优先级进行设置 5/28/202216Proprietary and Confidential Information窗口窗口Priority (续)(续)5/28/202217Proprietary and Confidential Information虚拟窗口虚拟窗口虚虚拟拟窗窗口口主主要要是是指指那那种种已已经经打打开开了了但但是是无无法法得得到到Focus的的应应用用窗窗口口。
比比如如在在打打电话的的过过程程中中来来了了一一条条短短信信,因因为为Call的的窗窗口口的的等等级级比比较较高高,这个时候来短信的窗口无法得到这个时候来短信的窗口无法得到Focus,也无法显示出来也无法显示出来当当前前应应用用窗窗口口结结束束后后,系系统统会会优优先先使使虚虚拟拟窗窗口口链链表表中中的的应应用用窗窗口口得得到到Focus等等级级越越高高的的应应用用窗窗口口越越先先打打开开,当当应应用用窗窗口口处处于于同同一一等等级级时时,按按照照先先进先出方式(后打开的得到进先出方式(后打开的得到Focus )打开应用窗口打开应用窗口 5/28/202218Propri。





![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)






