(计算机应用技术专业论文)qtopia下calendar架构分析与优化.pdf_第1页
(计算机应用技术专业论文)qtopia下calendar架构分析与优化.pdf_第2页
(计算机应用技术专业论文)qtopia下calendar架构分析与优化.pdf_第3页
(计算机应用技术专业论文)qtopia下calendar架构分析与优化.pdf_第4页
(计算机应用技术专业论文)qtopia下calendar架构分析与优化.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)qtopia下calendar架构分析与优化.pdf.pdf 免费下载

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

文档简介

摘要 q t o p i a 是由挪威的t r o l l t e c h 公司推出的基于q t 的智能手机开发平台。 q t o p i a 是一种可定制的开发环境和用户界面,从本质上说,q t o p i a 之于l i n u x 犹如u i q 和s e r i e s6 0 之于s y m b i a n 。q t o p i a 的一些主要特色包括低成本、灵 活性以及可定制性,它基于跨平台的c + + 开发工具一- - q t e m b e d d e d 之上,它健 壮且稳定,并可以配置为多种内存模板,因此,国内越来越多的手机开发商采 用此平台进行手机软件的开发。 基于q t 的经验,o t o p i a 向客户提供全部源代码,让客户可以创建与现有 程序紧密结合的定制程序、定制用户界面和程序发布工具,并能在他们需要使 用的处理器上编译,并且为手机开发商提供一定程度的独立性以及创新和控制。 厂商可以使用q t o p i a 实现对品牌标识和用户界面设计的全面控制,而且可以在 许多设备上运行相同的源代码,如手机、p d a 和其它消费设备。 但在实际手机开发过程中,q t o p i a 各模块都需要根据实际开发中的手机硬 件平台和用户的需求来重新设计优化,以达到资源利用及运行速度的最高效, 所以对q t o p i a 各模块进行架构分析和优化在实际手机开发过程就显的相当重 要了。 c a l e n d a r 即日历,是q t o p i a 中的一个重要模块,从目前作者收集的资料来 看,在国内很少有使用q t o p i a 成功开发的智能手机,并且其技术资料完全保密, 而国外的公司就更是守口如瓶了,因此,对q t o p i a 中的日历模块的架构进行分 析并提出优化思路和算法有极大的实用价值。 本文的主要内容及研究贡献体现在以下几点: 1 、全面剖析了c a l e n d a r 的通信机制,架构,数据处理方式,分析了其运行效 率低下,速度慢的原因。 2 、提出使用s q l i t e 替换x m l 的数据存储方式的思路,并给出了完整的解决 方案,给出了关键算法。 3 、给出了数据装载及保存的优化思路,并给出了关键算法。 4 、给出了u i 部分重绘的关键算法 关键字:o t o p i a ;s q l i t e :c a l e n d a r :通信机制;数据处理;优化;架构 a b s t r a c t t h eq t o p i ap l a t f o r mi sm a d eb yt r o l l t e c h ,w h i c hb a s e do nq t i tc a nb e c u s t o m e de n v i r o n m e n t ,a n di th a sg u i t h es a m ec a s eb e t w e e nq t o p i ab a s e do n l i n u xa n du i qa n ds e r i e s6 0b a s e do ns y m b i a n q t o p i ai sl o wp r i c e ,w h i c hi sb a s e d q t e m b e d d e d i nc o n c l u s i o n ,m o r ea n dm o r ec o m p a n i e su s et h i sp l a t f o r mt od e v e l o p m o b i lp h o n es o f t w a r e t r o l l t e c hg i v ea l lt h es o u r c ec o d eo fq t o p i a ,w h i c hc a nb ec u s t o m e db yt h e s e c o m p a n i e s 。t h e s ec o m p a n i e sc a nd e v e l o pc u s t o m e df u n c t i o nb a s eo nt h ep l a t f o r m i nf a c t ,d e v e l o p i n gm o b i lp h o n es o f t w a r ei sad i f f i c u l tp r o b l e m i tm u s t r e d e s i g na n dr e b u i l dt h ef r a m eo fq t o p i a ,i n c l u d i n ga l lt h ep a r t so fq t o p i a ,t h e r e f o r e , a n a l y s et h ef l a m eo fq t o p i ai sav e r yi m p o r t a n tj o bf o rr e s e a r c h e r s 。 c a l e n d a ri sa ni n p o r t a n tp a r to fq t o p i a ,w h i c hc a ng i v eau s e rah i n tt od o s o m e t h i n g h o w e v e r , ic a n tf i n da n yp u b l i cr e s o u r c ea b o u tq t o p i ai no u rc o u n t r y , w h i c hk e e pi ti nt h ed a r k ,n o ta l o n ea b r o a d i naw o r d ,i ti sg r e a tu s e f u lt oa l a n y s et h e f l a m eo fc a l e n d a r t h ec o n t r i b u t i o n so ft h i sp a p e ra r ea sf o l l o w s : ( 1 ) i n t r o d u c e sq t o p i aa n dc a l e n d a ri nd e t a i l ; ( 2 ) a n a l y s et h eq t o p i ac o m m u n i c a t i o nm e c h a n i c s m ; ( 3 ) a n a l y s et h ef r a m ea n dd a t a b a s eo fc a l e n d a ri nd e t a i l ,a n dg i v e st h er e a s o nf o r i t sl o ws p e e da n d b a de f f i e n c y , s u g g e s t su s i n gs q l i t et or e p l a c ex m l ,i na d d i t i o n , i n t r o d u c es q l i t e ,w h i c hr e f e r st ot h es y n t a x ,g o o da n db a dv i r t u e ,e r e ( 4 ) i nt h ee n do ft h i sp a p e r ,af e a s i b l es c h e m ea n dr e l e v a n ta l g o r i t h m si sa p p e a r e d f o ro p t i m i z e dc a l e n d a r k e yw o r d s :q t o p i a ;s q l i t e ;c a l e n d a r ;c o m m u n i c a t i o nm e c h a n i c s m ;d a t ap r o c e s s ; o p t i m i z e ;f r a m e i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得或其他教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表 示谢意。 学位论文作者签名:签字日期:年月 日 学位论文版权使用授权书 本学位论文作者完全了解江西师范大学研究生院有关保留、使用 学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印 件和磁盘,允许论文被查阅和借阅。本人授权江西师范大学研究生院 可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 签字日期:年月 日 导师签名: 签字日期:年月 日 q t o p i a 下c a l e n d a r 架构分析与优化 第一章前言 1 1 课题的研究背景 目前市场上使用得较多的智能手机操作系统( 0 s ) 包括s y m b i a n 、p a l m 、w i n d o w s m o b il e 和l i n u x 等0 s 。根据市场研究公司g a r t n e r 的统计,在2 0 0 5 年一季度全 球市场上交付的智能手机中,s y m b i a n 、p a l m 和w i n d o w sm o b i l e ( 不含p o c k e tp c p h o n e ) 等操作系统的市场占有率分别为7 6 2 、4 6 和4 5 ,l i n u x 开放源操作 系统的占有率则达到了1 3 7 ,而这一数字在2 0 0 4 年还不足1 0 。 在这一系列数字的背后,是开源的l i n u x 操作系统从根本上创造了一种日渐 受到欢迎的平台。作为基于真正合作关系的商业模型的基础平台,l i n u x 为所有 的企业提供了平等机会。使用l i n u x ,移动设备和消费电子制造商可以生产尖端 的、富有特色的以及品牌独特的产品。并且,l i n u x 平台的支付价格只是专有平 台的冰山一角,这对于如今竞争激烈的市场是非常重要的。 伴随着将l i n u x 的灵活性和低成本的优势扩大到移动领域,奇趣科技 ( t r o l l t e c h ) 基于l i n u x 的q t o p i a 软件平台已经获得了越来越多公司的采用。迄 今为止,已有6 0 多家厂商正在设计、制造和交付运行基于q t o p i a 和奇趣科技针 对嵌入式l i n u x 的相关软件的便携设备。 奇趣科技向客户提供源代码,让客户能完全控制自己的开发工作,添加应用 程序、界面和端口,并且还能让手机开发商更快地进行调试除错,实现自己的目 标。 因此,对q t o p i a 智能手机开发平台的深入分析,使得手机开发商能够迅速 的在源代码中添加应用程序就是一个相当紧急而又迫切的研究课题。 1 2 课题的研究现状与前景 1 2 1 课题的研究现状 从目前作者收集的资料来看,能成功开发l i n u x 智能手机产品的公司在国内 很少,技术资料完全保密,而国外的公司就更是守口如瓶了,所以并未看到有像本 文一样细致而深入的研究q t o p i a 下c a l e n d a r 的公开论文,更不要说对其的优化。 网上的有关q t o p i a 的资料倒是挺多,但是却没有看到有关c a l e n d a r 架构分析和 优化的资料。 1 2 2 课题的研究前景 由于l i n u x 智能手机的低成本,现在大量的手机开发商都正逐步转向q t o p i a 1 硕十学位论文 平台,进行手机软件的研制和开发,所以此课题的研究对推动国内手机开发商尽 快采用q t o p i a 平台开发更多更好的手机软件,降低手机开发的成本,有着深远 的意义。 1 3 论文的内容安排 第1 章:引言。也就是本章,讲述了本文研究的背景。 第2 章:介绍了q t o p i a 及c a l e n d a r 相关知识。 第3 章:分析了c a l e n d a r 的通信机制,包括对象问通信和进程间通信机制。 第4 章:全面剖析了c a l e n d a r 的架构,包括用户接口和数据接口两个方面。 第5 章:分析了c a l e n d a r 的数据处理方式,找到其运行效率低下,速度慢的 原因,并简要的介绍了s q l i t e 的基本知识,提出使用s o l i t e 替换x m l 的数据存 储方式的思路。 第6 章:给出了c a l e n d a r 优化的关键算法,包括数据处理的优化和u i 的优 化。 第7 章:结束语。 2 o t o p i a 下c a l e n d a r 架构分析与优化 第二章q t o p i a 及c a ie n d ar 简介 2 1 o t o pia 简介 q t o p i a 是t r o l l e t e c h 公司为采用嵌入式l i n u x 操作系统的电子设备开发的应 用平台,t r o l l t e c h 公司提供手机版q t o p i a 和p d a 版q t o p i a 消费电子产品平台。 q t o p i a 手机版和q t o p i ap d a 版是针对移动电话和p d a 的解决方案,而q t o p i a 消费电子产品平台( q t o p i ac e p ) 则是一套高层次开发平台,使得制造商能够在手 写笔和键盘驱动的设备上创建自定义的环境。 q t o p i a 是嵌入式l i n u x 设备的平台,它还提供给终端用户一套核心应用程序, 如p i m ( 个人信息管理) 、地址本、日历和媒体播放器等应用程序。 q t o p i a 提供给开发者一个面向对象的a p i 来给嵌入式设备编写应用程序。这 些a p i 与q t x 1 1 下的a p i 是一致的,因此q t 的程序可以在q t o p i a 的平台上运 行。q t o p i a 平台包括运行的嵌入设备和p c 机上的软件,运行在p c 机上软件称为 桌面版q t o p i a 。其软件层次如下所示,更多信息见参考文献【1 】【2 】【3 】【4 1 。 q t o p i a q t e m b e d d e d f r a m eb u f f e r l i n u xo s 图2 1q t o p i a 软件层次图 ( 1 ) q t o p i ap d a q t o p i ap d a 版是一个强大的平台,专用于基于l i n u x 操作系统的p d a 。它 具有可定制的用户界面、支持更大的屏幕、以及横向纵向布局。其组件包括窗口 操作界面、游戏和多媒体、同步框架,p i m 应用程序、i n t e m e t 应用程序、开发环 境、输入法、j a v a 集成、本地化支持、个性化选项等。 ( 2 ) q t o p i ap h o n e 3 硕+ 学位论文 q t o p i a 手机版是t r o l l t e c h 公司专门针对移动电话市场推出的q t o p i a 手机版 和嵌入式l i n u x 的组合,它提供所有基本的q t o p i a 应用程序以及专用于手机的用 户界面,包含四部分:平台、应用程序、开发环境及同步框架。此外,它还支持 两种交互方式:键盘和触控屏。手机版的主要内容如下: ( 1 ) 手机用户界面 用户界面面向移动电话用户设计,屏幕最终用户可以对其进行个性化设置, 制造商和网络运营商也可以对其进行自定义。 ( 2 ) 应用程序 包括p i m 工作辅助,电子邮件,游戏,支持m p 3 和m p e g 格式的媒体播放 器。 ( 3 ) 平台 占用内存较少。 ( 4 ) 同步 用户可以将手机与桌面版的跨平台桌面p i m 套件或o u t l 0 0 k 同步。如: 通信录、日历事件、待办事宜、多媒体文件及其它格式的文档。 ( 5 ) 开发环境 t r o l l t e c h 为开发人员提供了一套工具,使其能自定义和扩展功能。 2 2o t o pia 应用体系结构及调用流程 2 2 1o t o pia 应用体系结构 图2 - 2q t o p i a 应用体系结构图 4 q t o d a 应用体系结构可以化为5 个部分: s e r v e f f l a u n c h e r :是控制窗口系统、进程间通信、装载所有应用和其它 核心任务的主进程。 b u i l l i n ;m u l t i p l e x i n g 支持,用于g p r s ,被用来支持e x t e r n a ls e r i a l c o n n e c t o r 。 c l i e n ta p p l i c a t i o n :包括所有的用户应用。 f i l e :包括配置文件、系统文件、应用说明文件。 p m g i n :分为应用p l u g i n 和系统p l u g i n 两类。前者为应朋提供刚加功能 ( 例如,音频文件的编解码捅件) ,为系统调用;后者为一些系统特性提供简清的 扩展方法( 例如,电池管理、背光管理等) ,为系统调用。 本章重点关注的s e r v e r a p p l a u n c h e r 进程对用户应用、插件的管理,以及应用 和响府插件间的交互,更多信息见参考文献p 】。 22 2o t o p ia 现有l i b 库及调用关系表 经过对q t o p i a 源代码的分析,可以得出其基本结构库及调用关系如下:( 其 中有些由于本人对库结构并不是太熟悉,所以还不是很清楚,需要进一步研究) 厘圈霾霾熏 l i b 3 9 p音频及视作为库函l j b b r i g d e 频播放等数支持 l i b a m r 音频及视暂无无 频播放等 1 l b a v c o d e c 音频及视作为库函 l i b t s 频播放等数支持l i b m p e 9 4 s l i h a r a r 1 i b a y f o r m a t音频及视 暂无无 频播放等 1i b b r i d g e 音频及视作为库函无 频播放等数支持 硕士学位论文 l i b e m a i l l i bw e b m a i lw e b m a i ll i b t s 邮件 l i b q t o p i a p h o n e l i b q t o p i a 2 l i b q t o p i a l i b q p e l i b q t e l i b g s mg s m 协作为库函 l i b t s 议栈 数支持 l i b h w 汉王手写 q p e 无 输入 l i b j p e g s a s k e n图片浏览作为库函 l i b b r i g d e 及编辑等数支持 1i b m e d i a p l a y e 音频及视作为库函 l i b t s r 频播放等数支持, l i b q t o p i a m l e n g i n e p h o n e l i b q t o p i a 2 l i b q t o p i a l i b q t e 1 i b q p e 1i b m p e 9 4 s a s k e 音频及视作为库函l i b b r i g d e n 频播放等数支持 l i b q p e p i m l通讯录、作为库函 l i b t s 日程等数支持,l i b q p e pi m e n m a i l ,q p el i b q t e ,w e b m a i l 1i b q p e p i m 通讯录、作为库函 l i b t s 日程等数支持, l i b s q li t e e n m a i l ,q p e 3 ,w e b m a i l l i b q t o p i a p h o n e l i b q t o p i a 2 6 q t o p i a 下c a l e n d a r 架构分析与优化 l i b q t o p i a l i b q p e l i b q t e l i b q p e 基础库所有应用 l i b t s 模块 l i b q t e l i b q t e基础库所有应用无 模块 li b q t o p i a 2 基础库所有应用 l i b t s 模块l i b q t o p i a l i b q t e 1i b q t o p i a 基础库所有应用 l i b t s 模块 l i b q p e l i b q t e l i b q t o p i a p h o n 基础库所有应用 l i b t s e 模块l i b q t e 1i b q t o p i a s m il 不详不详 l i b t s 引用库不详,确认 l i b m e d i a p无引用后删除 l a y e r l i b q t e li b q t o p i a m a il 企业邮件e n m a i l ,m l l i b t s e n g i n e l i b q t o p i a p h o n e l i b q t o pi a l i b q t o p i a 2 l i b q t e l i b q p e li b q t o p i a w a p w a p 协议 e n m a i l ,w e l i b t s 引用库不详,确认 等 b m a i l l i b q t o p i a无引用后删除 p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e l i b q p e 7 硕。学位论文 【| i b s q l j t 0 3通玳录、作为j t # 丽无 s b o o 嗵r r 求a d d r c s s b ( l i b q t o p i a l i b q t o p i a l i b q t o p i a l i b q t o p i a l i b q t e l , i b q p e l i b c a c u l a t o f 计算器 c a 】c u l a t o rl i b t s l i b q t o p i a l i b q t o p l a l i b q t o p i a l i b a t e 【i b q p e 1 i b c a x n e r a 照相机 c a m c r al 1 b t s l i b 3 9 p l i b j p e g s a l l b m e d i a p l l b q t o p i a l l b q t o p i a l 1 b q t o p 】a q t o pi a 下c a l e n d a r 架构分析与优化 l i b q t e l i b q p e li b d a t e b o o k 日程管理 d m e b o o kl i b t s l i b q t o p i a p i m l i b q t o p i a p i m l l i b q t o p i a p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e l i b q p e 1ib e x c h a n g e 单位换算 e x c h a n g e l i b t s l i b q t o p i a p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e l i b q p e 1i b m e d i a r e c o r录音机m e d i a r e c ol i b t s d e rr d e r l i b m e d i a p l a y e r l i b a n w n b s a s k e n l i b q t o p i a p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e l i b q p e li b m u s i c 音乐播放 m u s i cl i b t s 9 硕士学位论文 器 l i b m e d i a p l a y e r l i b q t o p i a p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e l i b q p e li b o u t w l a n p r 外屏w l a no u t w l a n p l i b t s o f i l e 设置 r o f i l e l i b q t o p i a p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e l i b q p e li b p h o t o e d it 图片编辑 p h o t o e d i tl i b t s l i b q t o p i a p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e l i b q p e l i b q t m a i l短信 q t r n a i l l i b t s l i b q t o p i a s m i l l i b q t o p i a w a p l i b q t o p i a m a i l l i b q t o p i a p i m l l i b q t o p i a 1 0 q t o pi a 下c a l e n d a r 架构分析与优化 p i m l i b q t o p i a p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e l i b q p e li b s e t o u t s c r外屏设置s e t o u t s e r el i b t s e e ne :n l i b q t o p i a p i m l l i b q t o p i a p i m l i b q t o p i a p h o n e l i b q t o p i a l i b q t o pi a 2 l i b q t e l i b q p e 1i b s e t - w if i 、i f i 设置s e t w i f il i b t s l i b q t o p i a p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e l i b q p e li b s y s i n f o系统设置 s y s i n f o l i b t s l i b q t o p i a p h o n e l i b q t o p i a l i b q t o p i a 2 l i b q t e 1 1 硕士学忙论文 l i b q p e li b t e x t e d ll 文本编辑 t e x t e d i tl i h t s l i b q t o p lr l l b q t o p l a l i b q t o p l a l ,i b o t e l i b q p e 1 b y l d e o s 视频播放 v i d e o sl i b t s l i b m c d l a d l i b q t o p i a l l b q t o p l a l i b q t c p l a l l b a t e l i b q p e 1 l b w o r l d t l m e世界时钟w o r l d t i m e l i b t s l i b q t o p i a i 。 b q t o p i a l i b q t o p i a l i b q t e _ r t i l ln 1 r o ,t ,c j ;小l f 川 l u g i n l i b a a v无引用后删除 l i b 口t e 1 ,i h f f m p e g p l u g 音频,视 不详l i b t s 频等 l i b a v c o d e l 1 b a y f o r m l l b o t e l i b w a v p l u g i n 音频,视 h ;详h i b t s 频等l i h g s m l i b q t e li b w a v r e c o r d 音频,视不详l i b t s 频,录音 1 5b g s m l 1 hl e r 】 1 。ilj 。n 号 l i b q t e 无引用后删除 【m l a n i p 等有线不详 h i b t s 引用库不详,确认 网络相 l i b q t e无引用后删除 关? 罔23q t o p i a 现有l i b 库及调用关系表 23c a le n d a r 简介 下面介绍的基本功能和高级功能。 231c a i e n d a r 基本功能介绍 c a l e n d a r 日p 日历,是o t o p i a 中的重要模块。首先简单介绍下c a l e n d a r 的基 本功能,分为两部分:一是c a e n d a r 数据的存取,二是c a l e n d a r 数据的显示。 c a l e n d a r 数据的存取主要包括新建日程,新建任务,查找日程,查找任务, 修改日程,修改任务,删除日程,删除任务,保存日程,保存任务。 c a l e n d a r 数据的显不则包括日视图,周视图,月视图,年视图。 1 ) 新建日程 用于新建不同类型的日程( 包括会议、约会、提醒、纪念日及其它日程) , 然后设置日程的开始日期,开始时间及日程的提醒日期,提醒时间,并且还可以 选择此日程的提醒是否重复等等,根据所指定的提醒l i 期时间对用广做相应的提 示,提醒用户日程将要发生。 2 ) 新建任务 任务和日程小同,任务一般指项长期的计划,比如:造座桥粱,修一条 高速公路,这类事件做为任务比较合适,但作为日程就显得不太合适了。日程则 硕士学位论文 偏重于指短期的,即时发生的事件。比如每天早上七点起床,每周末给家里打电 话,这样的事情就只适合作为日程来处理了。当然,具体的设置还是看具体事情 的性质。 任务不可以重复,并且可以设置完成进度,其它功能与日程类似。 3 ) 查找日程 根据用户的所指的条件,找到相应的日程,若未查找到任何日程,则要给用 户相应提示。比如:在指定的日期段内查找,按日程的类型查找,按日程的标题 查找,按是否重复查找日程。 4 ) 查找任务 根据用户的所指的条件,找到相应的任务,若未查找到任何任务,则要给用 户相应提示。比如:在指定的日期段内查找,按日程的类型查找,按任务的标题 查找,按是否重复查找任务。 5 ) 删除日程 根据用户的所指的条件,删除相应的日程,若未查找到任何要删除的日程, 则要给用户相应提示。比如:在指定的日期段内删除,按日程的类型删除,按日 程的标题删除,按是否重复删除日程。 6 ) 册l j 除任务 根据用户的所指的条件,删除相应的任务,若未查找到任何要删除的任务, 则要给用户相应提示。比如:在指定的日期段内删除,按日程的类型删除,按任 务的标题删除,按是否重复查找删除。 7 ) 修改日程 选择要修改的日程,可修改日程的标题,类型,开始时间,提醒时间等新建 日程的由用户所输入的任何一项有关日程的内容,修改完后,必须要执行保存才 能生效。 8 ) 修改任务 选择所要修改的任务,可修改日程的标题,类型,开始时间,提醒时间等新 建任务的由用户所输入的任何一项有关任务的内容,修改完后,必须要保存才能 生效。 9 1 保存日程 将新建或修改后的日程保存,只有此操作才使新建或修改生效。 1 0 ) 保存任务 将新建或修改后的任务保存,只有此操作才使新建或修改生效。 1 1 ) 日视图 默认显示当天的日程和任务的主题,地点及发生时间( 若无发生时间,可用 闹铃时间代替) 。可以通过点击相应的功能菜单来显示上一日或者下一日的日程 1 4 q t o p i a 下c a l e n d a r 架构分析与优化 和任务。 1 2 ) 周视图 默认用相应的图标来显示当前日期所在星期的所有的日程和任务。可以通过 点击相应的功能菜单来显示上一周或者下一周的日程和任务,点击对应的图标转 到相应的详情。系统初启时默认进入此视图。 1 3 ) 月视图 月视图包括两类视图,一类是阳历月视图,另一类是阴历月视图,用户可以 在这两类视图之间切换。默认用相应的图标来显示当月所有的日程和任务。可以 通过点击相应的功能菜单来显示上一月或者下一月的日程和任务,点击对应的日 期转到相应的日视图。 1 4 ) 年视图 默认用相应的图标来显示当年所有的日程和任务。可以通过点击相应的功能 菜单来显示上一年或者下一年的日程和任务,点击对应的日期转到相应的日视 图。 2 3 2c aie n d a r 高级功能介绍 此处介绍c a l e n d a r 所支持的高级功能,这些功能是t r o l l t e c h 公司提供的 q t o p i a 中不具备的,是在架构分析优化后按实际用户需求添加进去的高级功能。 1 ) 经蓝牙发送日程 选择一日程条目,将此日程所有详细信息( 包括日程标题,类型,开始时间, 提醒时间等所有信息) 通过蓝牙发送到对应设备上。 2 ) 经短信发送日程 选择一日程条目,将此日程所有详细信息( 包括日程标题,类型,开始时间, 提醒时间等所有信息) 通过短信发送到对应设备上。 3 ) 经彩信发送日程 选择一日程条目,将此日程所有详细信息( 包括日程标题,类型,开始时间, 提醒时间等所有信息) 通过彩信发送到对应设备上。 4 ) 经企业邮箱发送日程 选择一日程条目,将此日程所有详细信息( 包括日程标题,类型,开始时间, 提醒时间等所有信息) 通过企业邮箱发送到邮件服务器上。 5 ) 同步日程 - 选择一任务条目,将此任务所有详细信息( 包括任务标题,类型,开始时间, 提醒时间等所有信息) 与p c 机上的日程同步,即手机中的日程与p c 机上保持 1 5 硕士学位论文 一致。 6 ) 经蓝牙发送任务 选择一任务条目,将此任务所有详细信息( 包括任务标题,类型,开始时间, 提醒时间等所有信息) 通过蓝牙发送到对应设备上。 7 ) 经短信发送任务 选择一任务条目,将此任务所有详细信息( 包括任务标题,类型,开始时间, 提醒时间等所有信息) 通过短信发送到对应设备上。 8 ) 经彩信发送任务 选择一任务条目,将此任务所有详细信息( 包括任务标题,类型,开始时间, 提醒时间等所有信息) 通过彩信发送到对应设备上。 9 ) 经企业邮箱发送任务 选择一任务条目,将此任务所有详细信息( 包括任务标题,类型,开始时间, 提醒时间等所有信息) 通过企业邮箱发送到邮件服务器上。 1 0 ) 同步任务 选择一任务条目,将此任务所有详细信息( 包括任务标题,类型,开始时间, 提醒时间等所有信息) 与p c 机上的任务同步,即手机中的任务与p c 机上保持 一致。 c a l e n d a r 通过这几种发送方式来操作日程或任务条目,可以将日程或任务转 发到手机,p c 机,邮件服务器上。 1 6 q t o pi a 下c a l e n d a r 架构分析与优化 第三章c a ie n d a r 通信机制分析 3 1c ale n d a r 中对象之间使用的通信机制 3 1 1sig n ai sio tm e c h a nis m 概述 信号和槽机制是q t 的核心机制,要精通q t 编程就必须对信号和槽有所了 解。信号和槽是一种高级接口,应用于对象之间的通信,它是q t 的核心特性, 也是q t 区别于其它工具包的重要地方。信号和槽是q t 自行定义的一种通信机 制,它独立于标准的c c + + 语言,因此要正确的处理信号和槽,必须借助一个称 为m o c ( m e t a o b j e c tc o m p i l e r ) 的q t 工具,该工具是一个c + + 预处理程序,它 为高层次的事件处理自动生成所需要的附加代码。 所有从q o b j e c t 或其子类( 例如q w i d g e t ) 派生的类都能够包含信号和槽。当 对象改变其状态时,信号就由该对象发射( e m i t ) 出去,这就是对象所要做的全部 事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对 象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对象成 员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具 体的通信机制。 1 7 硕士学位论文 图3 - 1 一个关于一些信号和槽连接的摘要图 在q t 中我们有一种可以替代回调的技术,我们使用信号和槽。当一个特定 事件发生的时候,一个信号被发射。q t 的窗口部件有很多预定义的信号,但是 我们总是可以通过继承来加入我们自己的信号。槽就是一个可以被调用处理特定 信号的函数。q t 的窗口部件又有很多预定义的槽,但是通常的习惯是你可以加 入自己的槽,这样你就可以处理你所感兴趣的信号。 3 1 2 信号( sig n ai ) 当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发 射。只有定义过这个信号的类及其派生类能够发射这个信号。当一个信号被发射 时,与其相关联的槽将被立刻执行,就象一个正常的函数调用一样。信号槽机 制完全独立于任何g u i 事件循环。只有当所有的槽返回以后发射函数( e m i t ) 才 返回。如果存在多个槽与某个信号相关联,那么,当这个信号被发射时,这些 槽将会一个接一个地执行,但是它们执行的顺序将会是随机的、不确定的,我们 q t o p i a 下c a l e n d a r 架构分析与优化 不能人为地指定哪个先执行、哪个后执行。 信号的声明是在头文件中进行的,q t 的s i g n a l s 关键字指出进入了信号声明 图3 - 2 定义信号的例子 在上面的定义中,s i g n a l s 是q t 的关键字,而非c c + + 的关键字。接下来的 一行v o i dm y s i g n a l ( ) 定义了信号m y s i g n a l ,这个信号没有携带参数;接下来的 一行v o i dm y s i g n a l ( i n tx ) 定义了重名信号m y s i g n a l ,但是它携带一个整形参数, 这有点类似于c + + 中的虚函数。从形式上讲信号的声明与普通的c + + 函数是一样 的,但是信号却没有函数体定义,另外,信号的返回类型都是v o i d ,不要指望能 从信号返回什么有用信息。 信号由m o c 自动产生,它们不应该在c p p 文件中实现。 3 1 3 槽( sio t ) 槽是普通的c + + 成员函数,可以被正常调用,它们唯一的特殊性就是很多信 号可以与其相关联。当与其关联的信号被发射时,这个槽就会被调用。槽可以有 参数,但槽的参数不能有缺省值。 既然槽是普通的成员函数,因此与其它的函数一样,它们也有存取权限。槽 的存取权限决定了谁能够与其相关联。同普通的c + + 成员函数一样,槽函数也分 为三种类型,即p u b l i cs l o t s 、p r i v a t es l o t s 和p r o t e c t e ds l o t s 。 1 p u b l i cs l o t s :在这个区内声明的槽意味着任何对象都可将信号与之相 连接。这对于组件编程非常有用,你可以创建彼此互不了解的对象, 将它们的信号与槽进行连接以便信息能够正确的传递。 2 p r o t e c t e ds l o t s :在这个区内声明的槽意味着当前类及其子类可以将 信号与之相连接。这适用于那些槽,它们是类实现的一部分,但是 其界面接口却面向外部。 3 p r i v a t es l o t s :在这个区内声明的槽意味着只有类自己可以将信号与 之相连接。这适用于联系非常紧密的类。 槽也能够声明为虚函数,这也是非常有用的。 槽的声明也是在头文件中进行的。例如,下面声明了三个槽: 1 9 硕士学位论文 图3 - 3 定义槽的例子 3 1 4c ale n d a r 对象间通信 1 ) 对象间信号与槽的连接与释放操作简介 通过调用q o b j e c t 对象的c o n n e c t 函数来将某个对象的信号与另外一个对象 的槽函数相关联,这样当发射者发射信号时,接收者的槽函数将被调用。该函数 的定义如下 6 】: 图3 - 4c o n n e c t 函数 这个函数的作用就是将发射者s e n d e r 对象中的信号s 远n a l 与接收者r e c e i v e r 中的m e m b e r 槽函数联系起来。当指定信号s i g n a l 时必须使用q t 的宏s i g n a l ( ) , 当指定槽函数时必须使用宏s l o t ( ) 。如果发射者与接收者属于同一个对象的话, 那么在c o n n e c t 调用中接收者参数可以省略。 例如,下面定义了两个对象:标签对象l a b e l 和滚动条对象s c r o l l ,并将 v a l u e c h a n g e d 0 信号与标签对象的s e t n u m 0 相关联,另外信号还携带了一个整形 图3 5c o n n e c t 的调用例子 一个信号甚至能够与另一个信号相关联,看下面的例子: q t o p i a 下c a l e n d a r 架构分析与优化 图3 - 6c o n n e c t 的调用例子 在上面的构造函数中,m y

温馨提示

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

最新文档

评论

0/150

提交评论