2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  基于Android的手機(jī)團(tuán)購(gòu)應(yīng)用的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  The Design and Implementation of Mobile Group Buy Applications Based On Android</p><p>  學(xué)生姓名

2、 </p><p>  學(xué) 號(hào) </p><p><b>  專業(yè)班級(jí) </b></p><p>  指導(dǎo)教師 </p><p><b>  2015年4月</b></p><p>&

3、lt;b>  摘 要</b></p><p>  近些年來(lái)我國(guó)網(wǎng)絡(luò)基礎(chǔ)設(shè)施不斷完善、信息技術(shù)不斷發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)基本實(shí)現(xiàn)了全民普及。而且隨著第三方支付工具如支付寶、財(cái)付通等的不斷發(fā)展和完善,網(wǎng)絡(luò)團(tuán)購(gòu)日益成為網(wǎng)民日常網(wǎng)絡(luò)生活的一項(xiàng)重要內(nèi)容。目前國(guó)內(nèi)的主流團(tuán)購(gòu)網(wǎng)站美團(tuán)、百度糯米、大眾點(diǎn)評(píng)等等都推出了自己的手機(jī)團(tuán)購(gòu)應(yīng)用程序,這顯示各大團(tuán)購(gòu)網(wǎng)站對(duì)手機(jī)端團(tuán)購(gòu)群體的爭(zhēng)奪越來(lái)越激烈。</p&g

4、t;<p>  Android是一種以Linux為基礎(chǔ)的開(kāi)放源碼操作系統(tǒng),主要用于便攜設(shè)備,由Google公司在2007年11月5日正式公布。雖然Apple iOS、微軟Windows Phone和黑莓都占有一定的市場(chǎng),但截至目前,Android仍保持智能手機(jī)市場(chǎng)強(qiáng)勁主導(dǎo)地位,出貨量持續(xù)增長(zhǎng)。在中國(guó)市場(chǎng),Android份額更是接近84%,因此選擇在安卓智能手機(jī)平臺(tái)上開(kāi)發(fā)一個(gè)手機(jī)團(tuán)購(gòu)應(yīng)用是很有意義的。</p>

5、<p>  本系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)了一款手機(jī)團(tuán)購(gòu)應(yīng)用,整個(gè)系統(tǒng)基于 C/S 架構(gòu),由客戶端和服務(wù)器端兩個(gè)部分構(gòu)成??蛻舳素?fù)責(zé)向用戶呈現(xiàn)各類(lèi)信息、向服務(wù)器端發(fā)送請(qǐng)求,服務(wù)器端接收請(qǐng)求并將處理結(jié)果返回給客戶端??蛻舳擞梢粋€(gè)Android應(yīng)用程序構(gòu)成,該應(yīng)用程序基于Eclipse(集成 ADT 插件)和 Android SDK 開(kāi)發(fā),實(shí)現(xiàn)了商品信息的展示、用戶信息的管理、用戶訂單信息的管理、購(gòu)物車(chē)功能、收貨地址管理等一系列功能;服務(wù)器端基

6、于 SSH 架構(gòu)實(shí)現(xiàn)了業(yè)務(wù)邏輯和具體數(shù)據(jù)的分離。開(kāi)發(fā)過(guò)程中的難點(diǎn)主要集中在業(yè)務(wù)邏輯的處理和數(shù)據(jù)持久化的實(shí)現(xiàn)。業(yè)務(wù)邏輯依賴前期的需求分析得到解決,數(shù)據(jù)的持久化借助 SQLite 技術(shù)得以實(shí)現(xiàn)。</p><p>  關(guān)鍵詞:安卓;團(tuán)購(gòu);C/S;Eclipse</p><p><b>  Abstract</b></p><p>  The netw

7、ork infrastructure of China has been improved in recent years. With the information technology developing, the coverage of computer network has became universal. Because of the continuous development of the third-party p

8、ayment tools, the network Group Buy is increasingly become an important thing to the online Internet users in their daily life. The current domestic Group Buy Websites, such as Meituan, Baidu Nuomi, Dazhongdianpin, and s

9、o on has launched their mobile phone Group Buy appli</p><p>  Android is a Linux-based open source operating system, mainly for portable devices, It is announced by Google in November 5, 2007. Although Apple

10、's iOS, Microsoft's Windows Phone and BlackBerry are also occupy a certain market, But so far, Android smartphone market still remains strong dominance, shipments continued to grow. In the Chinese market, Android

11、 system reached nearly 84% share of the market, So choose the Android platform to develop a mobile Group Buy application is very meaningful.</p><p>  The System carried out the development of the program int

12、erface on client part, which realize the interface design between client and server. The whole mobile phone Group Buy system based on C/S architecture, consists of client and server. Client is responsible for sending req

13、uests to the server, the server accepts the request, processes the request and returns the results to the client. Client consists of an Android application, the application is based on Eclipse with the Android SDK develo

14、pme</p><p>  Key Words:Android; Group Buy; C/S; Eclipse</p><p><b>  目 錄</b></p><p><b>  第1章 緒論1</b></p><p>  1.1 研究背景1</p><p>

15、  1.2 國(guó)內(nèi)發(fā)展現(xiàn)狀及趨勢(shì)1</p><p>  1.3 相關(guān)工作2</p><p>  1.4 論文結(jié)構(gòu)安排2</p><p>  第2章 關(guān)鍵技術(shù)介紹4</p><p>  2.1 開(kāi)發(fā)語(yǔ)言Java4</p><p>  2.2 系統(tǒng)架構(gòu)5</p><p>  2.3 And

16、roid平臺(tái)簡(jiǎn)介6</p><p>  2.3.1 Android 體系結(jié)構(gòu)6</p><p>  2.3.2 Android基本組件7</p><p>  2.3.3 Android 應(yīng)用工程源碼結(jié)構(gòu)9</p><p>  2.4 SSH 框架簡(jiǎn)介10</p><p>  2.5 Quartz調(diào)度框架11

17、</p><p>  2.5.1 Quartz存儲(chǔ)方式12</p><p>  2.5.2 Quartz觸發(fā)器12</p><p>  2.5.3 Quartz調(diào)度器12</p><p>  2.5.4 Quartz在本系統(tǒng)中的應(yīng)用12</p><p>  2.6 本章小結(jié)13</p><

18、p>  第3章 系統(tǒng)分析14</p><p>  3.1系統(tǒng)結(jié)構(gòu)分析14</p><p>  3.2業(yè)務(wù)模塊分析15</p><p>  3.2.1 注冊(cè)登錄模塊分析15</p><p>  3.2.2 商品信息展示模塊分析16</p><p>  3.2.3 購(gòu)物車(chē)模塊分析16</p>

19、<p>  3.2.4 訂單模塊分析17</p><p>  3.3本章小結(jié)18</p><p>  第4章 系統(tǒng)設(shè)計(jì)19</p><p>  4.1客戶端和服務(wù)器之間的通信設(shè)計(jì)20</p><p>  4.1.1 連接方式的設(shè)計(jì)20</p><p>  4.1.2 客戶端服務(wù)器之間的數(shù)據(jù)處理

20、20</p><p>  4.2業(yè)務(wù)邏輯設(shè)計(jì)21</p><p>  4.2.1 登錄注冊(cè)模塊業(yè)務(wù)邏輯21</p><p>  4.2.2 商品信息模塊業(yè)務(wù)邏輯23</p><p>  4.2.3 訂單模塊業(yè)務(wù)邏輯24</p><p>  4.2.4 購(gòu)物車(chē)模塊業(yè)務(wù)邏輯26</p><p&

21、gt;  4.2.5 地址管理模塊業(yè)務(wù)邏輯26</p><p>  4.2.6 收藏夾管理模塊業(yè)務(wù)邏輯26</p><p>  4.3數(shù)據(jù)庫(kù)設(shè)計(jì)27</p><p>  4.4本章小結(jié)29</p><p>  第5章 系統(tǒng)實(shí)現(xiàn)30</p><p>  5.1客戶端和服務(wù)器之間的通信30</p>

22、<p>  5.1.1 通信連接的建立30</p><p>  5.1.2 通信數(shù)據(jù)的處理31</p><p>  5.2系統(tǒng)功能模塊的實(shí)現(xiàn)32</p><p>  5.2.1 用戶登錄注冊(cè)功能的實(shí)現(xiàn)32</p><p>  5.2.2 商品信息展示功能的實(shí)現(xiàn)35</p><p>  5.2.3

23、購(gòu)物車(chē)功能的實(shí)現(xiàn)36</p><p>  5.2.4 結(jié)算模塊功能的實(shí)現(xiàn)38</p><p>  5.2.5 收藏夾模塊功能的實(shí)現(xiàn)39</p><p>  5.3本章小結(jié)40</p><p><b>  第6章 總結(jié)41</b></p><p><b>  參考文獻(xiàn)42<

