展讯MMI软件开发平台_最完整版.ppt
《展讯MMI软件开发平台_最完整版.ppt》由会员分享,可在线阅读,更多相关《展讯MMI软件开发平台_最完整版.ppt(68页珍藏版)》请在三一办公上搜索。
1、MMI软件开发平台,Date:3/3/2005,Created by:Phoebe Chen Figo Feng Lin Lin,2023年2月21日,Proprietary and Confidential Information,2,Contents,平台介绍和计划安排Kenel接口GUI接口开发和调试实例,2023年2月21日,Proprietary and Confidential Information,3,平台介绍和计划,Spreadtrum提供了一套基于类似 mini widows机制的MMI开发平台,并且提供了与网络相关部分的MMI源码。同时我们也提供了MMI开发的配套工具软件
2、包。客户可以基于此方便的做二次开发。现已有多款手机使用此平台进行开发。,2023年2月21日,Proprietary and Confidential Information,4,平台结构,SOFTWARE APPLICATION PLATFORM,RTOS,Diagnostics,Drivers(HAL),MN(Call,CB,NV,SS,SMS,GPRS),Layer 3,Layer 1,Layer 2,TCP/UDP,IP/PPP,RTP/RTCP,Multimedia ApplicationsAudio/Video/Test,Call SMSCBS SSPB Game.MMI,WAP,
3、MMS/WEB,E-Mail,SIP,H.324/M,PTT,ATC,MIDIMP3MPEG4H.263Engines,J2ME,Java App,DAL(LCD,KPD,CHR)AUDIO,VIDEO,OSAEFS,MMI Platform,2023年2月21日,Proprietary and Confidential Information,5,一个MMI示例,2023年2月21日,Proprietary and Confidential Information,6,简述MMI开发平台的三个重要概念,Application:描述了MMI Kernel中处理PS消息非常重要的模块,例如sms
4、,cc.WINDOW:窗口,用于处理focus消息(在此窗口下面才需要处理的消息)Control:控件,也就是窗口要用到的公共的特性,比如编辑特性、Text显示特性、动画特性等等,2023年2月21日,Proprietary and Confidential Information,7,Application、Window和Control的关系,APPLICATION,WINDOW,CONTROL,CONTROL,CONTROL,2023年2月21日,Proprietary and Confidential Information,8,2.Kernel接口,MMI Kernel主要提供完善的消
5、息驱动流程和窗口管理机制。为各种上层应用(CC、SMS、WAP、MMS等)提供良好的支持。,2023年2月21日,Proprietary and Confidential Information,9,Kernel提供的功能,1.对消息流程进行管理外部消息主要包括PS消息、key消息、Timer消息和一些由其它模块发送过来的消息;内部消息MMI模块内部发送、接收和处理的消息,不与其它模块发生任何关系.(现在我们用到的就是focus消息,由窗口处理,这类消息使用最多最频繁)2.提供窗口管理机制了解Kernel对窗口的管理机制:通过维护一个全局变量:是MMI Kernel中一个非常核心的数据结构,它
6、是整个窗口调度过程的核心,这个数据结构由MMI Kernel维护。,2023年2月21日,Proprietary and Confidential Information,10,Application的概念,Application:描述了MMI Kernel中非常重要的应用处理模块。可以分为两类:需要注册系统消息的(SMS Application,Call Application,Stk Application)不需要注册系统消息的(DC,Multimedia),2023年2月21日,Proprietary and Confidential Information,11,注册消息APPLICA
7、TION举例,系统消息由Application处理。如果需要系统消息,Application在初始化时要注册需处理的消息。Kernel只会根据注册的Application来分发。一个PS消息可以被多个Application注册,Kernel会依次分发消息给各个Application。我们现在需要注册消息的应用:g_main_app g_cc_app g_sms_app g_mmiphone_app g_stk_app.静态的,全局,一般在初始化时建立。,2023年2月21日,Proprietary and Confidential Information,12,Window的概念,Window
8、:窗口是最终用户可以直接看到的一个个实在的屏幕,是直接和用户打交道的,专门处理用户的按键输入等操作,并且将最终用户输入后的处理结果显示在屏幕上。窗口的消息处理函数,用来处理最终用户的直接输入。窗口还要管理其所属的控件,将部分消息交给控件处理。,2023年2月21日,Proprietary and Confidential Information,13,Control的概念,Control:控件,也就是窗口要用到的公共的特性,比如编辑特性、Text显示特性、动画特性等等。使用控件可以使开发人员专注于应用的功能开发,而不是过多限制在界面的开发。,2023年2月21日,Proprietary and
9、 Confidential Information,14,Kernel中的窗口管理,窗口管理是MMI Kernel中非常重要的部分,直接决定了上层应用的开发。窗口管理主要包括应用窗口和控件之间的管理和通信、各个窗口间稳定的切换。应用窗口负责上层的应用和显示等。,2023年2月21日,Proprietary and Confidential Information,15,Kernel中的窗口管理,举例,建立窗口的一些常量的属性:建立窗口wintab:WINDOW_TABLE(MMISMS_EDIT_WIN_TAB)=CLEAR_LCD,/清屏WIN_PRIO(WIN_ONE_LEVEL),/窗口
10、优先级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_L
11、EN,T9_PINYIN|T9_STROKE|T9_ENGLISH|T9_CHARACTER|T9_DIGITAL,T9_PINYIN_MODE,MMISMS_EDITWIN_EDITCTRL_ID),/控件END_WIN;详细的讲解请见后面应用实例,2023年2月21日,Proprietary and Confidential Information,16,窗口Priority,设置窗口优先级的目的是为了保护那些重要的窗口在处于Focus状态下不被打断,比如Call窗口,在Call的过程中不应该出现被SMS或者Alarm窗口打断,否则会影响Call的过程。我们在这里暂时制定了4个优先级:WI
12、N_LOWEST_LEVEL,WIN_ONE_LEVEL,WIN_TWO_LEVEL,WIN_THREE_LEVEL。我们提供了操作窗口优先级的两个函数:GetWinPriority,SetWinPriority。用户可以根据应用来调用这两个操作窗口优先级的函数。在窗口的初始化(针对静态常口)和创建(针对动态窗口)过程中,需要对窗口优先级进行设置。,2023年2月21日,Proprietary and Confidential Information,17,窗口Priority(续),2023年2月21日,Proprietary and Confidential Information,18,
13、虚拟窗口,虚拟窗口主要是指那种已经打开了但是无法得到Focus的应用窗口。比如在打电话的过程中来了一条短信,因为Call的窗口的等级比较高,这个时候来短信的窗口无法得到Focus,也无法显示出来。当前应用窗口结束后,系统会优先使虚拟窗口链表中的应用窗口得到Focus。等级越高的应用窗口越先打开,当应用窗口处于同一等级时,按照先进先出方式(后打开的得到Focus)打开应用窗口。,2023年2月21日,Proprietary and Confidential Information,19,Kernel中的消息机制,2023年2月21日,Proprietary and Confidential In
14、formation,20,消息分类,从消息的接收情况,分为外部消息主要包括PS消息、key消息、Timer消息和一些由其它模块发送过来的消息;内部消息,MMI模块内部发送、接收和处理的消息,不与其它模块发生任何关系.在App_Task的消息循环当中总是处理完内部消息之后再处理外部消息。,2023年2月21日,Proprietary and Confidential Information,21,消息分类(续),根据不同的消息发送和处理流程来划分,消息分为4个类别:第一类消息为系统消息(主要为PS消息和其它一些System消息),只有App在注册后才能够处理这条消息,对于没有注册的系统消息,将交
15、给默认的MainApp处理。一条系统消息可以被多个App注册和处理。第二类为Focus消息,系统直接将这种类型的消息直接发送给处于Focus状态的APP,由APP对消息进行处理。第三类广播消息,将根据Application的链表,调用每一个的消息处理过程,这属于每一个App都要处理的过程,每个App只处理自己感兴趣的消息,至于App的处理方式(是交给Window处理还是App本身处理),系统没有任何限制。(这个暂时没有用过)第四类定时器消息,由于定时器使用的比较广泛,而且无法将其归为系统消息或Focus消息,为了更好的处理,将其单独的作为一类消息处理。,2023年2月21日,Proprieta
16、ry and Confidential Information,22,外部消息处理,外部消息由Application来处理;外部消息需要Application事先在mmk_regapp.def中定义应用所关心的消息;外部消息队列由嵌入式操作系统维护;,2023年2月21日,Proprietary and Confidential Information,23,内部消息处理,内部消息不需要应用模块进行注册;内部消息由Window,Control处理;内部消息队列由Kernel模块维护;内部消息定义在mmk_msg.h中;,2023年2月21日,Proprietary and Confidenti
17、al Information,24,消息处理流程,MMI KERNEL,Queue,(external),Control,WINDOW,APPLICATION,2023年2月21日,Proprietary and Confidential Information,25,窗口通信,一般的窗口(包括应用窗口和控件)都需要彼此之间能够传送消息,比如应用窗口需要将消息传给控件(一个刷新的消息)或者一个控件需要另一个控件处理消息等,这些都会涉及到窗口间的通信,一般有两种通信方式:异步通信方式,用MMK_PostMsg()函数来实现。异步通信方式主要将消息发送到内部消息队列中,即当发送消息的窗口返回后,这
18、条消息才会被处理。因为这是一种Focus消息,所以接收的窗口必须是应用窗口,只有应用窗口才可以得到Focus。同步通信方式,用MMK_SendMsg()函数来实现。,2023年2月21日,Proprietary and Confidential Information,26,3 GUI接口,GUI 模块的主要功能就是给应用开发提供最基本的图形控件接口,并跟窗口系统、消息机制结合,处理基本的人机操作。,2023年2月21日,Proprietary and Confidential Information,27,Control的基本属性,图形化,和用户交互可以Active可接受消息,有消息处理函数
19、依赖于窗口存在每个具体的control有唯一ID,2023年2月21日,Proprietary and Confidential Information,28,控件的使用,有2种形式1.在wintable中加入一个控件2.动态创建,2023年2月21日,Proprietary and Confidential Information,29,控件的使用-wintable,CREATE_MENU_CTRLCREATE_LISTBOX_CTRLCREATE_TEXTEDITBOX_CTRLCREATE_ANIMATION.,2023年2月21日,Proprietary and Confidentia
20、l Information,30,控件的使用动态创建,创建控件:GUIANIMATE_Init()将该控件加入到window中 MMK_CreateDynaCtrl()设定控件的参数:GUIANIMATE_SetParam,2023年2月21日,Proprietary and Confidential Information,31,GUI提供的控件,Menu控件:菜单控件EditBox控件:编辑框控件ListBox控件:列表框控件TextBox控件:文本框控件Animate控件:图形控件MessageBox控件:消息框控件ProgressBox控件:进度条控件Punctuation控件:标点符
21、号控件SoftKey控件:软键盘控件Calendar控件:日历控件字库:字体LCD:显示屏T9:输入法,2023年2月21日,Proprietary and Confidential Information,32,Menu控件介绍,树状结构,显示多级菜单实现菜单项的设定,显示,上下左右按键选择,选中后自动进入下级子菜单,或者执行相应的操作菜单项文字过长滚动显示 分为两类:静态菜单,动态菜单目前已实现的风格:文字菜单,旋转图,九宫格,2023年2月21日,Proprietary and Confidential Information,33,添加静态菜单,1.添加menu id(mmi_menu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 展讯 MMI 软件 开发 平台 完整版
链接地址:https://www.31ppt.com/p-2652115.html