畢業(yè)設(shè)計(jì)(論文)-基于手機(jī)客戶端的圖書(shū)搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩45頁(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>  目 錄</b></p><p><b>  目 錄1</b></p><p><b>  摘 要1</b></p><p>  Abstract2</p><p><b>  前 言3</b></p>&

2、lt;p><b>  第一章 緒論4</b></p><p><b>  1.1引言4</b></p><p>  1.2課題主要任務(wù)和目標(biāo)4</p><p><b>  1.3課題意義5</b></p><p>  1.4文章組織結(jié)構(gòu)5</p>

3、<p>  第二章 相關(guān)技術(shù)及其背景知識(shí)6</p><p>  2.1 ECLIPSE開(kāi)發(fā)工具6</p><p>  2.1.1 Eclipse版本歷史6</p><p>  2.1.2 Eclipse語(yǔ)言拓展6</p><p>  2.1.3 Eclipse 插件開(kāi)發(fā)環(huán)境7</p><p>  2

4、.1.4 Eclipse的主要組成7</p><p>  2.1.5 Eclipse SDK7</p><p>  2.2 ANDROID平臺(tái)7</p><p>  2.2.1 Android的歷史8</p><p>  2.2.2 Android平臺(tái)的五大優(yōu)勢(shì)特色8</p><p>  2.2.3 And

5、roid應(yīng)用程序框架9</p><p>  2.3 SQLITE數(shù)據(jù)庫(kù)10</p><p>  2.4 用ECLIPSE調(diào)試ANDROID應(yīng)用程序11</p><p>  2.4.1 Devices11</p><p>  2.4.2 Emulator Control12</p><p>  2.4.3 Fi

6、le Explorer13</p><p>  2.4.4 Threads、Heap、Allocation Tracker14</p><p>  2.4.5 LogCat15</p><p>  2.4.6 Console15</p><p>  2.5本章小結(jié)16</p><p>  第三章 手機(jī)圖書(shū)搜索

7、系統(tǒng)的分析和設(shè)計(jì)17</p><p>  3.1 系統(tǒng)分析與總體設(shè)計(jì)17</p><p>  3.1.1系統(tǒng)功能描述17</p><p>  3.1.2 系統(tǒng)功能模塊劃分18</p><p>  3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)19</p><p>  3.3本章小節(jié)19</p><p> 

8、 第四章 系統(tǒng)的實(shí)現(xiàn)和運(yùn)行20</p><p>  4.1系統(tǒng)的主界面20</p><p>  4.2圖書(shū)信息管理模塊的實(shí)現(xiàn)23</p><p>  4.2.1 圖書(shū)信息管理功能操作界面24</p><p>  4.2.2 創(chuàng)建表和數(shù)據(jù)庫(kù)27</p><p>  4.2.3 添加數(shù)據(jù)27</p>

9、<p>  4.2.4 刪除數(shù)據(jù)29</p><p>  4.2.5 修改數(shù)據(jù)31</p><p>  4.3查詢及顯示結(jié)果模塊的實(shí)現(xiàn)32</p><p>  4.3.1 顯示查詢結(jié)果33</p><p>  4.3.2 模糊查詢36</p><p>  4.3.3 按條件查詢37</p

10、><p>  4.4本章小節(jié)38</p><p>  第五章 系統(tǒng)的部署39</p><p>  5.1 部署ANDROID應(yīng)用程序到手機(jī)39</p><p>  5.2 本章小結(jié)39</p><p>  第六章 總結(jié)與展望40</p><p>  6.1 課題總結(jié)40</p>

11、;<p>  6.2 課題展望40</p><p><b>  參考文獻(xiàn)41</b></p><p><b>  致謝42</b></p><p><b>  摘 要</b></p><p>  Android是當(dāng)今最重要的手機(jī)開(kāi)發(fā)平臺(tái)之一,它是建立在Jav

12、a的基礎(chǔ)之上的,它能夠迅速建立手機(jī)軟件的解決方案。Android的功能十分強(qiáng)大,成為當(dāng)今軟件行業(yè)的一股新興力量。</p><p>  本文首先介紹了Android的相關(guān)知識(shí),比如歷史,發(fā)展,特點(diǎn)等。然后分析了在Android平臺(tái)上運(yùn)行的圖書(shū)搜索系統(tǒng)的組成模塊和基本功能,并對(duì)其中用到的一些關(guān)鍵的方法做出詳細(xì)的描述。</p><p>  在開(kāi)發(fā)過(guò)程中運(yùn)用了開(kāi)發(fā)工具Eclipse和數(shù)據(jù)庫(kù)SQLi

13、te,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的圖書(shū)搜索系統(tǒng)。系統(tǒng)主要分為兩個(gè)功能模塊:存儲(chǔ)和查詢。在存儲(chǔ)模塊中,可以對(duì)圖書(shū)數(shù)據(jù)進(jìn)行增加,刪除,修改等操作。在查詢模塊中,可以查詢存儲(chǔ)在數(shù)據(jù)庫(kù)中的圖書(shū)數(shù)據(jù)并顯示在手機(jī)屏幕上。</p><p>  該系統(tǒng)可以為使用者提供方便快捷的信息服務(wù),用戶可以獲取所查詢的圖書(shū)的各類信息,為用戶查書(shū)購(gòu)書(shū)帶來(lái)了便利。</p><p>  關(guān)鍵詞:圖書(shū)搜索系統(tǒng),Android平臺(tái),

14、SQLite數(shù)據(jù)庫(kù),Eclipse </p><p><b>  Abstract</b></p><p>  Android is one of the most important mobile development platforms, which is based on the Java .It can establish solutions to mo

15、bile software quickly. The function of Android is quite powerful, and it has been becoming an emerging force in the software industry.</p><p>  This paper first introduced the related knowledge of Android, s

16、uch as history, development, characteristic etc. Then it analyzes the composition of the book search system module and some basic functions that run on the Android platform, and make detailed description to some key meth

17、ods.</p><p>  Eclipse and a backend database SQLite are used during the development process. Then the author will design and implement a simple book search system. The system is mainly divided into two funct

18、ion modules: storage and query. In storage module, one can insert, delete, and modify the book data. In the inquiry module, one can inquire the book data stored in a database and display it on the screen of phones.</p

19、><p>  This system can provide fast and convenient information service for users, users can get access to the data of books they inquire, As a result, it can bring convenient for users to search and buy books.&

20、lt;/p><p>  Key words: book search system, Android platform, SQLite data base, Eclipse</p><p>  Written by:Gu Xiang</p><p>  Supervised by:Fu YuChen</p><p><b>  前 言&