24、;/b></p><p><b>  致謝43</b></p><p><b>  第1章 緒論</b></p><p>  本章主要介紹了網(wǎng)絡(luò)團(tuán)購(gòu)的現(xiàn)狀及其未來(lái)的發(fā)展趨勢(shì)、智能手機(jī)操作系統(tǒng)的現(xiàn)狀和它們各自所占的市場(chǎng)份額,以及論文的主體內(nèi)容和論文的結(jié)構(gòu)框架。</p><p><b>

25、;  1.1 研究背景</b></p><p>  近些年來(lái)隨著我國(guó)網(wǎng)絡(luò)基礎(chǔ)設(shè)施的不斷完善、信息技術(shù)不斷發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)在全國(guó)范圍內(nèi)基本實(shí)現(xiàn)了全民普及。伴隨著第三方支付工具的不斷發(fā)展和完善,網(wǎng)絡(luò)購(gòu)物日益成為網(wǎng)民日常網(wǎng)絡(luò)生活的一項(xiàng)重要內(nèi)容。而網(wǎng)絡(luò)團(tuán)購(gòu)作為網(wǎng)上購(gòu)物的一種組成方式,具備了網(wǎng)絡(luò)購(gòu)物的所有優(yōu)點(diǎn),如方便、快捷、不受地域限制等,最重要的是網(wǎng)絡(luò)團(tuán)購(gòu)可以享受比普通網(wǎng)購(gòu)更低的價(jià)格,而價(jià)格優(yōu)勢(shì)又成為其受

26、廣大網(wǎng)民歡迎的最主要的核心優(yōu)勢(shì),不斷增長(zhǎng)的移動(dòng)互聯(lián)網(wǎng)終端使得手機(jī)團(tuán)購(gòu)必然會(huì)成為繼網(wǎng)站購(gòu)物后又一種比較流行的購(gòu)物方式。手機(jī)團(tuán)購(gòu)具有操作方便、簡(jiǎn)單的特點(diǎn),而且經(jīng)過(guò)多年的發(fā)展,第三代移動(dòng)通信(3G)技術(shù)得到了廣泛的接受和第四代移動(dòng)通信技術(shù)(4G)的興起,為移動(dòng)終端用戶帶來(lái)了更快的數(shù)據(jù)傳輸速率,這就更加推動(dòng)了手機(jī)團(tuán)購(gòu)必然會(huì)成為又一種流行的購(gòu)物方式。</p><p>  1.2 國(guó)內(nèi)發(fā)展現(xiàn)狀及趨勢(shì)</p>&

27、lt;p>  據(jù)易觀智庫(kù)最新發(fā)布的《中國(guó)移動(dòng)互聯(lián)網(wǎng)數(shù)據(jù)盤(pán)點(diǎn)&預(yù)測(cè)專題研究報(bào)告2015》數(shù)據(jù)顯示,在2014年,中國(guó)移動(dòng)互聯(lián)網(wǎng)市場(chǎng)規(guī)模迎來(lái)增速高峰值,增長(zhǎng)率達(dá)到183.8%,總量達(dá)13437.7億元人民幣。在用戶移動(dòng)化行為習(xí)慣逐漸養(yǎng)成的前提下,2014年移動(dòng)互聯(lián)網(wǎng)整體市場(chǎng)表現(xiàn)突出,其中,移動(dòng)購(gòu)物是增長(zhǎng)的主要驅(qū)動(dòng)力。雖然中國(guó)移動(dòng)互聯(lián)網(wǎng)用戶規(guī)模增速有所放緩,但用戶數(shù)達(dá)到7.3億人,與2013年相比增長(zhǎng)11.8%,繼續(xù)保持著超越P

28、C端用戶量的態(tài)勢(shì)[1]。目前針對(duì)智能手機(jī)的操作系統(tǒng),主要有Apple公司的IOS、Google公司的Android、微軟公司的Windows Phone和加拿大Research In Motion(簡(jiǎn)稱RIM)公司的Blackberry系統(tǒng)。其中,Google公司的Android系統(tǒng)因其開(kāi)放性而受到全世界人民的喜愛(ài),占據(jù)著智能手機(jī)市場(chǎng)的主導(dǎo)地位,Android系統(tǒng)智能手機(jī)出貨量持續(xù)增長(zhǎng),占總份額的近84%,并且其占有率仍處于上升趨勢(shì)。&

29、lt;/p><p><b>  1.3 相關(guān)工作</b></p><p>  一個(gè)界面友好,功能合理的手機(jī)團(tuán)購(gòu)應(yīng)用,可以吸引更多網(wǎng)購(gòu)客戶,提高自己的知名度。在一定程度上,一個(gè)友好絢麗、使用體驗(yàn)良好的界面可以決定一個(gè)應(yīng)用的生命周期。本文接下來(lái)將從三個(gè)方面描述手機(jī)團(tuán)購(gòu)應(yīng)用的開(kāi)發(fā)過(guò)程:</p><p><b>  (1) 需求分析</b&

30、gt;</p><p>  這是程序開(kāi)發(fā)的首要任務(wù),清晰地分析和理解問(wèn)題是解決問(wèn)題的前提條件,通過(guò)需求分析弄清楚程序要實(shí)現(xiàn)的功能,實(shí)現(xiàn)的難點(diǎn),理清各種功能模塊之間的調(diào)用關(guān)系。做好這些工作之后就可以大大提供程序的開(kāi)發(fā)效率,節(jié)約時(shí)間成本。</p><p>  (2) 客戶端的設(shè)計(jì)和實(shí)現(xiàn)</p><p>  在之前需求分析結(jié)果的基礎(chǔ)之上,依據(jù)需求分析文檔中的要求,逐步實(shí)現(xiàn)

31、客戶端的各項(xiàng)功能。重點(diǎn)實(shí)現(xiàn)的內(nèi)容包括:客戶端程序的界面設(shè)計(jì)和實(shí)現(xiàn)、商品圖片的異步加載方式、一些較大數(shù)據(jù)的壓縮和解壓縮、客戶端和服務(wù)器端之間的通信接口設(shè)計(jì)。</p><p>  (3) 與服務(wù)器端的通信</p><p>  通過(guò)分析研究,首先定義一種服務(wù)器端和客戶端都可以接受的通信格式。其次,根據(jù)客戶端的具體需求,定義一個(gè)能夠跟服務(wù)器高效地進(jìn)行數(shù)據(jù)交換的接口。根據(jù)之前需求分析的結(jié)果,從中抽象

32、出各個(gè)實(shí)體所對(duì)應(yīng)的類(lèi),為之后的數(shù)據(jù)庫(kù)設(shè)計(jì)打好基礎(chǔ)。最后將定義在需求文檔中的業(yè)務(wù)邏輯接口合理實(shí)現(xiàn)。在設(shè)計(jì)客戶端和服務(wù)器端之間通信方式的過(guò)程中,作者使用基于JSON 的數(shù)據(jù)交換格式,該數(shù)據(jù)格式采用完全獨(dú)立于具體程序語(yǔ)言的本文格式,采用 C 系語(yǔ)言的定義風(fēng)格,易于程序員的編寫(xiě)閱讀,非常適用于通信壓力較輕的應(yīng)用場(chǎng)合。</p><p>  1.4 論文結(jié)構(gòu)安排</p><p>  根據(jù)軟件的實(shí)際開(kāi)發(fā)

33、過(guò)程,將本論文劃分為六大章節(jié)。</p><p>  第一章為緒論,主要介紹了研究課題的背景,相關(guān)課題在國(guó)內(nèi)的研究發(fā)展現(xiàn)狀,研究實(shí)現(xiàn)過(guò)程中所要解決的一些重要問(wèn)題和使用到的一些重要技術(shù),以及研究過(guò)程的簡(jiǎn)略描述。第二章為關(guān)鍵技術(shù)介紹,主要介紹了客戶端應(yīng)用程序開(kāi)發(fā)過(guò)程需要使用的一些關(guān)鍵技術(shù)和應(yīng)用到的技術(shù)架構(gòu)。第三章為系統(tǒng)需求分析,該購(gòu)物系統(tǒng)的業(yè)務(wù)邏輯一共分為六部分,用戶登錄模塊、用戶注冊(cè)模塊、商品展示模塊、購(gòu)物車(chē)模塊、訂

34、單模塊、其他功能模塊。良好的系統(tǒng)需求分析能夠?yàn)橹蟮捻?xiàng)目開(kāi)發(fā)打下良好基礎(chǔ)。第四章為系統(tǒng)詳細(xì)設(shè)計(jì),包括系統(tǒng)的整體架構(gòu)、客戶端和服務(wù)器端之間的通信設(shè)計(jì)、業(yè)務(wù)設(shè)計(jì),一共三個(gè)部分。第五章為系統(tǒng)實(shí)現(xiàn),在之前完成的系統(tǒng)需求分析和系統(tǒng)詳細(xì)設(shè)計(jì)的基礎(chǔ)上,具體實(shí)現(xiàn)客戶端和服務(wù)器端之間的通信以及系統(tǒng)各個(gè)功能模塊。第六章為總結(jié),總結(jié)了全文的主要內(nèi)容。</p><p>  第2章 關(guān)鍵技術(shù)介紹</p><p> 

