1、毕业答辩论文基于Android的手机商城设计与开发1 绪论334456 Android特征6 Android架构7 7 7 7 8 Android与其他手机操作系统的比较9103系统的总体框架10 1011111213131415164详细设计与实现17171718191818192021212223246 Android手机前景317结束语358参考文献35基于ANDROID的小小手机商城 内容提要:随着移动通信与Internet的飞速发展及相互融合,GPRS使无线网络高速接入到Internet成为现实,移动用户从而可以享受到Internet提供的服务。这样,移动终端不再仅是通讯网络的终端,
2、还将成为互联网的终端。本文首先给出了系统研究背景,对当前手机操作系统发展做了简单的介绍。进而详细的分析了android的特征、架构、以及android应用的构成和工作机制,并对android于其他手机操作系统进行了比较,说明了android在手机操作系统中的优势。本系统主要用于对手机上网用户,在线浏览该网站,用户管理员可以对商品信息进行增删改查等功能,用户可以在该网站注册,注册后的用户还可以商品进行购买以及评价。使用该系统很大的提高了用户购买能力。关键词: Android、JSP、eclipse、tomcat、开源、服务器、移动客户端、手机商城。Summary:With mobile comm
3、unication and internet the rapid development and integration. GPRS the wireless network speed internet access to mobile users to become a reality, so we can enjoy the internet service. thus, the mobile terminal not only a communications network terminal, will become the internet terminals. the first
4、 to study the background to the current system, mobile operating system development made a brief introduction. then the detailed analyses the characteristics, a schema about the android ,about the android application forms and mechanisms, and on about the android on the other operating system, mobil
5、e phone has explained about the android the phone in the operating systems. this system is mainly used for online browsing the internet users of mobile phones, web site, the administrator can be on information to look for functions add and delete, users can, after the registration of users can make
6、purchases of goods and evaluation. use the system is very much improved the user to buy.Keyword: Android、JSP、eclipse、tomcat、Open source、 the server、 a mobile client 、mobile phones shopping center.随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一
7、个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台Android。Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的
8、创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。根据中国互联网信息中心(CNNIC)发布的第22次中国互联网络发展状况统计报告显示,截止2008年6月底,首次大幅超过美国,网民规模跃居世界第一位,其中手机网民达到7305万,手机上网成为网络接入的一个重要发展方向。Palm OS是一套专门为掌上电脑编写的操作系统,是一种轻量级、比较开放的操作系统,占用的内存非常小,允许用户在其基础上编写和修改相关软件,是支持的应用程序更加丰富多彩。Plam 在其它方面也还存在一些不足,如Plam操作系统本身不具备录音、MP3播放功能等,但是可以通过加
9、入第三方软件或硬件设备来实现。其代表性的产品有Palm m505、Palm m500、Palm III等。Symbian是一个实时性、多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持GPRS、蓝牙、SyncML以及3G技术。Windows mobile系列操作系统是从微软计算机的Windows操作系统上变化而来的。Windows mobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件设置(如内存、储存卡容量等)上也采用其他操作系统的智能手机要高出许多,因此性能比较强劲,速度
10、比较快。Windows mobile系列操作系统包括SmartPhone以及Pocket PC Phone两种平台。Pocket PC Phone主要用于掌上电脑型的智能手机,而SmartPhone则主要为手上智能手机提供操作系统。Linux系统是一个源代码开放的操作系统。由于其开源性,手机制造商可以根据实际情况开放自己的Linux手机操作系统,从而也能够吸引更多的软件制造商在其上开发更多的应用软件,丰富第三方的应用。但是Linux操作系统也还存在一些不足,集成开放环境和基于Linux的产品与PC的连接性比较差等。本文首先分析了系统的研究背景,介绍了当前手机操作系统、即时通讯软件的发展现状和即
11、时通讯协议,以及本文的主要内容。第二章,介绍了Android的特征、Android的架构以及Android应用的构成和工作机制,并对Android与其它手机操作系统进行了比较,说明了Android的优势。第三章,详细论述了在Android平台上开发小小手机商城系统,提出了系统的主要功能,系统的总体业务描述和架构设计。第四章,介绍了系统的设计特点,着重论述了账户操作的工作流程。第五章,给出本文的结论并对课题进行了进一步的展望。Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供包括SDK、Key Apps、Middleware、Linux Kernel四个部分在
12、内的全套手机软件方案。它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用。应用框架:用于开发可重用、可替代的组件。Dalvik虚拟机:Android采用的Java虚拟机是自主开发的代号为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运行效率更高。内嵌浏览器:基于开源的浏览器网页排版引擎WebKit。优化的图形:强大的自定义二维图形库。基于OpenGL ES ,在移动3D开发中
13、有着至关重要的地位。SQLite数据库:SQLite提供结构化的数据存储。它是一款轻型免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。多媒体支持:支持各种通用的音频、视频和静态图像格式,如MP3、JPG、PNG等。Open Core是Android多媒体框架的核心,所有Android平台的音频和视频采集、播放的操作都是通过它来实现的。通过Open Core,程序员可以方便快速的开发出想要的多媒体应用程序。GSM技术:(依赖硬件)Global System for Mobile Communications,全球通讯系统,俗
14、称“全球通”,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。蓝牙,EDGE,3G and WiFi:(依赖硬件)蓝牙和Wi-Fi都是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。EDGE(Enhanced Data Rate for GSM Evolution),是增强型数据速率GSM演进技术。Cameram,GPS,compass,andaccelerometer:(依赖硬件)GPS(Global Positioning System),即全球定位系统。它是由一个由覆盖全球的24颗卫星组成的卫星系统。Comp
15、ass是一个开放源码的Java搜索引擎框架。强大的开发环境:包括一个设备模拟器,调试工具,内存和性能检测,以及Eclipse IDE的开发插件。Eclipse是个集成开放环境。 Android架构Android的架构是由Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在DalvikVM上运行的。 图2-1Android架构 Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的
16、。 开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括; 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的
17、数据(如联系人数据库), 或者共享它们自己的数据 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库: 系统 C 库 - 一个从 BSD 继承来的标准
18、C 系统函数库( libc ), 它是专门为基于 embedded linux 的设备定制的。 媒体库 - 基于 PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, , MP3, AAC, AMR, JPG, PNG 。Surface Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。LibWebCore - 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。SGL - 底层的2D图形引擎3D libraries - 基于OpenGL ES
19、APIs实现;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。FreeType -位图(bitmap)和矢量(vector)字体显示。SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。 Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都
20、经由JAVA编译器编译,然后通过SDK中 的 dx 。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。Android 的核心系统服务依赖于 Linux 内核,如安全性、内存管理、进程管理、网络协议和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。 Android应用的构成和工作机制Android应用程序来说,是由Activity、Intent Receiver、Service、ContentProvider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件Android应用程序中所必需的,用于
21、定义应用程序的组件、组件的功能以及必要条件等。Android应用的构成和工作流程图如下:图2-2Android的构成和工作流程 Android与其他手机操作系统的比较我们主要从手机操作系统的Portablity、Reliability、Connectivity、Product Diversity、Open Platform、Kernal Size、Standards、Security和Special Features这九个方面进行了比较,具体的比较结果如下表:对上表比较的九项每一项以1分、0分三个级别来进行了评分,综合各项评分,最好得到的评分结果是Android 、Windows mobile
22、 、。Android基于开源的Linux以及标准的跨平台的编程语言Java,而且源代码开放,并且免费允许所有厂商和个人在其基础上进行开发,其开源和免费政策将赢得不少手机制造商的支持。而且在其平台上集成了不少优秀的开源工程,如Webkit、OpenGL等,相信在不久,将会有更多的优秀工程加入到Android中来。相比其他手机操作系统过于封闭的特性来说,Android在手机操作系统领域将会占有很大的优势,其功能也将会越来越强大。 本章小结 本章对Android平台的特征、架构以及Android应用的构成和工作机制进行了详细的分析。对于Android应用程序来说,主要由Activity、 Servi
23、ce、 Intent Receiver和Content Provider四部分组成,但并不是对于每一个应用程序,这四部分都是必须的。Activity是应用程序中最重要的一种构成块,我们对其进行了详细的分析,包括Activity的生命周期以及Activity之间的切换。最后对Android与其它的手机操作系统从九个方面进行了比较,说明了Android的优势。本系统主要用于对手机上网用户,在线浏览该网站,用户管理员可以对商品信息进行增删改查等功能,用户可以在该网站注册,注册后的用户还可以商品进行购买以及评价。: (1)手机上网用户可以进行浏览网站所有商品。(2)手机上网用户可以进行所需商品的查询。
24、(3)手机上网用户可以对喜欢的商品进行购买但必须进行注册网站会员才可以进行购买。 (4)手机上网用户进行网站会员的注册,然后进入用户主界面进行对商品选购,还可以对网站进行留言评价。(5)商品管理模块,详细记录了产品种类、名称、价格等信息,并根据需求及时更新商品信息。本系统主要实现功能:客户端登陆注册、浏览功能、订单功能、留言评价功能、服务器管理功能。该系统的架构如图3-2-1所示客户端登陆注册功能:注册手机商城的会员可以进行登录进入该用户的主界面。图3-2-2客户端登陆注册流程图图3-2-3客户端登陆注册用例图 浏览功能浏览功能:对网站所有的商品进行浏览操作。图3-2-4浏览功能的流程图图3-
25、2-5浏览功能的用例图 订单功能:注册手机商城的会员可以进行登陆,然后对所选商品进行购买,下订单。 图3-2-6订单功能的流程图图3-2-7订单功能的用例图留言评价功能:手机商城的注册用户可以在登录自己的用户主界面后对商品进行评价。图3-2-8留言评价流程图图3-2-9留言评价用例图服务器管理功能:手机商城的网站管理员登录到后台数据库可以对商品信息进行查询,修改,增加以及删除。例如节假日要对商品进行促销的修改价格。图3-2-10服务管理流程图图3-2-11服务管理用例图用户在浏览网站时首先看到的就是网站首页。在首页用户可以快速浏览最新商品,了解热门商品和推荐商品,也可以搜索已知的商品查看具体信
26、息。用户如果想要购买商品时必须要注册成为会员,在用户查看完商品的详细作息后,可以把自己想要购买的商品放入购物车当中,也可以随时修改、删除购物车里的商品,如果用户对购物车里的商品都很满意,可以去下订单。这时相关的程序模块会将用户所提交的所有信息都记录在数据里以便于商城的管理人员可以核对信息并在收款后准备发货,发货成功并且用户确认收到货物时整个购物过程便结束了。在电子商城的后台管理方面还需要添加、修改、删除商品,同时要对商品进行分类,订单的处理等都需要电子商城的管理人员来操作。为了更加清晰地表达系统的业务功能模块,画出流程图,对于不同的角色,所承担的任务各自不同,流程不一样,包括客户端流程(如图3
27、-3-1所示)和服务端流程(如图3-3-2所示)。图3-3-1客户端流程图图3-3-2服务端流程图图3-3-1后台管理框图图3-3-2客户端框图4详细设计与实现根据客户需求分析,小小手机商城的前台主要包括:搜索,登录,注册,商品浏览,商品购买,留言评价等功能模块。前台流程如下图4-1-1:图4-1-1前台实现流程图小小手机商城的后台主要是三个模块组成,分别是:会员管理,购买信息的管理和商品信息的管理(包括数据的查询,修改,增加,删除)。后台流程如下图4-1-2:图4-1-2后台实现流程图手机用户登录的前台首页,用户可以掌握最新网站商品信息,还可以实现搜索,浏览等功能。前台首页运行结果如图4-2
28、-1所示:图4-2-1前台首页运行界面用户注册也就是收集、记录用户详细信息的一个过程,程序将用户的注册信息写入到了phoneuserinfo表里。用户注册页面运行结果如图4-2-2所示:图4-2-2用户注册页面运行界面用户经过注册成为网站会员,登录后可以进行购买,留言评价等功能。用户登录页面运行结果如图4-2-3所示:图4-2-3用户登录页面运行界面用户在经过对网站商品信息的了解,根据个人喜好对商品进行筛选,例如用户对手机中sony品牌较为喜爱,可以在搜索框中键入sony,网站将所有sony的所有商品显示,用户可以继续进行后续操作。用户搜索页面运行结果如图4-2-4所示:图4-2-4用户搜索页
29、面运行界面用户在登录首页后,可以查看商品信息。用户浏览页面运行结果如图4-2-5所示:图4-2-5用户浏览页面运行界面用户在浏览商品时想要进行商品的订购可以点击购买按钮,进入购买页面,填写购买信息,商品名称和商品个数必填,用户留言可以为空。用户留言将与其他购买信息写入buyinfo表,后台管理将根据表中信息对商品进行调整,如某些商品在长时间没有订购,可以对商品作下架处理。用户购买页面运行结果如图4-2-6,4-2-7所示:图4-2-6-1用户购买页面运行界面图4-2-6-2用户购买页面运行界面public class DBHelper public static Connection getD
30、BConnection() throws ClassNotFoundException,SQLException ResourceBundle bundle = ResourceBundle.getBundle();String driverClass = (driverClass);String userid = (userid);String password = (password);String url = (url);/ ();/ Connection conn = (jdbc:mysql:/localhost/android,root,123);return conn;管理员可以进
31、入MySQL,在连接pei中的android数据库中,进行修改。以实现对会员信息管理,购买信息的管理,商品信息的增加,删除,修改,查询。商品信息的管理如下图4-2-8-1,对表productinfo修改,修改字段内容以实现功能。图4-2-8-1商品信息管理会员信息的管理如下图4-2-8-2,对表phoneuserinfo修改,完善会员信息,以及删除非法会员。图4-2-8-2会员信息管理购买信息的管理如下图4-2-8-3,对表buyinfo修改,管理员对购买信息进行统计,以方便对商品的管理。图4-2-8-3购买信息管理在此次项目中我担任Struts2框架技术支持和手机客户端的设计。(1)在and
32、roid的手机客户端。具体代码流程为定义一个了Button类btnGO,从界面中取出按键将btnGO实例化, 创建一个Uri的链接到服务器端,用到的技术就是手机浏览器WebKit。Android应用端开始链接服务器端,将服务器端的页面信息通过手机客户端的WebView显示在Android手机界面上。以下是主要的实现代码:public void onCreate(Bundle savedInstanceState) (savedInstanceState);setContentView();btnGO = (Button) findViewById();(new () Overridepubli
33、c void onClick(View v) Uri url = Uri.parse(:8620/Struts2Test/);Intent intent = new Intent(, url);startActivity(intent););(2)为了解决网络的延迟问题,我们可以使用线程把手机客户端程序继续完善,采用了线程后可以解决网络的延迟,应答迟缓的现象,以下是用线程实现的核心代码:public class WebViewDemo extends Activity /* Called when the activity is first created. */ Override publi
34、c void onCreate(Bundle icicle) (icicle); setContentView(); webView1 = new WebView(this); webView1 .loadData( Can I focus?No I cannot!., text/html, utf-8); (webView1); (Download Faild _= + (); webView = new WebView(this); (:8620/Struts2Test/); new Thread(new WebDownloadListener(this).start(); WebView
35、 webView1; class WebDownloadListener implements Runnable, DownloadListener WebViewDemo wd; WebDownloadListener(WebViewDemo wd) = wd; /使用线程代码: public void run() int j=0; StringBuffer sb = new StringBuffer(); (正在连接网络); while (true) try (4 * 1000); j+; (.); webView1 = new WebView(wd); (:8620/Struts2Tes
36、t/); Message msg = (); (msg); catch (Throwable e) (); (); if (j= 3) webView1 = null; Message msg = (); (msg); break; public void onDownloadFailed(String arg0, int arg1) (Download Faild _= + arg0); public void onDownloadFinished(String arg0) (Download Finished = + arg0); setContentView(webView); publ
37、ic void onDownloadStart(String arg0, String arg1, long arg2, Message arg3, Message arg4) (Download Faild _= + arg0); public void onDownloadSuspended(String arg0, Message arg1) (Download Faild _= + arg0); Handler mHandler = new Handler() Override public void handleMessage(Message msg) (msg); /invalid
38、ate(); if(webView1 = null) setContentView(webView); else setContentView(webView1); ; WebView webView = null; (3)在这个项目中,我们项目组主要采用了MVC的设计模式,MVC英文即Model-View-Controller视图(View) 与用户交互的界面,对于Web应用系统来说,可以是HTML页面、JSP 、XML和Applet等。控制(Controller)接收用户请求, 根据用户不同请求去调用不同模型,再根据调用的不同结果跳转到响应的视图,它是应用系统的CUP,是调度中心。模型(M
39、odel)它是业务逻辑层,是业务逻辑处理的核心。这么来设计就是为了把表示层和下面的业务逻辑层和数据持久层分开。这么可以使层次更加分明,使得分工更加明确。大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用 HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。下面我们可以用图表看一下他们具体之间的关系:而且struts2框
40、架技术就是很好的实现MVC的设计模式的一种,在我们项目的中的搜索模块中就采用了这种模式,下面我来详细地说明我们是怎么样实现的。(4)首先我们来看VIEW(视图)的东西,在这里我们主要用JSP来开发界面,下面搜索页面的核心代码:请输入要查信息(如手机型号):(5)从手机客户端加载的信息通过Controller()进行判断,通过判断我们可以得知是class=(即Action为UserSearch)来进行数据的相关处理。(在这里就是MVC中的模板)文件是怎么处理的。其核心代码如下:public class UserSearch implements Action private List list;public List getList()