21、lt;/b></p><p>  進(jìn)入21世紀(jì)以來(lái),整個(gè)社會(huì)的發(fā)展已經(jīng)日趨信息化,高速化!生活和工作的快節(jié)奏令我們目不暇接,各種各樣的信息充斥著我們的視野,撞擊著我們的思維。追憶過(guò)去,Windows操作系統(tǒng)的誕生成就了微軟的霸主地位,也造就了PC時(shí)代的繁榮。然而,以Android和iPhone手機(jī)為代表的智能移動(dòng)設(shè)備的發(fā)明極大地改變了人們的生活方式。移動(dòng)互聯(lián)時(shí)代(3G時(shí)代)已經(jīng)來(lái)臨,誰(shuí)會(huì)成為這些移動(dòng)設(shè)備的主

22、宰?毫無(wú)疑問(wèn),它就是Android——3G時(shí)代的“Windows”!</p><p>  隨著3G的到來(lái),無(wú)線寬帶的不斷發(fā)展,使得在手機(jī)上實(shí)現(xiàn)更多內(nèi)容更豐富的應(yīng)用程序成為可能,如視頻通話、視頻點(diǎn)播、移動(dòng)互聯(lián)網(wǎng)沖浪、在線看書(shū)/聽(tīng)歌、內(nèi)容分享等。為了承載這些數(shù)據(jù)應(yīng)用及快速部署,手機(jī)功能將會(huì)越來(lái)越智能,越來(lái)越開(kāi)放。為了實(shí)現(xiàn)這些需求,必須有一個(gè)好的開(kāi)發(fā)平臺(tái)來(lái)支持,在此由Google公司發(fā)起的OHA聯(lián)盟走在了業(yè)界的前列,2

23、007年11月推出了開(kāi)放的Android平臺(tái),任何公司及個(gè)人都能夠免費(fèi)獲取到源代碼及SDK,中國(guó)移動(dòng)也聯(lián)合各手機(jī)廠商共同推出了基于Android平臺(tái)的OPhone。不難看出,Android平臺(tái)能夠在短時(shí)間內(nèi)躋身智能手機(jī)開(kāi)發(fā)平臺(tái)的前列。</p><p>  2009年,3G拍照在國(guó)內(nèi)開(kāi)放后,3G、Android、iPhone、Google、蘋(píng)果、手機(jī)軟件、移動(dòng)開(kāi)發(fā)等名次越來(lái)越充斥于耳。隨著3G網(wǎng)絡(luò)的大規(guī)模建設(shè)和智能

24、手機(jī)的迅速普及,移動(dòng)互聯(lián)時(shí)代已經(jīng)微笑著迎面而來(lái)。</p><p>  以創(chuàng)新的搜索引擎技術(shù)而一躍成為互聯(lián)網(wǎng)巨頭的Google,無(wú)線搜索無(wú)疑是他進(jìn)軍移動(dòng)互聯(lián)網(wǎng)的一塊基石。Android操作系統(tǒng)是Google最具殺傷力的武器之一。雖然蘋(píng)果以其天才的創(chuàng)新,使得iPhone在全球迅速擁有了數(shù)百萬(wàn)忠實(shí)“粉絲”,而Android作為第一個(gè)完整、開(kāi)放、免費(fèi)的手機(jī)平臺(tái),使開(kāi)發(fā)者在為其開(kāi)發(fā)程序時(shí)擁有更大的自由。與Windows M

25、obile、Symbian等廠商不同的是,Android操作系統(tǒng)均免費(fèi)提供給開(kāi)發(fā)人員,這樣可以為用戶節(jié)省進(jìn)三成成本,并得到眾多廠商與開(kāi)發(fā)商的擁護(hù)。最早進(jìn)入Android市場(chǎng)的HTC已經(jīng)陸續(xù)推出了G1、Magic、Hero、Tattoo等手機(jī),三星的7500以及摩托羅拉的收款A(yù)ndroid手機(jī)CLIQ也已面世,中國(guó)移動(dòng)則以Android為基礎(chǔ)開(kāi)發(fā)了Ophone平臺(tái)。這些足以證明Android已經(jīng)成為智能手機(jī)市場(chǎng)的生力軍[1]。</p

26、><p>  本次畢業(yè)設(shè)計(jì)的題目是《基于手機(jī)客戶端的圖書(shū)搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》,要求使用Java語(yǔ)言來(lái)實(shí)現(xiàn)系統(tǒng)的功能,使用SQLite數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),并能在電腦上的Android模擬器上模擬運(yùn)行。</p><p><b>  第一章 緒論</b></p><p><b>  1.1引言</b></p><p

27、>  Android 平臺(tái)是 Open Handset Alliance 的成果,Open Handset Alliance 組織由一群共同致力于構(gòu)建更好的移動(dòng)電話的公司組成。這個(gè)組織由 Google 領(lǐng)導(dǎo),包括移動(dòng)運(yùn)營(yíng)商、手持設(shè)備制造商、零部件制造商、軟件解決方案和平臺(tái)提供商以及市場(chǎng)營(yíng)銷公司。從軟件開(kāi)發(fā)的觀點(diǎn)看,Android 正處在開(kāi)源領(lǐng)域的中心位置。</p><p>  市場(chǎng)上第一款支持 Androi

28、d 的手機(jī)是由 HTC 制造并由 T-Mobile 供應(yīng)的 G1。這款設(shè)備從設(shè)想到推出花了大約一年的時(shí)間,惟一可用的軟件開(kāi)發(fā)工具是一些實(shí)行增量改進(jìn)的 SDK 發(fā)行版。隨著 G1 發(fā)行日的臨近,Android 團(tuán)隊(duì)發(fā)布了 SDK V1.0,用于這個(gè)新平臺(tái)的應(yīng)用程序也浮出水面。</p><p>  為了鼓勵(lì)創(chuàng)新,Google 舉辦了兩屆 “Android Developer Challenges”,為優(yōu)勝的參賽作品提

29、供數(shù)百萬(wàn)美金的獎(jiǎng)勵(lì)。G1 問(wèn)世幾個(gè)月之后,隨后就發(fā)布了 Android Market,它使用戶可以瀏覽應(yīng)用程序,并且可以將應(yīng)用程序直接下載到他們的手機(jī)上。經(jīng)過(guò)了大約 18個(gè)月,一個(gè)新的移動(dòng)平臺(tái)進(jìn)入公眾領(lǐng)域。</p><p>  近年來(lái)各手機(jī)廠商不斷推出Android手機(jī),使用Android手機(jī)的用戶不斷增加,因此本文提出設(shè)計(jì)一個(gè)基于Android平臺(tái)的簡(jiǎn)單的手機(jī)軟件。</p><p>  

30、1.2課題主要任務(wù)和目標(biāo)</p><p>  該手機(jī)客戶端的圖書(shū)搜索系統(tǒng)主要包括數(shù)據(jù)庫(kù)的建立和維護(hù)以及圖書(shū)信息查詢功能的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起的數(shù)據(jù)庫(kù)要具備較好的一致性、完整性、安全性等特性,而對(duì)于后者則要求應(yīng)用程序具有功能完備,界面美觀、易使用等特點(diǎn)。本系統(tǒng)主要功能包括: 圖書(shū)信息添加、修改、刪除,查詢處理并排版顯示查詢結(jié)果兩個(gè)模塊,并且能夠動(dòng)態(tài)的使用數(shù)據(jù)庫(kù)。</p><p>