35、 2.1 開(kāi)發(fā)語(yǔ)言Java</p><p>  Java的誕生要?dú)w功于Sun公司的“Green”項(xiàng)目,該項(xiàng)目是為了開(kāi)發(fā)一種用于管理控制電子消費(fèi)產(chǎn)品的分布式系統(tǒng)。開(kāi)發(fā)人員最初計(jì)劃使用C++開(kāi)發(fā),但是因?yàn)镃++的復(fù)雜性和安全性問(wèn)題,開(kāi)發(fā)者最后放棄使用C++,選擇在C++的基礎(chǔ)之上開(kāi)發(fā)一門(mén)新的語(yǔ)言O(shè)ak(java 的前身)。Oak于1995年1月更名為“java”。</p><p>  Java

36、是一種面向?qū)ο蟮母呒?jí)語(yǔ)言,它最大的特點(diǎn)就是平臺(tái)無(wú)關(guān)性,這使得 Java特別適合網(wǎng)絡(luò)環(huán)境內(nèi)的應(yīng)用程序開(kāi)發(fā)。目前Java有三種技術(shù)分支,它們分別是Java SE,Java EE,Java ME。Java SE是Java Platform Standard Edition 的英文縮寫(xiě),漢語(yǔ)意思是Java平臺(tái)標(biāo)準(zhǔn)版,適用于開(kāi)發(fā)標(biāo)準(zhǔn)的桌面程序、以及各種基礎(chǔ)的類(lèi)庫(kù)。 Java EE是Sun公司推出的企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)平臺(tái),能夠讓開(kāi)發(fā)人員短時(shí)間內(nèi)開(kāi)發(fā)

37、出健壯、跨平臺(tái)和易擴(kuò)展的服務(wù)器端應(yīng)用程序。Java ME是Sun公司推出的一種針對(duì)嵌入式電子消費(fèi)產(chǎn)品的應(yīng)用程序開(kāi)發(fā)版本。Java SE是Java EE和 JavaME的基礎(chǔ)[2]。</p><p>  Java的語(yǔ)法特征跟C++語(yǔ)言非常類(lèi)似,因此有C語(yǔ)言基礎(chǔ)或者C++基礎(chǔ)的程序員可以非常快速的上手Java。但是與C++相比,Java還是有自己的鮮明特點(diǎn):</p><p> ?。?)實(shí)現(xiàn)了自

38、動(dòng)管理內(nèi)存。Java語(yǔ)言本身提供了GC(垃圾回收)機(jī)制,垃圾回收器可以自動(dòng)的管理應(yīng)用程序所在的內(nèi)存空間,程序員不必再為申請(qǐng)內(nèi)存和釋放內(nèi)存勞心費(fèi)神,徹底遠(yuǎn)離了可怕的內(nèi)存泄露問(wèn)題。</p><p>  (2)取消了“指針”這一概念,以“引用”代替,使開(kāi)發(fā)人員擺脫了復(fù)雜的內(nèi)存訪問(wèn)和內(nèi)存管理問(wèn)題,從而使java語(yǔ)言開(kāi)發(fā)出來(lái)的程序更加安全健壯。</p><p> ?。?)取消了“多重繼承”,只支持單

39、一繼承,增加了接口概念和匿名內(nèi)部類(lèi),間接地實(shí)現(xiàn)了“多重繼承”機(jī)制的功能,避免了多重繼承帶來(lái)的復(fù)雜性。</p><p>  Java 語(yǔ)言是一種解釋型語(yǔ)言,跟 C、C++這種類(lèi)型的語(yǔ)言相比,java的執(zhí)行效率很低。因?yàn)镴ava程序的執(zhí)行必須依賴于Java解釋器,而java解釋器的存在使 java真正實(shí)現(xiàn)了“一次編寫(xiě),處處運(yùn)行”的目標(biāo),為了達(dá)到這個(gè)目標(biāo)而犧牲一部分效率還是非常值得的。另外,Java 語(yǔ)言具有特別強(qiáng)大的

40、、易于聯(lián)網(wǎng)的特點(diǎn),因此 Java特別適合開(kāi)發(fā)分布式的程序。在所有的計(jì)算機(jī)高級(jí)語(yǔ)言中,使用Java語(yǔ)言編寫(xiě)Socket 程序是最簡(jiǎn)單的[3]。</p><p><b>  2.2 系統(tǒng)架構(gòu)</b></p><p>  選擇一個(gè)合理的系統(tǒng)架構(gòu)能夠很大程度上決定一個(gè)項(xiàng)目的開(kāi)發(fā)成敗。在互聯(lián)網(wǎng)團(tuán)購(gòu)類(lèi)項(xiàng)目的開(kāi)發(fā)歷史中存在 C/S 和 B/S 兩種架構(gòu)。</p>&l

41、t;p>  在 B/S 體系結(jié)構(gòu)系統(tǒng)中,用戶通過(guò)瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求,服務(wù)器對(duì)瀏覽器的請(qǐng)求進(jìn)行處理,將用戶所需信息返回到瀏覽器。B/S 結(jié)構(gòu)簡(jiǎn)化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。實(shí)際上 B/S 體系結(jié)構(gòu)是把二層 C/S 結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來(lái),由 Web 服務(wù)器單獨(dú)組成一層來(lái)負(fù)擔(dān)其任務(wù),這樣能減輕客戶

42、機(jī)的壓力。這種三層體系結(jié)構(gòu)如圖 2.1 所示。</p><p>  圖 2.1 B/S 三層架構(gòu)示意圖</p><p>  C/S 架構(gòu)主要包括“客戶端”、“中間件”、“服務(wù)端”三大部分。用戶可以通過(guò)客戶端應(yīng)用程序向服務(wù)器發(fā)送各種請(qǐng)求,并接收從服務(wù)器返回的數(shù)據(jù)信息。服務(wù)器會(huì)接收來(lái)自客戶端的信息并作出響應(yīng),同時(shí)負(fù)責(zé)管理系統(tǒng)的各種后臺(tái)數(shù)據(jù)和信息,比如數(shù)據(jù)庫(kù)信息。服務(wù)器要面對(duì)的一個(gè)難點(diǎn)就是當(dāng)多個(gè)

43、用戶同時(shí)請(qǐng)求同一種資源時(shí),應(yīng)該如何響應(yīng)這些請(qǐng)求。中間件是客戶端程序和服務(wù)端程序溝通的橋梁,主要負(fù)責(zé)數(shù)據(jù)結(jié)構(gòu)的定義和數(shù)據(jù)傳輸。由于Android平臺(tái)的應(yīng)用開(kāi)發(fā)非常的便捷高效,借助一個(gè)自主的APP應(yīng)用程序,可以更加高效合理的展示團(tuán)購(gòu)商品信息,提高用戶的手機(jī)團(tuán)購(gòu)體驗(yàn),因此選擇C/S架構(gòu)作為本手機(jī)團(tuán)購(gòu)應(yīng)用的系統(tǒng)架構(gòu)。C/S 架構(gòu)的示意圖如圖 2.2 所示。</p><p>  圖 2.2 C/S 架構(gòu)示意圖</p&

44、gt;<p>  2.3 Android平臺(tái)簡(jiǎn)介</p><p>  Android 系統(tǒng)基于 Linux 內(nèi)核,但并不是標(biāo)準(zhǔn)的 linux 內(nèi)核。為了讓 Android 系統(tǒng)更加適用于移動(dòng)終端設(shè)備,google 對(duì) Linux 的內(nèi)核進(jìn)行了各種優(yōu)化和加強(qiáng)。 Android 平臺(tái)采用了一種“軟件疊層”的方式構(gòu)建,它由分別是應(yīng)用程序?qū)?、框架層、函?shù)庫(kù)層、運(yùn)行時(shí)庫(kù)、內(nèi)核五層構(gòu)成。這種構(gòu)架方式的好處就是各

45、層之間相互獨(dú)立,底層的改變不會(huì)影響上層。</p><p>  2.3.1 Android 體系結(jié)構(gòu)</p><p>  Android 體系結(jié)構(gòu)從上到下一共分為 5 層,分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、函數(shù)庫(kù)層、運(yùn)行時(shí)庫(kù)層、內(nèi)核層。應(yīng)用程序?qū)又饕到y(tǒng)的核心應(yīng)用程序,比如瀏覽器、電話薄、日歷計(jì)算器等等;應(yīng)用程序框架層為應(yīng)用程序?qū)犹峁┝怂枰?API,這些 API都包含在 Google

46、 提供的 Android SDK 中;函數(shù)庫(kù)層由大量的C/C++庫(kù)構(gòu)成,這些庫(kù)函數(shù)一般不會(huì)直接被應(yīng)用程序調(diào)用,而是被應(yīng)用程序框架層的API調(diào)用,而Java和C/C++之間的跨語(yǔ)言調(diào)用借助于JNI技術(shù);運(yùn)行時(shí)庫(kù)層包括核心庫(kù)和Dalvik虛擬機(jī),核心庫(kù)封裝了Java語(yǔ)言的全部功能,Dalvik虛擬機(jī)負(fù)責(zé)安卓應(yīng)用程序的運(yùn)行。內(nèi)核層主要負(fù)責(zé)內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型的實(shí)現(xiàn),位于整個(gè)架構(gòu)的最底層[4]。Android的體系結(jié)構(gòu)圖如圖

