(通信与信息系统专业论文)智能手机在symbian+os+s60平台下的应用开发.pdf_第1页
(通信与信息系统专业论文)智能手机在symbian+os+s60平台下的应用开发.pdf_第2页
(通信与信息系统专业论文)智能手机在symbian+os+s60平台下的应用开发.pdf_第3页
(通信与信息系统专业论文)智能手机在symbian+os+s60平台下的应用开发.pdf_第4页
(通信与信息系统专业论文)智能手机在symbian+os+s60平台下的应用开发.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要 i 智能手机在 symbian os s60 平台下的应用开发 智能手机在 symbian os s60 平台下的应用开发 作者简介:蒋媛,女, 1981 年 07 月生,师从于成都理工大学博士生导师 王华军教授, 2009 年 06 月毕业于成都理工大学通信与信息系统专业,获得工 学硕士学位。 摘摘 要要 目前,智能手机发展非常迅速,具有广阔的市场前景。之所以称之为智能手 机,就是因为这种手机象pc一样,具有操作系统,能够安装运行软件。智能手 机操作系统主要有诺基亚的symbian系统, 微软的windows mobile系统和linux系 统。诺基亚公司开发的诺基亚手机在市场上占有巨大的份额,诺基亚的symbian 系统占据了主要的市场地位。在此背景下对基于symbian的智能手机软件开发具 有重要的应用价值与重要意义。 本文首先简述课题的研究背景及意义,阐述智能手机的发展现状,对当前的 几种比较流行的操作系统进行了研究,着重研究了symbian操作系统,分析并指 出了symbian操作系统在手机操作系统领域的优势和特点及其界面形式分类。 然后研究了symbian os的相关原理,如存储、通信、应用程序框架、s60平 台的搭建以及carbide c+开发工具。涉及到的主要技术包括文件流存储、活动 对象、http通信、xml解析技术、观察者模式以及ui设计等。其中文件流存储 包括数据的外化和内化; 活动对象指一种实现多线程处理的机制, 是symbian os 中一个十分重要的概念;http是一个应用层协议,用于通过因特网传输信息; xml简易应用程序接口sax(simple apifor xml,简称sax)是一个基于事件、 采用“推”模式的解析模型;观察者模式定义对象间的一种一对多的依赖关系, 当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 最后进行了智能手机在symbian os s60平台下的应用开发, 即手机智能点餐 系统的设计与实现。该系统是在基于avkon视图的架构上设计实现的,主要分为 五个模块,分别是:数据模型模块、存储模块、通信模块、引擎模块和ui 模块。 文中对各个模块的设计思路和具体代码实现都进行了详细的研究和说明, 并最终 给出测试结果,实现了智能点餐。该系统具有的特点与功能有: (1)利用网络节 约投资,信号覆盖广,基本上无盲区。 (2)在使用过程中,消费者可以边点菜边 下单,服务员可以为消费者提供点菜服务,能够及时、准确地发送菜单,并且与 收银台的系统实现了信息同步,避免手写菜单、下单出现漏单、错单现象,缩短 服务响应时间和提高客户满意度。 (3)由于不需要等所有的菜都点完之后才发送 成都理工大学硕士学位论文 ii 菜单,在点菜时就可以一个一个发送,明显节省了手工记录菜单的时间。 (4)菜 品信息可在点菜时就予以提示,可及时进行退菜处理等问题。餐馆服务员指尖轻 轻一点,移动网络就可以通过手机终端满足消费者的一切需求。 关键词:智能手机关键词:智能手机 手机点餐手机点餐 symbian s60 carbide c+ abstract iii application development of smartphone under symbian os s60 platform introduction of author: jiang yuan, female, was born in july, 1981 whose tutor was professor wang hua-jun. she graduated from chengdu university of technology in communication and information system major and was granted the master degree in june, 2009. abstract the smart phone has been a largely development,it is called smart phone because it is installed oprating system likes pc and it can run software.the smart phone oprating system including symbian os of nokia,windows mobile developed by microsoft and linux. nokia mobile phones developed by nokia in the market share of an enormous,symbian has taken the major part of market with nokias help. in this context,developing and researching software for smart phone based on symbian os is very important. firstly,proposed the research background and significance of this subjeet,and expound on the development of smart phones.then compared and presented several popular operating systems associated with the subjects of the current study,which focused on introducing the symbian operating system,illuminate the advantages and characteristics on the mobile phone operating system and interface forms categories. secondly introduced the related technology of symbian os,for example,store,communication,application framework,how to structures s60 paltform and carbide c+.the key technologies involved are stream store,active object,http technology,xml parse technology,observer pattern and ui design.stream store including externalize and internalize.active object is a mechanism to deal with multi-threaded,is a very important concept of symbian os. http is a application layer agreement, used to transmit information through the internet. xml simple application programming interface sax(simple apifor xml, referred to as sax) is a base of event, use push model of analytical model. observer model defined a one-to-many relationship during objects. when an objects state was change, all the objects depends on it are notified and updated automatically. finally achieved application development of smartphone under symbian os s60 platform, that is, design and implementation for smart phone menu system.the 成都理工大学硕士学位论文 iv system is designed and implement based on avkon view structure.it is divided into five modules,they are:data model module,store module,communication module, engine module,ui module. in this paper, the design of each module and specific code ideas have carried out detailedly, and,given the test results ultimately and to achieve a smart phone menu system. the system have the characteristics and functions:(1)phone order systems are make full use of network to save investment, wide signal coverage, no blind spots,basically.(2)during using time, consumers can order and submit, attendants can provide consumers with order services,can timely and accurate send menus,and achieve information synchronization with checkout system, avoid hand-written menus, appear omission and mistake when submit, shorten the service response time and improve customer satisfaction.(3)because do not have to send menus after wait all of the dishes are ordered, in the order can be sent one by one, savings in time hand-written record menu obviously.(4)dishes information can be given cue during order, can promptly to deal with issues such as dishes back timely. restaurant waiter gently point with fingers, mobile network can meet all the needs of consumers through the mobile terminal phone. keywords: smart phone phone menu system symbian s60 carbide c+ 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果, 也不包含为获得 成都理工大学 或其他教 育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解 成都理工大学 有关保留、 使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和 借阅。本人授权 成都理工大学 可以将学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本授权书) 学位论文作者签名: 学位论文作者导师签名: 年 月 日 第 1 章 绪 论 1 第第 1 章章 绪绪 论论 1.1 选题的目的和意义 随着移动通信技术的快速发展,人类已经进入一个信息化的社会,嵌入式 操作系统以及嵌入式 cpu 技术的快速发展使智能手机成为其主要应用之一。 近 些年来智能手机在应用上不断完善,提高了对多媒体、照相、绘图、gps 等功 能的支持。而技术的进步和工艺的完善又使得手机价格降低,从而使智能手机 由高端的小众市场,逐渐地转向了大众,吸引了更多关注的目光。智能手机的 操作系统对智能手机的发展起着至关重要的作用,因此,对智能手机操作系统 的研究意义重大。 常见的智能手机操作系统有:symbian、linux、windows mobile 等。强大 的市场占有率使得 symbian 成为应用范围最大的智能手机操作系统。而在 symbian 下, series60 (简称 s60) 是智能手机中使用最广泛的用户平台, 因此, 对基于 symbian os 的 s60 平台软件开发就显得更加具有重要意义。 1.2 研究和发展现状 现在的 symbian 因为松下、西门子和三星的先后加入已经成为由诺基亚、 索尼爱立信、摩托罗拉、松下、西门子、三星联合控股的公司。尽管后来摩托 罗拉出售了在 symbian 的股权,但在 2004 年第一季度,lg、arima 和联想成 为最新取得 symbian 授权协议的手机制造商,从而使得获得授权的厂商总数达 到了 18 家,几乎囊括了全球所有重量级的手机制造商。最新版本 symbian v9.3 操作系统主要的改进包括提升了对本地 wifi 网络技术支持,支持 usb 2.0 on-the-go 技术(“便携式 usb”或者“移动 usb”) ,可以在没有 host 的情况下,实 现从设备间的数据传送。同时在网络应用方面不仅增加对 hsdpa 技术的支持, 而且还首次加入了对uma(unlicensed mobile access无授权移动接入)voip网络 电话功能的支持,加上更好的兼容 3gpp r5 规范,因此采用新版本的 symbian 系统的支持终端在网络功能应用方面几乎无可挑剔。此外,支持 fota 空中固 件升级、push to talk 一键通话和 s60 第三版 fp1 发布时提及的 java jsr 248 协议也属于新版本操作系统的支持的内容。不仅如此,symbian v9.3 操作系统 还全面兼容以往版本的 symbian 操作系统,并改进了支持终端的内存管理,提 高软件程序的响应速度并且加快了终端的开机运行速度等。 中国对于 symbian 的重要性,一组数字可以证明:1)中国市场上 symbian 成都理工大学硕士学位论文 2 智能手机出货量占全球总量的 10%15;2)12.5%的基于 symbian 操作系统 开发出来的应用程序来自中国; 3) 中国市场基于 symbian 的智能手机出货量增 长率高达 116。特别是,诺基亚、索尼爱立信把中国作为全球主要研发中心 之一,symbian 中国公司的成立可以借助其本地资源为中国市场的两家主要客 户提供更完善的产品和服务,与此同时也将与更广泛的手机制造商开展合作。 在对 symbian 的运用方面,国内也涌现出大批公司。 1.3 论文研究内容 本文主要以实际项目为例,详细论述如何在 symbian os 下用 s60 平台进 行软件开发,对 symbian os 操作系统和 s60 平台以及 carbide c+开发工具进 行了详细的理论分析。主要研究内容如下: 1、研究 symbian 操作系统。symbian os(中文译音“塞班系统”)由诺基亚、 索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一 个合资公司,专门研发手机操作系统。它的前身是 epoc(electronic piece of cheese) ,其原意为使用电子产品时可以像吃乳酪一样简单,这就是它在设计 时所坚持的理念。symbian 操作系统在智能移动终端上拥有强大的应用程序以 及通信能力, 这都要归功于它有一个非常健全的核心强大的对象导向系统、 企业用标准通信传输协议以及完美的 sun java 语言。作为专用嵌入式手机操作 系统,symbian os 具有一些独有的特点。symbian 操作系统还提供了灵活的应 用界面(ui)框架,使拥有该操作系统的手机可以采用多种应用界面形式。 2、研究 s60 开发平台。为了适应不同的用户,symbian 将操作系统的接口 分为四类:s60 平台、s80 平台、s90 平台和 uiq 平台,其中 s60 平台是智能 手机中应用最广泛的。s60 平台至今有三种版本,本文介绍的程序是在第三版 的环境下编制运行的。通过具体程序,本文展示了如何搭建 s60 开发平台,如 何进行应用程序开发,并向读者展示了多样化的用户界面。 3、简单介绍 carbide c+。与以往传统的使用 vc 编程不同,本文采用了 另外一种开发工具carbide c+。carbide c+是基于 eclipse 的开发工具家 族,它支持 s60 平台、s80 平台、uiq 平台和 moap 的 symbian os c+开发。 本文采用的版本是 carbide c+ oem edition(oem),它除提供 pro 功能外,还 提供诸如 rom 和 jtag 支持的手机制造工具。 4、实例实现。在 s60 开发平台上编写程序,实现一个智能手机点餐系统, 服务器可以通过这个点餐系统将菜品信息下载到客户端,并通过手机帮助顾客 点餐,然后将菜品信息上传到服务器,同时可实现结账功能。 第 1 章 绪 论 3 1.4 论文的结构 论文结合所学习的理论和项目背景,主要对嵌入式操作系统 symbian 进行 了深入的探讨,并搭建 s60 开发平台在该系统中进行嵌入式软件开发。 论文共分为 4 个章节。 第 1 章 绪论。简要介绍了选题的目的和意义,所用技术的研究和发展现状 以及研究内容。 第 2 章 智能手机操作系统概述。主要介绍了常用的智能手机操作系统,重 点介绍了 symbian 的特点和界面形式分类。 第 3 章 嵌入式操作系统 symbian。主要研究了 symbian s60 平台的框架结 构,symbian os 的文件管理、通信、活动对象、xml 解析技术、设计模式及 客户/服务器架构。 第4章 智能点餐系统的开发与实现。 简单介绍s60平台的搭建和开发工具, 分别从总体设计和模块设计两个方面实现了一个智能手机点餐系统。 结论部分主要介绍本文的研究成果、结论以及对以后工作的展望。 成都理工大学硕士学位论文 4 第第 2 章章 智能手机操作系统概述智能手机操作系统概述 2.1 智能手机操作系统简介 常见的智能手机操作系统有:symbian、windows mobile、linux 等。这些 操作系统各有优势:linux 开源免费,经济优势明显;windows mobile 是微软 开发,拥有雄厚的技术实力;symbian 由摩托罗拉、西门子、诺基亚等公司支 持,拥有广大的用户群。 2.2 symbian 操作系统 2.2.1 概述1 symbian os(中文译音“塞班系统” )由诺基亚、索尼爱立信、摩托罗拉、 西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发手 机操作系统。它的前身是 epoc(electronic piece of cheese) ,其原意为“使用 电子产品时可以像吃乳酪一样简单” , 这就是它在设计时所坚持的理念。 symbian 操作系统在智能移动终端上拥有强大的应用程序以及通信能力,这都要归功于 它有一个非常健全的核心强大的对象导向系统、企业用标准通信传输协议 以及完美的 sun java 语言。作为专用嵌入式手机操作系统,symbian os 具有一 些独有的特点。symbian 操作系统还提供了灵活的应用界面(ui)框架,使拥 有该操作系统的手机可以采用多种应用界面形式。 2.2.2 symbian 操作系统的特点1 作为专用智能手机操作系统,symbian os 具有以下 6 大特点: (1)操作系统运行在 rom 上。 (2)系统运行在电池驱动的设备上。 (3)完全面向对象。 (4)基于组件的设计。 (5)被设计成确保用户的数据不会丢失。 (6)拥有简单的 ui 系统。 第 2 章 智能手机操作系统概述 5 2.2.3 symbian 操作系统的界面形式分类2 3 按照版本来划分, 常用的有 symbian 5.0、 symbian 6.0、 symbian 7.0。 symbian os 在 1999 年 3 月推出了 symbian5.0 操作系统,它的主要内核集合了网络,无 线文字,电子邮件,名片薄以及个人信息助理,同时还具有支持标准网络页面 的浏览器,配合 java 语言的支持,使得 symbian 可以运行小型的应用程序。但 这个版本采用的机型比较少,与 epoc 的差别不大。 symbian 6.0 则在 5.0 的基础上增加了 gprs、 wap1.2 浏览器以及蓝牙技术 的支持,用户可以运行第三方基于 c+和 j2me 开发的程序。而 symbian 6.1 则 主要增加了对 usb 的支持。symbian 6.0 的主要特点是: 支持语音通话和数据 通信 ,支持 bluetooth 和 wap,配备安全性功能,采用 16bit unicode,支持多 语言显示。 symbian 7.0 则支持多模式和 3g 手机,可以让制造商们面向全世界推出可 以运行于所有网络之上的 symbian os 手机, 而且在不对代码进行重大改动的情 况下就可以重新使用许多目前已有的软件应用。 symbian7.0 包含一些新的通讯、 消息、联网和应用开发技术,并对一些与安全和认证相关的功能进行了改进。 symbian os 7.0 的其他功能包括: 支持灵活的用户界面, 例如 nokia 的 series 60; 支持几种音频或图像格式和许多面向游戏开发人员的 api;全力的加密和认证 管理,基于安全通讯协议及认证的应用安装。 2.3 windows mobile 操作系统 windows mobile 是 microsoft 用于 pocket pc 和 smartphone 的软件平 台。 它将熟悉的 windows 桌面扩展到了个人设备中。 目前生产 windows mobile 手机的最大厂商是:多普达,其它还有东芝、惠普、联想、斯达康、夏新等。 该操作系统功能强大,不仅具备音视频播放,还可以上网,具有聊天、浏览网 页等功能。它的界面类似于台式机的 windows,便于熟悉电脑的人操作。而且 预装软件非常丰富,它内置了 microsoft office 相关软件,可浏览甚至编辑,另 外还内置了音视频播放器以及极为丰富的第三方软件,例如词典、卫星导航软 件等。 但是由于该操作系统本身对资源具有吞噬作用, 因此在能耗上要略逊一筹。 由于配置高、功能强大而致使使用该操作系统的手机耗电量大。另外,该操作 系统对硬件要求较高,也就造成了使用该操作系统的手机体积过大。 成都理工大学硕士学位论文 6 2.4 linux 操作系统 linux 进入到移动终端操作系统时间还不长,但却以其开放源代码的优势 吸引了越来越多的终端厂商和运营商对它的关注,其中包括摩托罗拉和 ntt docomo 等知名厂商。与其它操作系统相比 linux 具有二个其它操作系统无法 比拟的优势。首先,linux 具有开放的源代码,大大降低了成本。其次,既满 足了手机制造商开发自己的 linux 手机操作系统的要求,又吸引了众多软件开 发商对应用软件的开发,丰富了第三方应用。 但是由于门槛高、人力资源相对较少、集成开发环境较差、真正具有很强 开发实力的公司很少等因素使得该操作系统的应用量相对较少。 第 3 章 嵌入式操作系统 symbian 7 第第 3 章章 嵌入式操作系统嵌入式操作系统 symbian 3.1 s60 框架结构 3.1.1 概述4 为了适应不同的用户,symbian 将操作系统的接口分为四类:s60 平台、 s80 平台、s90 平台和 uiq 平台,其中 s60 平台是智能手机中应用最广泛的, 它受到广大厂商和用户的追泵和喜爱。s60 平台基本定位于单手操纵设备,支 持多种分辨率,并且信号强度、电量、软键功能显示的位置都可以调整。它支 持 java 和使用 c+编写的.sis 扩展程序包,是不失小巧体积的多功能手机系 列。 60 系列平台在 symbian os 的 uikon 底层上增加了一个用户界面层 avkon, avkon 提供了一整套的用户界面组件及为 60 系列设备特别设计的应用程序框 架。s60 系列应用程序框架主要由四个类构成,分别为 applicatioan(应用类) 、 document(文档类) 、appui(应用用户界面类) 、view(视图类) ,其中 appui 和 view 负责提供用户界面以及响应用户的操作。1 2 application(应用类)应用程序的主入口点,相当于接口,将应用程序的 相关信息传递回来,这个类继承自 caknapplication 类。 document(文档类)用于持久保存应用数据的上下文,同时还提供了实例 化 appui 的方法。这个类继承自 cakndocument 类。 appui(应用用户界面类)负责处理与应用有关的事件,框架所发出的通 知和命令都由这个类接受响应,例如用户的按键选择,它同时负责 views 之间 的切换。这个类继承自 caknappui 类。 view(视图类)是一个控件,它是数据在屏幕上的表示,这些数据是用户 与应用程序交互的。它由一个或多个 ui 控件来呈现视图,这个类在基于控件 的传统应用程序架构时继承自 ccoecontrol 类,在基于对话框的应用程序架构 时继承自 cakndialog 类,在基于 avkon 视图的架构时继承自 caknview 类。 在 s60 中,应用程序通常分成两部分:引擎(engine)和用户界面(ui) 。这 有助于应用程序的可维护性和灵活性,提高了可操作性。应用程序的引擎,用 于处理表现应用程序数据所需的算法和数据结构。应用程序的用户界面,用于 处理应用程序数据的屏幕显示和应用程序的全部操作方式。应用程序框架负责 创建 application, 而 application 又构造了文档, 然后文档再创建 appui。 appui 创造并拥有 model/engine 和 view(s)。 成都理工大学硕士学位论文 8 s60 系列框架分为三种结构方式,分别为:基于控件的传统应用程序架构, 基于对话框的应用程序架构,基于 avkon 视图的架构。选择哪种应用程序结构 取决于应用程序的复杂程度、视图导航需求、通信需求以及屏幕布局要求,但 无论采用哪种结构,每个应用的顶层应用程序用户界面类总继承自某个单一应 用程序的用户界面基类。 3.1.2 基于控件的传统应用程序架构 基于控件的传统应用程序架构由4层组成。 分别是application类、 document 类、ui 类和若干个容器类。 在这种架构中,appui 拥有视图控件,而这些被称作容器的控件是由 ccoecontrol 类派生而来的, 各种自定义的控件都可在此创建, 程序员可在此发 挥出自己的想象力。appui 还负责处理用户发出的视图切换请求,在各种视图 之间进行切换。1 3 3.1.3 基于对话框的应用程序架构 与基于控件的传统应用程序架构相同的是,基于对话框的应用程序架构同 样分为四层,所不同的是,它拥有的控件是继承自对话框类的,它是通过使用 这些类的内置特性进行数据视图的提交和视图的切换工作。 这种架构的优点就是,相比基于控件的传统应用程序架构,代码的编写两 相对较少,这也就意味着开发工作量较少。另外,对于对话框的编写,其定义 部分是在资源文件中完成的,也就是说,当程序发生改变时,程序员可在资源 文件中修改而无需改动 c+。3 4 3.1.4 基于avkon视图的架构4 与前面的两种架构不同,基于 avkon 视图切换的架构增加了视图类。一个 应用程序可以有多个视图,这些视图可以显示不同的数据。除此之外,用户接 口类 appui 的基类是 caknviewappui,这是因为该类提供了视图的注册、激 活和禁止等操作。在同一时刻,基于视图的架构只有一个视图处于激活状态。 appui 类负责支持视图之间的切换,它负责管理视图提交控件的实例化、显示 和删除操作。 每一个视图都拥有一个容器, 每一个容器都通过两个 uid 来标识, 一个标识拥有该视图的应用程序,另一个标识视图本身。应用程序通过获得视 图的 id 对视图进行操作。 除此之外该架构有两个以上的视图, 每个视图包含一 个控件容器。这种架构支持不同视图之间的切换,用户可以决定在什么时候切 第 3 章 嵌入式操作系统 symbian 9 换哪一个视图,这是手机经常使用到的功能。基于 avkon 视图的架构如图 3-1 所示。 图图 3-1 基于 avkon 视图结构框架 第一层由 apparc 和 cone 组成。apparc 是应用程序的架构,包含应用程 序类 capaapplication 和文档类 capadocument,这两个类是一切应用程序的基 类。cone 为控件环境包含处理用户输入并创建用户图形界面的类。第二层是适 合 symbian os uikon 的组件,包括 application、document 以及 appui 类。第 三层是 avkon 层,除了提供和 uikon 相同的功能外,还专门提供了 s60 平台特 有的功能。第四层是开发者的应用程序层,这些类是由 avkon 层中相应的类中 派生而来,并且含有两个以上的视图,每个视图包含一个控件容器。这种架构 支持不同视图的切换,在手机应用中非常方便。4 7 3.2 symbian os 文件管理 3.2.1 概述 数据的存储方式对于一个成熟的应用程序来说是最基本也是最重要的一项 功能,而对于 symbian os 来说,它是基于客户端/服务器架构的,它提供的多 种服务都被封装在相应的类中,当应用程序使用文件服务时,首先必须建立与 文件服务器的连接并向文件服务器发出请求。 与其他操作系统类似, symbian os 成都理工大学硕士学位论文 10 中提供了完整的文件和目录操作来管理系统中的文件。 流是 symbian os 存储和 读取文件数据的方式。文件存储是流的集合,功能是组织不同的流对不同类别 的数据进行 i/o 操作,数据最终被输出到文件中或从文件中读取。 3.2.2 流.4 在操作系统中,数据库信息查找过程中,用户需要将数据写入文件或从文 件中把数据读取出来,这是一个引用程序最基本的功能,即数据在保存在文件 中之后,还可以在下一次使用时读取出来。在 symbian os 操作系统中,文件的 读取和写入的方式是多种多样的,其中最主要的文件读写方式是流(stream) 。 流是一个抽象的概念,是物质从一处向另一处流动的过程。在程序开发中, 流是指信息从外部输入设备(如键盘和磁盘)向计算机内部(即内存)输入或 从内存向外部输出设备(如显示器和磁盘)输出的过程,这种输入输出过程被 形象地比喻为“流” 。在编写程序时,程序员不必考虑具体的输入输出设备的细 节,而只关心输入输出后的结果,这样做也降低了开发的难度。 symbian 里封装了两个流,分别是 rwritestream 和 rreadstream,其中, rwritestream 是输出流的基类,rreadstream 是输入流的基类。在此基础上又 派生出了文件输出/输入流,即 rfilewritestream 和 rfilereadstream。symbian 提供了流读写的手段,分别叫做外化(externalize)和内化(internalize) 。外化 要使用文件输出流,内化则要使用文件输入流。 1. 文件输出流(rwritestream) rwritestream 是将数据外化为流的基类。在实际应用中必须将流连接到某 种形式的数据接收器。通常使用它的派生类 rfilewritestream 将文件中的数据 外化(externalize)为流。 2. 外化(externalize) 将数据放到输出流并写入文件中的过程就叫做外化(externalize) ,外化 (externalize)主要有三种方式:使用“”流输出运算符;实现 externalizel() 函数;调用相关的写函数。 3. 输入流(rreadstream) 与输出流正好相反,输入流(rreadstream)是将文件中的数据读取到输入 流中供程序使用, 输入流的基类是 rreadstream, 它也有很多派生类, 其中 rfile readstream 就是与读文件有关的派生类。 创建文件输入流的过程和输出流类似。 4. 内化(internalize) 内化和外化正好相反,内化是将数据从文件中读取到输入流中供程序显示 和处理,内化通常使用 internalizel()函数10 11。 第 3 章 嵌入式操作系统 symbian 11 3.2.3 文件存储5 存储是流的集合,其功能就是组织不同的流对不同类别的数据进行 i/o 操 作,不同类型的存储都是为了满足各种不同的需求。symbian os 提供了不同类 型的存储。如表 3-1 所示。 表表 3-1 存储的类型 名称 是否可实例化 说明 cstreamstrore 不可以 所有存储的抽象基类 cpersistentstore 不可以 永久存储的抽象基类 cfilestroe 不可以 基于文件的永久存储的抽象基类 cdirectfilestore 可以 派生于 cfilestore 的可实例化类 cpermanentfilestore 可以 派生于 cfilestore,用于数据库存储 cembededstore 可以 派生于 cpersistentstore,用于嵌套 cbufstore 可以 派生于 cstreanmstore,用于非永久性存储 csecurestore 可以 派生于 cstreanmstore,用于加密存储 表 3-1 说明,前面的 3 个基类是抽象类,用于提供存储的基本操作。后面 5 个存储类才可以被实例化。 symbian os 提供了两种文件存储类型, 分别是直接文件存储和永久文件存 储。cdirectfilestore 是直接文件存储类。将数据写入后,cdirectfilestore 就不 允许用户修改数据了。cpermentfilestore 是永久文件存储类。允许应用程序对 数据进行如添加、删除、插入等修改操作,而不会替换整个文件。13 15 3.2.4 流字典 读取数据时必须要设定一个标准也就是说必须要知道要读的那个流是哪 个。因此每个数据流必须有自己的流 id 号,这样数据读写才不会出错。那么在 写入数据时就最好找一个地方把所有流的流 id 号保存起来, 方便系统查阅, 因 此在 symbian os 中提供了流字典进行统一管理流 id。 流字典也是流,它是用来管理其他流的一个辅助类。它对所有的流进行管 理,并为每一个流的 id 和流 uid(流的 uid 由用户定义)之间建立映射,通 过这个映射,可以从流 uid 中获得流 id,进行流的读取操作。因此流字典也被 称作根流,它也应该有一个 id,称作根流的 id。如何查找流字典的 id?答案 是使用存储的根 id 保存流字典,这种根 id 总是可以用于任何给定的存储。5 综上,存储将返回它的根流 id,从根流得到流字典 id,流字典允许根据给 定的 uid 查找单个流 id。 成都理工大学硕士学位论文 12 3.3 symbian os 通信 3.3.1 概述 通信是 s60 手机的核心,s60 设备提供的通信方式远不止拨打电话而已。 在 s60 平台下,用户可以享受多样化的服务,例如浏览网页,网络聊天,下载 资料,通过蓝牙功能在手机之间进行数据传输、玩游戏,近距离的传送文档至 打印机,了解最新的新闻资讯,或是连接到银行,安全的进行操作。上述的每 一个操作都涉及 s60 手机和其他设备之间建立某种连接,这些设备可能是近距 离的一部手机,也可能是世界另一端的网络服务器。s60 提供了对一系列通信 技术的支持,支持与不同类型的设备、在不同的距离、为不同的目的进行通信。 3.3.2 串行通信45 串行通信是两台近距离设备之间的传输数据的低级别点对点通信技术。 s60 支持通过红外线或蓝牙进行串行通信。 s60 实现的中心是串行通信服务器 (serial communication server, 又称 comms 服务器或 c32) 。 它使用熟知的 symbian os 客户端/服务器框架,提供对串行硬件的访问,并且是通用(即为红外线和蓝牙 串行通信使用相同的 api。可以通过添加插件支持其他硬件)和共享的(即多 个客户端线程可以安全地并发使用同一个串行端口) 。 s60 中所有的串行通信都使用下列基本步骤实现: 装载串行设备驱动器。 启动 comms 服务器。 连接到 comms 服务器。 装载一个 comms 模块(又称 csy)comms 服务器的插件,它将决定 使用哪种类型的串行端口(例如红外线或蓝牙) 。 打开一个串行端口。 配置此串行端口。 从端口读写数据。 最后关闭端口。 3.3.3 http45 串行通信是 s60 的一些基本的通信功能,超文本传输协议(hypertext transfer protocol,http)是在此基础上建立的功能更强的技术,它为开发人员 提供了更加完善的高层次 api 集。它是一个应用层协议,用于通过因特网传输 第 3 章 嵌入式操作系统 symbian 13 信息。http 服务器能够容纳多种类型的数据,包括 html 和 xml 页面、多 媒体文件或图像。客户通过打开与服务器的连接(通常经过 tcp 端口 80 来连 接) ,可以读取数据和发送请求。统一资源标识符(uniform resource identifier, uri)定义服务器上的文件。uri 包括服务器名、服务器上的路径以及文件名。 为了正确使用客户 api,需要理解通过 http 执行事务的主要思想:会话、事 务、头部、数据提供和过滤器。 1. 会话 会话描述了共享同一个连接的一个或多个事务。会话定义了一系列的设置 和过滤器,它们可以用于所有事务。特殊情况下可以并发拥有多个活动的会话。 在 http 客户 api 中,rhttpsession 类代表会话。这个类具有打开、关闭会话 和创建事务的函数。 2. 事务 看待事物的一种简单方式是,将它当作 http 客户和 http 原始服务器之 间进行的单一消息交换从客户端发出的请求和从服务器端发出的响应(在 实际应用中,为事务建立过滤器集可能会使这种交换复杂化。 )http 定义了许 多方法(比如 get) ,用来请求指定的文档,还定义了 head,用来检索文档 相关的信息。rhttptransaction 类代表 http 事务。 3. 头部 每个请求和响应消息都有一个头部,其中包含一个或多个字段。这些头部 的作用就是使客户和服务器之间能够传输数据。这些数据与网络连接有关,或 者与服务器和客户的一些属性有关。 4. 数据提供器 数据提供器对象表示消息的主体、http 客户 api 定义了混合类 mhttpdatasupplier,客户应该实现这个类,用于从框架获取响应消息数据, 并且为框架提供请求的消息主体。 类 rhttprequest 和 rhttpresponse 定义为 表 示 整 个 消 息 。 分 别 使 用rhttptransaction:request() 和 rhttptransaction:response()函数,从事务读取请求或响应。 5. 过滤器 在会话级提供过滤器,当他们作用于服务器或从服务器读取数据时,可以 用于修改事务。一般情况下,他们可以导致头部的添加或删除,事务的终止或 取消,或者消息主体的传输。从 mhttpfilter 派生后,可以编写自己的过滤器, 过滤器使用 rhttpfiltercollection:addfilterl()进行注册。19 基于 http 协议的客户/服务器模式的信息交换过程, 分为四步: 建立连接、 发送请求信息、发送响应信息、关闭连接。任何服务器除了包括 html 文件以 外,还有一个 http 驻留程序,用于响应用户请求。如果浏览器是 http 客户, 成都理工大学硕士学位论文 14 若向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接 时, 浏览器就向服务器发送了 http 请求, 此请求被送往由 ip 地址指定的 url。 驻留程序接收到请求,在进行必要的操作后回送所要求的文件。在这一过程中, 在网络上发送和接收的数据已经被分成一个或多个数据包(packet) ,最后再将 数据回传至客户端。 一次 http 操作称为一个事务,其工作过程可分为四步: 1. 客户端与服务器之间建立连接。只要单击某个链接,http 的工作就开 始了。 2. 建立连接后,客户端发送一个请求给服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论