31、  針對(duì)Android手機(jī)目前的發(fā)展?fàn)顩r和對(duì)未來(lái)前景的展望,本文提出并設(shè)計(jì)了此圖書(shū)搜索系統(tǒng)。本系統(tǒng)是在Eclipse開(kāi)發(fā)工具的支持下設(shè)計(jì)與實(shí)現(xiàn)的,所采用的技術(shù)是 Java+SQLite+ Android SDK。</p><p>  1、查閱并學(xué)習(xí)Android知識(shí)相關(guān),了解Android的歷史、構(gòu)成、發(fā)展、特點(diǎn)以及相對(duì)于其他系統(tǒng)的優(yōu)勢(shì)。</p><p>  2、搭建實(shí)現(xiàn)工作所需平臺(tái),了解

32、Java語(yǔ)言,學(xué)會(huì)在Eclipse編程環(huán)境下運(yùn)行和調(diào)試Android應(yīng)用程序。</p><p>  3、研究并分析基于手機(jī)客戶端的圖書(shū)搜索系統(tǒng)任務(wù)需求與整體構(gòu)架設(shè)計(jì)。</p><p>  4、創(chuàng)建SQLite數(shù)據(jù)庫(kù),掌握對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的存儲(chǔ)、修改、訪問(wèn)、查詢等能力。</p><p>  5、編寫(xiě)代碼并進(jìn)行測(cè)試,對(duì)不足的地方進(jìn)行改正,完善。</p>&l

33、t;p><b>  1.3課題意義</b></p><p>  Android一經(jīng)推出,就受到了業(yè)界前所未有的熱捧。全世界的Android社區(qū)熱火朝天,開(kāi)發(fā)人員癡迷學(xué)習(xí),手機(jī)設(shè)備廠商不斷推出Android系統(tǒng)的手機(jī),產(chǎn)生這樣的效果的原因,可以用一句話來(lái)概括:“博采眾長(zhǎng),為它所用?!盇ndroid采用了開(kāi)源的Linux操作系統(tǒng),底層使用了訪問(wèn)速度最快的C語(yǔ)言,應(yīng)用層采用了簡(jiǎn)單而強(qiáng)大的Ja

34、va語(yǔ)言,這使得Android無(wú)處不閃爍著耀眼的光芒。</p><p>  這個(gè)圖書(shū)搜索系統(tǒng),可以為用戶提供基本的圖書(shū)信息管理和查詢功能,方便用戶獲取所需圖書(shū)的信息,在查詢的目標(biāo)不明確的時(shí)候還可以進(jìn)行關(guān)鍵字的模糊查詢。并且在做Android程序開(kāi)發(fā)的過(guò)程中,我接觸了一個(gè)全新的領(lǐng)域,了解一些相關(guān)的基礎(chǔ)知識(shí),雖然花了很多的時(shí)間去查詢和接受這些新的內(nèi)容,但我還是有很大的收獲。</p><p>&

35、lt;b>  1.4文章組織結(jié)構(gòu)</b></p><p>  本文提出并設(shè)計(jì)了基于手機(jī)客戶端的圖書(shū)搜索系統(tǒng),全文共分6章:</p><p>  第一章 描述了本系統(tǒng)開(kāi)發(fā)的目的及意義。</p><p>  第二章 描述了開(kāi)發(fā)該系統(tǒng)所使用的相關(guān)技術(shù)及其背景知識(shí)。</p><p>  第三章 描述了系統(tǒng)的總體設(shè)計(jì),包含整個(gè)系統(tǒng)的功

36、能模塊劃分及描述,各功能模塊之間的關(guān)系以及數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)。</p><p>  第四章 描述了系統(tǒng)的實(shí)現(xiàn)和運(yùn)行,包含了運(yùn)行效果的預(yù)覽和對(duì)部分代碼的解析。</p><p>  第五章 描述了系統(tǒng)的部署方法。</p><p>  第六章 對(duì)本系統(tǒng)的設(shè)計(jì)過(guò)程進(jìn)行了總結(jié),并討論了進(jìn)一步不斷優(yōu)化程序和完善系統(tǒng)的展望。</p><p>  第二章

37、 相關(guān)技術(shù)及其背景知識(shí)</p><p>  2.1 ECLIPSE開(kāi)發(fā)工具</p><p>  Eclipse 是一個(gè)開(kāi)放源代碼的,基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開(kāi)發(fā)工具(Java Development Tools,JDT)。</p>

38、<p>  2.1.1 Eclipse版本歷史</p><p>  Eclipse最初是由IBM公司開(kāi)發(fā)的替代商業(yè)軟件Visual Age for Java的下一代IDE開(kāi)發(fā)環(huán)境,2001年11月貢獻(xiàn)給開(kāi)源社區(qū),現(xiàn)在它由非營(yíng)利軟件供應(yīng)商聯(lián)盟Eclipse基金會(huì)(Eclipse Foundation)管理。 2003年,Eclipse 3.0選擇OSGi服務(wù)平臺(tái)規(guī)范為運(yùn)行時(shí)架構(gòu)。 2007年6月,3.3穩(wěn)

39、定版發(fā)布。2008年6月發(fā)布代號(hào)為Ganymede的3.4版。2009年7月發(fā)布代號(hào)為GALILEO的3.5版。2010年6月發(fā)布代號(hào)為Helios的3.6版。</p><p>  2.1.2 Eclipse語(yǔ)言拓展</p><p>  Eclipse是著名的跨平臺(tái)的自由集成開(kāi)發(fā)環(huán)境(IDE)。最初主要用來(lái)Java語(yǔ)言開(kāi)發(fā),但是目前亦有人通過(guò)插件使其作為其他計(jì)算機(jī)語(yǔ)言比如C++和Pytho

40、n的開(kāi)發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。許多軟件開(kāi)發(fā)商以Eclipse為框架開(kāi)發(fā)自己的IDE。</p><p>  Eclipse 最初由OTI和IBM兩家公司的IDE產(chǎn)品開(kāi)發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT 和PDE。目前由IBM牽頭,圍繞著Ecl

41、ipse項(xiàng)目已經(jīng)發(fā)展成為了一個(gè)龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項(xiàng)目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一個(gè)開(kāi)發(fā)源碼項(xiàng)目,它其實(shí)是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其開(kāi)放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開(kāi)發(fā)各自的插件,因此越來(lái)越受人們關(guān)注