47、 2.3 所示。</p><p>  圖2.3 Android系統(tǒng)架構(gòu)圖</p><p>  2.3.2 Android基本組件</p><p>  Android 應(yīng)用程序通常是由一個(gè)或者多個(gè)基本組件構(gòu)成的。Android 應(yīng)用程序的基本組件包括:Activity(活動(dòng))、Service(服務(wù))、BroadcastReceiver(廣播)、 ContentProv

48、ider(內(nèi)容提供者) [5]。其中最常用也是最常用到的組件就是 Activity(活動(dòng)),下面簡(jiǎn)要的介紹一下這四種組件。</p><p> ?。?)Activity(活動(dòng))</p><p>  Activity 是 Android 系統(tǒng)中負(fù)責(zé)跟用戶進(jìn)行交互的組件,它為 Android 系統(tǒng)提供了可視化的用戶界面。如果一個(gè)安卓應(yīng)用程序包含多個(gè)用戶界面,那么這個(gè)安卓應(yīng)用必將包含多個(gè) Acti

49、vity。多個(gè) Activity 將組成一個(gè) Activity 棧,棧頂對(duì)象就是當(dāng)前處在活動(dòng)狀態(tài)的 Activity。隨著不同應(yīng)用的交替運(yùn)行,每個(gè) Activity 都可能從活動(dòng)狀態(tài)轉(zhuǎn)入非活動(dòng)狀態(tài),也可能從非活動(dòng)狀態(tài)轉(zhuǎn)入活動(dòng)狀態(tài)。</p><p>  Activity 具有四種狀態(tài):活動(dòng)狀態(tài)、暫停狀態(tài)、停止?fàn)顟B(tài)、銷(xiāo)毀狀態(tài)。當(dāng) Activity處于前臺(tái),用戶可見(jiàn)并可獲得焦點(diǎn)的時(shí)候,Activity就處在活動(dòng)狀態(tài);當(dāng)

50、其他 Activity位于前臺(tái),該 Activity 依然可見(jiàn)但無(wú)法獲得焦點(diǎn),該 Activity 處在暫停狀態(tài);當(dāng)Activity 不可見(jiàn),失去焦點(diǎn)時(shí),該 Activity 處在停止?fàn)顟B(tài);當(dāng) Activity所在的 Dalvik 進(jìn)程結(jié)束時(shí),Activity 處在銷(xiāo)毀狀態(tài)。這四種狀態(tài)的切換過(guò)程如圖2.4 所示。</p><p>  圖 2.4 Activity生命周期</p><p> 

51、 (2)Service(服務(wù))</p><p>  Android 系統(tǒng)架構(gòu)中, Service和Activity具有相同的地位。Service和Activity的區(qū)別就是Service處在后臺(tái)運(yùn)行沒(méi)有圖形界面。Service 運(yùn)行起來(lái)以后也會(huì)具有自己的生命周期。當(dāng)需要在后臺(tái)運(yùn)行服務(wù)或者監(jiān)控其他組件的狀態(tài)變化的時(shí)候,就需要借助 Service 組件了。Service 跟 Activity 類(lèi)似,也具有自己的生命周

52、期,分別為:創(chuàng)建(onCreate)、開(kāi)始(OnStart)、運(yùn)行(ServiceRunning)、停止(OnStop)、銷(xiāo)毀(OnDestroy)。</p><p> ?。?)BroadcastReceiver(廣播)</p><p>  顧名思義,BroadcastReceiver代表的就是廣播消息接收器,該組件本質(zhì)上是一種全局的監(jiān)聽(tīng)器,可以監(jiān)聽(tīng)的系統(tǒng)全部的廣播。從代碼的實(shí)現(xiàn)角度來(lái)看,

53、它非常類(lèi)似于事件編程中的監(jiān)聽(tīng)器。與普通的事件監(jiān)聽(tīng)器不同的是, BroadcastReceiver 監(jiān)聽(tīng)的事件源是 Android 系統(tǒng)中的組件,普通事件監(jiān)聽(tīng)器監(jiān)聽(tīng)的事程序中的對(duì)象,利用這點(diǎn)我們可以非常方便的實(shí)現(xiàn)系統(tǒng)中不同組件之間的通信。需要注意的是對(duì)廣播的濫用會(huì)加重系統(tǒng)的功耗負(fù)載。</p><p>  (4)ContentProvider(內(nèi)容提供者)</p><p>  Android系

54、統(tǒng)中每個(gè)應(yīng)用程序都運(yùn)行在各自的Dalvik虛擬機(jī)中,也就是說(shuō)應(yīng)用程序之間是相互獨(dú)立的。但是在很多情況下,應(yīng)用程序之間也是需要實(shí)時(shí)地交換數(shù)據(jù)的,例如打電話的程序就要調(diào)用聯(lián)系人應(yīng)用中的電話號(hào)碼。</p><p>  ContentProvider就是Android系統(tǒng)為跨應(yīng)用進(jìn)程之間的數(shù)據(jù)交換設(shè)定的一種標(biāo)準(zhǔn)。通常ContentProvider和ContentResolver是配套使用的,一個(gè)應(yīng)用程序使用Content

55、Provider暴露自己的數(shù)據(jù),使用ContentResolver訪問(wèn)別的應(yīng)用程序的數(shù)據(jù)。</p><p>  2.3.3 Android 應(yīng)用工程源碼結(jié)構(gòu)</p><p>  目前,Android 應(yīng)用程序的主流開(kāi)發(fā)平臺(tái)是 Eclipse。通過(guò)在 Eclipse 中安裝 ADT插件,用戶可以非常方便的生成 Android 工程、管理虛擬機(jī)鏡像(AVD),調(diào)試Android 應(yīng)用程序、打包

56、 Android 應(yīng)用程序等等。</p><p>  在 Eclipse 環(huán)境下,一個(gè)典型的 Android 工程包括以下幾個(gè)目錄和文件:</p><p><b> ?。?)Src/</b></p><p>  該目錄下存放的是 Android 應(yīng)用的源文件,都是用 java 語(yǔ)言編寫(xiě)成的。</p><p><b&

57、gt; ?。?)Gen/</b></p><p>  該目錄下存放的系統(tǒng)自動(dòng)生成的文件。其中最核心的文件就是 R.java。R.java文件是由 appt 工具根據(jù)應(yīng)用的資源文件自動(dòng)生成的,換句話說(shuō) R.java 就是 Android應(yīng)用中的資源字典。需要注意的是,R.java 不可以刪除,即使被刪除了系統(tǒng)也會(huì)自動(dòng)生成。</p><p> ?。?)AndroidX.X/<

58、/p><p>  該目錄下存放的是Android SDK。這是Android應(yīng)用的程序開(kāi)發(fā)包,其中提供了 Android 系統(tǒng)開(kāi)放的所有 API。根據(jù)用戶設(shè)定的不同,該目錄下 SDK 的版本號(hào)也不盡相同。</p><p><b> ?。?)Bin/</b></p><p>  該目錄下存放生成的目標(biāo)文件,比如java二進(jìn)制文件、資源打包文件、Dal

59、vik虛擬機(jī)的可執(zhí)行文件(.dex 后綴)。</p><p><b> ?。?)Libs/</b></p><p>  該目錄存放用戶導(dǎo)入的第三方 jar 包。</p><p><b> ?。?)Res/</b></p><p>  Res目錄下存放了Android應(yīng)用的所有資源,包括圖片資源、顏色

60、資源、字符串資源、尺寸資源等等。按照Android的規(guī)定,不同的資源都會(huì)放在不同的目錄中,比如字符串資源就放在/res/value/string.xml 中。</p><p>  (7)AndroidManifest.xml</p><p>  AndroidManifest.xml 文件是每個(gè)Android工程必備的,這是一個(gè)安卓應(yīng)用的全局描述文件。AndroidManifest.xml

61、文件中制定了應(yīng)用的名稱、圖標(biāo)、包含的組件、應(yīng)用程序兼容的最低版本、以及要獲得的權(quán)限。</p><p>  2.4 SSH 框架簡(jiǎn)介</p><p>  SSH 框架在 Web 應(yīng)用開(kāi)發(fā)中是一種非常受歡迎的架構(gòu),它主要由 “struts”、“spring”、“hibernate”構(gòu)成,能夠幫助開(kāi)發(fā)人員在短時(shí)間內(nèi)開(kāi)發(fā)出結(jié)構(gòu)健壯、重用性強(qiáng)、方便后期維護(hù)的 Web 應(yīng)用。從功能的角度我們可以將 S

