应用软件框架简介

上传人:xzh****18 文档编号:50530328 上传时间:2018-08-08 格式:PPT 页数:38 大小:991.50KB
返回 下载 相关 举报
应用软件框架简介_第1页
第1页 / 共38页
应用软件框架简介_第2页
第2页 / 共38页
应用软件框架简介_第3页
第3页 / 共38页
应用软件框架简介_第4页
第4页 / 共38页
应用软件框架简介_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《应用软件框架简介》由会员分享,可在线阅读,更多相关《应用软件框架简介(38页珍藏版)》请在金锄头文库上搜索。

1、Date1Proprietary and Confidential InformationPLD James.Zhang *应用软件框架简介Date2Proprietary and Confidential Information目的 什么是应用框架 Mocor平台的应用软件框架Date3Proprietary and Confidential Information 框架(Framework)的定义支撑或围住其他物体的结构, 尤指用作建筑物之基础的支 撑骨架.术语”框架”对不同的人,含义 不同.建筑师用这个词描述建 筑物的骨架或结构.软件架构 师用这个词描述有助于软件 应用开发的一组可重用的

2、设 计和代码.在应用开发领域,无论有没有 框架,所有事情照样能做.然 而,框架能为应用提供很多好 处,采用应用框架方法对应用 开发大有裨益.应用框架Date4Proprietary and Confidential Information 第一个被广泛应用的框架是模型-视图控制器(MVC), 是一个由施乐公司开发的Smalltalk用户界面框架. 这 种使用观察者设计模式的MVC方法已经被很多用户 界面系统采用. 著名的用户界面框架有MacApp和 MFC. 框架概念并不局限于用户界面框架, 也用于通用应用 开发. Sun的Java环境和MS的.Net环境, 不仅提供了 新的语言和虚拟机, 还

3、提供了它们自己的框架. 它们 都是旨在支持所有业务类型的应用系统的通用框架.应用框架的历史Date5Proprietary and Confidential Information 业务应用层表示客户化应用, 由应用开发者负责开发. 应用框架是应用的半成品, 软件架构师开发它. 其中特 定领域框架层由针对特定业务领域的专有组件组成. 跨 领域框架层由不包含业务领域知识的框架组件组成, 能 够被多个不同业务领域的应用共享.应用框架的分层Date6Proprietary and Confidential Information 使用应用框架有如下优点 模块化 把应用分割成多个组件或模块. 模块化的

4、开发互不影 响, 效率提高. 可重用性 代码的可重用性. 可扩展性 客制化, 开发者可在框架中插入自定义的业务逻辑.为何使用应用框架Date7Proprietary and Confidential Information 简单性 框架封装了处理流程的控制逻辑, 对开发者透明. 免去开发者编写 协调逻辑之苦. 可维护性应用框架分层, 最底层包含没有任何业务假设的框架组件, 层次越 往上, 其组件依赖的业务假设就越多. 每当需求变化时, 只有业务假 设被打破的层中的组件需要被修改和测试.为何使用应用框架Date8Proprietary and Confidential Information通用

5、点 提取应用层的某些重复出现且又没有太多变化的部分, 作为通用点, 封 装成框架层的组件. 开发者将引用框架组件实现的通用点, 而不用亲自 去开发它们. 扩展点 在框架中安置一个空的占位符, 将来被基于框架之上构建的业务应用填 上客制化的实现. 白盒框架 抽象类组成的框架. 开发者需要继承框架中的抽象类来建立一个具体类 . 白盒框架使用继承法支持扩展点. 黑盒框架 直接可用的类组成的框架. 开发者通过组合很多组件来达到预期的目的 . 黑盒框架借助组合法来支持扩展点. 灰盒框架 同时采用继承法和组合法, 既包含抽象类, 又包含具体类. 设计模式 利用设计模式解决开发应用框架中的一些共性问题. 框

6、架的设计没有银弹, 需要在不同的方法之间权衡, 创造出适合目的的 应用框架.应用框架的开发技术Date9Proprietary and Confidential Information NO FREE LUNCH框架的开发需要额外的代价 框架开发 用户培训 开发应用框架就像在股市投资, 好的投资应该 对你的投资目标有利, 而不是看它们今天是否 赚钱.应用框架经济学Date10Proprietary and Confidential InformationMocor平台应用软件框架Date11Proprietary and Confidential Information APP(MMI)实现具

7、体的应用功能, 体现给用户界面显示和方便快捷的人机 交互操作. 应用实现的基础是MMK提供的消息机制和窗口管理 机制, 应用不必关心MMK的内部细节, 只需要关心本模块内的 消息回调实现. GUI人机交互的图形界面实现, 抽象封装了图形操作接口, 包括文字, 图形,图像. 一方面应用可以直接调用API实现基本图像的绘制, 也可以利用GUI控件实现标准图形数据的创建,显示,控制和销毁 . 控件的实现同样基于MMK. MMK即MMI Kerenl, 即Mocor平台的应用软件框架. 主要作用是消息 派发和窗口管理. 消息派发主要负责派发内部消息和外部按键 触笔定时器以及其他task发给MMI的消息