42、。近期還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,并宣稱Eclipse將來(lái)能成為可進(jìn)行任何語(yǔ)言開(kāi)發(fā)的IDE集大成者,使用者只需下載各種語(yǔ)言的插件即可。</p><p>  2.1.3 Eclipse 插件開(kāi)發(fā)環(huán)境</p><p>  雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java IDE 來(lái)使用,但 Eclipse 的目標(biāo)不僅限于此。Eclipse 還包括插件開(kāi)發(fā)環(huán)境(

43、Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無(wú)縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。 </p><p>  基于 Eclipse 的應(yīng)用程序的突出例子

44、是 IBM 的 WebSphere Studio Workbench,它構(gòu)成了 IBM Java 開(kāi)發(fā)工具系列的基礎(chǔ)。例如,WebSphere Studio Application Developer 添加了對(duì) JSP、servlet、EJB、XML、Web 服務(wù)和數(shù)據(jù)庫(kù)訪問(wèn)的支持。</p><p>  2.1.4 Eclipse的主要組成</p><p>  Eclipse是一個(gè)開(kāi)放源代

45、碼的軟件開(kāi)發(fā)項(xiàng)目,專注于為高度集成的工具開(kāi)發(fā)提供一個(gè)全功能的,具有商業(yè)品質(zhì)的工業(yè)平臺(tái)。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,具體包括四個(gè)部分組成——Eclipse Platform、JDT、CDT和PDE。JDT支持Java開(kāi)發(fā),CDT支持C開(kāi)發(fā),PDE用來(lái)支持插件開(kāi)發(fā),Eclipse Platform則是一個(gè)開(kāi)放的可擴(kuò)展IDE,提供了一個(gè)通用的開(kāi)發(fā)平臺(tái)。它提供建造塊和構(gòu)造并運(yùn)行集成軟件

46、開(kāi)發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨(dú)立開(kāi)發(fā)與他人工具無(wú)縫集成的工具從而無(wú)須分辨一個(gè)工具功能在哪里結(jié)束,而另一個(gè)工具功能在哪里開(kāi)始。</p><p>  2.1.5 Eclipse SDK</p><p>  Eclipse SDK(軟件開(kāi)發(fā)者包)是Eclipse Platform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個(gè)具有豐富

47、特性的開(kāi)發(fā)環(huán)境,允許開(kāi)發(fā)者有效地建造可以無(wú)縫集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse項(xiàng)目生產(chǎn)的工具和來(lái)自其它開(kāi)放源代碼的第三方軟件組合而成。Eclipse項(xiàng)目生產(chǎn)的軟件以 GPL發(fā)布,第三方組件有各自自身的許可協(xié)議[2-3]。</p><p>  2.2 ANDROID平臺(tái)</p><p>  Android一詞的本義指“機(jī)器人”,同時(shí)也是G

48、oogle于2007年11月5日宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件。目前,最新版本為Android 2.4 Gingerbread和Android 3.0 Honeycomb。</p><p>  2.2.1 Android的歷史</p><p>  2008年9月22日,美

49、國(guó)運(yùn)營(yíng)商德國(guó)T-Mobile在紐約正式發(fā)布第一款A(yù)ndroid手機(jī)——T-Mobile G1。該款手機(jī)為臺(tái)灣宏達(dá)電(HTC)代工制造,是世界上第一部使用Android操作系統(tǒng)的手機(jī),支持WCDMA/HSPA網(wǎng)絡(luò),理論下載速率7.2Mbps,并支持Wi-Fi。 </p><p>  2009年10月28日正式發(fā)布了Android 2.0 智能手機(jī)操作系統(tǒng)。 </p><p>  2010年1

50、月索尼愛(ài)立信首款A(yù)ndroid機(jī)型X10上市 。 </p><p>  2010年1月7日,Google在其美國(guó)總部正式向外界發(fā)布了旗下首款合作品牌手機(jī)Nexus One(HTC G5),并同時(shí)開(kāi)始對(duì)外發(fā)售。 </p><p>  2010年7月9日,美國(guó)NDP集團(tuán)調(diào)查顯示,Android系統(tǒng)已占據(jù)了美國(guó)移動(dòng)系統(tǒng)市場(chǎng)28%的份額。 </p><p>  北京時(shí)間3月

51、25日,據(jù)國(guó)外媒體報(bào)道,谷歌表示,谷歌暫停開(kāi)源Android3.0,并將暫時(shí)阻止小型手機(jī)生產(chǎn)商使用其Android 3.0“Honeycomb”系統(tǒng),期限未定。 </p><p>  谷歌一位發(fā)言人通過(guò)電子郵件聲明稱,Honeycomb是專為平板電腦而非手機(jī)設(shè)計(jì)的,在該系統(tǒng)以開(kāi)源形式發(fā)布前,還有很多工作要做。谷歌向《商業(yè)周刊》表示,推遲發(fā)布可能達(dá)數(shù)月之久。 </p><p>  谷歌稱:“

52、代號(hào)為Honeycomb的Android 3.0系統(tǒng),是針對(duì)大屏幕設(shè)備和改進(jìn)小軟件、多任務(wù)、瀏覽、通知和客戶化等功能而設(shè)計(jì)。雖然我們很高興為平板電腦提供這些新功能,但交付給其他設(shè)備包括手機(jī)前我們有更多的工作要做。我們決定暫不開(kāi)放源代碼。我們致力于將Android作為跨多設(shè)備類型的開(kāi)放式平臺(tái)來(lái)提供,并在準(zhǔn)備好時(shí)公布源代碼”。 </p><p>  這意味著小型手機(jī)制造商要使用Honeycomb將不得不等待一段時(shí)間。

53、不過(guò)大型設(shè)備商如HTC和摩托羅拉,已經(jīng)可以使用。這些設(shè)備制造商一般安裝在平板電腦中。對(duì)此,谷歌工程副總裁和Android主管安迪·魯賓(Andy Rubin)表示:“為了制定平板電腦出貨的時(shí)間表, 我們進(jìn)行了一些折衷設(shè)計(jì)。我們不想思考如何在手機(jī)上運(yùn)行同一個(gè)軟件”。 </p><p>  魯賓還表示,谷歌不想冒險(xiǎn)“帶來(lái)非常糟糕的用戶體驗(yàn)”。今年2月在發(fā)布Honeycomb時(shí),谷歌發(fā)言人稱,目前是專為平板電

54、腦設(shè)計(jì),以后這些功能將推廣到手機(jī)上。手機(jī)版的新Android,可能不會(huì)被叫做“Honeycomb ”,也可能是與3.0不同的版本。</p><p>  2.2.2 Android平臺(tái)的五大優(yōu)勢(shì)特色</p><p><b>  1、開(kāi)放性</b></p><p>  在優(yōu)勢(shì)方面,Android平臺(tái)首先就是其開(kāi)放性,開(kāi)發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加

55、入到Android聯(lián)盟中來(lái)。顯著的開(kāi)放性可以使其擁有更多的開(kāi)發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個(gè)嶄新的平臺(tái)也將很快走向成熟。 </p><p>  開(kāi)放性對(duì)于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而對(duì)于消費(fèi)者來(lái)講,最大的受益正是豐富的軟件資源。開(kāi)放的平臺(tái)也會(huì)帶來(lái)更大競(jìng)爭(zhēng),如此一來(lái),消費(fèi)者將可以用更低的價(jià)位購(gòu)得心儀的手機(jī)。 </p><p>  2、掙脫運(yùn)營(yíng)商

56、的束縛</p><p>  在過(guò)去很長(zhǎng)的一段時(shí)間,特別是在歐美地區(qū),手機(jī)應(yīng)用往往受到運(yùn)營(yíng)商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運(yùn)營(yíng)商的控制。自從iPhone上市,用戶可以更加方便地連接網(wǎng)絡(luò),運(yùn)營(yíng)商的制約減少。隨著EDGE、HSDPA這些2G至3G移動(dòng)網(wǎng)絡(luò)的逐步過(guò)渡和提升,手機(jī)隨意接入網(wǎng)絡(luò)已不是運(yùn)營(yíng)商口中的笑談。 </p><p><b>  3、豐富的硬件選擇</b&

57、gt;</p><p>  這一點(diǎn)還是與Android平臺(tái)的開(kāi)放性相關(guān),由于Android的開(kāi)放性,眾多的廠商會(huì)推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會(huì)影響到數(shù)據(jù)同步、甚至軟件的兼容。好比你從諾基亞Symbian風(fēng)格手機(jī)一下改用蘋(píng)果iPhone,同時(shí)還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。</p><p>  4、不受

58、任何限制的開(kāi)發(fā)商 </p><p>  Android平臺(tái)提供給第三方開(kāi)發(fā)商一個(gè)十分寬泛、自由的環(huán)境。因此不會(huì)受到各種條條框框的阻撓,可想而知,會(huì)有多少新穎別致的軟件會(huì)誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android難題之一。 </p><p>  5、無(wú)縫和的Google應(yīng)用</p><p>  如今叱咤互聯(lián)網(wǎng)的Google已經(jīng)

59、走過(guò)10年歷史。從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺(tái)手機(jī)將無(wú)縫結(jié)合這些優(yōu)秀的Google服務(wù)[4]。 </p><p>  2.2.3 Android應(yīng)用程序框架</p><p>  Android會(huì)同一個(gè)核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括E-mail客戶端、SMS短消息程序、日歷、地圖、瀏覽器、聯(lián)

60、系人管理程序等。所有的應(yīng)用程序都是用Java語(yǔ)言編寫(xiě)的。</p><p>  開(kāi)發(fā)者也完全可以訪問(wèn)核心應(yīng)用程序所使用的API框架。該應(yīng)用程序框架用來(lái)簡(jiǎn)化組件軟件的重用,使得任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊,并且任何其他的應(yīng)用程序都可以使用它所發(fā)布的功能塊。該應(yīng)用程序重用機(jī)制使得組件可以被用戶替換。</p><p>  Android系統(tǒng)提供給應(yīng)用開(kāi)發(fā)者的本身就是一個(gè)框架,所有的應(yīng)用開(kāi)發(fā)

61、都必須遵守這個(gè)框架的原則,我們?cè)趹?yīng)用開(kāi)發(fā)時(shí)都是在這個(gè)框架上進(jìn)行擴(kuò)展的。Android包括了一個(gè)核心庫(kù),該核心庫(kù)提供了Java語(yǔ)言核心庫(kù)的大多數(shù)功能。Android的核心系統(tǒng)服務(wù)依賴于Linux 2.6內(nèi)核,如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。Linux內(nèi)核也同時(shí)作為硬件和軟件堆棧之間的硬件抽象層。Android框架提供的功能:</p><p>  android.app:提供高層的程序模型和基本的