62、SH 分成三層:表示層、業(yè)務(wù)邏輯層、和數(shù)據(jù)持久層[6]。</p><p>  SSH 框架中,“spring”負(fù)責(zé)整個(gè)系統(tǒng)的底層架構(gòu),它主要負(fù)責(zé) MVC 模型結(jié)構(gòu)分離,控制業(yè)務(wù)調(diào)用流程;“hibernate”框架實(shí)現(xiàn)了對(duì) JDBC 的輕量級(jí)封裝,提供了對(duì)持久層的支持;“struts”負(fù)責(zé)總體的管理。采用 SSH 框架后,徹底實(shí)現(xiàn)了業(yè)務(wù)邏輯層和持久層的分離,無(wú)論前端怎樣變化,都不會(huì)對(duì)模型造成影響,數(shù)據(jù)庫(kù)結(jié)構(gòu)的改變也

63、不會(huì)影響到前端。</p><p>  SSH 框架模型如圖 2.5 所示:</p><p>  圖 2.5 SSH架構(gòu)結(jié)構(gòu)圖</p><p>  2.5 Quartz調(diào)度框架</p><p>  Quartz是一種由Java寫(xiě)成的開(kāi)源系統(tǒng)框架。應(yīng)用該項(xiàng)技術(shù)我們可以為一項(xiàng)作業(yè)創(chuàng)建簡(jiǎn)單或復(fù)雜的調(diào)度,提高開(kāi)發(fā)效率。在系統(tǒng)的開(kāi)發(fā)過(guò)程中,我們可能需要周

64、期性地執(zhí)行一些任務(wù),或者定時(shí)執(zhí)行某些任務(wù),這時(shí)我們就需要借助Quartz 技術(shù)了。</p><p>  2.5.1 Quartz存儲(chǔ)方式</p><p>  Quartz 主要支持兩種存儲(chǔ)方式:</p><p> ?。?)JDBC類(lèi)型的存儲(chǔ)。JDBC指的是Java數(shù)據(jù)庫(kù)連接,它是一種專門(mén)負(fù)責(zé)連接并操作數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)。使用該方式是需要安裝特定的JDBC驅(qū)動(dòng)程序和后臺(tái)數(shù)據(jù)

65、庫(kù)。</p><p> ?。?)RAMJobStore 機(jī)制。這是一種性能極好、易于使用配置的調(diào)度機(jī)制,從字面意思我們就可以看出,它將調(diào)度信息保存在內(nèi)存中。但缺點(diǎn)就是當(dāng)機(jī)器重新啟動(dòng)的時(shí)候所有的調(diào)度信息都會(huì)丟失。</p><p>  2.5.2 Quartz觸發(fā)器</p><p>  Quartz 框架中定義了觸發(fā)器機(jī)制和觸發(fā)器類(lèi)型,在該觸發(fā)器機(jī)制下作業(yè)和對(duì)作業(yè)的調(diào)度

66、是可以分離的,而作業(yè)被調(diào)度的時(shí)間點(diǎn)是由觸發(fā)器決定的。常用的觸發(fā)器有以下兩種類(lèi)型:</p><p> ?。?)CronTrigger。該觸發(fā)器是為復(fù)雜的任務(wù)調(diào)度設(shè)計(jì)的。如果我們要在某月的一號(hào)和十五號(hào)執(zhí)行某個(gè)任務(wù),我們就應(yīng)該選用這種觸發(fā)器。</p><p>  (2)Simple Trigger。從字面意思我們就可以知道這是一種用于簡(jiǎn)單任務(wù)調(diào)度的觸發(fā)器。如果我們需要一個(gè)任務(wù)在一個(gè)固定的時(shí)間點(diǎn)執(zhí)

67、行的話就選用這種觸發(fā)器,它非常類(lèi)似與 Java 語(yǔ)言中的 Timer(定時(shí)器)。</p><p>  2.5.3 Quartz調(diào)度器</p><p>  調(diào)度器是Quartz框架的核心,它借助于Quartz框架中的一些重要組件管理Quartz運(yùn)行時(shí)的環(huán)境。Quartz的架構(gòu)是一種基于多線程的架構(gòu),在該框架啟動(dòng)的時(shí)候,它會(huì)初始化一系列的worker線程,這些線程主要被調(diào)度器調(diào)用來(lái)執(zhí)行預(yù)設(shè)好的

68、任務(wù)。這就是Quartz能夠并行執(zhí)行多個(gè)任務(wù)的基本原理。</p><p>  2.5.4 Quartz在本系統(tǒng)中的應(yīng)用</p><p>  在系統(tǒng)的正常運(yùn)行中,隨時(shí)會(huì)面臨庫(kù)存的更新事件,比如有新的商品上架了或者舊的商品下市了,因此優(yōu)秀的調(diào)度機(jī)制是非常重要的。Quartz 框架恰好為我們提供了良好的調(diào)度接口,可以顯著提高程序的開(kāi)發(fā)效率。</p><p><b&g

69、t;  2.6 本章小結(jié)</b></p><p>  本章介紹了 Java 語(yǔ)言的特點(diǎn)、團(tuán)購(gòu)系統(tǒng)使用的架構(gòu)、輕量高效的 SSH 框架和 Android 系統(tǒng)相關(guān)的內(nèi)容。為接下來(lái)的系統(tǒng)需求分析和程序開(kāi)發(fā)奠定基礎(chǔ)。</p><p><b>  第3章 系統(tǒng)分析</b></p><p>  隨著手機(jī)上網(wǎng)用戶數(shù)量的激增、智能手機(jī)平板電腦的普

70、及、無(wú)線上網(wǎng)速度的提升、上網(wǎng)資費(fèi)的下降,借助手機(jī)進(jìn)行網(wǎng)上購(gòu)物成為一種必然的趨勢(shì)。而網(wǎng)絡(luò)團(tuán)購(gòu)作為一種新型的網(wǎng)購(gòu)模式,由于具有較高的品牌知名度、占有較大的市場(chǎng)份額、服務(wù)體系完善、售后好、產(chǎn)品質(zhì)量穩(wěn)定等特點(diǎn),而且相比于傳統(tǒng)電商而言,其價(jià)格也低于產(chǎn)品市場(chǎng)最低零售價(jià),能降低消費(fèi)者成本,并且產(chǎn)品的質(zhì)量也有很好的保證。因此,網(wǎng)絡(luò)團(tuán)購(gòu)模式也越來(lái)越受到人們的青睞。目前,國(guó)內(nèi)的各大團(tuán)購(gòu)網(wǎng)站(美團(tuán)、百度糯米、大眾點(diǎn)評(píng)等)均針對(duì)自己網(wǎng)站的特點(diǎn),推出了對(duì)應(yīng)的手機(jī)

71、團(tuán)購(gòu)軟件。在這樣一個(gè)大的背景下,作者也嘗試在安卓平臺(tái)上實(shí)現(xiàn)這種類(lèi)型的手機(jī)團(tuán)購(gòu)應(yīng)用。</p><p>  該團(tuán)購(gòu)系統(tǒng)的業(yè)務(wù)邏輯一共分為六部分,用戶登錄模塊、用戶注冊(cè)模塊、商品展示模塊、購(gòu)物車(chē)模塊、訂單模塊、其他功能模塊。</p><p><b>  3.1系統(tǒng)結(jié)構(gòu)分析</b></p><p>  整個(gè)系統(tǒng)可以分為客戶端和服務(wù)器端,客戶端可以實(shí)現(xiàn)用

72、戶的注冊(cè)和登錄,可以進(jìn)行商品搜索,商品瀏覽,商品購(gòu)買(mǎi),訂單管理,購(gòu)物車(chē)管理,收藏夾管理等功能。服務(wù)器端可以實(shí)現(xiàn)會(huì)員管理,團(tuán)購(gòu)商品增加、刪除、查找、修改和訂單管理等功能。具體系統(tǒng)結(jié)構(gòu)如圖3.1所示。</p><p>  圖 3.1 系統(tǒng)結(jié)構(gòu)圖</p><p><b>  3.2業(yè)務(wù)模塊分析</b></p><p>  在該小節(jié)中將結(jié)合客戶端角度的

73、系統(tǒng)用例圖描述六個(gè)重要模塊的具體功能。這六個(gè)功能模塊分別是:用戶登錄模塊、用戶注冊(cè)模塊、商品展示模塊、購(gòu)物車(chē)模塊、訂單模塊、其他功能模塊。在本節(jié)接下來(lái)的部分中將詳細(xì)介紹這六個(gè)功能模塊的需求分析信息。手機(jī)團(tuán)購(gòu)應(yīng)用程序系統(tǒng)用例圖見(jiàn)圖3.2 所示。</p><p>  圖 3.2 系統(tǒng)用例圖</p><p>  3.2.1 注冊(cè)登錄模塊分析</p><p>  注冊(cè)模塊。