8、. 窗口管理模块负责 应用窗口控件的创建,显示,控制和销毁.Mocor平台应用软件框架Date12Proprietary and Confidential Information Application, Applet, Window, Control是MMK中 四个重要的概念. 模板模式MMK这些核心部件的设计使 用了设计模式中的模板模式( 也叫好莱坞原则,好莱坞演员 平时都在家里, 导演拍片时会 打电话给演员, 演员不会自己 找导演). 应用的各个模块如 APP, GUI都依赖于MMK, 等 MMK来调用各自的回调函数. 这正是别调用(Call)我, 让我 来调用(Call)你.应用应用程

9、序窗口控件Date13Proprietary and Confidential InformationApplication的概念 MMI的每个应用模块就是Application, 用于注册和处理外 部消息. 外部消息可以被多个Application注册,Kernel会依次分发 消息给各个Application, 由Application处理。应用的声明: MMI_APPLICATION_T g_cc_app; 注册外部消息:REG_APP(APP_MN_FDN_UPDATE_CNF, APP_MN_DEACTIVATE_PDP_CONTEXT_IND, &g_cc_app) 消息处理函数CC

10、_HandlePsMsg, 消息处理函数的设计就 是之前提到的框架中的扩展点. 需要注册外部消息的应用:g_main_app, g_cc_app, g_sms_app Date14Proprietary and Confidential InformationApplet的概念 Applet:可看做windows系统上应用程序的概念. 可 以包含一个或多个窗口, 也可以没有窗口. 窗口间的数 据交换可以借助Applet来完成. Applet的消息处理函数, 用来处理送给Applet的各种 消息, 包括Applet的启动销毁, 定时器和其他指定发给 Applet的消息. Applet还要管理其所

11、属的窗口的生命周期.Date15Proprietary and Confidential InformationApplet的重要属性 句柄 句柄是用来唯一标识应用程序窗口控件运行时 实例的ID, 是动态生成的. GUID GUID是用来唯一标识接口类的ID, 是由用户指 定的. 相同GUID的应用程序可以有多个实例, 类 似于PC上可以开多个IE, 多个QQ. 消息处理函数 应用中包含的窗口列表Date16Proprietary and Confidential InformationWindow的概念 Window:窗口是最终用户可以直接看到的一个个实 在的屏幕,是直接和用户打交道的,专门

12、处理用户的 按键输入等操作,并且将最终用户输入后的处理结果 显示在屏幕上。 窗口的消息处理函数,用来处理送给窗口的各种消息 ,包括按键,定时器消息等等。 窗口还要管理其所属的控件,将部分消息交给控件处 理。Date17Proprietary and Confidential InformationWindow的重要属性 句柄 静态ID 消息处理函数 窗口中包含的控件列表 当前active的控件 优先级 状态,是否打开,是否获得focus Title,SoftkeyDate18Proprietary and Confidential InformationControl的概念 Control:控

13、件,可以完成某种特定功能,例如:编 辑功能、文本显示功能、动画功能等。 使用控件可以使开发人员专注于应用的功能开发,而 不是过多考虑界面的开发。 可添加新控件,更改现有控件风格Date19Proprietary and Confidential InformationControl的重要属性 句柄 静态ID GUID 父窗口 消息处理函数 创建销毁等回调函数Date20Proprietary and Confidential InformationMMK消息派发 MMI跑在APP_Task, 是一个while(1)的死 循环. APP_Task先处理内 部消息, 再处理外部 消息. 内部消息派

14、发给窗口, 控件应用程序. 外部 消息派发给应用. 处理完消息之后, Kernel根据屏幕是否 置脏, 统一进行刷屏Date21Proprietary and Confidential InformationMMK消息派发 内部消息分别根 据目标句柄的类 型, 派发给应用 程序, 窗口和控 件. 按键消息, 会优 先派发给窗口的 Active控件, 再 派发给窗口.Date22Proprietary and Confidential Information消息分类 根据消息的接收情况来划分,消息分为两类 : 外部消息:主要包括PS消息、key消息、 Timer消息和一些由其它task发送过来的

15、消息 ; 内部消息:MMI模块内部发送、接收和处理 的消息,不与其它模块发生任何关系. 注:在App_Task的消息循环当中,总是处理 完内部消息之后再处理外部Date23Proprietary and Confidential Information外部消息 外部消息可分为以下几类 系统消息:主要为PS消息和其它一些task发送给 mmi的消息,只有Application在注册后才能够处 理这条消息。一条系统消息可以被多个 Application注册和处理。 按键消息:直接被发送给处于Focus状态的窗口 进行处理。 定时器消息:由于定时器时间到所产生的消息, 由定时器的owner进行处理,

16、 Applet, Window, Control都可以启动timer。 Date24Proprietary and Confidential Information内部消息 窗口相关消息,包括MSG_OPEN_WINDOW, MSG_CLOSE_WINDOW, MSG_LOSE_FOCUS, MSG_GET_FOCUS, MSG_FULL_PAINT 控件相关消息,包括MSG_CTL_OPEN, MSG_CTL_CLOSE,MSG_CTL_PAINT MMI各个模块自己定义的消息Date25Proprietary and Confidential Information内部消息处理 不需要应用模块进行注册 由Window,Control处理 消息队列由MMI Kernel维护 MMK的消息定义在mmk_msg.h中 用户自定义消息在mmi_

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 多媒体应用

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号