62、運(yùn)行環(huán)境。</p><p>  android.content:包含對(duì)各種設(shè)備上的數(shù)據(jù)進(jìn)行訪問(wèn)和發(fā)布。</p><p>  android.database:通過(guò)內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫(kù)。</p><p>  android.graphics:底層的圖形庫(kù),包含畫(huà)布、顏色過(guò)濾、點(diǎn)、矩形,可以將它們直接繪制到屏幕上。</p><p>  an

63、droid.location :定位和相關(guān)服務(wù)的類。</p><p>  android.media:提供一些類管理多種音頻、視頻的媒體接口。</p><p>  android.net :提供幫助網(wǎng)絡(luò)訪問(wèn)的類,超過(guò)通常的java.net.* 接口。</p><p>  android.os :提供了系統(tǒng)服務(wù)、消息傳輸和IPC機(jī)制。</p><p

64、>  android.opengl:提供OpenGL的工具。</p><p>  android.provider:提供訪問(wèn)Android內(nèi)容提供者的類。</p><p>  android.telephony:提供與撥打電話相關(guān)的API交互。</p><p>  android.view:提供基礎(chǔ)的用戶界面接口框架。</p><p>

65、  android.util :涉及工具性的方法,例如時(shí)間日期的操作。</p><p>  android.webkit :默認(rèn)瀏覽器操作接口。</p><p>  android.widget:包含各種UI元素(大部分是可見(jiàn)的)在應(yīng)用程序的布局中使用。</p><p>  2.3 SQLITE數(shù)據(jù)庫(kù)</p><p>  SQLite,是一款

66、輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開(kāi)源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。

67、SQLite第一個(gè)Alpha版本誕生于2000年5月. 至今已經(jīng)有10個(gè)年頭,SQLite也迎來(lái)了一個(gè)版本 SQLite 3已經(jīng)發(fā)布。[5-6]</p><p>  SQLite的特性:</p><p>  1. ACID事務(wù)。 </p><p>  2. 零配置 – 無(wú)需安裝和管理配置。 </p><p>  3. 儲(chǔ)存在單一磁盤(pán)文件中的一

68、個(gè)完整的數(shù)據(jù)庫(kù)。 </p><p>  4. 數(shù)據(jù)庫(kù)文件可以在不同字節(jié)順序的機(jī)器間自由的共享。 </p><p>  5. 支持?jǐn)?shù)據(jù)庫(kù)大小至2TB。 </p><p>  6. 足夠小, 大致3萬(wàn)行C代碼, 250K。 </p><p>  7. 比一些流行的數(shù)據(jù)庫(kù)在大部分普通數(shù)據(jù)庫(kù)操作要快。 </p><p>  8

69、. 簡(jiǎn)單, 輕松的API。 </p><p>  9. 包含TCL綁定, 同時(shí)通過(guò)Wrapper支持其他語(yǔ)言的綁定。 </p><p>  10. 良好注釋的源代碼, 并且有著90%以上的測(cè)試覆蓋率。 </p><p>  11. 獨(dú)立: 沒(méi)有額外依賴。 </p><p>  12. Source完全的Open, 你可以用于任何用途, 包括出

70、售它。 </p><p>  13. 支持多種開(kāi)發(fā)語(yǔ)言,C, PHP, Perl, Java, ASP.NET, Python。</p><p>  2.4 用ECLIPSE調(diào)試ANDROID應(yīng)用程序</p><p>  要想檢查正在運(yùn)行的應(yīng)用程序中發(fā)生了什么情況,就需要查看正在運(yùn)行的 Dalvik VM。在 Eclipse 中,選擇 Window > Ope