74、該模塊規(guī)定了賬號(hào)的格式、密碼的格式和長(zhǎng)度。賬號(hào)格式為一個(gè)已經(jīng)注冊(cè)的有效郵箱地址,如果用戶輸入的郵箱地址格式錯(cuò)誤,系統(tǒng)要彈出錯(cuò)誤提示信息。密碼由數(shù)字、英文字母構(gòu)成,長(zhǎng)度為 8-16 位,在用戶進(jìn)行注冊(cè)的時(shí)候,應(yīng)該讓用戶輸入兩次密碼,并確保兩次輸入的密碼一致,用戶注冊(cè)賬號(hào)成功后會(huì)自動(dòng)登錄并跳到系統(tǒng)首頁(yè)。</p><p>  登錄模塊。用戶填寫(xiě)的賬號(hào)、密碼信息在通過(guò)服務(wù)器端的驗(yàn)證后才可以成功登錄,系統(tǒng)能夠彈出用戶賬號(hào)或

75、者密碼錯(cuò)誤的提示信息。用戶登錄成功后會(huì)進(jìn)入系統(tǒng)首頁(yè),登錄失敗后還停留在在登錄界面用戶可以點(diǎn)擊取消按鈕跳到系統(tǒng)首頁(yè)。</p><p>  3.2.2 商品信息展示模塊分析</p><p>  商品信息模塊主要由四部分構(gòu)成,分別是:商品分類(lèi)、商品簡(jiǎn)略信息展示、商品詳細(xì)信息展示、商品列表項(xiàng)展示。</p><p>  商品分類(lèi)。商品分類(lèi)包括一級(jí)分類(lèi)和二級(jí)分類(lèi)。一級(jí)分類(lèi)包括美

76、食、娛樂(lè)、生活、酒店旅游、網(wǎng)購(gòu)和其他。二級(jí)分類(lèi)在一級(jí)分類(lèi)的基礎(chǔ)上對(duì)商品進(jìn)行了更細(xì)致的展示。</p><p>  商品列表。根據(jù)用戶選擇的不同排序方式,商品將按照對(duì)應(yīng)的方式顯示。這四種排序方式分別是:默認(rèn)排序、按價(jià)格排序、按折扣排序、按發(fā)布時(shí)間排序。默認(rèn)排序?qū)嶋H上就是按照銷(xiāo)量來(lái)排序,價(jià)格排序就是按照商品價(jià)格的高低來(lái)排序;折扣排序就是按照一件商品的折扣程度進(jìn)行排序;發(fā)布時(shí)間排序就是按照商品發(fā)布的時(shí)間先后來(lái)進(jìn)行排序。&

77、lt;/p><p>  商品簡(jiǎn)略信息展示。商品簡(jiǎn)略信息展示界面顯示“商品名稱、商品價(jià)格、商品圖片、商品折扣”四種類(lèi)型的信息。用戶在點(diǎn)擊商品圖片對(duì)應(yīng)的區(qū)域之后就可以進(jìn)入顯示商品詳細(xì)信息的界面。</p><p>  商品詳細(xì)信息展示。在商品詳細(xì)信息展示界面顯示“商品名稱、商品圖片、商品庫(kù)存數(shù)量、商品可選顏色、商品尺碼、商品評(píng)分”六種信息和“加入購(gòu)物車(chē)、收藏兩個(gè)按鈕”。用戶點(diǎn)擊“收藏”按鈕之后,如果

78、用戶還沒(méi)有登錄系統(tǒng)則系統(tǒng)會(huì)自動(dòng)跳轉(zhuǎn)到用戶登錄界面,用戶登錄成功以后系統(tǒng)會(huì)再次自動(dòng)跳轉(zhuǎn)到當(dāng)前商品詳細(xì)信息界面,并提示用戶添加收藏成功。一件商品可以多次被添加到收藏夾,但是收藏夾中只留有一份記錄。用戶點(diǎn)擊加入購(gòu)物車(chē)按鈕之后,購(gòu)物車(chē)中的商品數(shù)量會(huì)加一,一件商品可以多次加入到購(gòu)物車(chē)中。</p><p>  3.2.3 購(gòu)物車(chē)模塊分析</p><p>  購(gòu)物車(chē)模塊必須實(shí)現(xiàn)以下三種功能:將商品添加至

79、購(gòu)物車(chē)、管理購(gòu)物車(chē)中的商品、購(gòu)物車(chē)中的商品信息展示。對(duì)應(yīng)的用例圖如圖3.3所示。</p><p>  圖 3.3 購(gòu)物車(chē)模塊用例圖</p><p>  商品添加至購(gòu)物車(chē)。用戶在已經(jīng)登錄的情況下,點(diǎn)擊商品界面的添加至購(gòu)物車(chē)按鈕就可以把喜歡的商品成功添加至購(gòu)物車(chē)。</p><p>  購(gòu)物車(chē)中的商品信息展示。用戶可以在購(gòu)物車(chē)中瀏覽已選商品的各項(xiàng)信息。這些信息包括:商品總

80、量、總體的金額(不包含運(yùn)費(fèi)的情況下)、商品所能累積的積分、對(duì)應(yīng)商品的具體信息、商品對(duì)應(yīng)的折扣信息、最后訂單支付時(shí)的實(shí)際金額。用戶可以通過(guò)單擊商品信息瀏覽界面的“加入購(gòu)物車(chē)”按鈕進(jìn)入購(gòu)物車(chē)商品信息展示界面。</p><p>  管理購(gòu)物車(chē)中的商品。管理購(gòu)物車(chē)中商品的界面跟購(gòu)物車(chē)中的商品信息展示界面類(lèi)似。二者的區(qū)別就是在管理購(gòu)物車(chē)中的商品的界面中,商品的數(shù)量是可編輯的。用戶可以增加或者減少已選商品的數(shù)量。而在購(gòu)物車(chē)中

81、的商品信息展示界面中,商品的數(shù)量和信息都是固定的,用戶只能瀏覽而不能夠編輯。</p><p>  3.2.4 訂單模塊分析</p><p>  訂單模塊要實(shí)現(xiàn)“送貨地址選擇、支付方式選擇、訂單提交、訂單支付”四個(gè)核心子模塊。訂單模塊這部分內(nèi)容是整個(gè)系統(tǒng)的一個(gè)核心部分,直接影響到系統(tǒng)開(kāi)發(fā)的成敗。</p><p>  訂單支付子模塊要處理顯示“訂單金額、送貨地址、支付方

82、式、用戶留言“等。用戶必須通過(guò)點(diǎn)擊購(gòu)物車(chē)界面中的“去結(jié)算” 按鈕才可以進(jìn)入訂單支付界面。</p><p>  送貨地址選擇。送貨地址子模塊要保留用戶填寫(xiě)的地址信息。并且可以保留用戶地址信息的歷史記錄。使得用戶提交訂單的時(shí)候不用再次填寫(xiě)訂單信息。</p><p>  支付方式選擇。通過(guò)該模塊用戶可以選擇自己期望的支付方式。例如:貨到付快、各種電子銀行、網(wǎng)銀、支付寶等等。</p>

83、<p>  訂單提交。用戶點(diǎn)擊結(jié)算中心的按鈕就可以提交訂單。訂單提交成功后用戶就可以收到由“訂單號(hào)、支付金額提示”兩條信息組成的提示框。</p><p>  訂單支付。在用戶成功完成支付后,系統(tǒng)會(huì)自動(dòng)跳轉(zhuǎn)到購(gòu)物車(chē)界面,并提示支付成功。</p><p><b>  3.3本章小結(jié)</b></p><p>  在本章中簡(jiǎn)述了用戶在購(gòu)物流

84、程中所涉及到的系統(tǒng)功能模塊,并根據(jù)系統(tǒng)功能用例圖簡(jiǎn)要介紹了注冊(cè)登錄模塊、商品信息展示模塊、購(gòu)物車(chē)模塊、訂單模塊四個(gè)核心模塊。為接下來(lái)的源碼開(kāi)發(fā)提供支持打好基礎(chǔ)。</p><p><b>  第4章 系統(tǒng)設(shè)計(jì)</b></p><p>  根據(jù)第三章中完成的系統(tǒng)需求分析的結(jié)果,本章將詳細(xì)介紹系統(tǒng)的整體架構(gòu)、客戶端服務(wù)器之間的通信設(shè)計(jì)、業(yè)務(wù)層設(shè)計(jì),一共三部分。</p

85、><p>  從手機(jī)團(tuán)購(gòu)系統(tǒng)全局的角度劃分,系統(tǒng)主要分為兩部分:客戶端和服務(wù)器端??蛻舳酥傅氖茿ndroid系統(tǒng)平臺(tái)上的應(yīng)用程序。服務(wù)器主要是指由J2EE服務(wù)器、 Web 服務(wù)器和數(shù)據(jù)庫(kù)構(gòu)成的服務(wù)端。該系統(tǒng)總體框架的示意圖如圖4.1所示。</p><p>  圖 4.1 系統(tǒng)總體框架圖</p><p>  從功能的角度,將系統(tǒng)劃分為四層:視圖層(View)、數(shù)據(jù)通信層、

