简述手机上层软件框架

来源:互联网 发布:怎么看淘宝店铺的网址 编辑:程序博客网 时间:2024/05/19 03:16
 
 
为了能更好的理解关于应用软件测试工作的组织思路和测试策略,先把常见的UI架构理解阐述一下。
 
通常上层软件的软件架构如下图所示。
 
 
 
 
上图所示中的软件架构只是为了测试培训的目的简要给出,并不是正式的架构模型。
 
·         Abstract Layer
抽象层的作用主要是抽象两方面:
1,   抽象与IS-95, IS-2000协议栈各接口,对协议栈上传消息进行解包满足UI工作的需要;同时对UI下发消息进行必要的打包,满足协议栈对消息结构的要求。从某种程度使UI开发工程师无需对通信协议有任何的了解,降低开发工程师的门槛,缩短培训时间和人力成本。
2,   封装并抽象底层Driver和操作系统的接口,这样的抽象和封装在硬件平台基带部分发生改变时,或者底层操作系统发生切换时(事实上在操作系统上应已经完成第一层的封装),对上层应用部分的影响可以降低到最低。同时利于应用开发工程师集中精力在上层应用开发上,而无需关注底层驱动和操作系统的管理和控制。
Abstract layer的存在使应用开发工程师无需关心任何嵌入式方面的编程禁忌和技巧,可以以OO技术来开发和维护上层应用。同时使应用开发工程师可以使用接近自然语言的方式进行编程。
 
·         UI Core Process:
UI Core Process部分在IS-95CDMA450M终端中,主要是Call Process部分。目前,随着模块化的趋势,将诸如充电显示部分这样light feature都单独作为应用模块,因此一般建议只将所有UI行为相关的部分和Call Process放到这个部分中去。
 
·         UI Framework:
UI Framework中实现大量UI中使用到的控件,对各类控件进行封装,使其行为在各应用表达一致,适于维护。需要特别指出的是,UI Framework的实现的复杂程度完全取决于需求的细化程度和对客户化的考虑。一个好的Framework应该兼顾产品系列的风格统一和对不同国家地区基于使用习惯客户化内容的考量。
 
·         APP:
各类Application是具体实现手机功能的模块。针对各类应用,采纳不同的方式进行实现。
 
·         3rd Party Porting Layer3rd Party Application:
为了缩短产品Time to Market,在手机设计和开发阶段无可避免需要或多或少需要引入第三方的应用。Porting Layer是为了adapt Abstract layerFramework and the 3rd part software. 在弥合了双方的差别之后,使第三方软件能够顺利在自己的软件平台上运行。
 
另一套MMI
事实上,为了自动测试的目的,在手机中往往存在另一套MMI命令,以执行与手机交互的功能。除非只测试协议栈和底层代码,一般建议,这套自动测试的MMI命令只用于与被测设备交互,而执行命令的过程中涉及到的动作和行为,仍然调用UI中的相关函数,不然对测试来说,增加了大量的被动的工作量,是得不偿失的。对于这一点,必须在设计之初作为强制要求写入各类设计文档,并作为检查点加入到各阶段的review中去。对于由于执行自动测试命令未能覆盖的代码,需要有另一套case进行覆盖。