手机平台基于GPRS网络的商务应用软件 -城市通-毕业论文_第1页
手机平台基于GPRS网络的商务应用软件 -城市通-毕业论文_第2页
手机平台基于GPRS网络的商务应用软件 -城市通-毕业论文_第3页
手机平台基于GPRS网络的商务应用软件 -城市通-毕业论文_第4页
手机平台基于GPRS网络的商务应用软件 -城市通-毕业论文_第5页
免费预览已结束,剩余41页可下载查看

下载本文档

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

文档简介

本科毕业论文(科研训练、毕业设计)题 目:手机平台基于GPRS网络的商务应用软件城市通姓 名:学 院:软件学院系: 专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 指导教师(校外): 职称: 年 月手机平台基于GPRS网络的商务应用软件城市通手机平台基于GPRS网络的商务应用软件城市通摘要 J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于J2ME技术的应用,开发一款基于GPRS的手机商务软件“CityGuide城市通”。此软件正是利用JAVA技术,为手机用户打造方便快捷的生活资讯服务平台。本论文介绍了手机的软硬件特性、J2ME的相关技术及本程序的结构分析和具体功能的实现。 关键字 J2ME 手机软件 Java CityGuide 城市通Handset Platform Based on GPRS Network Commerce Application Software-CityGuideAbstract J2ME is a kind of fast developing technology implemented on various devices especially mobile communication equipments. It focuses on application for consumptive electronic products, providing revolutionary solution to the intelligentization and diversification of the equipment. It improves the efficiency of the development process thanks to its “Write Once, run anywhere” nature. When cell phone is getting ever more popular nowadays, with the implementation of Java technology on mobile equipment, increment of capital on communication service exhibits its force on peoples everyday life, providing them ever fast information just in hand. This dissertation focuses on implementation of J2ME technology and has developed a commercial software suite run on mobile phonesCityGuide. This application aims at providing people more popular information about eating, closing, housing, traveling, playing, and founds up a perfect platform for both customer and businessman. This dissertation introduces the characteristic of Nintendo FC machine and its software, J2ME and its relative technology as well as this programs structure and analysis of implementation in details. Key words: J2ME, mobile software, Java, CityGuide. 引言Java语言是美国Sun Microsystem的James Gosling、Pratrick Naughton及Mike Sheridan等人于1991年精心设计出来的计算机编程语言,其构想在于实现使用同一种编程语言所写出来的程序可以在不同的平台上运作。这种架构对于消费性电子产品而言是具有革命性的,因为在消费性电子产品中的处理器及操作系统各不相同,要在这些平台上开发程序必须要了解各个平台的特性,以及其提供的API使用方式,分别开发不同的版本才能执行,影响应用程序的普及性。近几年,由于微处理器性能的大幅提升,加上无线通讯技术的突破,手持式移动设备开始受到大众的青睐。短短几年内,手机已经升级了几代产品,普及率逐年攀升,生产效率不断上升,产品价格比个人电脑的摩尔定律有更惊人的下调,以至手机是大多是城市居民不可缺少的一件随身设备。继短信、彩信等服务之后,中国移动提供基于Java的百宝箱业务,应用产品遍及商务应用、信息获取、英汉互译、游戏娱乐等多媒体领域。根据官方公布的统计数据,我国移动电话用户已突破3亿。依托这样的市场,一旦无线Java应用大规模开展起来,将会创造出比短信业务更为惊人的利润。Java语言原先的开发目的与市场的需求不谋而合,并且也已经成为手机应用程序开发的标准,国际大公司如Nokia、Motorola及Siemens等所设计的手机内都加入Java程序的支持,可见在不久的将来,Java将会成为移动设备上最热门的语言。手机中将Java语言引入,作为一种通用的开发标准,并将向市场推广普及仅仅短短几年,J2ME仍是一种新型的技术,中文资料除台湾出版过相关书籍外,国内相关介绍资源很有限,国内J2ME开发商也屈指可数,名声较响的Digital-Red公司也仅成立于1999年。本文可算是对新技术的一些尝试,代表对无线平台应用程序推广的一些努力。目 录第一章 绪论11.1 手机软件现状11.2 J2ME简介121.3 J2ME程序的撰写31.4 GPRS简介41.5 “CityGuide城市通”软件开发背景51.6 开发环境及开发工具简介51.7 本章小结5第二章 程序结构分析和相关技术62.1 “CityGuide城市通”流程设计62.1.1 “CityGuide城市通”软件下载流程设计62.1.2 用户端流程设计72.1.3 商户端流程设计132.2 需求分析-UML图示152.3 本程序需解决的有关技术问题162.3.1 UI流程控制器162.3.2 二维码识别162.3.3 XML解析172.3.4 HTTP连接172.3.5 手机存储172.4 我的工作182.5 本章小结18第三章 UI的设计与实现193.1 LCDUI中高级API和低级API193.1.1 高级API203.1.2 低级API223.1.3 相关类的介绍233.2 “CityGuide城市通”界面设计243.2.1 风格设计243.2.2 页面层次设计243.3 “CityGuide城市通”界面实现263.3.1 定义实体类263.3.2 定义UI父类263.3.3 定义各页面对应的类273.4 “CityGuide城市通”界面展示283.5 本章小结30第四章 总 结31致 谢 33参考文献 34附 录 35ContentsChapter 1 Introduction11.1 The present situation of Mobile Software11.2 J2ME Introduction121.3 J2ME Programming31.4 GPRS Introduction41.5 “CityGuide” Background51.6 Development Environment and Tools51.7 Chapter Subtotal5Chapter 2 Procedure Structure Analysis and Concerning Technology62.1 “CityGuide” Flow Design62.1.1 “CityGuide” Download Flow Design62.1.2 User End Flow Design72.1.3 Merchant End Flow Design132.2 Requirement Analysis-UMLGraphics152.3 the Main Technology Problems162.3.1 UI Flow Controller162.3.2 Two-dimentional code recognition162.3.3 XML Analysis172.3.4 HTTP Connection172.3.5 Mobile Memory172.4 My Work182.5 Chapter Subtotal18Chapter 3 UI Designing and Programming193.1 the APIs in LCDUI Package193.1.1 the High-level APIs203.1.2 the Preliminary APIs223.1.3 Introduction of Concerning Classes and Interfaces233.2 “CityGuide” UI Design243.2.1 Style Design243.2.2 Page Level Design243.3 “CityGuide” UI Programming263.3.1 Define Entity Classes263.3.2 Define Common Classes263.3.3 Define Pages Classes273.4 “CityGuide” UI Demonstration283.5 Chapter Subtotal30Chapter 4 the Summary31Acknowledgement33References 34Supplement 35第VII页第一章 绪论1.1 手机软件现状在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活。随着信息网络化的不断进展,手机及其它无线设广泛运用于网络将势在必行。但是传统手机存在以下弊端:1. 传统手机出厂时均由硬件厂商固化程序,程序不能添加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。2. 传统手机访问互联网是通过WAP(Wireless Application Protocol),所有的网络资源必须接通网络才能在线访问,非常耗时、网络传输量大,通信费用亦很高。而Java技术在无线应用方面的优势非常明显:1、 应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空间大。2、 Java技术提供了一个类库,它使的应用开发商可以创建更丰富,更友善的图形用户界面(GUI)。3、 Java技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上,在本地运行,仅仅是在连接到服务器时才会占用网络带宽。Java技术的开放性、安全性和庞大的社会已有资源,以及其跨平台性,即“编写一次,到处运行”的特点,使Java技术成为智能手机软件平台的事实标准。采用Java技术后,编写应用程序和提供服务的人就不必关心接受其服务的手机采用的是什么操作系统和芯片,只要按照Java的要求去写程序就好了;同样,生产手机的厂商也不必顾虑将来谁来提供增值服务。可以看出,采用Java技术,可以建立完整、高效的无线数据增值服务产业链,从而为用户提供灵活、个性化、内容方式多样的服务。现如今,市面上销售的手机中,大部分已经支持下载、安装、运行Java程序,这也为J2ME在手机平台上的运用提供了良好的市场环境。据统计,到2006年6月,全世界已经有大约1亿部Java手机在使用,除中国大陆外共有53个移动运行商正式推出了基于Java技术的无线数据增值服务。中国移动通信集团已经建立了无线Java增值服务体系,并推出了“百宝箱”等服务品牌,包括游戏百宝箱、娱乐百宝箱、商务百宝箱、生活百宝箱等,已经于2003年7月10日开始正式商用。 中国联通公司也正在其CDMA 1X网络上建立无线Java增值服务体系,目前系统正在建设过程中,并且2003年9月26日中国联通、北京振戎融通公司和Sun公司在人民大会堂宣布联合发起成立“UniJa技术联盟”,三方将在联通CDMA 1X网络上的Java增值服务方面全面合作。1.2 J2ME简介2Sun公司将J2ME(Java 2 Micro Edition,Java2微型版)定义为“一种以广泛的消费性产品为目标的、高度优化的Java运行时环境”。1Java手机软件平台采用的基本Java平台是CLDC (Connected Limited Device Configuration)和MIDP (Mobile Information Device Profile),是J2ME (Java 2 Micro Edition)的一部分,在中国一般称为“无线Java”技术。此前,有人把它叫做“K-Java”;其实,K-Java的叫法只是Sun公司在开发KVM Java虚拟机时的项目代号,在该技术被正式命名为KVM后,就不再用K-Java了。K-Java即J2ME(Java 2 Micro Edition),是Sun公司专门用于嵌入式设备的Java软件。以K-Java编程语言为手机开发应用程序,可以为手机用户提供游戏、个人信息处理、电子地图、股票等服务程序。J2ME(Java 2 Micro Edition)是致力于消费产品和嵌入式设备的最佳解决方案。J2ME在设计其规格的时候,遵循着“对于各种不同的装置而造出一个单一的开发系统是没有意义的事”这个基本原则。于是J2ME先将所有的嵌入式装置大体上区分为两种:一种是运算功能有限、电力供应也有限的嵌入式装置(比方说PDA、手机);另外一种是运算能力相对较佳、并且在电力供应上相对比较充足的嵌入式装置(比方说冷气机、电冰箱、电视机上盒)。因为这两种区分,所以Java引入了一个叫做Configuration的概念,然后把上述运算功能有限、电力有限的嵌入式装置定义在Connected Limited Device Configuration(CLDC)规格之中;而另外一种装置则规范为Connected Device Configuration(CDC)规格。也就是说,J2ME先把所有的嵌入式装置利用Configuration的概念分隔成两种抽象的型态。其实在这里大家可以把Configuration 当作是J2ME 对于两种类型嵌入式装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供电能力、记忆体大小等规范,同时也定了一组在这些装置上执行的 Java程序所能使用的类别函式库、这些规范之中所定义的类别函式库为 Java标准核心类别函式库的子集合以及与该型态装置特性相符的扩充类别函式库。比方就CLDC 的规范来说,可以支援的核心类别函式库为java.lang.*、java.io.*、java.util.*,而支援的扩充类别函式库为java.microedition.io.*。区分出两种主要的Configuration 之后,J2ME 接著在定义出Profile的概念。Profile 是架构在Configuration 之上的规格。之所以有 Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java 程序该如何开发以及它们应该具有哪些功能。因此Profile 之中定义了与特定嵌入式装置非常相关的扩充类别函式库,而 Java 程序在各种嵌入式装置上的使用者介面该如何呈现就是定义在Profile 里头。Profile 之中所定义的扩充类别函式库是根据底层Configuration 内所定义的核心类别函式库所建立。2图1-1 J2ME的技术架构 此外,还有各厂商根据各自产品功能需求而选择性实现的Package。因此可用图1-1来表示J2ME的技术架构。1.3 J2ME程序的撰写J2ME应用程序泛指根据各种J2ME规格来开发的应用程序。这里的规格就是上文提到的Configuration以及Profile。MIDP应用程序指的是根据MIDP(Mobile Information Device Profile)规格来开发的应用程序,所以MIDP应用程序是J2ME程序的一种。2MIDlet suite是MIDP应用程序的最小单位,JAM负责将手机内的MIDlet suite以图形化的方式呈现,让用户能够选取欲执行的MIDlet suite,一旦选取了某个MIDlet suite,操作系统就会激活KVM执行里面的MIDlet。MIDlet及相关的支持类组成了MIDP应用程序的实际内容。 呼叫MIDlet的构造函数停止状态(Paused) StartApp() DestroyApp() 消减状态(Destroyed)运行状态(Active) PauseApp() DestroyApp()图1-2 MIDlet的流程3每个MIDlet都必须继承javax.microedition.midlet.MIDlet这个抽象类。在MIDP规格中定义了MIDlet的生命周期,以及可以存在的三种状态,包括Paused、Active以及Destroyed,每一个MIDlet在任何时刻只可能处于其中的一个状态3。这三种状态的转换关系如图1-2所示。一个完整的MIDP应用程序由两个文件构成:应用程序主体(JAR文件)和应用程序描述文件(JAD文件) 2。当一个MIDP应用程序完成以后,要进行部署(deploy),也就是让程序在用户的移动设备上运行。可以用OTA(Over The Air)和非OTA方式实现部署。现在为了方便开发及测试程序,很多开发包提供了手机模拟器,可是模拟部署过程。1.4 GPRS简介GPRS是通用分组无线业务(General Packet Radio Service)的英文简称,是在现有的GSM系统上发展出来的一种新的分组数据承载业务。GPRS特别适用于间断的、突发性的或频繁的、少量的数据传输,也适用于偶尔的大数据量传输。这一特点正适合大多数移动互联的应用。网络覆盖:目前中国移动GPRS网络已覆盖全国31个省区市、160个城市可以办理GPRS业务,可以漫游城市达242个.全球200多个最大的运营商都选择了GPRS网络,GPRS数据业务可以触及世界各地。1.5 “CityGuide城市通”软件开发背景随着手机在我们工作、生活中越来越频繁的使用,手机的功能也不再仅限于接、拨电话,收发短信。各项手机增值业务如雨后春笋般发展起来。人们渴望在高压的工作之后,能轻松获得吃、穿、住、用、行等各种生活资讯,希望更快捷地了解周边地理、人文环境。这种需求启发我们,可以通过手机向人们传送对方需要的资讯。于是,城市通的构想应运而生了。通过JAVA这种交互式的平台,JAVA手机用户可以下载各种JAVA应用程序,包括图片铃声、游戏、娱乐、资讯服务、商务应用和行业应用软件等,同时用户也可以进行各种在线应用,包括网络游戏、网上聊天、移动定位等业务。由于无线JAVA先天具有的“跨手机平台特性”(即所有的应用程序都可以通过下载来获得),使得JAVA的服务和内容应用前景非常广阔。我们所要开发的城市通商务软件,正是利用JAVA技术,为手机用户打造方便快捷的生活资讯服务平台。该软件分为商务端和客户端两个界面,通过无线下载安装程序,可达到商家信息资源共享,用户在线搜索、查询、点评等功能。1.6 开发环境及开发工具简介基于J2ME技术,在安装有jdk6.0的windows 2000上运用eclipse 3.2.2 WTK 2.5 eclipseME 1.6.6 工具开发。JDK是java的基本开发工具包。Eclipse是一个开源的集成开发环境,WTK是sun公司提供的无线开发工具包,eclipseME是基于eclipse环境的J2ME支持插件。1.7 本章小结本章介绍了手机软件的现状,Java在手机软件中的应用,以及“CityGuide城市通”手机商务软件的开发背景和开发工具。 第二章 程序结构分析和相关技术2.1 “CityGuide城市通”流程设计2.1.1 “CityGuide城市通”软件下载流程设计城市通分用户端和商家端两个界面:用户端要求为Kjava版本,符合Midp 2.0,在Nokia 3230上实测通过。商家端要求为Symbian版本,符合S60系列,在Nokia 3230上实测通过。图2-1 软件下载及JAM工作流程图用户端下载流程为:1. 用户发送短信“商家名”到916091082. 得到回复短信包括商家介绍和选项3. 回复短信3-下载移动VIP卡4. 得到回复短信带wap push的网址5. 打开该网址,下载软件6. 安装软件用户端也可以通过红外、蓝牙、USB线等方式进行安装,设计为可以在线升级。手机中负责调配程序运行资源的管理后台是Java Application Manager。它所使用的传输媒体可以是红外线、网络、以及其他可用来传输的媒体。Java Application Manager 会从网络上下载代表该Application Suite 的JAR 档,接着在手机上安裝此MIDlet Suite,然后在手机开始执行该应用程序。整个详细的运作流程如图2-1所示。2.1.2 用户端流程设计城市宝典模块在用户端,本质上是一个手机上的微浏览器。因为这里所需的浏览界面不多,所以我们把界面生成到软件中了。在这里,我们主要用到了J2ME的高级界面设计、低级界面设计和网络通讯功能。其概要实现流程为:手机界面上点击带查询字段的URL的命令按钮,通过无线(基于TCP/IP协议,调用HttpConnection进行http连接)连接到源数据服务器;源数据服务器返回XML文件;手机终端接受该文件的字节流,并对字节流进行XML解析生成数据结构树,反应到界面上,最终完成一次交互。交互之后用户可以获得大量的商家信息,如:商家地址、电话以及商家店址的微缩地图等。另外客户还可以通过无线连接从服务器上下载打折卡及查询个人账户信息。下面是对流程的描述:1. 程序启动画面,显示LOGO,主要用一个Alert继承类实现启动画面的跳转,关于Alert类的应用将在后面讲到。下班网 城市通 1.0-无限生活图2-2 用户端Logo画面2. 程序主画面,显示各项菜单,如移动卡夹,城市宝典,系统设置,帮助说明等。移动卡夹城市宝典系统设置帮助说明 确定 退出图2-3 主菜单选项界面3. 移动卡夹卡列表页面,缺省安装后有一张下班卡。每次在新的商家下载后都把卡加入到卡夹中。每次安装新商家卡都采用覆盖安装方式,即一次下载所有卡程序并安装。移动卡夹 城市宝典 系统设置 帮助说明LOGO 下班卡 7折LOGO 来雅卡 7折LOGO 上海卡 7折获取新卡(需要联网)确定 返回图2-4 移动卡夹选项界面4. 卡页面,滚动条方式,依次列出卡图样、文字说明以及二维码,卡图样采用动画切换显示,以预防用户直接拍照的方式伪造卡。点击二维码可以直接跳转到该卡的二维码页面上。图2-5 移动卡夹内部页面以及二维码标识页面5. 获取新卡,选择一张卡后,程序自动通过接口下载卡数据,显示安装进度条,安装到移动卡夹。移动卡夹 城市宝典 系统设置 帮助说明1、 豪客来牛排一般消费卡2、 钱柜KTV打折卡3、 老知青风味餐馆消费卡4、 确定 返回图2-6 卡列举页面6. 推荐“城市通”给朋友,发送城市通下载点WAPpush短信给朋友手机。 移动卡夹 城市宝典 系统设置 帮助说明朋友手机: 确定 返回图2-7 推荐页面7. 城市宝典首页,显示城市生活大类,大类信息固定在程序中。移动卡夹 城市宝典 系统设置 帮助说明餐饮 娱乐休闲便民购物确定 我要搜店 返回图2-8 城市宝典选项页面8. 商家小类(小类信息固定在程序中)以及包含商家列表,采用左右分栏方式,如下图左边选择闽菜,右边通过接口读取上所属商家名字并排列。移动卡夹 城市宝典 系统设置 帮助说明闽菜川菜广东菜豪客来(厦禾)好请香好再来好爱吃确定 返回图2-9 城市宝典商家小类选项页面9. 商家页面,比如点击豪客来(厦禾),出来的页面显示的商家信息、地图、点评都从接口获得,内容太长使用滑动条来滚屏。评分以及点评都通过接口进行。移动卡夹 城市宝典 系统设置 帮助说明豪客来(厦禾)厦禾路866号(开元饭店旁)【思明区】(TEL)05925815488公交路线:619、529、618附近地标:开元饭店旁营业时间:24小时促销信息:2007-1至2007-9 全场9折优惠点评精选:依帆 2006-09-18 09:31:36 依帆打了9分昨天和两个朋友去吃了,我们点了两份沙郎牛排和一份黑胡椒牛排。黑胡椒那份配的蔬菜沙拉还不错,我们有去装了两份水果沙拉,那个沙拉碗要大点多好。三份全是7分熟的,但是某人的吃起来却觉得是全熟的,我那份还好,难道是厨师把握不准熟度?偶尔还会去吃的,是不是能吃到满意的,要看运气了。最近好象推出了新品,改天再去尝察看地图位置 我要点评 返回 察看地图位置移动卡夹 城市宝典 系统设置 帮助说明豪客来(厦禾)厦禾路866号(开元饭店旁)【思明区】我要点评 返回评分以及点评都通过接口进行。移动卡夹 城市宝典 系统设置 帮助说明豪客来(厦禾)厦禾路866号(开元饭店旁)【思明区】综合评分 _(10分满分)我的点评_ 发表 返回图2-10 商家页面、地图页面、评分页面10. 我要搜店,根据条件搜索商家。移动卡夹 城市宝典 系统设置 帮助说明是 否我现在所处位置:厦门软件园一期商家名字或者部分:_ 搜索分类查找:大类下拉列表 小类下拉列表是否在我附近 搜索如果读取基站信息有困难,可以改为:用一个列表通过接口列出本地的热点区域,搜索在热点附近的本类商家。 返回图2-11 搜店页面11. 系统设置。移动卡夹 城市宝典 系统设置 帮助说明选择城市注册个人信息图2-12 系统设置页面12. 注册个人信息-程序将把填入的个人信息通过接口发送到下班网,注册一个新用户并返回注册成功。移动卡夹 城市宝典 系统设置 帮助说明昵称:_电子邮件:_密码:_确定帮助信息移动卡夹 城市宝典 系统设置 帮助说明祝贺您成功注册了个人信息,您可以在上使用注册的email地址登陆,浏览更多城市生活信息!确定图2-13 注册页面及帮助信息13. 选择城市,通过手机归属地缺省。省份:下拉列表选择城市:下拉列表选择确定图2-14 城市选择下拉列表页面14. 帮助说明。移动卡夹 城市宝典 系统设置 帮助说明下班网城市通是下班网全新推出的基于手机用户的城市生活利器,集商家搜索、刷卡消费积分于一体。V1.0 Copyright 2007 By 确定图2-15 系统帮助说明页面2.1.3 商户端流程设计当客户消费完毕要进行结算是,商家可以用装有城市通软件的手机将客户出示的打折卡拍摄下来,并通过网络反馈到服务器上进行信息核对,确认是该用户所持有的打折卡后就可以进行打折结算。另外客户选择预存消费时商户将通过访问数据库中的客户信息,检查客户账户中是否有足够的金额进行支付,如果有就扣除消费金额并更新数据库。1 程序启动画面,显示LOGO。显示商家ID,店员ID,登陆密码,和登陆按扭。商家ID:_店员ID:_登入密码:_登入下班网 城市通 商家版 1.0-无限生活图2-16 商户端登陆页面2 主菜单,下班卡刷卡、本店卡刷卡、系统设置。1、 下班卡刷卡2、 本店卡刷卡3、 系统设置图2-17 商户端主菜单页面3 下班卡刷卡,提示打折消费、预存消费选项。1、 打折消费2、预村消费退出重登入图2-18 商户端下班卡刷卡页面4 选择“打折消费”,启动摄像头进行二维码扫描,获得结果。打折消费 预存消费林光辉先生(卡号:20079873947987)可以在本店享受优惠。 返回图2-19 商户端打折消费页面5 结算。此时通过接口纪录消费纪录,获得积分。移动卡夹 城市宝典 系统设置 帮助说明金额:_折扣:_(如8折,填入0.8) 结算 返回图2-19 商户端结算页面6 预存消费重复4、5步骤,但是在5步增加一个通过接口获得 账户余额,以及扣除消费金额的功能。2.2 需求分析-UML图示“CityGuide城市通”商务软件为商户提供注册、登陆、发布打折信息功能。为客户提供四个主选项,分别是移动卡夹,城市宝典,系统设置和帮助选项。其中,移动卡夹主要提供申请新卡,查看二维码,读取卡详细信息,注销,推荐好友等功能。用户下载虚拟打折卡,出示给商家,确认身份后,便可享受打折优惠。功能可以参考以下用例图 。图2-20 用例图城市宝典选项中保存有主要的生活服务资讯分类,如餐饮、夜生活、休闲、购物、便民等。另外,每个大类下又划分出相应的小类,为用户查询。浏览提供更清晰的框架。如夜生活大类下分为酒吧、夜总会、量版式KTV、娱乐城等小类。用户通过方向键选择所需要查询的类型,再按OK键,即可读取服务器上关于此小类中注册的商户列表。再根据需要选择商户,浏览店铺信息,点评店铺服务,联系商家,查看地图等。另外,程序提供系统设置,可设置个人信息,如E-mail,所在城市等。2.3 本程序需解决的有关技术问题2.3.1 UI流程控制器2流程控制,通俗来讲,就是指程序各画面的切换。在J2ME中,有一个包专门针对界面设计提供了各种接口和类,它就是LCDUI包。其中,包的设计划分为高级API和低级API。所以LCDUI包的体系区分为低级类库和高级类库。能够显示在屏幕上的组件都是来自于Displayable这个抽象类,而Displayable这个抽象类又派生出了Screen类和Canvas类。前者之后所构成的体系就是高级API,而后者之后所构成的体系就是低级API。在LCDUI的架构下,画面上同一时间只能有一个Displayable的子类实体,即一个画面只能采用低级API,高级API中一种。这导致MIDP程序设计中,最令人头痛的地方莫过于程序的流程控制。如何更好的实现各页面间的跳转,并保证后期新版本出现时,添加页面而不出现跳转紊乱,最科学的设计模式即流程控制器。在本程序中,就是将各页面主要按扭,如“exit”,“ok”,“back”,“主菜单”等,在base基类中统一定义,各页面再调用即可。这样做的好处显而易见,不但避免了冗余代码,减小存储空间使用,而且使程序结构更加清晰明朗,利于后续版本开发和软件维护。2.3.2 二维码识别二维条码/二维码 (2-dimensional bar code) 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。 二维条码/二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。二维码和手机摄像头的配合将产生多种多样的应用,比如我们可以在自己的名片上印上二维码,别人只需用安装二维码识别软件的摄像手机轻松一拍,名片上的各种资料就全部输入手机;如果超市的商品也印上二维码,我们就可以在手机上获得关于该商品的大量详细信息。“CityGuide城市通”软件的关于二维码技术的使用主要在于商户端对商户身份的识别。2.3.3 XML解析XML 解析是将 XML 数据从其序列化字符串格式转换为分层格式的过程。“CityGuide城市通”软件对于大量商户数据采用XML格式保存在服务器上,客户端通过访问该URL读取XML文件,解析后,将信息显示在手机屏幕上。这里要用到XML解析技术,由于移动设备的特殊性,其内存,电量,存储容量都极为有限,这就要求我们要采用更加高效,精简的算法完成解析。在本程序中,主要通过创建mons.kxml包,实现kxmlParser接口。对数据进行XML解析,返回抽取了标记的数据和格式。2.3.4 HTTP连接“城市通”在手机上保留了基本分类,但详细信息仍保存在服务器上,需要手机通过URL访问相关细节,这里就不可避免地涉及到网络连接,数据传递等内容。为了使各个模块实现低耦合,高内聚,我们把这一部分独立出来,在mons.http中实现,对外只提供接口DataConsumer,各页面在访问服务器时,读取了数据流,并通过XML解析,最终通过这个接口,显示在窗口容器中。2.3.5 手机存储手机作为移动通讯设备,是拥有一定内存和存储容量的。不同品牌不同型号的手机存储容量也不尽相同。J2ME中专门定义了一个record包,对信息存储,删除,插入等都有相关的方法和类。本程序中就手机存储相关功能的定义集中在mons.db中。2.4 我的工作在“CityGuide城市通”项目组中,我的主要工作是用户端UI的设计,实现城市宝典、系统设置、帮助模块中各界面的设计、连接,规划、实现。因此,对于上一节中提到的几个问题,我工作的重点在于界面设计,UI流程控制,以及对其它各接口的引用上。界面是软件的外壳,是直面用户的第一道风景,对于非专业用户来说,界面是否友善,是否利于操作,是否美观,风格是否统一,都会影响该软件在用户心中的形象。因此,软件不仅仅要有便利的功能支持,也一样需要美观大方的界面,让用户能在最短时间内掌握软件的操作,并符合传统类似软件的操作习惯。在下一章中,我将着重介绍UI的设计、实现。2.5 本章小结本章主要介绍了“CityGuide城市通”手机商务软件的流程设计,并用UML图示对软件进行简单的需求分析。还阐述了程序设计中需要重点解决的几个问题以及相关技术,实际上,这每一个问题都涉及到一个单独的模块或功能块。最后,对我在此项目中划分的模块和主要工作做了一个简单的说明。第三章 UI的设计与实现3.1 LCDUI中高级API和低级APIJ2ME中,javax.microedition.lcdui包为我们提供了大量用于图形用户界面设计与开发的API,这其中就包括高级API和低级API。DisplayCommandListener 1 1TickerCommandDisplayable 0.n 1CanvasScreenImageGraphicsFont图3-1 LCDUI包的结构2能够显示在屏幕上的组件,如列表、下拉列表等,又都是来自于Displayable这个抽象类。而Displayable类又派生出Canvas类和Screen类。javax.microedition.lcdui.displayablejavax.microedition.lcdui.Canvasdjavax.microedition.lcdui.Screen图3-2 Displayable阶层体系2根据图示,Canvas之后的体系都是低级API,使用这类API,就如同把屏幕当作一块画布,可根据设计在屏幕任意位置画出形状,或写上文字。关于这类的操作,使用起来非常灵活,通常能满足丰富多彩的设计需要,常见于游戏开发。而Screen之后的体系则是高级API,这类API中包含了我们常常使用的文本框,列表等组件,功能十分强大,在应用程序开发中起着不可磨灭的作用。高级API和低级API可以在同一个MIDlet中混合使用,组合成一个应用程序中的每个画面。但是同一个画面中,就只能在高级API与低级API中择一使用。3.1.1 高级APIScreen类及其子类如图3-3所示:ScreenChoiceListFormAlertTextBoxFontGougeAlertType图3-3 Screen类及其体系2Screen类有四个子类,分别是Alert、List、TextBox以及Form。这四个子类又可以区分为两类:21、 封装了较复杂用户界面的类,这类高级图形用户界面组件有事先定义好的固定结构,只能设定其属性,而不能对其内部结构作修改。Alert、List、TextBox就属于这一类。2、 缺省没有任何用户界面的组件,就像一个容器(Container)可以容纳Item类的子类加入其中,以形成更微复杂的用户界面,如提交的表单等。Form就属于这一类。下面对几个常用的组件作一个简要介绍:1、TextBox类TextBox是输入框组件,我们可以用它提供输入文字、URL、数字等的文本框。根据不同参数的设置,输入法也相应的被设置了。例如,设置其内容为数字,则输入法就只有数字输入。这个组件在程序中应用广泛,如登陆时输入用户名及密码,推荐好友时输入好友手机号码等等。72、Alert类Alert是一个屏幕型对象,当用setCurrent()函数将它设置为目前显示在屏幕上的画面时,它会先发出一段声音,然后将自己显示出来,过一段时间后,它会自动跳转到之前的画面。当然,这个时间长短也是可以在参数中设置的。它在本程序中主要应用于程序开始时LOGO的显示,再自动跳转到主菜单选项界面。73、List类List,顾名思义,就是列表组件。它又分为IMPLICIT,EXCLUSIVE和MULTIPLE三种。当列表在屏幕上可视时,用户可以通过滚动条浏览所有选项,这种遍历操作不会引起应用程序可视事件。而当Command对象被激活时,系统会通知应用程序。应用程序对此通过commandAction()进行相应处理。其中,IMPLICIT类型的列表可以被作为菜单组件使用。应用程序

温馨提示

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

评论

0/150

提交评论