86、業(yè)務(wù)層、數(shù)據(jù)持久層。這種分層設(shè)計(jì)的思想可以帶來(lái)如下好處:各層與各層之間相互獨(dú)立,下一層的改變對(duì)上一層是透明的,可以有效降低系統(tǒng)中間各個(gè)模塊之間的耦合度,強(qiáng)化了系統(tǒng)的可擴(kuò)展性,提高了系統(tǒng)的可維護(hù)性。視圖層代表的是 Android 應(yīng)用程序?qū)用?,該層主要處理用戶的?qǐng)求,將具有良好用戶體驗(yàn)的界面展示給用戶。數(shù)據(jù)通信層是視圖層和邏輯層之間的夾層,負(fù)責(zé)視圖層和邏輯層之間的通信,建立Socket 連接、接收發(fā)送數(shù)據(jù)、解析數(shù)據(jù)等等。業(yè)務(wù)層代表的是 J

87、2EE 服務(wù)器,它接收來(lái)自視圖層的請(qǐng)求,基于 Struts 這一開(kāi)源框架,對(duì)相應(yīng)的業(yè)務(wù)進(jìn)行處理。</p><p>  4.1客戶端和服務(wù)器之間的通信設(shè)計(jì)</p><p>  本系統(tǒng)的總體架構(gòu)是基于經(jīng)典的客戶端-服務(wù)器模式(C/S 架構(gòu))的。系統(tǒng)中所有的業(yè)務(wù)都是由客戶端發(fā)起,服務(wù)端捕獲并回應(yīng)的。因此設(shè)計(jì)一種客戶端和服務(wù)器之間的高效通信方式就顯得尤為重要。</p><p&g

88、t;  4.1.1 連接方式的設(shè)計(jì)</p><p>  本系統(tǒng)中所有跟網(wǎng)絡(luò)相關(guān)的操作都依賴于http協(xié)議,雖然jdk中的net包已經(jīng)封裝了訪問(wèn)http協(xié)議的基本操作,但功能還是不夠豐富不夠靈活。因此借助Httpclient工具包,利用該工具包中提供的豐富、高效的API可以快速開(kāi)發(fā)出一個(gè)網(wǎng)絡(luò)客戶端程序,方便地發(fā)起客戶端網(wǎng)絡(luò)連接。</p><p>  本系統(tǒng)通信模式的設(shè)計(jì)方案如下:客戶端先捕

89、獲用戶出發(fā)的各種事件,然后向服務(wù)器的特定端口發(fā)起連接請(qǐng)求,連接建立以后,客戶端開(kāi)始向服務(wù)端發(fā)送數(shù)據(jù),服務(wù)端接收并解析客戶端發(fā)來(lái)的數(shù)據(jù),根據(jù)解析出來(lái)的結(jié)果調(diào)用相應(yīng)的業(yè)務(wù)邏輯模塊,獲得業(yè)務(wù)邏輯模塊返回的數(shù)據(jù),接著服務(wù)端封裝數(shù)據(jù)并反饋至客戶端,客戶端接收服務(wù)端發(fā)來(lái)的數(shù)據(jù),并對(duì)其進(jìn)行解析。</p><p>  4.1.2 客戶端服務(wù)器之間的數(shù)據(jù)處理</p><p>  本系統(tǒng)選用 JSON 作為

90、客戶端和服務(wù)器之間的通信格式。JSON 的英文全拼是JavaScript Object Notation,它是一種輕量級(jí)的數(shù)據(jù)通訊方式,發(fā)源于 JavaScript。 JSON 采用完全獨(dú)立于任何語(yǔ)言的數(shù)據(jù)格式,但保留了 C 系計(jì)算機(jī)語(yǔ)言的一些語(yǔ)法習(xí)慣,因此很容易被人理解運(yùn)用,也有利于機(jī)器的解析。</p><p>  對(duì)象和數(shù)組是 JSON 中的兩種基本數(shù)據(jù)結(jié)構(gòu),對(duì)象指的是由{}括起來(lái)的內(nèi)容,結(jié)構(gòu)為{key.Va

91、lue…},其中 Key 表示的是對(duì)象的屬性,Value 表示的是該屬性的屬性值;數(shù)組指的是由[]括起來(lái)的內(nèi)容,結(jié)構(gòu)為[“Android”,”Java”,…],跟 C 語(yǔ)言中的數(shù)組定義方式幾乎一樣,可以包含數(shù)字、字符串、對(duì)象等等[7]。之所以沒(méi)有選擇 XML數(shù)據(jù)格式是因?yàn)?XML 數(shù)據(jù)格式會(huì)導(dǎo)致數(shù)據(jù)量過(guò)大(各種標(biāo)示符),解析 XML 文件要付出較大的性能開(kāi)銷(xiāo)。</p><p>  為了避免出現(xiàn)中文數(shù)據(jù)傳遞過(guò)程中出

92、現(xiàn)中文亂碼的情形,服務(wù)器和客戶端的所有程序都使用 UTF-8 標(biāo)準(zhǔn)作為編碼標(biāo)準(zhǔn)。接下來(lái)說(shuō)明一些數(shù)據(jù)的發(fā)送和解析過(guò)程??蛻舳藢?shù)據(jù)寫(xiě)入一個(gè) JSON 對(duì)象中,之后將該對(duì)象轉(zhuǎn)化為字節(jié)流借助 Http協(xié)議將其發(fā)送到服務(wù)器端。服務(wù)器接收到該字節(jié)流之后,先將它轉(zhuǎn)換成字符流,再轉(zhuǎn)換成 JSON 對(duì)象,然后服務(wù)器按照客戶端和服務(wù)器之間的通信協(xié)議中規(guī)定的接口,解析出關(guān)鍵參數(shù),再按參數(shù)調(diào)用相應(yīng)的業(yè)務(wù)邏輯模塊。</p><p>&l

93、t;b>  4.2業(yè)務(wù)邏輯設(shè)計(jì)</b></p><p>  業(yè)務(wù)邏輯設(shè)計(jì)的是否合理直接關(guān)系到系統(tǒng)的開(kāi)發(fā)是否成功,并為后期的代碼維護(hù)和修改減輕很大負(fù)擔(dān),在本小節(jié)中主要介紹業(yè)務(wù)模塊需求分析所提出的功能模塊對(duì)應(yīng)的業(yè)務(wù)邏輯。</p><p>  4.2.1 登錄注冊(cè)模塊業(yè)務(wù)邏輯</p><p>  注冊(cè)模塊業(yè)務(wù)邏輯主要描述了用戶從客戶端向服務(wù)器注冊(cè)個(gè)人信

94、息的過(guò)程。該業(yè)務(wù)邏輯的具體描述如下:用戶在客戶端發(fā)起用戶注冊(cè)事件,之后客戶端程序?qū)⒂脩舻馁~號(hào)、密碼信息發(fā)送至中間件服務(wù)器。中間件服務(wù)器將這些信息保留在本地并轉(zhuǎn)發(fā)至位于最后臺(tái)的賬號(hào)管理服務(wù)器。如果在賬號(hào)管理服務(wù)器注冊(cè)信息成功,則返回注冊(cè)成功信息,中間件服務(wù)器會(huì)在本地將該賬號(hào)、密碼信息插入至自己的數(shù)據(jù)庫(kù),并初始化該賬號(hào)對(duì)應(yīng)的信息;如果返回注冊(cè)失敗的信息,則提示用戶重新輸入賬號(hào)密碼信息,注冊(cè)模塊對(duì)應(yīng)的業(yè)務(wù)流程圖如圖4.2所示。</p&g

95、t;<p>  圖 4.2 注冊(cè)模塊流程圖</p><p>  賬號(hào)模塊業(yè)務(wù)邏輯主頁(yè)負(fù)責(zé)用戶賬號(hào)的登錄和登出。用戶可以通過(guò)點(diǎn)擊屏幕下方菜單中的“更多”選項(xiàng),進(jìn)入賬號(hào)管理界面。賬號(hào)管理界面主要負(fù)責(zé)顯示用戶的賬號(hào)信息、昵稱信息、賬戶積分、賬戶等級(jí)等等。系統(tǒng)也提供了“退出登錄”選項(xiàng)。用戶可以點(diǎn)擊退出登錄按鈕退出登錄狀態(tài)。因?yàn)橘~號(hào)管理的業(yè)務(wù)邏輯非常簡(jiǎn)單,在這里就不給出賬號(hào)管理業(yè)務(wù)邏輯的流程圖了。</p

96、><p>  登錄模塊業(yè)務(wù)邏輯主要實(shí)現(xiàn)了用戶從客戶端登錄服務(wù)器的過(guò)程。該業(yè)務(wù)邏輯的具體描述如下:用戶在客戶端觸發(fā)用戶登錄事件,之后客戶端程序?qū)⒂脩舻馁~號(hào)、密碼信息發(fā)送至中間件服務(wù)器,之后中間件服務(wù)器再將用戶的賬號(hào)、密碼信息發(fā)送至位于最后端的賬號(hào)管理服務(wù)器,賬號(hào)管理服務(wù)器檢索自己維護(hù)的數(shù)據(jù)庫(kù),如果沒(méi)有查詢到該賬號(hào)、密碼所對(duì)應(yīng)的記錄則向中間件服務(wù)器返回錯(cuò)誤提示信息,之后中間件服務(wù)器再將這一信息返回至客戶端,并提示用戶再次