71、n Perspective > Other。在出現(xiàn)的對(duì)話框中選擇 DDMS。這會(huì)在 Eclipse 中打開(kāi)一個(gè)新的透視圖,其中有許多有趣的窗口。</p><p>  DDMS 為IDE和Emultor(or GPhone)架起來(lái)了一座橋梁。Developer可以通過(guò)DDMS看到目標(biāo)機(jī)器上運(yùn)行的進(jìn)程/線程狀態(tài):可以讓Eclipse程序連接到開(kāi)發(fā)機(jī)上運(yùn)行;可以看進(jìn)程的heap信息、logcat信息、進(jìn)程分配內(nèi)存

72、情況;可以像目標(biāo)機(jī)發(fā)送短信、發(fā)送地理位置信息以及打電話;可以像gdb一樣attach 某一個(gè)進(jìn)程調(diào)試[7-8]。</p><p>  下面簡(jiǎn)要介紹一下 DDMS 透視圖中提供的資源: </p><p>  2.4.1 Devices </p><p>  Device 中羅列了Emulator中所有的進(jìn)程,選項(xiàng)卡右上角那一排按鈕分別為:Debug the selec

73、ted process調(diào)試進(jìn)程、Update Heap更新進(jìn)程堆棧信息、Dump HPROF file檢查HPROF(Heap/CPU Profiling Tool)文件、Cause GC調(diào)用垃圾回收、更新進(jìn)程Update Threads、Start Method Profiling開(kāi)始方法分析、Stop Process停止某個(gè)進(jìn)程,和Screen Capture抓取 Emulator目前的屏幕。當(dāng)你選中某個(gè)進(jìn)程,并按下調(diào)試進(jìn)程按鈕時(shí),

74、如果eclipse中有這個(gè)進(jìn)程的代碼,那就可以進(jìn)行源代碼級(jí)別的調(diào)試。有點(diǎn)像 gdb attach。圖片抓取按鈕可以把當(dāng)前android的顯示桌面抓到你的機(jī)器上,也是非常有用。Devices窗口如圖2-1所示:</p><p>  圖2-1 Devices窗口示例</p><p>  這里可以查看到所有與DDMS連接的終端的詳細(xì)信息,以及每個(gè)終端正在運(yùn)行的APP進(jìn)程,每個(gè)進(jìn)程最右邊相對(duì)應(yīng)的是

75、與調(diào)試器鏈接的端口。因?yàn)锳ndroid是基于Linux內(nèi)核開(kāi)發(fā)的操作平臺(tái),同時(shí)也保留了Linux中特有的進(jìn)程ID,它介于進(jìn)程名和端口號(hào)之間。</p><p>  DDMS監(jiān)聽(tīng)第一個(gè)終端App進(jìn)程的端口為8600,APP進(jìn)程將分配8601,如果有更多終端或者更多APP進(jìn)程將按照這個(gè)順序依次類推。DDMS通過(guò)8700端口(“base port”)接收所有終端的指令。</p><p>  2.4

76、.2 Emulator Control </p><p>  通過(guò)這個(gè)面板的一些功能可以非常容易的使測(cè)試終端模擬真實(shí)手機(jī)所具備的一些交互功能,比如:接聽(tīng)電話,根據(jù)選項(xiàng)模擬各種不同網(wǎng)絡(luò)情況,模擬接受SMS消息和發(fā)送虛擬地址坐標(biāo)用于測(cè)試GPS功能等。Emulator Control窗口如圖2-2所示:</p><p>  圖2-2 Emulator Control窗口示例</p>

77、<p>  Telephony Status: 通過(guò)選項(xiàng)模擬語(yǔ)音質(zhì)量以及信號(hào)連接模式。</p><p>  Telephony Actions: 模擬電話接聽(tīng)和發(fā)送SMS到測(cè)試終端。</p><p>  Location Control: 模擬地理坐標(biāo)或者模擬動(dòng)態(tài)的路線坐標(biāo)變化并顯示預(yù)設(shè)的地理標(biāo)識(shí),可以通過(guò)以下3種方式: </p><p>  ? Man

78、ual:手動(dòng)為終端發(fā)送二維經(jīng)緯坐標(biāo)。 </p><p>  ? GPX:通過(guò)GPX文件導(dǎo)入序列動(dòng)態(tài)變化地理坐標(biāo),從而模擬行進(jìn)中GPS變化的數(shù)值。 ? KML:通過(guò)KML文件導(dǎo)入獨(dú)特的地理標(biāo)識(shí),并以動(dòng)態(tài)形式根據(jù)變化的地理坐標(biāo)顯示在測(cè)試終端。</p><p>  2.4.3 File Explorer</p><p>  顯示文件系統(tǒng)信息。File Explorer非常

79、有用:它可以把文件上傳到Android、或者從Android上下載文件下來(lái)、也可以進(jìn)行文件刪除操作。選項(xiàng)卡右上角有上傳、下載、刪除三個(gè)按鈕。一般情況下,F(xiàn)ile Explorer會(huì)有如下三個(gè)目錄:data、sdcard、system。</p><p>  ? data對(duì)應(yīng)手機(jī)的RAM,會(huì)存放Android OS 運(yùn)行時(shí)的Cache等臨時(shí)數(shù)據(jù)(/data/dalvik-cache目錄);沒(méi)有root權(quán)限時(shí)apk程序

80、安裝在/data/app中(只是存放apk 文件本身);/data/data中存放Android中所有程序(系統(tǒng)apk+第三方apk)的詳細(xì)目錄信息。</p><p>  ? mnt是mount,掛裝的意思,mnt目錄下的 sdcard對(duì)應(yīng)sd卡。</p><p>  ? system對(duì)應(yīng)手機(jī)的ROM,OS以及系統(tǒng)自帶apk程序等存放在這里。</p><p>  用

81、戶應(yīng)用程序部署在 /data/app 目錄中,而 Android 內(nèi)置的應(yīng)用程序部署在/system/app 目錄中。File Explorer窗口如圖2-3所示:</p><p>  圖2-3 File Explorer窗口示例</p><p>  2.4.4 Threads、Heap、Allocation Tracker </p><p>  Threads視圖

82、列出當(dāng)前進(jìn)程的所有線程。</p><p>  Heap視圖展示一些堆的狀態(tài),在垃圾回收其間更新。當(dāng)選定一個(gè)虛擬機(jī)時(shí), VM Heap視圖不能顯示數(shù)據(jù),可以點(diǎn)擊右邊面包上的帶有綠色的“Show heap updates”按鈕,然后在點(diǎn)擊“Cause GC”實(shí)施垃圾回收更新堆的狀態(tài)。</p><p>  在Allocation Tracker視圖里,我們可以跟蹤每個(gè)選中的虛擬機(jī)的內(nèi)存分配情況。

