版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(論文)</b></p><p> 基于Android的手機團購應(yīng)用的設(shè)計與實現(xiàn)</p><p> The Design and Implementation of Mobile Group Buy Applications Based On Android</p><p> 學(xué)生姓名
2、 </p><p> 學(xué) 號 </p><p><b> 專業(yè)班級 </b></p><p> 指導(dǎo)教師 </p><p><b> 2015年4月</b></p><p>&
3、lt;b> 摘 要</b></p><p> 近些年來我國網(wǎng)絡(luò)基礎(chǔ)設(shè)施不斷完善、信息技術(shù)不斷發(fā)展,計算機網(wǎng)絡(luò)已經(jīng)基本實現(xiàn)了全民普及。而且隨著第三方支付工具如支付寶、財付通等的不斷發(fā)展和完善,網(wǎng)絡(luò)團購日益成為網(wǎng)民日常網(wǎng)絡(luò)生活的一項重要內(nèi)容。目前國內(nèi)的主流團購網(wǎng)站美團、百度糯米、大眾點評等等都推出了自己的手機團購應(yīng)用程序,這顯示各大團購網(wǎng)站對手機端團購群體的爭奪越來越激烈。</p&g
4、t;<p> Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要用于便攜設(shè)備,由Google公司在2007年11月5日正式公布。雖然Apple iOS、微軟Windows Phone和黑莓都占有一定的市場,但截至目前,Android仍保持智能手機市場強勁主導(dǎo)地位,出貨量持續(xù)增長。在中國市場,Android份額更是接近84%,因此選擇在安卓智能手機平臺上開發(fā)一個手機團購應(yīng)用是很有意義的。</p>
5、<p> 本系統(tǒng)設(shè)計并實現(xiàn)了一款手機團購應(yīng)用,整個系統(tǒng)基于 C/S 架構(gòu),由客戶端和服務(wù)器端兩個部分構(gòu)成??蛻舳素?fù)責(zé)向用戶呈現(xiàn)各類信息、向服務(wù)器端發(fā)送請求,服務(wù)器端接收請求并將處理結(jié)果返回給客戶端。客戶端由一個Android應(yīng)用程序構(gòu)成,該應(yīng)用程序基于Eclipse(集成 ADT 插件)和 Android SDK 開發(fā),實現(xiàn)了商品信息的展示、用戶信息的管理、用戶訂單信息的管理、購物車功能、收貨地址管理等一系列功能;服務(wù)器端基
6、于 SSH 架構(gòu)實現(xiàn)了業(yè)務(wù)邏輯和具體數(shù)據(jù)的分離。開發(fā)過程中的難點主要集中在業(yè)務(wù)邏輯的處理和數(shù)據(jù)持久化的實現(xiàn)。業(yè)務(wù)邏輯依賴前期的需求分析得到解決,數(shù)據(jù)的持久化借助 SQLite 技術(shù)得以實現(xiàn)。</p><p> 關(guān)鍵詞:安卓;團購;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 國內(nèi)發(fā)展現(xiàn)狀及趨勢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 開發(fā)語言Java4</p><p> 2.2 系統(tǒng)架構(gòu)5</p><p> 2.3 And
16、roid平臺簡介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 框架簡介10</p><p> 2.5 Quartz調(diào)度框架11
17、</p><p> 2.5.1 Quartz存儲方式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 注冊登錄模塊分析15</p><p> 3.2.2 商品信息展示模塊分析16</p><p> 3.2.3 購物車模塊分析16</p>
19、<p> 3.2.4 訂單模塊分析17</p><p> 3.3本章小結(jié)18</p><p> 第4章 系統(tǒng)設(shè)計19</p><p> 4.1客戶端和服務(wù)器之間的通信設(shè)計20</p><p> 4.1.1 連接方式的設(shè)計20</p><p> 4.1.2 客戶端服務(wù)器之間的數(shù)據(jù)處理
20、20</p><p> 4.2業(yè)務(wù)邏輯設(shè)計21</p><p> 4.2.1 登錄注冊模塊業(yè)務(wù)邏輯21</p><p> 4.2.2 商品信息模塊業(yè)務(wù)邏輯23</p><p> 4.2.3 訂單模塊業(yè)務(wù)邏輯24</p><p> 4.2.4 購物車模塊業(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ù)庫設(shè)計27</p><p> 4.4本章小結(jié)29</p><p> 第5章 系統(tǒng)實現(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)功能模塊的實現(xiàn)32</p><p> 5.2.1 用戶登錄注冊功能的實現(xiàn)32</p><p> 5.2.2 商品信息展示功能的實現(xiàn)35</p><p> 5.2.3
23、購物車功能的實現(xiàn)36</p><p> 5.2.4 結(jié)算模塊功能的實現(xiàn)38</p><p> 5.2.5 收藏夾模塊功能的實現(xiàn)39</p><p> 5.3本章小結(jié)40</p><p><b> 第6章 總結(jié)41</b></p><p><b> 參考文獻42<
24、;/b></p><p><b> 致謝43</b></p><p><b> 第1章 緒論</b></p><p> 本章主要介紹了網(wǎng)絡(luò)團購的現(xiàn)狀及其未來的發(fā)展趨勢、智能手機操作系統(tǒng)的現(xiàn)狀和它們各自所占的市場份額,以及論文的主體內(nèi)容和論文的結(jié)構(gòu)框架。</p><p><b>
25、; 1.1 研究背景</b></p><p> 近些年來隨著我國網(wǎng)絡(luò)基礎(chǔ)設(shè)施的不斷完善、信息技術(shù)不斷發(fā)展,計算機網(wǎng)絡(luò)已經(jīng)在全國范圍內(nèi)基本實現(xiàn)了全民普及。伴隨著第三方支付工具的不斷發(fā)展和完善,網(wǎng)絡(luò)購物日益成為網(wǎng)民日常網(wǎng)絡(luò)生活的一項重要內(nèi)容。而網(wǎng)絡(luò)團購作為網(wǎng)上購物的一種組成方式,具備了網(wǎng)絡(luò)購物的所有優(yōu)點,如方便、快捷、不受地域限制等,最重要的是網(wǎng)絡(luò)團購可以享受比普通網(wǎng)購更低的價格,而價格優(yōu)勢又成為其受
26、廣大網(wǎng)民歡迎的最主要的核心優(yōu)勢,不斷增長的移動互聯(lián)網(wǎng)終端使得手機團購必然會成為繼網(wǎng)站購物后又一種比較流行的購物方式。手機團購具有操作方便、簡單的特點,而且經(jīng)過多年的發(fā)展,第三代移動通信(3G)技術(shù)得到了廣泛的接受和第四代移動通信技術(shù)(4G)的興起,為移動終端用戶帶來了更快的數(shù)據(jù)傳輸速率,這就更加推動了手機團購必然會成為又一種流行的購物方式。</p><p> 1.2 國內(nèi)發(fā)展現(xiàn)狀及趨勢</p>&
27、lt;p> 據(jù)易觀智庫最新發(fā)布的《中國移動互聯(lián)網(wǎng)數(shù)據(jù)盤點&預(yù)測專題研究報告2015》數(shù)據(jù)顯示,在2014年,中國移動互聯(lián)網(wǎng)市場規(guī)模迎來增速高峰值,增長率達到183.8%,總量達13437.7億元人民幣。在用戶移動化行為習(xí)慣逐漸養(yǎng)成的前提下,2014年移動互聯(lián)網(wǎng)整體市場表現(xiàn)突出,其中,移動購物是增長的主要驅(qū)動力。雖然中國移動互聯(lián)網(wǎng)用戶規(guī)模增速有所放緩,但用戶數(shù)達到7.3億人,與2013年相比增長11.8%,繼續(xù)保持著超越P
28、C端用戶量的態(tài)勢[1]。目前針對智能手機的操作系統(tǒng),主要有Apple公司的IOS、Google公司的Android、微軟公司的Windows Phone和加拿大Research In Motion(簡稱RIM)公司的Blackberry系統(tǒng)。其中,Google公司的Android系統(tǒng)因其開放性而受到全世界人民的喜愛,占據(jù)著智能手機市場的主導(dǎo)地位,Android系統(tǒng)智能手機出貨量持續(xù)增長,占總份額的近84%,并且其占有率仍處于上升趨勢。&
29、lt;/p><p><b> 1.3 相關(guān)工作</b></p><p> 一個界面友好,功能合理的手機團購應(yīng)用,可以吸引更多網(wǎng)購客戶,提高自己的知名度。在一定程度上,一個友好絢麗、使用體驗良好的界面可以決定一個應(yīng)用的生命周期。本文接下來將從三個方面描述手機團購應(yīng)用的開發(fā)過程:</p><p><b> (1) 需求分析</b&
30、gt;</p><p> 這是程序開發(fā)的首要任務(wù),清晰地分析和理解問題是解決問題的前提條件,通過需求分析弄清楚程序要實現(xiàn)的功能,實現(xiàn)的難點,理清各種功能模塊之間的調(diào)用關(guān)系。做好這些工作之后就可以大大提供程序的開發(fā)效率,節(jié)約時間成本。</p><p> (2) 客戶端的設(shè)計和實現(xiàn)</p><p> 在之前需求分析結(jié)果的基礎(chǔ)之上,依據(jù)需求分析文檔中的要求,逐步實現(xiàn)
31、客戶端的各項功能。重點實現(xiàn)的內(nèi)容包括:客戶端程序的界面設(shè)計和實現(xiàn)、商品圖片的異步加載方式、一些較大數(shù)據(jù)的壓縮和解壓縮、客戶端和服務(wù)器端之間的通信接口設(shè)計。</p><p> (3) 與服務(wù)器端的通信</p><p> 通過分析研究,首先定義一種服務(wù)器端和客戶端都可以接受的通信格式。其次,根據(jù)客戶端的具體需求,定義一個能夠跟服務(wù)器高效地進行數(shù)據(jù)交換的接口。根據(jù)之前需求分析的結(jié)果,從中抽象
32、出各個實體所對應(yīng)的類,為之后的數(shù)據(jù)庫設(shè)計打好基礎(chǔ)。最后將定義在需求文檔中的業(yè)務(wù)邏輯接口合理實現(xiàn)。在設(shè)計客戶端和服務(wù)器端之間通信方式的過程中,作者使用基于JSON 的數(shù)據(jù)交換格式,該數(shù)據(jù)格式采用完全獨立于具體程序語言的本文格式,采用 C 系語言的定義風(fēng)格,易于程序員的編寫閱讀,非常適用于通信壓力較輕的應(yīng)用場合。</p><p> 1.4 論文結(jié)構(gòu)安排</p><p> 根據(jù)軟件的實際開發(fā)
33、過程,將本論文劃分為六大章節(jié)。</p><p> 第一章為緒論,主要介紹了研究課題的背景,相關(guān)課題在國內(nèi)的研究發(fā)展現(xiàn)狀,研究實現(xiàn)過程中所要解決的一些重要問題和使用到的一些重要技術(shù),以及研究過程的簡略描述。第二章為關(guān)鍵技術(shù)介紹,主要介紹了客戶端應(yīng)用程序開發(fā)過程需要使用的一些關(guān)鍵技術(shù)和應(yīng)用到的技術(shù)架構(gòu)。第三章為系統(tǒng)需求分析,該購物系統(tǒng)的業(yè)務(wù)邏輯一共分為六部分,用戶登錄模塊、用戶注冊模塊、商品展示模塊、購物車模塊、訂
34、單模塊、其他功能模塊。良好的系統(tǒng)需求分析能夠為之后的項目開發(fā)打下良好基礎(chǔ)。第四章為系統(tǒng)詳細(xì)設(shè)計,包括系統(tǒng)的整體架構(gòu)、客戶端和服務(wù)器端之間的通信設(shè)計、業(yè)務(wù)設(shè)計,一共三個部分。第五章為系統(tǒng)實現(xiàn),在之前完成的系統(tǒng)需求分析和系統(tǒng)詳細(xì)設(shè)計的基礎(chǔ)上,具體實現(xiàn)客戶端和服務(wù)器端之間的通信以及系統(tǒng)各個功能模塊。第六章為總結(jié),總結(jié)了全文的主要內(nèi)容。</p><p> 第2章 關(guān)鍵技術(shù)介紹</p><p>
35、 2.1 開發(fā)語言Java</p><p> Java的誕生要歸功于Sun公司的“Green”項目,該項目是為了開發(fā)一種用于管理控制電子消費產(chǎn)品的分布式系統(tǒng)。開發(fā)人員最初計劃使用C++開發(fā),但是因為C++的復(fù)雜性和安全性問題,開發(fā)者最后放棄使用C++,選擇在C++的基礎(chǔ)之上開發(fā)一門新的語言O(shè)ak(java 的前身)。Oak于1995年1月更名為“java”。</p><p> Java
36、是一種面向?qū)ο蟮母呒壵Z言,它最大的特點就是平臺無關(guān)性,這使得 Java特別適合網(wǎng)絡(luò)環(huán)境內(nèi)的應(yīng)用程序開發(fā)。目前Java有三種技術(shù)分支,它們分別是Java SE,Java EE,Java ME。Java SE是Java Platform Standard Edition 的英文縮寫,漢語意思是Java平臺標(biāo)準(zhǔn)版,適用于開發(fā)標(biāo)準(zhǔn)的桌面程序、以及各種基礎(chǔ)的類庫。 Java EE是Sun公司推出的企業(yè)級應(yīng)用程序開發(fā)平臺,能夠讓開發(fā)人員短時間內(nèi)開發(fā)
37、出健壯、跨平臺和易擴展的服務(wù)器端應(yīng)用程序。Java ME是Sun公司推出的一種針對嵌入式電子消費產(chǎn)品的應(yīng)用程序開發(fā)版本。Java SE是Java EE和 JavaME的基礎(chǔ)[2]。</p><p> Java的語法特征跟C++語言非常類似,因此有C語言基礎(chǔ)或者C++基礎(chǔ)的程序員可以非常快速的上手Java。但是與C++相比,Java還是有自己的鮮明特點:</p><p> ?。?)實現(xiàn)了自
38、動管理內(nèi)存。Java語言本身提供了GC(垃圾回收)機制,垃圾回收器可以自動的管理應(yīng)用程序所在的內(nèi)存空間,程序員不必再為申請內(nèi)存和釋放內(nèi)存勞心費神,徹底遠(yuǎn)離了可怕的內(nèi)存泄露問題。</p><p> ?。?)取消了“指針”這一概念,以“引用”代替,使開發(fā)人員擺脫了復(fù)雜的內(nèi)存訪問和內(nèi)存管理問題,從而使java語言開發(fā)出來的程序更加安全健壯。</p><p> (3)取消了“多重繼承”,只支持單
39、一繼承,增加了接口概念和匿名內(nèi)部類,間接地實現(xiàn)了“多重繼承”機制的功能,避免了多重繼承帶來的復(fù)雜性。</p><p> Java 語言是一種解釋型語言,跟 C、C++這種類型的語言相比,java的執(zhí)行效率很低。因為Java程序的執(zhí)行必須依賴于Java解釋器,而java解釋器的存在使 java真正實現(xiàn)了“一次編寫,處處運行”的目標(biāo),為了達到這個目標(biāo)而犧牲一部分效率還是非常值得的。另外,Java 語言具有特別強大的
40、、易于聯(lián)網(wǎng)的特點,因此 Java特別適合開發(fā)分布式的程序。在所有的計算機高級語言中,使用Java語言編寫Socket 程序是最簡單的[3]。</p><p><b> 2.2 系統(tǒng)架構(gòu)</b></p><p> 選擇一個合理的系統(tǒng)架構(gòu)能夠很大程度上決定一個項目的開發(fā)成敗。在互聯(lián)網(wǎng)團購類項目的開發(fā)歷史中存在 C/S 和 B/S 兩種架構(gòu)。</p>&l
41、t;p> 在 B/S 體系結(jié)構(gòu)系統(tǒng)中,用戶通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請求,服務(wù)器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器。B/S 結(jié)構(gòu)簡化了客戶機的工作,客戶機上只需配置少量的客戶端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對數(shù)據(jù)庫的訪問和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。實際上 B/S 體系結(jié)構(gòu)是把二層 C/S 結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機的任務(wù)中分離出來,由 Web 服務(wù)器單獨組成一層來負(fù)擔(dān)其任務(wù),這樣能減輕客戶
42、機的壓力。這種三層體系結(jié)構(gòu)如圖 2.1 所示。</p><p> 圖 2.1 B/S 三層架構(gòu)示意圖</p><p> C/S 架構(gòu)主要包括“客戶端”、“中間件”、“服務(wù)端”三大部分。用戶可以通過客戶端應(yīng)用程序向服務(wù)器發(fā)送各種請求,并接收從服務(wù)器返回的數(shù)據(jù)信息。服務(wù)器會接收來自客戶端的信息并作出響應(yīng),同時負(fù)責(zé)管理系統(tǒng)的各種后臺數(shù)據(jù)和信息,比如數(shù)據(jù)庫信息。服務(wù)器要面對的一個難點就是當(dāng)多個
43、用戶同時請求同一種資源時,應(yīng)該如何響應(yīng)這些請求。中間件是客戶端程序和服務(wù)端程序溝通的橋梁,主要負(fù)責(zé)數(shù)據(jù)結(jié)構(gòu)的定義和數(shù)據(jù)傳輸。由于Android平臺的應(yīng)用開發(fā)非常的便捷高效,借助一個自主的APP應(yīng)用程序,可以更加高效合理的展示團購商品信息,提高用戶的手機團購體驗,因此選擇C/S架構(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平臺簡介</p><p> Android 系統(tǒng)基于 Linux 內(nèi)核,但并不是標(biāo)準(zhǔn)的 linux 內(nèi)核。為了讓 Android 系統(tǒng)更加適用于移動終端設(shè)備,google 對 Linux 的內(nèi)核進行了各種優(yōu)化和加強。 Android 平臺采用了一種“軟件疊層”的方式構(gòu)建,它由分別是應(yīng)用程序?qū)?、框架層、函?shù)庫層、運行時庫、內(nèi)核五層構(gòu)成。這種構(gòu)架方式的好處就是各
45、層之間相互獨立,底層的改變不會影響上層。</p><p> 2.3.1 Android 體系結(jié)構(gòu)</p><p> Android 體系結(jié)構(gòu)從上到下一共分為 5 層,分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、函數(shù)庫層、運行時庫層、內(nèi)核層。應(yīng)用程序?qū)又饕到y(tǒng)的核心應(yīng)用程序,比如瀏覽器、電話薄、日歷計算器等等;應(yīng)用程序框架層為應(yīng)用程序?qū)犹峁┝怂枰?API,這些 API都包含在 Google
46、 提供的 Android SDK 中;函數(shù)庫層由大量的C/C++庫構(gòu)成,這些庫函數(shù)一般不會直接被應(yīng)用程序調(diào)用,而是被應(yīng)用程序框架層的API調(diào)用,而Java和C/C++之間的跨語言調(diào)用借助于JNI技術(shù);運行時庫層包括核心庫和Dalvik虛擬機,核心庫封裝了Java語言的全部功能,Dalvik虛擬機負(fù)責(zé)安卓應(yīng)用程序的運行。內(nèi)核層主要負(fù)責(zé)內(nèi)存管理、進程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型的實現(xiàn),位于整個架構(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òu)成的。Android 應(yīng)用程序的基本組件包括:Activity(活動)、Service(服務(wù))、BroadcastReceiver(廣播)、 ContentProv
48、ider(內(nèi)容提供者) [5]。其中最常用也是最常用到的組件就是 Activity(活動),下面簡要的介紹一下這四種組件。</p><p> (1)Activity(活動)</p><p> Activity 是 Android 系統(tǒng)中負(fù)責(zé)跟用戶進行交互的組件,它為 Android 系統(tǒng)提供了可視化的用戶界面。如果一個安卓應(yīng)用程序包含多個用戶界面,那么這個安卓應(yīng)用必將包含多個 Acti
49、vity。多個 Activity 將組成一個 Activity 棧,棧頂對象就是當(dāng)前處在活動狀態(tài)的 Activity。隨著不同應(yīng)用的交替運行,每個 Activity 都可能從活動狀態(tài)轉(zhuǎn)入非活動狀態(tài),也可能從非活動狀態(tài)轉(zhuǎn)入活動狀態(tài)。</p><p> Activity 具有四種狀態(tài):活動狀態(tài)、暫停狀態(tài)、停止?fàn)顟B(tài)、銷毀狀態(tài)。當(dāng) Activity處于前臺,用戶可見并可獲得焦點的時候,Activity就處在活動狀態(tài);當(dāng)
50、其他 Activity位于前臺,該 Activity 依然可見但無法獲得焦點,該 Activity 處在暫停狀態(tài);當(dāng)Activity 不可見,失去焦點時,該 Activity 處在停止?fàn)顟B(tài);當(dāng) Activity所在的 Dalvik 進程結(jié)束時,Activity 處在銷毀狀態(tài)。這四種狀態(tài)的切換過程如圖2.4 所示。</p><p> 圖 2.4 Activity生命周期</p><p>
51、?。?)Service(服務(wù))</p><p> Android 系統(tǒng)架構(gòu)中, Service和Activity具有相同的地位。Service和Activity的區(qū)別就是Service處在后臺運行沒有圖形界面。Service 運行起來以后也會具有自己的生命周期。當(dāng)需要在后臺運行服務(wù)或者監(jiān)控其他組件的狀態(tài)變化的時候,就需要借助 Service 組件了。Service 跟 Activity 類似,也具有自己的生命周
52、期,分別為:創(chuàng)建(onCreate)、開始(OnStart)、運行(ServiceRunning)、停止(OnStop)、銷毀(OnDestroy)。</p><p> ?。?)BroadcastReceiver(廣播)</p><p> 顧名思義,BroadcastReceiver代表的就是廣播消息接收器,該組件本質(zhì)上是一種全局的監(jiān)聽器,可以監(jiān)聽的系統(tǒng)全部的廣播。從代碼的實現(xiàn)角度來看,
53、它非常類似于事件編程中的監(jiān)聽器。與普通的事件監(jiān)聽器不同的是, BroadcastReceiver 監(jiān)聽的事件源是 Android 系統(tǒng)中的組件,普通事件監(jiān)聽器監(jiān)聽的事程序中的對象,利用這點我們可以非常方便的實現(xiàn)系統(tǒng)中不同組件之間的通信。需要注意的是對廣播的濫用會加重系統(tǒng)的功耗負(fù)載。</p><p> ?。?)ContentProvider(內(nèi)容提供者)</p><p> Android系
54、統(tǒng)中每個應(yīng)用程序都運行在各自的Dalvik虛擬機中,也就是說應(yīng)用程序之間是相互獨立的。但是在很多情況下,應(yīng)用程序之間也是需要實時地交換數(shù)據(jù)的,例如打電話的程序就要調(diào)用聯(lián)系人應(yīng)用中的電話號碼。</p><p> ContentProvider就是Android系統(tǒng)為跨應(yīng)用進程之間的數(shù)據(jù)交換設(shè)定的一種標(biāo)準(zhǔn)。通常ContentProvider和ContentResolver是配套使用的,一個應(yīng)用程序使用Content
55、Provider暴露自己的數(shù)據(jù),使用ContentResolver訪問別的應(yīng)用程序的數(shù)據(jù)。</p><p> 2.3.3 Android 應(yīng)用工程源碼結(jié)構(gòu)</p><p> 目前,Android 應(yīng)用程序的主流開發(fā)平臺是 Eclipse。通過在 Eclipse 中安裝 ADT插件,用戶可以非常方便的生成 Android 工程、管理虛擬機鏡像(AVD),調(diào)試Android 應(yīng)用程序、打包
56、 Android 應(yīng)用程序等等。</p><p> 在 Eclipse 環(huán)境下,一個典型的 Android 工程包括以下幾個目錄和文件:</p><p><b> ?。?)Src/</b></p><p> 該目錄下存放的是 Android 應(yīng)用的源文件,都是用 java 語言編寫成的。</p><p><b&
57、gt; ?。?)Gen/</b></p><p> 該目錄下存放的系統(tǒng)自動生成的文件。其中最核心的文件就是 R.java。R.java文件是由 appt 工具根據(jù)應(yīng)用的資源文件自動生成的,換句話說 R.java 就是 Android應(yīng)用中的資源字典。需要注意的是,R.java 不可以刪除,即使被刪除了系統(tǒng)也會自動生成。</p><p> ?。?)AndroidX.X/<
58、/p><p> 該目錄下存放的是Android SDK。這是Android應(yīng)用的程序開發(fā)包,其中提供了 Android 系統(tǒng)開放的所有 API。根據(jù)用戶設(shè)定的不同,該目錄下 SDK 的版本號也不盡相同。</p><p><b> (4)Bin/</b></p><p> 該目錄下存放生成的目標(biāo)文件,比如java二進制文件、資源打包文件、Dal
59、vik虛擬機的可執(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ī)定,不同的資源都會放在不同的目錄中,比如字符串資源就放在/res/value/string.xml 中。</p><p> ?。?)AndroidManifest.xml</p><p> AndroidManifest.xml 文件是每個Android工程必備的,這是一個安卓應(yīng)用的全局描述文件。AndroidManifest.xml
61、文件中制定了應(yīng)用的名稱、圖標(biāo)、包含的組件、應(yīng)用程序兼容的最低版本、以及要獲得的權(quán)限。</p><p> 2.4 SSH 框架簡介</p><p> SSH 框架在 Web 應(yīng)用開發(fā)中是一種非常受歡迎的架構(gòu),它主要由 “struts”、“spring”、“hibernate”構(gòu)成,能夠幫助開發(fā)人員在短時間內(nèi)開發(fā)出結(jié)構(gòu)健壯、重用性強、方便后期維護的 Web 應(yīng)用。從功能的角度我們可以將 S
62、SH 分成三層:表示層、業(yè)務(wù)邏輯層、和數(shù)據(jù)持久層[6]。</p><p> SSH 框架中,“spring”負(fù)責(zé)整個系統(tǒng)的底層架構(gòu),它主要負(fù)責(zé) MVC 模型結(jié)構(gòu)分離,控制業(yè)務(wù)調(diào)用流程;“hibernate”框架實現(xiàn)了對 JDBC 的輕量級封裝,提供了對持久層的支持;“struts”負(fù)責(zé)總體的管理。采用 SSH 框架后,徹底實現(xiàn)了業(yè)務(wù)邏輯層和持久層的分離,無論前端怎樣變化,都不會對模型造成影響,數(shù)據(jù)庫結(jié)構(gòu)的改變也
63、不會影響到前端。</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寫成的開源系統(tǒng)框架。應(yīng)用該項技術(shù)我們可以為一項作業(yè)創(chuàng)建簡單或復(fù)雜的調(diào)度,提高開發(fā)效率。在系統(tǒng)的開發(fā)過程中,我們可能需要周
64、期性地執(zhí)行一些任務(wù),或者定時執(zhí)行某些任務(wù),這時我們就需要借助Quartz 技術(shù)了。</p><p> 2.5.1 Quartz存儲方式</p><p> Quartz 主要支持兩種存儲方式:</p><p> (1)JDBC類型的存儲。JDBC指的是Java數(shù)據(jù)庫連接,它是一種專門負(fù)責(zé)連接并操作數(shù)據(jù)庫的標(biāo)準(zhǔn)。使用該方式是需要安裝特定的JDBC驅(qū)動程序和后臺數(shù)據(jù)
65、庫。</p><p> ?。?)RAMJobStore 機制。這是一種性能極好、易于使用配置的調(diào)度機制,從字面意思我們就可以看出,它將調(diào)度信息保存在內(nèi)存中。但缺點就是當(dāng)機器重新啟動的時候所有的調(diào)度信息都會丟失。</p><p> 2.5.2 Quartz觸發(fā)器</p><p> Quartz 框架中定義了觸發(fā)器機制和觸發(fā)器類型,在該觸發(fā)器機制下作業(yè)和對作業(yè)的調(diào)度
66、是可以分離的,而作業(yè)被調(diào)度的時間點是由觸發(fā)器決定的。常用的觸發(fā)器有以下兩種類型:</p><p> ?。?)CronTrigger。該觸發(fā)器是為復(fù)雜的任務(wù)調(diào)度設(shè)計的。如果我們要在某月的一號和十五號執(zhí)行某個任務(wù),我們就應(yīng)該選用這種觸發(fā)器。</p><p> ?。?)Simple Trigger。從字面意思我們就可以知道這是一種用于簡單任務(wù)調(diào)度的觸發(fā)器。如果我們需要一個任務(wù)在一個固定的時間點執(zhí)
67、行的話就選用這種觸發(fā)器,它非常類似與 Java 語言中的 Timer(定時器)。</p><p> 2.5.3 Quartz調(diào)度器</p><p> 調(diào)度器是Quartz框架的核心,它借助于Quartz框架中的一些重要組件管理Quartz運行時的環(huán)境。Quartz的架構(gòu)是一種基于多線程的架構(gòu),在該框架啟動的時候,它會初始化一系列的worker線程,這些線程主要被調(diào)度器調(diào)用來執(zhí)行預(yù)設(shè)好的
68、任務(wù)。這就是Quartz能夠并行執(zhí)行多個任務(wù)的基本原理。</p><p> 2.5.4 Quartz在本系統(tǒng)中的應(yīng)用</p><p> 在系統(tǒng)的正常運行中,隨時會面臨庫存的更新事件,比如有新的商品上架了或者舊的商品下市了,因此優(yōu)秀的調(diào)度機制是非常重要的。Quartz 框架恰好為我們提供了良好的調(diào)度接口,可以顯著提高程序的開發(fā)效率。</p><p><b&g
69、t; 2.6 本章小結(jié)</b></p><p> 本章介紹了 Java 語言的特點、團購系統(tǒng)使用的架構(gòu)、輕量高效的 SSH 框架和 Android 系統(tǒng)相關(guān)的內(nèi)容。為接下來的系統(tǒng)需求分析和程序開發(fā)奠定基礎(chǔ)。</p><p><b> 第3章 系統(tǒng)分析</b></p><p> 隨著手機上網(wǎng)用戶數(shù)量的激增、智能手機平板電腦的普
70、及、無線上網(wǎng)速度的提升、上網(wǎng)資費的下降,借助手機進行網(wǎng)上購物成為一種必然的趨勢。而網(wǎng)絡(luò)團購作為一種新型的網(wǎng)購模式,由于具有較高的品牌知名度、占有較大的市場份額、服務(wù)體系完善、售后好、產(chǎn)品質(zhì)量穩(wěn)定等特點,而且相比于傳統(tǒng)電商而言,其價格也低于產(chǎn)品市場最低零售價,能降低消費者成本,并且產(chǎn)品的質(zhì)量也有很好的保證。因此,網(wǎng)絡(luò)團購模式也越來越受到人們的青睞。目前,國內(nèi)的各大團購網(wǎng)站(美團、百度糯米、大眾點評等)均針對自己網(wǎng)站的特點,推出了對應(yīng)的手機
71、團購軟件。在這樣一個大的背景下,作者也嘗試在安卓平臺上實現(xiàn)這種類型的手機團購應(yīng)用。</p><p> 該團購系統(tǒng)的業(yè)務(wù)邏輯一共分為六部分,用戶登錄模塊、用戶注冊模塊、商品展示模塊、購物車模塊、訂單模塊、其他功能模塊。</p><p><b> 3.1系統(tǒng)結(jié)構(gòu)分析</b></p><p> 整個系統(tǒng)可以分為客戶端和服務(wù)器端,客戶端可以實現(xiàn)用
72、戶的注冊和登錄,可以進行商品搜索,商品瀏覽,商品購買,訂單管理,購物車管理,收藏夾管理等功能。服務(wù)器端可以實現(xiàn)會員管理,團購商品增加、刪除、查找、修改和訂單管理等功能。具體系統(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)用例圖描述六個重要模塊的具體功能。這六個功能模塊分別是:用戶登錄模塊、用戶注冊模塊、商品展示模塊、購物車模塊、訂單模塊、其他功能模塊。在本節(jié)接下來的部分中將詳細(xì)介紹這六個功能模塊的需求分析信息。手機團購應(yīng)用程序系統(tǒng)用例圖見圖3.2 所示。</p><p> 圖 3.2 系統(tǒng)用例圖</p><p> 3.2.1 注冊登錄模塊分析</p><p> 注冊模塊。
74、該模塊規(guī)定了賬號的格式、密碼的格式和長度。賬號格式為一個已經(jīng)注冊的有效郵箱地址,如果用戶輸入的郵箱地址格式錯誤,系統(tǒng)要彈出錯誤提示信息。密碼由數(shù)字、英文字母構(gòu)成,長度為 8-16 位,在用戶進行注冊的時候,應(yīng)該讓用戶輸入兩次密碼,并確保兩次輸入的密碼一致,用戶注冊賬號成功后會自動登錄并跳到系統(tǒng)首頁。</p><p> 登錄模塊。用戶填寫的賬號、密碼信息在通過服務(wù)器端的驗證后才可以成功登錄,系統(tǒng)能夠彈出用戶賬號或
75、者密碼錯誤的提示信息。用戶登錄成功后會進入系統(tǒng)首頁,登錄失敗后還停留在在登錄界面用戶可以點擊取消按鈕跳到系統(tǒng)首頁。</p><p> 3.2.2 商品信息展示模塊分析</p><p> 商品信息模塊主要由四部分構(gòu)成,分別是:商品分類、商品簡略信息展示、商品詳細(xì)信息展示、商品列表項展示。</p><p> 商品分類。商品分類包括一級分類和二級分類。一級分類包括美
76、食、娛樂、生活、酒店旅游、網(wǎng)購和其他。二級分類在一級分類的基礎(chǔ)上對商品進行了更細(xì)致的展示。</p><p> 商品列表。根據(jù)用戶選擇的不同排序方式,商品將按照對應(yīng)的方式顯示。這四種排序方式分別是:默認(rèn)排序、按價格排序、按折扣排序、按發(fā)布時間排序。默認(rèn)排序?qū)嶋H上就是按照銷量來排序,價格排序就是按照商品價格的高低來排序;折扣排序就是按照一件商品的折扣程度進行排序;發(fā)布時間排序就是按照商品發(fā)布的時間先后來進行排序。&
77、lt;/p><p> 商品簡略信息展示。商品簡略信息展示界面顯示“商品名稱、商品價格、商品圖片、商品折扣”四種類型的信息。用戶在點擊商品圖片對應(yīng)的區(qū)域之后就可以進入顯示商品詳細(xì)信息的界面。</p><p> 商品詳細(xì)信息展示。在商品詳細(xì)信息展示界面顯示“商品名稱、商品圖片、商品庫存數(shù)量、商品可選顏色、商品尺碼、商品評分”六種信息和“加入購物車、收藏兩個按鈕”。用戶點擊“收藏”按鈕之后,如果
78、用戶還沒有登錄系統(tǒng)則系統(tǒng)會自動跳轉(zhuǎn)到用戶登錄界面,用戶登錄成功以后系統(tǒng)會再次自動跳轉(zhuǎn)到當(dāng)前商品詳細(xì)信息界面,并提示用戶添加收藏成功。一件商品可以多次被添加到收藏夾,但是收藏夾中只留有一份記錄。用戶點擊加入購物車按鈕之后,購物車中的商品數(shù)量會加一,一件商品可以多次加入到購物車中。</p><p> 3.2.3 購物車模塊分析</p><p> 購物車模塊必須實現(xiàn)以下三種功能:將商品添加至
79、購物車、管理購物車中的商品、購物車中的商品信息展示。對應(yīng)的用例圖如圖3.3所示。</p><p> 圖 3.3 購物車模塊用例圖</p><p> 商品添加至購物車。用戶在已經(jīng)登錄的情況下,點擊商品界面的添加至購物車按鈕就可以把喜歡的商品成功添加至購物車。</p><p> 購物車中的商品信息展示。用戶可以在購物車中瀏覽已選商品的各項信息。這些信息包括:商品總
80、量、總體的金額(不包含運費的情況下)、商品所能累積的積分、對應(yīng)商品的具體信息、商品對應(yīng)的折扣信息、最后訂單支付時的實際金額。用戶可以通過單擊商品信息瀏覽界面的“加入購物車”按鈕進入購物車商品信息展示界面。</p><p> 管理購物車中的商品。管理購物車中商品的界面跟購物車中的商品信息展示界面類似。二者的區(qū)別就是在管理購物車中的商品的界面中,商品的數(shù)量是可編輯的。用戶可以增加或者減少已選商品的數(shù)量。而在購物車中
81、的商品信息展示界面中,商品的數(shù)量和信息都是固定的,用戶只能瀏覽而不能夠編輯。</p><p> 3.2.4 訂單模塊分析</p><p> 訂單模塊要實現(xiàn)“送貨地址選擇、支付方式選擇、訂單提交、訂單支付”四個核心子模塊。訂單模塊這部分內(nèi)容是整個系統(tǒng)的一個核心部分,直接影響到系統(tǒng)開發(fā)的成敗。</p><p> 訂單支付子模塊要處理顯示“訂單金額、送貨地址、支付方
82、式、用戶留言“等。用戶必須通過點擊購物車界面中的“去結(jié)算” 按鈕才可以進入訂單支付界面。</p><p> 送貨地址選擇。送貨地址子模塊要保留用戶填寫的地址信息。并且可以保留用戶地址信息的歷史記錄。使得用戶提交訂單的時候不用再次填寫訂單信息。</p><p> 支付方式選擇。通過該模塊用戶可以選擇自己期望的支付方式。例如:貨到付快、各種電子銀行、網(wǎng)銀、支付寶等等。</p>
83、<p> 訂單提交。用戶點擊結(jié)算中心的按鈕就可以提交訂單。訂單提交成功后用戶就可以收到由“訂單號、支付金額提示”兩條信息組成的提示框。</p><p> 訂單支付。在用戶成功完成支付后,系統(tǒng)會自動跳轉(zhuǎn)到購物車界面,并提示支付成功。</p><p><b> 3.3本章小結(jié)</b></p><p> 在本章中簡述了用戶在購物流
84、程中所涉及到的系統(tǒng)功能模塊,并根據(jù)系統(tǒng)功能用例圖簡要介紹了注冊登錄模塊、商品信息展示模塊、購物車模塊、訂單模塊四個核心模塊。為接下來的源碼開發(fā)提供支持打好基礎(chǔ)。</p><p><b> 第4章 系統(tǒng)設(shè)計</b></p><p> 根據(jù)第三章中完成的系統(tǒng)需求分析的結(jié)果,本章將詳細(xì)介紹系統(tǒng)的整體架構(gòu)、客戶端服務(wù)器之間的通信設(shè)計、業(yè)務(wù)層設(shè)計,一共三部分。</p
85、><p> 從手機團購系統(tǒng)全局的角度劃分,系統(tǒng)主要分為兩部分:客戶端和服務(wù)器端??蛻舳酥傅氖茿ndroid系統(tǒng)平臺上的應(yīng)用程序。服務(wù)器主要是指由J2EE服務(wù)器、 Web 服務(wù)器和數(shù)據(jù)庫構(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è)計的思想可以帶來如下好處:各層與各層之間相互獨立,下一層的改變對上一層是透明的,可以有效降低系統(tǒng)中間各個模塊之間的耦合度,強化了系統(tǒng)的可擴展性,提高了系統(tǒng)的可維護性。視圖層代表的是 Android 應(yīng)用程序?qū)用?,該層主要處理用戶的請求,將具有良好用戶體驗的界面展示給用戶。數(shù)據(jù)通信層是視圖層和邏輯層之間的夾層,負(fù)責(zé)視圖層和邏輯層之間的通信,建立Socket 連接、接收發(fā)送數(shù)據(jù)、解析數(shù)據(jù)等等。業(yè)務(wù)層代表的是 J
87、2EE 服務(wù)器,它接收來自視圖層的請求,基于 Struts 這一開源框架,對相應(yīng)的業(yè)務(wù)進行處理。</p><p> 4.1客戶端和服務(wù)器之間的通信設(shè)計</p><p> 本系統(tǒng)的總體架構(gòu)是基于經(jīng)典的客戶端-服務(wù)器模式(C/S 架構(gòu))的。系統(tǒng)中所有的業(yè)務(wù)都是由客戶端發(fā)起,服務(wù)端捕獲并回應(yīng)的。因此設(shè)計一種客戶端和服務(wù)器之間的高效通信方式就顯得尤為重要。</p><p&g
88、t; 4.1.1 連接方式的設(shè)計</p><p> 本系統(tǒng)中所有跟網(wǎng)絡(luò)相關(guān)的操作都依賴于http協(xié)議,雖然jdk中的net包已經(jīng)封裝了訪問http協(xié)議的基本操作,但功能還是不夠豐富不夠靈活。因此借助Httpclient工具包,利用該工具包中提供的豐富、高效的API可以快速開發(fā)出一個網(wǎng)絡(luò)客戶端程序,方便地發(fā)起客戶端網(wǎng)絡(luò)連接。</p><p> 本系統(tǒng)通信模式的設(shè)計方案如下:客戶端先捕
89、獲用戶出發(fā)的各種事件,然后向服務(wù)器的特定端口發(fā)起連接請求,連接建立以后,客戶端開始向服務(wù)端發(fā)送數(shù)據(jù),服務(wù)端接收并解析客戶端發(fā)來的數(shù)據(jù),根據(jù)解析出來的結(jié)果調(diào)用相應(yīng)的業(yè)務(wù)邏輯模塊,獲得業(yè)務(wù)邏輯模塊返回的數(shù)據(jù),接著服務(wù)端封裝數(shù)據(jù)并反饋至客戶端,客戶端接收服務(wù)端發(fā)來的數(shù)據(jù),并對其進行解析。</p><p> 4.1.2 客戶端服務(wù)器之間的數(shù)據(jù)處理</p><p> 本系統(tǒng)選用 JSON 作為
90、客戶端和服務(wù)器之間的通信格式。JSON 的英文全拼是JavaScript Object Notation,它是一種輕量級的數(shù)據(jù)通訊方式,發(fā)源于 JavaScript。 JSON 采用完全獨立于任何語言的數(shù)據(jù)格式,但保留了 C 系計算機語言的一些語法習(xí)慣,因此很容易被人理解運用,也有利于機器的解析。</p><p> 對象和數(shù)組是 JSON 中的兩種基本數(shù)據(jù)結(jié)構(gòu),對象指的是由{}括起來的內(nèi)容,結(jié)構(gòu)為{key.Va
91、lue…},其中 Key 表示的是對象的屬性,Value 表示的是該屬性的屬性值;數(shù)組指的是由[]括起來的內(nèi)容,結(jié)構(gòu)為[“Android”,”Java”,…],跟 C 語言中的數(shù)組定義方式幾乎一樣,可以包含數(shù)字、字符串、對象等等[7]。之所以沒有選擇 XML數(shù)據(jù)格式是因為 XML 數(shù)據(jù)格式會導(dǎo)致數(shù)據(jù)量過大(各種標(biāo)示符),解析 XML 文件要付出較大的性能開銷。</p><p> 為了避免出現(xiàn)中文數(shù)據(jù)傳遞過程中出
92、現(xiàn)中文亂碼的情形,服務(wù)器和客戶端的所有程序都使用 UTF-8 標(biāo)準(zhǔn)作為編碼標(biāo)準(zhǔn)。接下來說明一些數(shù)據(jù)的發(fā)送和解析過程。客戶端將數(shù)據(jù)寫入一個 JSON 對象中,之后將該對象轉(zhuǎn)化為字節(jié)流借助 Http協(xié)議將其發(fā)送到服務(wù)器端。服務(wù)器接收到該字節(jié)流之后,先將它轉(zhuǎn)換成字符流,再轉(zhuǎn)換成 JSON 對象,然后服務(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è)計</b></p><p> 業(yè)務(wù)邏輯設(shè)計的是否合理直接關(guān)系到系統(tǒng)的開發(fā)是否成功,并為后期的代碼維護和修改減輕很大負(fù)擔(dān),在本小節(jié)中主要介紹業(yè)務(wù)模塊需求分析所提出的功能模塊對應(yīng)的業(yè)務(wù)邏輯。</p><p> 4.2.1 登錄注冊模塊業(yè)務(wù)邏輯</p><p> 注冊模塊業(yè)務(wù)邏輯主要描述了用戶從客戶端向服務(wù)器注冊個人信
94、息的過程。該業(yè)務(wù)邏輯的具體描述如下:用戶在客戶端發(fā)起用戶注冊事件,之后客戶端程序?qū)⒂脩舻馁~號、密碼信息發(fā)送至中間件服務(wù)器。中間件服務(wù)器將這些信息保留在本地并轉(zhuǎn)發(fā)至位于最后臺的賬號管理服務(wù)器。如果在賬號管理服務(wù)器注冊信息成功,則返回注冊成功信息,中間件服務(wù)器會在本地將該賬號、密碼信息插入至自己的數(shù)據(jù)庫,并初始化該賬號對應(yīng)的信息;如果返回注冊失敗的信息,則提示用戶重新輸入賬號密碼信息,注冊模塊對應(yīng)的業(yè)務(wù)流程圖如圖4.2所示。</p&g
95、t;<p> 圖 4.2 注冊模塊流程圖</p><p> 賬號模塊業(yè)務(wù)邏輯主頁負(fù)責(zé)用戶賬號的登錄和登出。用戶可以通過點擊屏幕下方菜單中的“更多”選項,進入賬號管理界面。賬號管理界面主要負(fù)責(zé)顯示用戶的賬號信息、昵稱信息、賬戶積分、賬戶等級等等。系統(tǒng)也提供了“退出登錄”選項。用戶可以點擊退出登錄按鈕退出登錄狀態(tài)。因為賬號管理的業(yè)務(wù)邏輯非常簡單,在這里就不給出賬號管理業(yè)務(wù)邏輯的流程圖了。</p
96、><p> 登錄模塊業(yè)務(wù)邏輯主要實現(xiàn)了用戶從客戶端登錄服務(wù)器的過程。該業(yè)務(wù)邏輯的具體描述如下:用戶在客戶端觸發(fā)用戶登錄事件,之后客戶端程序?qū)⒂脩舻馁~號、密碼信息發(fā)送至中間件服務(wù)器,之后中間件服務(wù)器再將用戶的賬號、密碼信息發(fā)送至位于最后端的賬號管理服務(wù)器,賬號管理服務(wù)器檢索自己維護的數(shù)據(jù)庫,如果沒有查詢到該賬號、密碼所對應(yīng)的記錄則向中間件服務(wù)器返回錯誤提示信息,之后中間件服務(wù)器再將這一信息返回至客戶端,并提示用戶再次
97、輸入正確的賬戶、密碼信息;如果賬號管理服務(wù)器返回的是正確的結(jié)果,中間件服務(wù)器會檢索自己在本地是否已經(jīng)存在該賬號所對應(yīng)的一系列用戶信息,如果已存在則更新相應(yīng)的本地用戶信息,如果不存在則在本地插入一條新的用戶信息。登錄模塊對應(yīng)的業(yè)務(wù)流程如圖4.3所示。</p><p> 圖 4.3 登錄模塊流程圖</p><p> 4.2.2 商品信息模塊業(yè)務(wù)邏輯</p><p>
98、; 該業(yè)務(wù)邏輯主要負(fù)責(zé)向用戶展示商品的具體信息。用戶進入手機端的應(yīng)用程序以后,在主頁面會有六個分類標(biāo)簽,用戶點擊感興趣的標(biāo)簽即可進入商品信息的展示列表頁面,每個列表項都包含團購商品的圖片、描述價格和折扣信息。用戶點擊相應(yīng)的商品圖片可以進入該商品詳細(xì)的購買頁面,除了商品圖片、描述、價格和折扣以外還可以進行收藏和加入購物車等操作。</p><p> 圖 4.4 商品信息模塊流程圖</p><p
99、> 系統(tǒng)提供了四種為商品排序的方式。根據(jù)用戶選擇的不同排序方式,商品將按照對應(yīng)的方式顯示。這四種排序方式分別是:默認(rèn)排序(銷量排序)、價格高低排序、折扣排序、發(fā)布時間排序。默認(rèn)排序?qū)凑找唁N售商品數(shù)量的多少排序;價格高低排序就是按照商品價格的高低來排序;折扣排序就是根據(jù)一件商品打折的力度來進行排序;發(fā)布時間排序就是按照商品上架順序來排列。商品的展示界面根據(jù)展示的信息多少也分為兩種,一種展示簡略的商品信息,一種展示詳細(xì)的商品信息。
100、商品信息的獲取會觸發(fā)客戶端和服務(wù)器之間的交互。商品信息模塊業(yè)務(wù)流程具體情況如圖4.4所示。</p><p> 4.2.3 訂單模塊業(yè)務(wù)邏輯</p><p> 該模塊其實由兩部分構(gòu)成:訂單生成業(yè)務(wù)邏輯和訂單提交業(yè)務(wù)邏輯。訂單生成業(yè)務(wù)邏輯的具體描述如下:用戶進入購物車頁面之后,如果購物車中的商品已經(jīng)確定,就可以點擊“結(jié)算”按鈕跳轉(zhuǎn)至訂單生成界面。如果用戶之前有過一次訂單成功提交的記錄,訂
101、單生成界面會自動加載上一次訂單中的關(guān)鍵信息(收貨人信息、支付方式、送貨時間和送貨方式等)。如果用戶是首次觸發(fā)訂單生成業(yè)務(wù)或者上次的訂單信息需要改變,用戶可以自己在對應(yīng)的文本框中填寫收貨人信息、支付方式、送貨時間、送貨方式等。在確認(rèn)無誤之后用戶就可以點“訂單提交”按鈕觸發(fā)訂單提交業(yè)務(wù)。在訂單提交之后用戶可以點擊“繼續(xù)購物”按鈕返回商品列表繼續(xù)瀏覽商品信息,也可以單擊“首頁”返回應(yīng)用程序的開始界面。訂單生成業(yè)務(wù)流程的具體描述見圖 4.5所示
102、。</p><p> 圖 4.5 訂單信息模塊流程圖</p><p> 訂單提交業(yè)務(wù)邏輯的具體描述如下:用戶在確認(rèn)訂單信息正確無誤之后點擊提交訂單按鈕??蛻舳顺绦驎?chuàng)建一個新線程,該線程會將訂單生成頁面中的訂單信息和 URL 地址按照規(guī)定格式封裝并發(fā)送給中間件服務(wù)器,中間件服務(wù)器收到信息之后再轉(zhuǎn)發(fā)給最后臺的電商服務(wù)器。需要注意的是客戶端轉(zhuǎn)發(fā)的服務(wù)器地址都是設(shè)定好的、固定不變的。電商服務(wù)
103、器在解析訂單信息之后,查詢本地服務(wù)器。如果庫存中有存貨,則向中間件服務(wù)器發(fā)送訂單提交成功信息并返回訂單號。之后中間件服務(wù)器再向客戶端轉(zhuǎn)發(fā)該信息;如果庫存不足,則向中間件服務(wù)器發(fā)送訂單提交失敗信息,之后中間件服務(wù)器再向客戶端轉(zhuǎn)發(fā)該信息。一般出現(xiàn)訂單提交失敗是因為兩種原因:一是網(wǎng)絡(luò)延遲過高,服務(wù)器無法及時快速地響應(yīng)、客戶端不能在規(guī)定時間內(nèi)收到服務(wù)器響應(yīng);二是因為消費者要購買的商品庫存不足導(dǎo)致訂單無法正常提交。</p><
104、p> 4.2.4 購物車模塊業(yè)務(wù)邏輯</p><p> 購物車模塊的業(yè)務(wù)邏輯主要負(fù)責(zé)添加商品至購物車、編輯購物車中的商品、更新購物車中的商品信息和清空購物車。用戶在購物車中的任何操作都需要一個前提,那就是“用戶處于登錄狀態(tài)”。用戶可以點擊位于商品詳細(xì)信息界面中的“加入購物車”按鈕將商品添加到購物車。</p><p> 4.2.5 地址管理模塊業(yè)務(wù)邏輯</p>
105、<p> 用戶可以通過點擊更多選項按鈕,進入更多選項界面。在更多選項界面中點擊地址管理選項就可以進入地址管理界面。不過進入地址管理界面需要用戶處于已登錄的狀態(tài),如果用戶還未登錄則系統(tǒng)自動跳轉(zhuǎn)至用戶登錄界面,在用戶成功登錄系統(tǒng)以后再自動跳轉(zhuǎn)至地址管理界面。地址管理界面保存著用戶之前使用過的所有送貨地址,這些地址以列表的形式存在;地址管理界面中有添加新地址、刪除已有地址的選項。用戶點擊列表項中的某一個地址之后就可以進入該地址的編
106、輯界面。地址的編輯界面包括收貨人姓名、收貨人聯(lián)系方式、收貨人的具體地址信息等等。</p><p> 4.2.6 收藏夾管理模塊業(yè)務(wù)邏輯</p><p> 用戶如果想要將自己喜歡的商品添加至收藏夾,就必須處在已登錄的狀態(tài)。用戶可以通過兩種途徑進入收藏夾界面,一是通過點擊商品詳情界面里面的收藏夾按鈕;二是通過點擊手機屏幕下方的更多選項菜單進入收藏夾。已經(jīng)登錄的用戶在點擊收藏夾按鈕之后就可
107、以將自己喜歡的商品加入收藏夾內(nèi),這個過程中需要客戶端向服務(wù)器發(fā)送請求,之后服務(wù)器會將該商品信息跟用戶信息關(guān)聯(lián)起來,并將此關(guān)聯(lián)信息存入數(shù)據(jù)庫。另外,收藏夾中的商品信息都是可以編輯的。用戶進入收藏夾之后可以通過點擊編輯按鈕按照自己的意愿修改商品的數(shù)量或者刪除已經(jīng)添加至收藏夾中的商品。</p><p><b> 4.3數(shù)據(jù)庫設(shè)計</b></p><p> SQLite數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android的手機團購應(yīng)用的設(shè)計與實現(xiàn)演示課件
- 基于android系統(tǒng)的手機應(yīng)用軟件的設(shè)計與實現(xiàn)【畢業(yè)論文】
- 基于Android平臺的團購系統(tǒng)設(shè)計與實現(xiàn).pdf
- 實現(xiàn)android手機音樂應(yīng)用-畢業(yè)論文外文翻譯
- 基于android的手機衛(wèi)士——畢業(yè)論文
- 基于android的手機衛(wèi)士——畢業(yè)論文
- 基于android平臺的手機計步器設(shè)計【畢業(yè)論文】
- 軟件工程畢業(yè)論文-android手機衛(wèi)士的設(shè)計與實現(xiàn)
- android畢業(yè)論文--基于android 平臺的google map的手機導(dǎo)航設(shè)計
- 化妝品團購團購畢業(yè)論文
- 基于android的逃生游戲設(shè)計與實現(xiàn)-畢業(yè)論文
- 基于android平臺的手機商城的畢業(yè)論文
- android手機地圖應(yīng)用開發(fā)【畢業(yè)論文】
- android手機地圖應(yīng)用開發(fā)【畢業(yè)論文】
- 基于android系統(tǒng)的手機防盜畢業(yè)論文
- 基于android的手機遠(yuǎn)程點餐系統(tǒng)設(shè)計[畢業(yè)論文]
- 基于android推箱子游戲的設(shè)計與實現(xiàn)畢業(yè)論文
- 基于Android的LBS移動農(nóng)產(chǎn)品團購系統(tǒng)設(shè)計與實現(xiàn).pdf
- 基于android平臺的手機安全衛(wèi)士的設(shè)計與實現(xiàn)【畢業(yè)論文說明書】
- 畢業(yè)論文-基于android的航空訂票系統(tǒng)的設(shè)計與實現(xiàn)
評論
0/150
提交評論