97、輸入正確的賬戶、密碼信息;如果賬號(hào)管理服務(wù)器返回的是正確的結(jié)果,中間件服務(wù)器會(huì)檢索自己在本地是否已經(jīng)存在該賬號(hào)所對(duì)應(yīng)的一系列用戶信息,如果已存在則更新相應(yīng)的本地用戶信息,如果不存在則在本地插入一條新的用戶信息。登錄模塊對(duì)應(yīng)的業(yè)務(wù)流程如圖4.3所示。</p><p>  圖 4.3 登錄模塊流程圖</p><p>  4.2.2 商品信息模塊業(yè)務(wù)邏輯</p><p>

98、;  該業(yè)務(wù)邏輯主要負(fù)責(zé)向用戶展示商品的具體信息。用戶進(jìn)入手機(jī)端的應(yīng)用程序以后,在主頁(yè)面會(huì)有六個(gè)分類(lèi)標(biāo)簽,用戶點(diǎn)擊感興趣的標(biāo)簽即可進(jìn)入商品信息的展示列表頁(yè)面,每個(gè)列表項(xiàng)都包含團(tuán)購(gòu)商品的圖片、描述價(jià)格和折扣信息。用戶點(diǎn)擊相應(yīng)的商品圖片可以進(jìn)入該商品詳細(xì)的購(gòu)買(mǎi)頁(yè)面,除了商品圖片、描述、價(jià)格和折扣以外還可以進(jìn)行收藏和加入購(gòu)物車(chē)等操作。</p><p>  圖 4.4 商品信息模塊流程圖</p><p

99、>  系統(tǒng)提供了四種為商品排序的方式。根據(jù)用戶選擇的不同排序方式,商品將按照對(duì)應(yīng)的方式顯示。這四種排序方式分別是:默認(rèn)排序(銷(xiāo)量排序)、價(jià)格高低排序、折扣排序、發(fā)布時(shí)間排序。默認(rèn)排序?qū)凑找唁N(xiāo)售商品數(shù)量的多少排序;價(jià)格高低排序就是按照商品價(jià)格的高低來(lái)排序;折扣排序就是根據(jù)一件商品打折的力度來(lái)進(jìn)行排序;發(fā)布時(shí)間排序就是按照商品上架順序來(lái)排列。商品的展示界面根據(jù)展示的信息多少也分為兩種,一種展示簡(jiǎn)略的商品信息,一種展示詳細(xì)的商品信息。

100、商品信息的獲取會(huì)觸發(fā)客戶端和服務(wù)器之間的交互。商品信息模塊業(yè)務(wù)流程具體情況如圖4.4所示。</p><p>  4.2.3 訂單模塊業(yè)務(wù)邏輯</p><p>  該模塊其實(shí)由兩部分構(gòu)成:訂單生成業(yè)務(wù)邏輯和訂單提交業(yè)務(wù)邏輯。訂單生成業(yè)務(wù)邏輯的具體描述如下:用戶進(jìn)入購(gòu)物車(chē)頁(yè)面之后,如果購(gòu)物車(chē)中的商品已經(jīng)確定,就可以點(diǎn)擊“結(jié)算”按鈕跳轉(zhuǎn)至訂單生成界面。如果用戶之前有過(guò)一次訂單成功提交的記錄,訂

101、單生成界面會(huì)自動(dòng)加載上一次訂單中的關(guān)鍵信息(收貨人信息、支付方式、送貨時(shí)間和送貨方式等)。如果用戶是首次觸發(fā)訂單生成業(yè)務(wù)或者上次的訂單信息需要改變,用戶可以自己在對(duì)應(yīng)的文本框中填寫(xiě)收貨人信息、支付方式、送貨時(shí)間、送貨方式等。在確認(rèn)無(wú)誤之后用戶就可以點(diǎn)“訂單提交”按鈕觸發(fā)訂單提交業(yè)務(wù)。在訂單提交之后用戶可以點(diǎn)擊“繼續(xù)購(gòu)物”按鈕返回商品列表繼續(xù)瀏覽商品信息,也可以單擊“首頁(yè)”返回應(yīng)用程序的開(kāi)始界面。訂單生成業(yè)務(wù)流程的具體描述見(jiàn)圖 4.5所示

102、。</p><p>  圖 4.5 訂單信息模塊流程圖</p><p>  訂單提交業(yè)務(wù)邏輯的具體描述如下:用戶在確認(rèn)訂單信息正確無(wú)誤之后點(diǎn)擊提交訂單按鈕??蛻舳顺绦驎?huì)創(chuàng)建一個(gè)新線程,該線程會(huì)將訂單生成頁(yè)面中的訂單信息和 URL 地址按照規(guī)定格式封裝并發(fā)送給中間件服務(wù)器,中間件服務(wù)器收到信息之后再轉(zhuǎn)發(fā)給最后臺(tái)的電商服務(wù)器。需要注意的是客戶端轉(zhuǎn)發(fā)的服務(wù)器地址都是設(shè)定好的、固定不變的。電商服務(wù)

103、器在解析訂單信息之后,查詢本地服務(wù)器。如果庫(kù)存中有存貨,則向中間件服務(wù)器發(fā)送訂單提交成功信息并返回訂單號(hào)。之后中間件服務(wù)器再向客戶端轉(zhuǎn)發(fā)該信息;如果庫(kù)存不足,則向中間件服務(wù)器發(fā)送訂單提交失敗信息,之后中間件服務(wù)器再向客戶端轉(zhuǎn)發(fā)該信息。一般出現(xiàn)訂單提交失敗是因?yàn)閮煞N原因:一是網(wǎng)絡(luò)延遲過(guò)高,服務(wù)器無(wú)法及時(shí)快速地響應(yīng)、客戶端不能在規(guī)定時(shí)間內(nèi)收到服務(wù)器響應(yīng);二是因?yàn)橄M(fèi)者要購(gòu)買(mǎi)的商品庫(kù)存不足導(dǎo)致訂單無(wú)法正常提交。</p><

104、p>  4.2.4 購(gòu)物車(chē)模塊業(yè)務(wù)邏輯</p><p>  購(gòu)物車(chē)模塊的業(yè)務(wù)邏輯主要負(fù)責(zé)添加商品至購(gòu)物車(chē)、編輯購(gòu)物車(chē)中的商品、更新購(gòu)物車(chē)中的商品信息和清空購(gòu)物車(chē)。用戶在購(gòu)物車(chē)中的任何操作都需要一個(gè)前提,那就是“用戶處于登錄狀態(tài)”。用戶可以點(diǎn)擊位于商品詳細(xì)信息界面中的“加入購(gòu)物車(chē)”按鈕將商品添加到購(gòu)物車(chē)。</p><p>  4.2.5 地址管理模塊業(yè)務(wù)邏輯</p>

105、<p>  用戶可以通過(guò)點(diǎn)擊更多選項(xiàng)按鈕,進(jìn)入更多選項(xiàng)界面。在更多選項(xiàng)界面中點(diǎn)擊地址管理選項(xiàng)就可以進(jìn)入地址管理界面。不過(guò)進(jìn)入地址管理界面需要用戶處于已登錄的狀態(tài),如果用戶還未登錄則系統(tǒng)自動(dòng)跳轉(zhuǎn)至用戶登錄界面,在用戶成功登錄系統(tǒng)以后再自動(dòng)跳轉(zhuǎn)至地址管理界面。地址管理界面保存著用戶之前使用過(guò)的所有送貨地址,這些地址以列表的形式存在;地址管理界面中有添加新地址、刪除已有地址的選項(xiàng)。用戶點(diǎn)擊列表項(xiàng)中的某一個(gè)地址之后就可以進(jìn)入該地址的編

106、輯界面。地址的編輯界面包括收貨人姓名、收貨人聯(lián)系方式、收貨人的具體地址信息等等。</p><p>  4.2.6 收藏夾管理模塊業(yè)務(wù)邏輯</p><p>  用戶如果想要將自己喜歡的商品添加至收藏夾,就必須處在已登錄的狀態(tài)。用戶可以通過(guò)兩種途徑進(jìn)入收藏夾界面,一是通過(guò)點(diǎn)擊商品詳情界面里面的收藏夾按鈕;二是通過(guò)點(diǎn)擊手機(jī)屏幕下方的更多選項(xiàng)菜單進(jìn)入收藏夾。已經(jīng)登錄的用戶在點(diǎn)擊收藏夾按鈕之后就可

107、以將自己喜歡的商品加入收藏夾內(nèi),這個(gè)過(guò)程中需要客戶端向服務(wù)器發(fā)送請(qǐng)求,之后服務(wù)器會(huì)將該商品信息跟用戶信息關(guān)聯(lián)起來(lái),并將此關(guān)聯(lián)信息存入數(shù)據(jù)庫(kù)。另外,收藏夾中的商品信息都是可以編輯的。用戶進(jìn)入收藏夾之后可以通過(guò)點(diǎn)擊編輯按鈕按照自己的意愿修改商品的數(shù)量或者刪除已經(jīng)添加至收藏夾中的商品。</p><p><b>  4.3數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  SQLite數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論