83、點(diǎn)擊“Start Tracking”后點(diǎn)擊“Get Allocations”就可以看到。例如,為了查看Garbage Collection信息:點(diǎn)擊 [Start Tracking]按鈕 -> 保持程序運(yùn)行一段時(shí)間后 ->點(diǎn)擊[Get Allocations] 按鈕,憑借得到的Allocations信息可以通過(guò)Line Number準(zhǔn)確找到哪里的代碼出現(xiàn)了問(wèn)題。Allocation Tracker窗口如圖2-4所示:<

84、/p><p>  圖2-4 Allocation Tracker窗口示例</p><p>  2.4.5 LogCat</p><p>  LogCat是一個(gè)日志文件,它記錄VM中發(fā)生的活動(dòng)。應(yīng)用程序可以通過(guò)Log.i(tag,message),在這個(gè)日志文件中添加自己的日志項(xiàng),其中的tag和message都是Java字符串。Log類屬于android.util.Log

85、包。LogCat窗口如圖2-5所示:</p><p>  圖2-5 LogCat窗口示例</p><p>  2.4.6 Console</p><p>  顯示Android的輸出信息,加載程序等信息。Console窗口如圖2-6所示:</p><p>  圖2-6 Console窗口示例</p><p><b

86、>  2.5本章小結(jié)</b></p><p>  本章主要介紹了與本系統(tǒng)相關(guān)的技術(shù)及其背景知識(shí),包含對(duì)Eclipse開(kāi)發(fā)工具的介紹,Android平臺(tái)的介紹,SQLite數(shù)據(jù)庫(kù)的介紹和如何用Eclipse調(diào)試Android應(yīng)用程序。</p><p>  第三章 手機(jī)圖書(shū)搜索系統(tǒng)的分析和設(shè)計(jì)</p><p>  創(chuàng)建基于Android平臺(tái)的手機(jī)圖書(shū)搜

87、索系統(tǒng),可以為用戶管理和查詢圖書(shū)信息帶來(lái)一定的便利,節(jié)省時(shí)間和精力,提高管理的效率,同時(shí)也是順應(yīng)了當(dāng)前智能手機(jī)軟件開(kāi)發(fā)的趨勢(shì)。</p><p>  3.1 系統(tǒng)分析與總體設(shè)計(jì)</p><p>  3.1.1系統(tǒng)功能描述</p><p>  該手機(jī)圖書(shū)搜索信息管理系統(tǒng)所實(shí)現(xiàn)的功能模塊包括圖書(shū)信息管理和圖書(shū)信息查詢兩大模塊。具體描述如下:</p><

88、p>  1、圖書(shū)信息管理模塊</p><p>  圖書(shū)信息的添加,包括書(shū)名,作者,出版社,價(jià)格等圖書(shū)的基本信息。點(diǎn)擊菜單按鈕,在彈出的菜單框中選擇“添加”就進(jìn)入了圖書(shū)信息添加界面,當(dāng)一次添加操作完成后,會(huì)在一個(gè)列表中顯示全部的圖書(shū)書(shū)名和對(duì)應(yīng)圖書(shū)添加或最近一次被修改的時(shí)間。</p><p>  圖書(shū)信息的修改,選擇列表中的某一本圖書(shū),單擊該項(xiàng)就能進(jìn)入修改操作,修改操作調(diào)用的也是添加圖書(shū)

89、時(shí)的界面,該圖書(shū)現(xiàn)有的信息會(huì)顯示在界面上,修改相關(guān)數(shù)據(jù)以后點(diǎn)“確定”按鈕完成操作。</p><p>  圖書(shū)信息的刪除,選擇列表中的某一項(xiàng),然后點(diǎn)擊菜單,選擇“刪除”,就能把這條圖書(shū)信息從數(shù)據(jù)庫(kù)中刪除。</p><p>  當(dāng)數(shù)據(jù)庫(kù)存儲(chǔ)的圖書(shū)信息發(fā)生改變時(shí),即時(shí)刷新圖書(shū)的列表。</p><p><b>  2、圖書(shū)搜索模塊</b></p&

90、gt;<p>  支持模糊搜索,只需要輸入關(guān)鍵字,顯示的搜索結(jié)果中便會(huì)出現(xiàn)數(shù)據(jù)庫(kù)中包含該關(guān)鍵字的所有記錄。</p><p>  可以按書(shū)名搜索,相對(duì)模糊搜索而言搜索范圍較小,可以減少信息的處理量和搜索時(shí)間。</p><p><b>  可以按作者名搜索。</b></p><p>  把搜索的結(jié)果動(dòng)態(tài)的顯示在結(jié)果列表中。用一個(gè)xml

91、頁(yè)面作為模板,會(huì)根據(jù)查詢語(yǔ)句返回的Cursor中圖書(shū)信息的數(shù)量動(dòng)態(tài)的把結(jié)果加載到一個(gè)ListView中。</p><p>  3.1.2 系統(tǒng)功能模塊劃分</p><p>  從功能描述的內(nèi)容可以看到,本系統(tǒng)可以實(shí)現(xiàn)兩大個(gè)完整的功能,其中還有很多小的功能。我們根據(jù)這些功能,設(shè)計(jì)出系統(tǒng)的功能模塊如圖3-1所示:</p><p>  圖3-1手機(jī)圖書(shū)搜索系統(tǒng)功能模塊示意

92、圖</p><p>  手機(jī)圖書(shū)搜索系統(tǒng)的功能模塊之間的關(guān)系如圖3-2如示:</p><p>  圖3-2 手機(jī)圖書(shū)搜索系統(tǒng)的功能模塊關(guān)系圖</p><p>  3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)</p><p>  首先創(chuàng)建數(shù)據(jù)庫(kù)booksearch,然后在booksearch中建立表book用來(lái)保存所有圖書(shū)信息 。book的結(jié)構(gòu)如表3-1所示:&l

93、t;/p><p>  表3-1 表book的結(jié)構(gòu)</p><p><b>  3.3本章小節(jié)</b></p><p>  本章主要介紹了與本系統(tǒng)相關(guān)的需求分析,包含系統(tǒng)分析與總體設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn),以便更好的完成本系統(tǒng)。</p><p>  第四章 系統(tǒng)的實(shí)現(xiàn)和運(yùn)行</p><p><b&g

94、t;  4.1系統(tǒng)的主界面</b></p><p>  本系統(tǒng)的主界面為main.xml,采用的是LinearLayout的布局,它的作用是為使用者提供導(dǎo)航作用,通過(guò)點(diǎn)擊主界面上的各個(gè)按鈕來(lái)跳轉(zhuǎn)到各個(gè)功能模塊的界面,主界面上有四個(gè)按鈕,分別是圖書(shū)搜索、圖書(shū)管理、關(guān)于軟件和退出軟件, 主界面的運(yùn)行效果如圖4-1所示:</p><p>  圖4-1 系統(tǒng)主界面</p>

