版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 學 士 學 位 論 文</p><p> 題 目:基于Android平臺的商城</p><p> 學 院: 軟件學院 系 計算機軟件 </p><p> 專 業(yè): 計算機軟件 </p><p> 學 號:
2、 </p><p> 姓 名: </p><p> 指導教師: </p><p> 起訖日期: 2010年12月至2011年5月 </p><p><b> 目 錄</b>&l
3、t;/p><p><b> 論文總頁數(shù):35頁</b></p><p><b> 1 緒論3</b></p><p><b> 1.1課題背景3</b></p><p> 1.2相關(guān)技術(shù)的發(fā)展現(xiàn)狀4</p><p> 1.2.1手機操作系統(tǒng)的
4、發(fā)展現(xiàn)狀4</p><p> 1.3手機操作系統(tǒng)的發(fā)展現(xiàn)狀5</p><p> 2.Android的架構(gòu)分析6</p><p> 2.1 Android特征6</p><p> 2.2 Android架構(gòu)7</p><p> 2.2.1關(guān)鍵應(yīng)用程序7</p><p> 2
5、.2.2應(yīng)用程序框架7</p><p> 2.2.3系統(tǒng)運行庫7</p><p> 2.3Android應(yīng)用的構(gòu)成和工作機制8</p><p> 2.4 Android與其他手機操作系統(tǒng)的比較9</p><p> 2.5本章小結(jié)10</p><p> 3系統(tǒng)的總體框架10</p>&
6、lt;p> 3.1系統(tǒng)需求分析10</p><p> 3.2系統(tǒng)主要功能描述11</p><p> 3.2.1客戶端登陸注冊11</p><p> 3.2.2系統(tǒng)主要功能描述12</p><p> 3.2.3訂單功能13</p><p> 3.2.4留言評價功能13</p>
7、<p> 3.2.5服務(wù)器管理功能14</p><p> 3.3系統(tǒng)流程15</p><p> 3.4系統(tǒng)框架16</p><p> 4詳細設(shè)計與實現(xiàn)17</p><p> 4.1詳細設(shè)計17</p><p> 4.1.1詳細設(shè)計17</p><p> 4.1
8、.2后臺實現(xiàn)18</p><p> 4.2系統(tǒng)實現(xiàn)19</p><p> 4.2.1用戶首頁的實現(xiàn)過程18</p><p> 4.2.2用戶注冊的實現(xiàn)過程18</p><p> 4.2.3用戶登錄的實現(xiàn)過程19</p><p> 4.2.4用戶搜索的實現(xiàn)過程20</p><p&
9、gt; 4.2.5用戶瀏覽的實現(xiàn)過程21</p><p> 4.2.6用戶購買的實現(xiàn)過程21</p><p> 4.2.7數(shù)據(jù)庫連接的實現(xiàn)22</p><p> 4.2.8后臺的實現(xiàn)23</p><p> 5.總結(jié)和展望24</p><p> 6 Android手機前景31</p>
10、<p><b> 7結(jié)束語35</b></p><p><b> 8參考文獻35</b></p><p> 基于Android的小小手機商城</p><p> 內(nèi)容提要:隨著移動通信與Internet的飛速發(fā)展及相互融合,GPRS使無線網(wǎng)絡(luò)高速接入到Internet成為現(xiàn)實,移動用戶從而可以享受到I
11、nternet提供的服務(wù)。這樣,移動終端不再僅是通訊網(wǎng)絡(luò)的終端,還將成為互聯(lián)網(wǎng)的終端。本文首先給出了系統(tǒng)研究背景,對當前手機操作系統(tǒng)發(fā)展做了簡單的介紹。進而詳細的分析了android的特征、架構(gòu)、以及android應(yīng)用的構(gòu)成和工作機制,并對android于其他手機操作系統(tǒng)進行了比較,說明了android在手機操作系統(tǒng)中的優(yōu)勢。本系統(tǒng)主要用于對手機上網(wǎng)用戶,在線瀏覽該網(wǎng)站,用戶管理員可以對商品信息進行增刪改查等功能,用戶可以在該網(wǎng)站注冊,
12、注冊后的用戶還可以商品進行購買以及評價。使用該系統(tǒng)很大的提高了用戶購買能力。</p><p> 關(guān)鍵詞: Android、JSP、eclipse、myeclipse-6.5、tomcat、開源、服務(wù)器、移動客戶端、手機商城。</p><p> Summary:With mobile communication and internet the rapid development and
13、 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 t
14、he internet terminals. the first 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 th</p>
15、<p> Keyword: Android、JSP、eclipse、myeclipse-6.5、tomcat、Open source、 the server、 a mobile client 、mobile phones shopping center.</p><p><b> 1.緒論</b></p><p><b> 1.1課題背景&l
16、t;/b></p><p> 隨著移動通信與Internet向移動終端的普及,網(wǎng)絡(luò)和用戶對移動終端的要求越來越高,而Symbian,Windows Mobile,PalmOS等手機平臺過于封閉,不能很好的滿足用戶的需求,因此市場迫切需要一個開發(fā)性很強的平臺。經(jīng)過多年的發(fā)展,第三代數(shù)字通信(3G)技術(shù)活動了廣泛的接受,它為移動終端用戶帶來了更快的數(shù)據(jù)傳輸速率。隨著3G網(wǎng)絡(luò)的使用,移動終端不再僅是通訊網(wǎng)絡(luò)的終
17、端,還將成為互聯(lián)網(wǎng)的終端。因此,移動終端的應(yīng)用軟件和需要的服務(wù)將會有很大的發(fā)展空間。Google為此與2007年11月推出了一個專為移動設(shè)備設(shè)計的軟件平臺——Android。</p><p> Android 是一套真正意義上的開發(fā)性的移動設(shè)備綜合平臺,它包括操作系統(tǒng)、中間件和一些關(guān)鍵的平臺應(yīng)用。Android 是由Linux+Java構(gòu)成的開源軟件,允許所有廠商和個人在其基礎(chǔ)上進行開發(fā)。Android平臺的開
18、放性等特點既能促進技術(shù)(包括平臺本身)的創(chuàng)新,又有助于降低開發(fā)成本,還可以是運營商能非常方便地制定自己的特色化的產(chǎn)品。因此,它具有很大的市場發(fā)展?jié)摿Α?lt;/p><p> 根據(jù)中國互聯(lián)網(wǎng)信息中心(CNNIC)發(fā)布的《第22次中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告》顯示,截止2008年6月底,我國網(wǎng)民數(shù)量達到了2.53億,首次大幅超過美國,網(wǎng)民規(guī)模躍居世界第一位,</p><p> 其中手機網(wǎng)民達到
19、7305萬,手機上網(wǎng)成為網(wǎng)絡(luò)接入的一個重要發(fā)展方向。</p><p> 1.2相關(guān)技術(shù)的發(fā)展現(xiàn)狀</p><p> 1.2.1手機操作系統(tǒng)的發(fā)展現(xiàn)狀</p><p> Palm OS是一套專門為掌上電腦編寫的操作系統(tǒng),是一種輕量級、比較開放的操作系統(tǒng),占用的內(nèi)存非常小,允許用戶在其基礎(chǔ)上編寫和修改相關(guān)軟件,是支持的應(yīng)用程序更加豐富多彩。Plam 在其它方面也還
20、存在一些不足,如Plam操作系統(tǒng)本身不具備錄音、MP3播放功能等,但是可以通過加入第三方軟件或硬件設(shè)備來實現(xiàn)。其代表性的產(chǎn)品有Palm m505、Palm m500、Palm III等。</p><p> Symbian是一個實時性、多任務(wù)的純32位操作系統(tǒng),具有功耗低、內(nèi)存占用少等特點,非常適合手機等移動設(shè)備使用,經(jīng)過不斷完善,可以支持GPRS、藍牙、SyncML以及3G技術(shù)。</p><
21、p> Windows mobile系列操作系統(tǒng)是從微軟計算機的Windows操作系統(tǒng)上變化而來的。Windows mobile系列操作系統(tǒng)功能強大,而且支持該操作系統(tǒng)的智能手機大多數(shù)都采用了英特爾嵌入式處理器,主頻比較高,在其它硬件設(shè)置(如內(nèi)存、儲存卡容量等)上也采用其他操作系統(tǒng)的智能手機要高出許多,因此性能比較強勁,速度比較快。Windows mobile系列操作系統(tǒng)包括SmartPhone以及Pocket PC Phone兩
22、種平臺。Pocket PC Phone主要用于掌上電腦型的智能手機,而SmartPhone則主要為手上智能手機提供操作系統(tǒng)。</p><p> Linux系統(tǒng)是一個源代碼開放的操作系統(tǒng)。由于其開源性,手機制造商可以根據(jù)實際情況開放自己的Linux手機操作系統(tǒng),從而也能夠吸引更多的軟件制造商在其上開發(fā)更多的應(yīng)用軟件,豐富第三方的應(yīng)用。但是Linux操作系統(tǒng)也還存在一些不足,集成開放環(huán)境和基于Linux的產(chǎn)品與PC
23、的連接性比較差等。</p><p><b> 1.3論文組織結(jié)構(gòu)</b></p><p> 本文首先分析了系統(tǒng)的研究背景,介紹了當前手機操作系統(tǒng)、即時通訊軟件的發(fā)展現(xiàn)狀和即時通訊協(xié)議,以及本文的主要內(nèi)容。</p><p> 第二章,介紹了Android的特征、Android的架構(gòu)以及Android應(yīng)用的構(gòu)成和工作機制,并對Android與
24、其它手機操作系統(tǒng)進行了比較,說明了Android的優(yōu)勢。</p><p> 第三章,詳細論述了在Android平臺上開發(fā)小小手機商城系統(tǒng),提出了系統(tǒng)的主要功能,系統(tǒng)的總體業(yè)務(wù)描述和架構(gòu)設(shè)計。</p><p> 第四章,介紹了系統(tǒng)的設(shè)計特點,著重論述了賬戶操作的工作流程。</p><p> 第五章,給出本文的結(jié)論并對課題進行了進一步的展望。</p>
25、<p> 2.Android的架構(gòu)分析</p><p> Android是一個移動設(shè)備的軟件平臺,是由Linux+Java構(gòu)成的開源軟件,它提供包括SDK、Key Apps、Middleware、Linux Kernel四個部分在內(nèi)的全套手機軟件方案。它開放了基于Linux內(nèi)核以上的開發(fā)工具,從而保證了內(nèi)容的可移植性和多樣性。Android平臺為我們開發(fā)應(yīng)用程序提供了一套很好的框架,我們可以在這個
26、平臺的基礎(chǔ)上開發(fā)不同的應(yīng)用程序,也可以開發(fā)新的組件供應(yīng)用程序調(diào)用。</p><p> 2.1Android特征</p><p> 應(yīng)用框架:用于開發(fā)可重用、可替代的組件。</p><p> Dalvik虛擬機:Android采用的Java虛擬機是自主開發(fā)的代號為Dalvik的虛擬機技術(shù),在保證API方面兼容的同時Dalvik針對移動手機進行了大幅優(yōu)化,占用資源
27、更小,運行效率更高。</p><p> 內(nèi)嵌瀏覽器:基于開源的瀏覽器網(wǎng)頁排版引擎WebKit。</p><p> 優(yōu)化的圖形:強大的自定義二維圖形庫?;贠penGL ES 1.0標準的3D圖形功能,在移動3D開發(fā)中有著至關(guān)重要的地位。</p><p> SQLite數(shù)據(jù)庫:SQLite提供結(jié)構(gòu)化的數(shù)據(jù)存儲。它是一款輕型免費的且開源的數(shù)據(jù)庫,它的設(shè)計目標是嵌入
28、式的,它占用的資源非常低、需要的內(nèi)存空間少、處理速度比較快和支持事務(wù)處理功能等。</p><p> 多媒體支持:支持各種通用的音頻、視頻和靜態(tài)圖像格式,如MP3、JPG、PNG等。Open Core是Android多媒體框架的核心,所有Android平臺的音頻和視頻采集、播放的操作都是通過它來實現(xiàn)的。通過Open Core,程序員可以方便快速的開發(fā)出想要的多媒體應(yīng)用程序。</p><p>
29、; GSM技術(shù):(依賴硬件)Global System for Mobile Communications,全球通訊系統(tǒng),俗稱“全球通”,是第二代移動通信技術(shù),其開發(fā)目的是讓全球各地可以共同使用一個移動電話網(wǎng)絡(luò)標準,讓用戶使用一部手機就能行遍全球。</p><p> 藍牙,EDGE,3G and WiFi:(依賴硬件)藍牙和Wi-Fi都是一種短距離的無線連接技術(shù),在短距離內(nèi)可以實現(xiàn)話音和數(shù)據(jù)的無線傳輸。EDG
30、E(Enhanced Data Rate for GSM Evolution),是增強型數(shù)據(jù)速率GSM演進技術(shù)。</p><p> Cameram,GPS,compass,andaccelerometer:(依賴硬件)GPS(Global Positioning System),即全球定位系統(tǒng)。它是由一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。Compass是一個開放源碼的Java搜索引擎框架。</p>
31、;<p> 強大的開發(fā)環(huán)境:包括一個設(shè)備模擬器,調(diào)試工具,內(nèi)存和性能檢測,以及Eclipse IDE的開發(fā)插件。Eclipse是個集成開放環(huán)境。</p><p> 2.2 Android架構(gòu)</p><p> Android的架構(gòu)是由Linux內(nèi)核、C/C++函數(shù)庫、Dalvik虛擬機、應(yīng)用框架以及關(guān)鍵應(yīng)用程序構(gòu)成的。通過編譯基于框架的應(yīng)用程序可以降低開發(fā)負荷。應(yīng)用軟件
32、原則上是在DalvikVM上運行的。</p><p> 圖2-1Android架構(gòu)</p><p> 2.2.1.關(guān)鍵應(yīng)用程序 Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。 </p><p> 2.2.2.應(yīng)用程
33、序框架 開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機制也使用戶可以方便的替換程序組件。隱藏在每個應(yīng)用后面的是一系列的服務(wù)和系統(tǒng), 其中包括; 豐富而又可擴展的視圖(Views),可以用來構(gòu)建應(yīng)用程序, 它包括列表(lists),網(wǎng)格(gr
34、ids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的web瀏覽器。 內(nèi)容提供器(Content Providers)使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫), 或者共享它們自己的數(shù)據(jù) 資源管理器(Resource Manager)提供 非代碼資源的訪問,如本地字符串,圖形,和布局文件( layout files )。 通知管理器 (Notification Manag
35、er) 使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。 活動管理器( Activity Ma</p><p> 2.2.3.系統(tǒng)運行庫</p><p> 2.2.3.1程序庫</p><p> Android 包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。以下是一些核心庫:
36、 系統(tǒng) C 庫 - 一個從 BSD 繼承來的標準 C 系統(tǒng)函數(shù)庫( libc ), 它是專門為基于 embedded linux 的設(shè)備定制的。 媒體庫 - 基于 PacketVideo OpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態(tài)圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。</p><p> Surface
37、Manager - 對顯示子系統(tǒng)的管理,并且為多個應(yīng)用程序提 供了2D和3D圖層的無縫融合。</p><p> LibWebCore - 一個最新的web瀏覽器引擎用,支持Android瀏覽器和一個可嵌入的web視圖。</p><p> SGL - 底層的2D圖形引擎</p><p> 3D libraries - 基于OpenGL ES 1.0 APIs實現(xiàn)
38、;該庫可以使用硬件 3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速。</p><p> FreeType -位圖(bitmap)和矢量(vector)字體顯示。</p><p> SQLite - 一個對于所有應(yīng)用程序可用,功能強勁的輕型關(guān)系型數(shù)據(jù)庫引擎。 </p><p> 2.2.3.1運行庫</p><p> Andr
39、oid 包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。每一個Android應(yīng)用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設(shè)計成一個設(shè)備可以同時高效地運行多個虛擬系統(tǒng)。 Dalvik虛擬機執(zhí)行(.dex)的Dalvik可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了優(yōu)化。同時虛擬機是基于寄存器的,所有的類都經(jīng)由JAVA編譯器編譯,然后通過SDK中 的 "dx" 工
40、具轉(zhuǎn)化成.dex格式由虛擬機執(zhí)行。Dalvik虛擬機依賴于linux內(nèi)核的一些功能,比如線程機制和底層內(nèi)存管理機制。2.2.4.Linux內(nèi)核</p><p> Android 的核心系統(tǒng)服務(wù)依賴于 Linux 2.6 內(nèi)核,如安全性、內(nèi)存管理、進程管理、網(wǎng)絡(luò)協(xié)議和驅(qū)動模型。Linux 內(nèi)核也同時作為硬件和軟件棧之間的抽象層。</p><p> 2.3Android應(yīng)用的構(gòu)成和
41、工作機制</p><p> Android應(yīng)用程序來說,是由Activity、Intent Receiver、Service、ContentProvider四部分組成,但并不是每一個Android應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時,需要在配置文件Android應(yīng)用程序中所必需的,用于定義應(yīng)用程序的組件、組件的功能以及必要條件等。Android應(yīng)用的構(gòu)成和工作流程圖如下:</p>&l
42、t;p> 圖2-2Android的構(gòu)成和工作流程</p><p> 2.4 Android與其他手機操作系統(tǒng)的比較</p><p> 我們主要從手機操作系統(tǒng)的Portablity、Reliability、Connectivity、Product Diversity、</p><p> Open Platform、Kernal Size、Standard
43、s、Security和Special Features這九個方面進行了比較,具體的比較結(jié)果如下表:</p><p> 對上表比較的九項每一項以1分、0.5分、0分三個級別來進行了評分,綜合各項評分,最好得到的評分結(jié)果是Android 8.5分、Windows mobile 5.5分、Symbian6.5分。Android基于開源的Linux以及標準的跨平臺的編程語言Java,而且源代碼開放,并且免費允許所有廠商
44、和個人在其基礎(chǔ)上進行開發(fā),其開源和免費政策將贏得不少手機制造商的支持。而且在其平臺上集成了不少優(yōu)秀的開源工程,如Webkit、OpenGL等,相信在不久,將會有更多的優(yōu)秀工程加入到Android中來。相比其他手機操作系統(tǒng)過于封閉的特性來說,Android在手機操作系統(tǒng)領(lǐng)域?qū)加泻艽蟮膬?yōu)勢,其功能也將會越來越強大。</p><p> 2.5 本章小結(jié) </p><p> 本章對And
45、roid平臺的特征、架構(gòu)以及Android應(yīng)用的構(gòu)成和工作機制進行了詳細的分析。對于Android應(yīng)用程序來說,主要由Activity、 Service、 Intent Receiver和Content Provider四部分組成,但并不是對于每一個應(yīng)用程序,這四部分都是必須的。Activity是應(yīng)用程序中最重要的一種構(gòu)成塊,我們對其進行了詳細的分析,包括Activity的生命周期以及Activity之間的切換。最后對Android與其
46、它的手機操作系統(tǒng)從九個方面進行了比較,說明了Android的優(yōu)勢。</p><p><b> 3.系統(tǒng)的總體框架</b></p><p><b> 3.1系統(tǒng)需求分析</b></p><p> 本系統(tǒng)主要用于對手機上網(wǎng)用戶,在線瀏覽該網(wǎng)站,用戶管理員可以對商品信息進行增刪改查等功能,用戶可以在該網(wǎng)站注冊,注冊后的用戶
47、還可以商品進行購買以及評價。使用該系統(tǒng)很大的提高了用戶購買能力.具體實現(xiàn)目標如下: </p><p> (1)手機上網(wǎng)用戶可以進行瀏覽網(wǎng)站所有商品。</p><p> (2)手機上網(wǎng)用戶可以進行所需商品的查詢。</p><p> (3)手機上網(wǎng)用戶可以對喜歡的商品進行購買但必須進行注冊網(wǎng)站會員才可以進行購買。 </p><p>
48、 (4)手機上網(wǎng)用戶進行網(wǎng)站會員的注冊,然后進入用戶主界面進行對商品選購,還可以對網(wǎng)站進行留言評價。</p><p> (5)商品管理模塊,詳細記錄了產(chǎn)品種類、名稱、價格等信息,并根據(jù)需求及時更新商品信息。</p><p> 3.2系統(tǒng)主要功能概述</p><p> 本系統(tǒng)主要實現(xiàn)功能:客戶端登陸注冊、瀏覽功能、訂單功能、留言評價功能、服務(wù)器管理功能。<
49、;/p><p> 該系統(tǒng)的架構(gòu)如圖3-2-1所示</p><p> 3.2.1客戶端登陸注冊</p><p> 客戶端登陸注冊功能:注冊手機商城的會員可以進行登錄進入該用戶的主界面。</p><p> 圖3-2-2客戶端登陸注冊流程圖</p><p> 圖3-2-3客戶端登陸注冊用例圖</p>&l
50、t;p> 3.2.2 瀏覽功能</p><p> 瀏覽功能:對網(wǎng)站所有的商品進行瀏覽操作。</p><p> 圖3-2-4瀏覽功能的流程圖</p><p> 圖3-2-5瀏覽功能的用例圖</p><p><b> 3.2.3訂單功能</b></p><p> 訂單功能:注冊手機商
51、城的會員可以進行登陸,然后對所選商品進行購買,下訂單。 </p><p> 圖3-2-6訂單功能的流程圖</p><p> 圖3-2-7訂單功能的用例圖</p><p> 3.2.4留言評價功能</p><p> 留言評價功能:手機商城的注冊用戶可以在登錄自己的用戶主界面后對商品進行評價。</p><p>
52、圖3-2-8留言評價流程圖</p><p> 圖3-2-9留言評價用例圖</p><p> 3.2.5服務(wù)器管理功能</p><p> 服務(wù)器管理功能:手機商城的網(wǎng)站管理員登錄到后臺數(shù)據(jù)庫可以對商品信息進行查詢,修改,增加以及刪除。例如節(jié)假日要對商品進行促銷的修改價格。</p><p> 圖3-2-10服務(wù)管理流程圖</p>
53、;<p> 圖3-2-11服務(wù)管理用例圖</p><p><b> 3.3系統(tǒng)流程</b></p><p> 用戶在瀏覽網(wǎng)站時首先看到的就是網(wǎng)站首頁。在首頁用戶可以快速瀏覽最新商品,了解熱門商品和推薦商品,也可以搜索已知的商品查看具體信息。用戶如果想要購買商品時必須要注冊成為會員,在用戶查看完商品的詳細作息后,可以把自己想要購買的商品放入購物車當中
54、,也可以隨時修改、刪除購物車里的商品,如果用戶對購物車里的商品都很滿意,可以去下訂單。這時相關(guān)的程序模塊會將用戶所提交的所有信息都記錄在數(shù)據(jù)里以便于商城的管理人員可以核對信息并在收款后準備發(fā)貨,發(fā)貨成功并且用戶確認收到貨物時整個購物過程便結(jié)束了。在電子商城的后臺管理方面還需要添加、修改、刪除商品,同時要對商品進行分類,訂單的處理等都需要電子商城的管理人員來操作。</p><p> 為了更加清晰地表達系統(tǒng)的業(yè)務(wù)功
55、能模塊,畫出流程圖,對于不同的角色,所承擔的任務(wù)各自不同,流程不一樣,包括客戶端流程(如圖3-3-1所示)和服務(wù)端流程(如圖3-3-2所示)。</p><p> 圖3-3-1客戶端流程圖</p><p> 圖3-3-2服務(wù)端流程圖</p><p><b> 3.4系統(tǒng)框架</b></p><p> 圖3-3-1后
56、臺管理框圖</p><p> 圖3-3-2客戶端框圖</p><p><b> 4.詳細設(shè)計與實現(xiàn)</b></p><p><b> 4.1.詳細設(shè)計</b></p><p><b> 4.1.1前臺實現(xiàn)</b></p><p> 根據(jù)客戶需求
57、分析,小小手機商城的前臺主要包括:搜索,登錄,注冊,商品瀏覽,商品購買,留言評價等功能模塊。前臺流程如下圖4-1-1:</p><p> 圖4-1-1前臺實現(xiàn)流程圖</p><p><b> 4.1.2后臺實現(xiàn)</b></p><p> 小小手機商城的后臺主要是三個模塊組成,分別是:會員管理,購買信息的管理和商品信息的管理(包括數(shù)據(jù)的查詢
58、,修改,增加,刪除)。后臺流程如下圖4-1-2:</p><p> 圖4-1-2后臺實現(xiàn)流程圖</p><p><b> 4.2系統(tǒng)實現(xiàn)</b></p><p> 4.2.1用戶首頁的實現(xiàn)過程</p><p> 手機用戶登錄的前臺首頁,用戶可以掌握最新網(wǎng)站商品信息,還可以實現(xiàn)搜索,瀏覽等功能。</p>
59、<p> 前臺首頁運行結(jié)果如圖4-2-1所示:</p><p> 圖4-2-1前臺首頁運行界面</p><p> 4.2.2用戶注冊的實現(xiàn)過程</p><p> 用戶注冊也就是收集、記錄用戶詳細信息的一個過程,程序?qū)⒂脩舻淖孕畔懭氲搅藀honeuserinfo表里。</p><p> 用戶注冊頁面運行結(jié)果如圖4-2
60、-2所示:</p><p> 圖4-2-2用戶注冊頁面運行界面</p><p> 4.2.3用戶登錄的實現(xiàn)過程</p><p> 用戶經(jīng)過注冊成為網(wǎng)站會員,登錄后可以進行購買,留言評價等功能。</p><p> 用戶登錄頁面運行結(jié)果如圖4-2-3所示:</p><p> 圖4-2-3用戶登錄頁面運行界面<
61、;/p><p> 4.2.4用戶搜索的實現(xiàn)過程</p><p> 用戶在經(jīng)過對網(wǎng)站商品信息的了解,根據(jù)個人喜好對商品進行篩選,例如用戶對手機中sony品牌較為喜愛,可以在搜索框中鍵入sony,網(wǎng)站將所有sony的所有商品顯示,用戶可以繼續(xù)進行后續(xù)操作。</p><p> 用戶搜索頁面運行結(jié)果如圖4-2-4所示:</p><p> 圖4-2
62、-4用戶搜索頁面運行界面</p><p> 4.2.5用戶瀏覽的實現(xiàn)過程</p><p> 用戶在登錄首頁后,可以查看商品信息。</p><p> 用戶瀏覽頁面運行結(jié)果如圖4-2-5所示:</p><p> 圖4-2-5用戶瀏覽頁面運行界面</p><p> 4.2.6用戶購買的實現(xiàn)過程</p>
63、<p> 用戶在瀏覽商品時想要進行商品的訂購可以點擊購買按鈕,進入購買頁面,填寫購買信息,商品名稱和商品個數(shù)必填,用戶留言可以為空。用戶留言將與其他購買信息寫入buyinfo表,后臺管理將根據(jù)表中信息對商品進行調(diào)整,如某些商品在長時間沒有訂購,可以對商品作下架處理。</p><p> 用戶購買頁面運行結(jié)果如圖4-2-6,4-2-7所示:</p><p> 圖4-2-6-1
64、用戶購買頁面運行界面</p><p> 圖4-2-6-2用戶購買頁面運行界面</p><p> 4.2.7數(shù)據(jù)庫連接的實現(xiàn)</p><p> public class DBHelper {</p><p> public static Connection getDBConnection() throws ClassNotFoundE
65、xception,</p><p> SQLException {</p><p> ResourceBundle bundle = ResourceBundle</p><p> .getBundle("com.eorient.web.DBConfig");</p><p> String driverClass
66、 = bundle.getString("driverClass");</p><p> String userid = bundle.getString("userid");</p><p> String password = bundle.getString("password");</p><p&g
67、t; String url = bundle.getString("url");</p><p> // 1.加載驅(qū)動程序</p><p> Class.forName("org.gjt.mm.mysql.Driver");</p><p> // 2.獲得數(shù)據(jù)庫連接</p><p> Con
68、nection conn = DriverManager.getConnection("jdbc:mysql://localhost/android","root","123");</p><p> return conn;</p><p><b> }</b></p><p>&
69、lt;b> }</b></p><p><b> 4.2.8后臺實現(xiàn)</b></p><p> 管理員可以進入MySQL,在連接pei中的android數(shù)據(jù)庫中,進行修改。以實現(xiàn)對會員信息管理,購買信息的管理,商品信息的增加,刪除,修改,查詢。</p><p> 商品信息的管理如下圖4-2-8-1,對表producti
70、nfo修改,修改字段內(nèi)容以實現(xiàn)功能。</p><p> 圖4-2-8-1商品信息管理</p><p> 會員信息的管理如下圖4-2-8-2,對表phoneuserinfo修改,完善會員信息,以及刪除非法會員。</p><p> 圖4-2-8-2會員信息管理</p><p> 購買信息的管理如下圖4-2-8-3,對表buyinfo修改,
71、管理員對購買信息進行統(tǒng)計,以方便對商品的管理。</p><p> 圖4-2-8-3購買信息管理</p><p><b> 5.1總結(jié)和展望</b></p><p> 在此次項目中我擔任Struts2框架技術(shù)支持和手機客戶端的設(shè)計。</p><p> (1)在android的手機客戶端。具體代碼流程為定義一個了Bu
72、tton類btnGO,從界面中取出按鍵將btnGO實例化, 創(chuàng)建一個Uri的鏈接到服務(wù)器端,用到的技術(shù)就是手機瀏覽器WebKit。Android應(yīng)用端開始鏈接服務(wù)器端,將服務(wù)器端的頁面信息通過手機客戶端的WebView顯示在Android 手機界面上。以下是主要的實現(xiàn)代碼:</p><p> public void onCreate(Bundle savedInstanceState) {</p
73、><p> super.onCreate(savedInstanceState);</p><p> setContentView(R.layout.main);</p><p> btnGO = (Button) findViewById(R.id.go);</p><p> btnGO.setOnClickListener(new V
74、iew.OnClickListener() {</p><p><b> @Override</b></p><p> public void onClick(View v) {</p><p> Uri url = Uri.parse("http://192.168.2.143:8620/Struts2Test/incl
75、ude.jsp");</p><p> Intent intent = new Intent(Intent.ACTION_VIEW, url);</p><p> startActivity(intent);</p><p><b> }</b></p><p><b> });</b&
76、gt;</p><p><b> }</b></p><p><b> }</b></p><p> ?。?)為了解決網(wǎng)絡(luò)的延遲問題,我們可以使用線程把手機客戶端程序繼續(xù)完善,采用了線程后可以解決網(wǎng)絡(luò)的延遲,應(yīng)答遲緩的現(xiàn)象,以下是用線程實現(xiàn)的核心代碼:</p><p> public clas
77、s WebViewDemo extends Activity { </p><p> /** Called when the activity is first created. */ </p><p> @Override </p><p> public void onCreate(Bundle icicle) { </p>
78、<p> super.onCreate(icicle); </p><p> setContentView(R.layout.main); </p><p> webView1 = new WebView(this); </p><p> webView1 </p><p> .loadData
79、( </p><p> "<html><body>Can I focus?<br /><a href=\"#\">No I cannot!</a>.</body></html>", </p><p> "text/html", &q
80、uot;utf-8"); </p><p> this.setContentView(webView1); </p><p> Logger.info("Download Faild _=> " + webView1.canGoBack()); </p><p> webView = new WebView
81、(this); </p><p> webView.loadUrl("http://192.168.2.143:8620/Struts2Test/include.jsp"); </p><p> new Thread(new WebDownloadListener(this)).start(); </p><p><b
82、> } </b></p><p> WebView webView1; </p><p> class WebDownloadListener implements Runnable, DownloadListener { </p><p> WebViewDemo wd; </p><p>
83、 WebDownloadListener(WebViewDemo wd){ </p><p> this.wd = wd; </p><p><b> } </b></p><p><b> //使用線程代碼:</b></p><p> public void run() {
84、 </p><p> int j=0; </p><p> StringBuffer sb = new StringBuffer(); </p><p> sb.append("正在連接網(wǎng)絡(luò)"); </p><p> while (true) { </p><p&g
85、t;<b> try { </b></p><p> Thread.sleep(4 * 1000); </p><p><b> j++; </b></p><p> sb.append("."); </p><p> webView1 = ne
86、w WebView(wd); </p><p> webView.loadUrl("http://192.168.2.143:8620/Struts2Test/include.jsp"); </p><p> Message msg = mHandler.obtainMessage(); </p><p> mHandl
87、er.sendMessage(msg); </p><p> } catch (Throwable e) { </p><p> Logger.info(e.toString()); </p><p> e.printStackTrace(); </p><p><b> } </b>
88、;</p><p> if (j== 3) { </p><p> webView1 = null; </p><p> Message msg = mHandler.obtainMessage(); </p><p> mHandler.sendMessage(msg); </p><p&
89、gt; break; </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> public void onDownloadFailed(String arg0,
90、 int arg1) { </p><p> Logger.info("Download Faild _=> " + arg0); </p><p><b> } </b></p><p> public void onDownloadFinished(String arg0) { <
91、;/p><p> Logger.info("Download Finished => " + arg0); </p><p> setContentView(webView); </p><p><b> } </b></p><p> public void onDown
92、loadStart(String arg0, String arg1, long arg2, </p><p> Message arg3, Message arg4) { </p><p> Logger.info("Download Faild _=> " + arg0); </p><p><b>
93、} </b></p><p> public void onDownloadSuspended(String arg0, Message arg1) { </p><p> Logger.info("Download Faild _=> " + arg0); </p><p><b> }
94、 </b></p><p><b> } </b></p><p> Handler mHandler = new Handler(){ </p><p> @Override </p><p> public void handleMessage(Message msg) {
95、</p><p> super.handleMessage(msg); </p><p> //invalidate(); </p><p> if(webView1 == null) </p><p> setContentView(webView); </p><p><b&g
96、t; else </b></p><p> setContentView(webView1); </p><p><b> } </b></p><p><b> }; </b></p><p> WebView webView = null; }<
97、;/p><p> ?。?)在這個項目中,我們項目組主要采用了MVC的設(shè)計模式,MVC英文即Model-View-Controller</p><p> 視圖(View) 與用戶交互的界面,對于Web應(yīng)用系統(tǒng)來說,可以是HTML頁面、JSP 、XML和Applet等。</p><p> 控制(Controller)接收用戶請求, 根據(jù)用戶不同請求去調(diào)用不同模型,再根據(jù)
98、調(diào)用的不同結(jié)果跳轉(zhuǎn)到響應(yīng)的視圖,它是應(yīng)用系統(tǒng)的CUP,是調(diào)度中心。模型(Model)它是業(yè)務(wù)邏輯層,是業(yè)務(wù)邏輯處理的核心。這么來設(shè)計就是為了把表示層和下面的業(yè)務(wù)邏輯層和數(shù)據(jù)持久層分開。這么可以使層次更加分明,使得分工更加明確。大部分用過程語言比如ASP、PHP開發(fā)出來的Web應(yīng)用,初始的開發(fā)模板就是混合層的數(shù)據(jù)編程。例如,直接向數(shù)據(jù)庫發(fā)送請求并用 HTML顯示,開發(fā)速度往往比較快,但由于數(shù)據(jù)頁面的分離不是很直接,因而很難體現(xiàn)出業(yè)務(wù)模型的
99、樣子或者模型的重用性。產(chǎn)品設(shè)計彈性力度很小,很難滿足用戶的變化性需求。MVC要求對應(yīng)用分層,雖然要花費額外的工作,但產(chǎn)品的結(jié)構(gòu)清晰,產(chǎn)品的應(yīng)用通過模型可以得到更好地體現(xiàn)。下面我們可以用圖表看一下他們具體之間的關(guān)系:</p><p> 而且struts2框架技術(shù)就是很好的實現(xiàn)MVC的設(shè)計模式的一種,在我們項目的中的搜索模塊中就采用了這種模式,下面我來詳細地說明我們是怎么樣實現(xiàn)的。</p><p
100、> ?。?)首先我們來看VIEW(視圖)的東西,在這里我們主要用JSP來開發(fā)界面,下面搜索頁面的核心代碼:</p><p> <s:form action="Search" theme="simple"></p><p> <table width="373" border="0"
101、cellspacing="0" cellpadding="0"height="89"></p><p><b> <tr></b></p><p> <td width="195" height="89" align="left&q
102、uot; class="text1"><font size="2"></p><p> 請輸入要查信息(如手機型號):</p><p> </font></td></p><p> <td width="127"></p><
103、p><b> <label></b></p><p> <s:textfield name="usersearch" cssClass="textfield" /></p><p><b> </label></b></p><p>&
104、lt;b> </td></b></p><p> <td width="51"></p><p> <input type="submit" name="Submit" value="搜索" /></td></p><p
105、> </tr></table></s:form></p><p> ?。?)從手機客戶端加載的信息通過Controller(在這里就是struts.xml文件)進行判斷,通過判斷我們可以得知是class="com.eorient.web.UserSearch"(即Action為UserSearch)來進行數(shù)據(jù)的相關(guān)處理。那么下面我們就來看一下的Use
106、rSearch.java(在這里就是MVC中的模板)文件是怎么處理的。其核心代碼如下:</p><p> public class UserSearch implements Action {</p><p> private List list;</p><p> public List getList() {</p><p> r
107、eturn list;</p><p><b> }</b></p><p> public void setList(List list) {</p><p> this.list = list;</p><p><b> }</b></p><p> publi
108、c String execute() throws Exception {</p><p> Database user = new Database();</p><p> //Map userget = new HashMap();</p><p> list = user.search(usersearch);</p><p>
109、 if (list.equals(null)){</p><p> return INPUT;</p><p><b> }else{</b></p><p> return SUCCESS;</p><p><b> }</b></p><p><b>
110、 }</b></p><p> private String usersearch;</p><p> public String getUsersearch() {</p><p> return usersearch;</p><p><b> }</b></p><p>
111、; public void setUsersearch(String usersearch) {</p><p> this.usersearch = usersearch;</p><p><b> }</b></p><p><b> }</b></p><p> 其中代碼中用到了列表
112、List和實例化了Database類的一個對象user,在這里我要解釋一下,對象user調(diào)用了Database類中的search()方法,而這個方法的返回值就是一個列表LIST。其中在Database中實現(xiàn)了對數(shù)據(jù)持久層的封裝,在本類只需實例化Database的一個對象user,通過user來調(diào)用實現(xiàn)了對數(shù)據(jù)持久層的封裝的方法search()方法,具體的search()方法是如何實現(xiàn)的,我們可以看一下其核心的代碼,代碼如下:</p
113、><p> public List search(String name) { </p><p> Connection conn = null; </p><p> Statement stmt = null;
114、</p><p> Map user = new HashMap();</p><p> List list = new ArrayList();</p><p> // 1.加載驅(qū)動程序 </p><p> try {
115、 </p><p> conn = DBHelper.getDBConnection(); </p><p> // 3.創(chuàng)建語句對象
116、 </p><p> stmt = conn.createStatement(); </p><p> // 4.執(zhí)行SQL語句 </p><p> ResultSet rs = s
117、tmt </p><p> .executeQuery("select productType,productName,ProductInfo from productinfo where productType like '%"</p><p> + name +
118、"%'"); </p><p> while (rs.next()) { </p><p> Productinfo bean = new Productinfo();</p>
119、<p> bean.setProductType(rs.getString("productType"));</p><p> bean.setProductName(rs.getString("productName"));</p><p> bean.setProductInfo(rs.getString("Prod
120、uctInfo"));</p><p> list.add(bean);</p><p><b> } </b></p><p> return list;</p><p> } catch (ClassNotFoundException e) {
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android平臺的手機商城的畢業(yè)論文
- android網(wǎng)上商城——畢業(yè)論文
- 畢業(yè)設(shè)計(論文)基于android平臺的手機商城的設(shè)計
- android畢業(yè)論文--基于android 平臺的google map的手機導航設(shè)計
- 畢業(yè)論文--基于android平臺的beatplane游戲開發(fā)
- 基于android平臺的校園通軟件畢業(yè)論文
- 基于android平臺的手機計步器設(shè)計【畢業(yè)論文】
- android聊天系統(tǒng)畢業(yè)論文--基于android平臺的聊天系統(tǒng)設(shè)計與實現(xiàn)
- android畢業(yè)論文--基于android短信平臺的管理與開發(fā)(含外文翻譯)
- 基于android平臺的天氣軟件開發(fā)畢業(yè)論文
- 畢業(yè)論文---基于android平臺的移動警務(wù)通系統(tǒng)
- 基于android平臺的音樂播放器-畢業(yè)論文
- 畢業(yè)論文——基于android平臺的音樂播放器
- 基于android平臺的天氣軟件開發(fā)畢業(yè)論文
- android畢業(yè)論文
- 基于android平臺開發(fā)的飛機射擊游戲-畢業(yè)論文
- 基于android手機平臺的音樂播放器-畢業(yè)論文
- 基于Android平臺的手機計步器畢業(yè)論文(1稿).doc
- 基于android手機平臺的音樂播放器【畢業(yè)論文】
- 畢業(yè)論文基于android手機平臺的音樂播放器
評論
0/150
提交評論