95、<p>  LinearLayout以你為它設(shè)置的垂直或水平的屬性值,來(lái)排列所有的子元素。所有的子元素都被堆放在其它元素之后,因此一個(gè)垂直列表的每一行只會(huì)有一個(gè)元素,而不管他們有多寬,而一個(gè)水平列表將會(huì)只有一個(gè)行高(高度為最高子元素的高度加上邊框高度)。LinearLayout保持子元素之間的間隔以及互相對(duì)齊(相對(duì)一個(gè)元素的右對(duì)齊、中間對(duì)齊或者左對(duì)齊)。</p><p>  LinearLayout還

96、支持為單獨(dú)的子元素指定weight 。好處就是允許子元素可以填充屏幕上的剩余空間。這也避免了在一個(gè)大屏幕中,一串小對(duì)象擠成一堆的情況,而是允許他們放大填充空白。子元素指定一個(gè) weight 值,剩余的空間就會(huì)按這些子元素指定的weight 比例分配給這些子元素。默認(rèn)的 weight 值為0。例如,如果有三個(gè)文本框,其中兩個(gè)指定了weight 值為1,那么,這兩個(gè)文本框?qū)⒌缺壤胤糯?,并填滿剩余的空間,而第三個(gè)文本框不會(huì)放大,如圖4-2所

97、示:</p><p>  圖4-2 LinearLayout效果圖</p><p>  對(duì)應(yīng)main.xml的Activity是在start.java中定義的。start.java中主要使用了多個(gè)頁(yè)面跳轉(zhuǎn)的方法來(lái)跳轉(zhuǎn)到各個(gè)功能模塊,關(guān)鍵代碼如下</p><p>  public void onCreate(Bundle savedInstanceState) {&l

98、t;/p><p>  super.onCreate(savedInstanceState);</p><p>  OnClickListener listener0 = new OnClickListener() {</p><p>  public void onClick(View v) {</p><p>  Intent intent0

99、= new Intent(start.this, booksearch.class);</p><p>  setTitle("圖書(shū)搜索");</p><p>  startActivity(intent0);}};</p><p>  Buttonbutton0 = (Button) findViewById(R.id.button0);&l

100、t;/p><p>  button0.setOnClickListener(listener0);</p><p>  上述代碼中,新建了一個(gè)Button和一個(gè)OnClickListener,把OnClickListener綁定給Button。然后定義了OnClickListener的onClick(View v)方法為跳轉(zhuǎn)到圖書(shū)搜索的頁(yè)面,這樣只要一點(diǎn)Button就能完成跳轉(zhuǎn)操作了。界面跳轉(zhuǎn)

101、主要依靠Intent,Intent將會(huì)在后面講Activity之間傳遞參數(shù)的時(shí)候具體介紹。</p><p>  當(dāng)Activity被第一次加載時(shí)執(zhí)行void onCreate(Bundle savedInstanceState)方法。我們新啟動(dòng)一個(gè)程序的時(shí)候其主窗體的onCreate事件也就會(huì)被執(zhí)行。如果Aacivity被銷毀后(Destroy后),再重新加載進(jìn)Task時(shí),其onCreate事件也就會(huì)被重新執(zhí)行。

102、在activity的生命周期中,只要離開(kāi)了可見(jiàn)階段,或者說(shuō)失去了焦點(diǎn),activity就很可能被進(jìn)程終止了,被KILL掉了,這時(shí)候,就需要有種機(jī)制,能保存當(dāng)時(shí)的狀態(tài),這就是savedInstanceState的作用。 當(dāng)一個(gè)Activity在PAUSE時(shí),被kill之前,它可以調(diào)用onSaveInstanceState()來(lái)保存當(dāng)前activity的狀態(tài)信息(在paused狀態(tài)時(shí),要被KILLED的時(shí)候)。用來(lái)保存狀態(tài)信息的Bundle

103、會(huì)同時(shí)傳給兩個(gè)method,即onRestoreInstanceState() and onCreate()。Activity的狀態(tài)轉(zhuǎn)換圖如4-3所示。</p><p>  圖4-3 Activity狀態(tài)轉(zhuǎn)換圖</p><p>  4.2圖書(shū)信息管理模塊的實(shí)現(xiàn)</p><p>  本模塊的功能是在系統(tǒng)的BookDbAdapter.java, manage.java

104、, add.java三個(gè)類中定義和實(shí)現(xiàn)的,模塊的界面為manage.xml, row.xml和add.xml。manage.xml和add.xml使用了LinearLayout布局,row.xml使用了RelativeLayout布局。</p><p>  RelativeLayout 允許子元素指定他們相對(duì)于其它元素或父元素的位置(通過(guò)ID 指定)。因此,可以以右對(duì)齊,或上下,或置于屏幕中央的形式來(lái)排列兩個(gè)元素

105、。元素按順序排列,因此如果第一個(gè)元素在屏幕的中央,那么相對(duì)于這個(gè)元素的其它元素將以屏幕中央的相對(duì)位置來(lái)排列。如果使用XML 來(lái)指定這個(gè) layout ,在你定義它之前,被關(guān)聯(lián)的元素必須定義。如圖4-4所示:</p><p>  圖4-4 RelativeLayout效果圖</p><p>  圖書(shū)信息管理模塊的活動(dòng)圖如圖4-5所示:</p><p>  圖4-5 圖

106、書(shū)信息管理模塊活動(dòng)圖</p><p>  4.2.1 圖書(shū)信息管理功能界面</p><p>  當(dāng)數(shù)據(jù)庫(kù)里沒(méi)有圖書(shū)數(shù)據(jù)時(shí)圖書(shū)信息管理功能的界面運(yùn)行效果如4-6,4-7所示:</p><p>  圖4-6 圖書(shū)信息管理系統(tǒng)界面</p><p>  圖4-7 按下menu按鈕以后的效果</p><p>  public b

107、oolean onMenuItemSelected(int featureId, MenuItem item) {</p><p>  switch (item.getItemId()) {</p><p>  case INSERT_ID:</p><p>  createBook();</p><p>  return true;<

108、/p><p>  case DELETE_ID:</p><p>  mDbHelper.deleteBook(getListView().getSelectedItemId());</p><p>  renderListView();</p><p>  return true;</p><p>  case FINS

109、H:</p><p>  Intent i2 = new Intent(manage.this, start.class);</p><p>  startActivity(i2);</p><p><b>  }</b></p><p>  return super.onMenuItemSelected(feature

110、Id, item);</p><p><b>  }</b></p><p>  上述代碼實(shí)現(xiàn)的功能是,點(diǎn)模擬器上的menu按鈕以后,會(huì)在屏幕下方顯示一個(gè)菜單,菜單上有3個(gè)功能,第一個(gè)是添加一條圖書(shū)信息,第二個(gè)是刪除一條圖書(shū)信息,第三個(gè)是返回,即返回到系統(tǒng)的主界面。</p><p>  public void renderListView()

溫馨提示

  • 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)論