畢業(yè)設(shè)計(jì)--基于android的電子詞典軟件的設(shè)計(jì)與實(shí)現(xiàn) (含外文翻譯)_第1頁
已閱讀1頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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的電子詞典軟件的設(shè)計(jì)與實(shí)現(xiàn) </p><p>  學(xué)生姓名 </p><p>  學(xué) 號(hào)

2、 </p><p>  專業(yè)班級(jí) 通信(2)班 </p><p>  指導(dǎo)教師 </p><p>  學(xué) 院 計(jì)算機(jī)與通信學(xué)院 </p><p>  答辯日期 2012.6.11 </p>&l

3、t;p><b>  摘要</b></p><p>  本文設(shè)計(jì)了基于Android平臺(tái)的電子詞典軟件。此英文詞典包括兩部分,一部分是離線的英文詞典,一部分是在線的英文詞典。離線的英文詞典主要是使用Android自帶的輕量級(jí)數(shù)據(jù)庫SQLite來保存單詞信息,系統(tǒng)通過SQLite數(shù)據(jù)庫的query方法來查找到與指定英文相對(duì)應(yīng)的單詞的中文釋義。在線的英文詞典是利用oracle數(shù)據(jù)庫來保存單詞

4、信息,然后利用Http協(xié)議解析出單詞信息顯示到手機(jī)界面上,同時(shí)還能夠增加、刪除、更新單詞信息。當(dāng)然,對(duì)于查詢到的生疏的單詞可以添加到單詞本以便于隨時(shí)復(fù)習(xí)。</p><p>  關(guān)鍵詞:Android,oracle數(shù)據(jù)庫,SQLite數(shù)據(jù)庫,英文單詞</p><p><b>  Abstract</b></p><p>  In this pap

5、er, we design and implementation about electronic dictionary software which is based on the Android platform. English dictionary mainly include two parts, and one is to realize the offline English dictionary, the other i

6、s to realize the online English dictionary. Offline English dictionary is mainly used a lightweight database SQLite that belongs to Android to preserve words information, we find the specified English word corresponding

7、to the Chinese interpretation by using query meth</p><p>  Keywords: Android; oracle database; SQLite database; English words</p><p><b>  目錄</b></p><p><b>  第1章 緒論

8、1</b></p><p>  第2章 系統(tǒng)需求分析3</p><p>  2.1 軟件的功能要求3</p><p>  2.2 需求分析3</p><p>  2.3 功能需求(用例圖分析)4</p><p>  2.3.1 基本功能需求例圖4</p><p>  2.

9、3.2 離線詞典的例圖6</p><p>  2.3.3 在線查詢用例圖7</p><p>  2.3.4 添加到單詞本的用例圖8</p><p>  2.4 系統(tǒng)結(jié)構(gòu)圖和流程圖10</p><p>  2.5 系統(tǒng)界面需求14</p><p>  2.6 運(yùn)行環(huán)境15</p><p&g

10、t;  2.6.1 關(guān)鍵技術(shù)15</p><p>  2.6.2 運(yùn)行環(huán)境16</p><p>  第3章 數(shù)據(jù)庫的設(shè)計(jì)17</p><p>  3.1 在線詞典的服務(wù)器端的數(shù)據(jù)庫設(shè)計(jì)17</p><p>  3.1.1 數(shù)據(jù)庫中數(shù)據(jù)表的設(shè)計(jì)17</p><p>  3.1.2 在線詞典的客戶端的數(shù)據(jù)庫設(shè)計(jì)

11、18</p><p>  3.1.3 離線時(shí)的數(shù)據(jù)庫的設(shè)計(jì)19</p><p>  3.1.4 軟件數(shù)據(jù)模型20</p><p>  3.2 連接數(shù)據(jù)庫21</p><p>  3.2.1 數(shù)據(jù)庫的創(chuàng)建21</p><p>  3.2.2.數(shù)據(jù)庫的操作21</p><p>  3.2.

12、3 數(shù)據(jù)的查看22</p><p>  3.2.4 服務(wù)器和客戶端的連接23</p><p>  第4章 環(huán)境的搭建24</p><p>  4.1關(guān)于 Android的簡(jiǎn)單介紹24</p><p>  4.1.1 Android環(huán)境的搭建24</p><p>  4.1.2Android命令行的使用25&

13、lt;/p><p>  4.1.3 Android工程的簡(jiǎn)單介紹26</p><p>  4.2 Java Web環(huán)境的搭建29</p><p>  第5章 具體功能模塊的設(shè)計(jì)33</p><p>  5.1 查詢模塊的設(shè)計(jì)34</p><p>  5.1.1 離線查詢34</p><p>

14、;  5.1.2 在線查詢36</p><p>  5.2 添加單詞模塊37</p><p>  5.3 刪除單詞模塊38</p><p>  5.4 修改單詞模塊39</p><p>  5.5 菜單模塊的實(shí)現(xiàn)40</p><p>  5.6 生詞本模塊的設(shè)計(jì)44</p><p>

15、  第6章 系統(tǒng)測(cè)試與性能分析46</p><p><b>  6.1測(cè)試46</b></p><p>  6.2 性能測(cè)試及分析47</p><p><b>  總 結(jié)48</b></p><p><b>  參考文獻(xiàn)49</b></p><p&

16、gt;  附錄一:英文翻譯原文50</p><p>  附錄二:英文翻譯譯文58</p><p>  附錄三:程序清單66</p><p><b>  致謝73</b></p><p><b>  第1章 緒論</b></p><p>  如今,英語在人們的工作、學(xué)習(xí)

17、中顯得越來越重要,而手機(jī)詞典軟件的出現(xiàn)無疑帶來了極大的便利,遇到遇到生疏的英語單詞,現(xiàn)在拿起手機(jī)就能輕松解決。近兩年,谷歌android手機(jī)系統(tǒng)日益盛行,支持該系統(tǒng)的應(yīng)用軟件日益增多,自然手機(jī)詞典軟件也不例外。縱觀web網(wǎng)的發(fā)展,從21世紀(jì)初基于web網(wǎng)的應(yīng)用開始逐步引入中國(guó)到現(xiàn)在基于web網(wǎng)的應(yīng)用發(fā)展的如此火爆?;赼ndroid手機(jī)系統(tǒng)的應(yīng)用也將成為未來我國(guó)網(wǎng)絡(luò)行業(yè)的發(fā)展潮流。據(jù)我們調(diào)查2007年11月5日,Google與其他33家

18、手機(jī)制造商(包括摩托羅拉、宏達(dá)電、三星、LG)、手機(jī)芯片提供商、軟硬件提供商合作。電信業(yè)者所聯(lián)合組成了開發(fā)手機(jī)聯(lián)盟,發(fā)布了“android”的開發(fā)手機(jī)軟硬件平臺(tái)。而這平臺(tái)的軟件與其他手機(jī)平臺(tái)受手機(jī)型號(hào)的影響相比,android完全可以通用。基于android手機(jī)系統(tǒng)的手機(jī)這兩年來迅速的引入中國(guó),而且受到中國(guó)用戶的一致好評(píng)。且看下面這組資料</p><p>  ①據(jù)臺(tái)灣媒體報(bào)道,一位分析師稱,作為蘋果iphone在

19、今年假日季節(jié)到來之時(shí)的競(jìng)爭(zhēng)產(chǎn)品,美國(guó)最大的移動(dòng)電話制造商摩托羅拉的智能手機(jī)Droid自09年11月6日通過Verizon Wireless推出以來,其銷售量已經(jīng)達(dá)到80萬部。 摩托羅拉智能手機(jī)Droid,運(yùn)行的是谷歌Android操作系統(tǒng)。</p><p> ?、诩~約RBCCapitalMarkets公司分析師馬克·休(MarkSue)周日在一份研究報(bào)告中表示,該數(shù)字將使得摩托羅拉在第四季度按計(jì)劃實(shí)現(xiàn)銷

20、售100萬部目標(biāo)可見基于android操作系統(tǒng)的手機(jī)的發(fā)展很快,這也是我們?yōu)槭裁词紫然赼ndroid平臺(tái)開發(fā)這款軟件的原因。</p><p>  另外電子詞典作為我們學(xué)習(xí)和生活的重要部分,對(duì)于很多英語不好的學(xué)生或上班族們,特別是在北、上、廣、深,這種一線城市的工薪階層們,隨時(shí)都會(huì)遇到國(guó)外的同胞,或者隨時(shí)都有可能到國(guó)外去深造,如果隨身沒有一個(gè)英漢互譯的軟件,可能會(huì)難以同別人交流,因此推出一款好的電子詞典軟件是很有

21、必要的,個(gè)人認(rèn)為開發(fā)一款大眾化的手機(jī)電子詞典軟件顯得很有必要,特別是對(duì)于受教育程度較低和沒有任何相關(guān)專業(yè)知識(shí)的人群,意義顯得猶為突出。</p><p>  現(xiàn)行軟件技術(shù)發(fā)展迅速,各種類型的軟件更新速度快,手機(jī)電子詞典已經(jīng)不是什么有創(chuàng)意的軟件了,而是一類實(shí)用的軟件。正因?yàn)槠渚哂袑?shí)用性,各個(gè)手機(jī)軟件開發(fā)者都已經(jīng)開發(fā)出來了基于各種手機(jī)系統(tǒng)的電子詞典軟件。而基于android系統(tǒng)的電子詞典軟件也已經(jīng)出現(xiàn),</p&g

22、t;<p>  此軟件就是基于Android平臺(tái)開發(fā)的,具有操作簡(jiǎn)單,適合大部分人群使用。在設(shè)計(jì)出本軟件之前,我們首先做了充分的市場(chǎng)調(diào)查,了解基于android平臺(tái)的電子詞典軟件的現(xiàn)狀,了解大部分人對(duì)手機(jī)電子詞典軟件在界面上和功能上的要求,然后進(jìn)行了細(xì)致的軟件需求分析,進(jìn)行軟件的整體結(jié)構(gòu)設(shè)計(jì),確保軟件中的任何一個(gè)功能點(diǎn)都是有意義的,接著開始軟件的實(shí)施,將項(xiàng)目分成多個(gè)模塊,完成各個(gè)具體的功能,最后當(dāng)整個(gè)軟件完成后,我們對(duì)軟件

23、進(jìn)行專業(yè)測(cè)試,確保軟件能正確的運(yùn)行。在設(shè)計(jì)該軟件時(shí),我們將該軟件定義為CS結(jié)構(gòu),這樣即使在手機(jī)不能接入網(wǎng)絡(luò)的情況下軟件的各項(xiàng)功能還是能照常使用,在設(shè)計(jì)代碼時(shí),我們采用常用軟件開發(fā)中常用的MVC模式,將操作界面和業(yè)務(wù)邏輯進(jìn)行分離,降低代碼的藕合度,便于軟件的升級(jí)和維護(hù),而這一思想也正好和android工程的程序結(jié)構(gòu)相符,因?yàn)樵赼ndroid軟件開發(fā)中,界面完全可以以xml的形式設(shè)計(jì)而不需要進(jìn)行任何的硬編碼,在軟件的具體功能實(shí)現(xiàn)時(shí),使用an

24、droid布局技術(shù)完成UI的設(shè)計(jì),使用android數(shù)據(jù)存儲(chǔ)技術(shù)sqlite完成底層數(shù)據(jù)的讀寫。軟件最終現(xiàn)的功能除了精確查詢,模糊查詢,生詞本等常用的</p><p>  在本論文中,各章主要介紹的內(nèi)容如下:第2章主要介紹了電子詞典軟件的系統(tǒng)需求,第3章主要介紹了數(shù)據(jù)庫的設(shè)計(jì),第4章主要介紹了本軟件中用到的語言環(huán)境的搭建,第5章主要介紹了此軟件的各個(gè)模塊的具體功能的實(shí)現(xiàn)。</p><p>

25、  第2章 系統(tǒng)需求分析</p><p>  2.1 軟件的功能要求</p><p>  經(jīng)過以上詳細(xì)的用戶調(diào)查,在現(xiàn)行業(yè)務(wù)流程和數(shù)據(jù)分析的基礎(chǔ)上,基本可以確定系統(tǒng)設(shè)計(jì)必須達(dá)到的目標(biāo)了。根據(jù)軟件工程的原理,需求分析的任務(wù)是確定系統(tǒng)必須完成的工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清析、具體的要求。在經(jīng)過了多方的調(diào)查了解后,就可以確定電子詞典的功能需求。以下是電子詞典系統(tǒng)具備的功能:</

26、p><p> ?、僭O(shè)有主菜單選項(xiàng)界面,供用戶選擇要執(zhí)行的操作。</p><p> ?、谠O(shè)有增加單詞界面,管理員可以添加單詞和單詞解釋。</p><p> ?、墼O(shè)有更新單詞界面,管理員可以更新某個(gè)單詞的解釋。</p><p> ?、茉O(shè)有刪除單詞界面,管理員可以刪除某個(gè)單詞。</p><p> ?、菰O(shè)有單詞查詢界面,用戶可以查

27、詢某個(gè)單詞的解釋或者進(jìn)行模糊查詢。</p><p> ?、拊O(shè)有生詞本管理界面,用戶可以查看生詞本中的單詞與解釋。</p><p>  ⑦設(shè)有單詞解釋顯示界面,用來顯示用戶查詢到的單詞的解釋。</p><p> ?、嘣O(shè)有設(shè)置界面,用戶可以設(shè)置該軟件的一些信息。</p><p> ?、嵩O(shè)有數(shù)據(jù)備份和恢復(fù)界面,用戶可以將生詞本中的數(shù)據(jù)方便的備份起來

28、和恢復(fù)。</p><p><b>  2.2 需求分析</b></p><p>  在軟件設(shè)計(jì)之前,我們要做的工作就是對(duì)電子詞典的流程,操作等,做出詳細(xì)的調(diào)查,從而了解系統(tǒng)需要實(shí)現(xiàn)的功能。系統(tǒng)在開發(fā)過程中,經(jīng)過比較長(zhǎng)時(shí)間的設(shè)計(jì)階段,可以說模型貼近生活,有很大的現(xiàn)實(shí)意義,一般學(xué)生或者上班族一般都都能較方便的使用本軟件,考慮到軟件本身具有較強(qiáng)的專業(yè)性,而這些知識(shí)普及率畢竟

29、有限,所以在程序設(shè)計(jì)過程中一直遵循實(shí)際應(yīng)用的原則。因此它的操作界面會(huì)盡可能的簡(jiǎn)單,明了。各種控件的布置也會(huì)非常的清晰,使用的控件種類不會(huì)太多且對(duì)控件的操作不會(huì)太復(fù)雜。這樣就能讓不參與該軟件設(shè)計(jì)的人也能夠熟練的更好的使用。</p><p>  根據(jù)用戶查詢單詞和記憶單詞的要求,和記錄數(shù)據(jù)的一些習(xí)慣,該軟件實(shí)現(xiàn)后,能達(dá)到</p><p>  以下目標(biāo):界面設(shè)計(jì)友好、數(shù)據(jù)存儲(chǔ)安全,可靠?;镜脑O(shè)

30、置保證單詞查詢功能。保證數(shù)據(jù)</p><p>  查詢的靈活性。對(duì)增加、刪除、修改,查詢的信息進(jìn)行精密設(shè)計(jì),保證能及時(shí)處理信息。此軟件包括兩部分的設(shè)計(jì),第一部分是離線的單詞查詢,Android自帶的輕量級(jí)數(shù)據(jù)庫SQLite來保存單詞信息,系統(tǒng)通過SQLite數(shù)據(jù)庫中保存的單詞信息來查找到與指定英文相對(duì)應(yīng)的單詞的中文信息。實(shí)現(xiàn)這樣一個(gè)英文詞典需要解決一系列技術(shù)問題。例如,如何將保存英文單詞信息的數(shù)據(jù)庫隨程序一起發(fā)布

31、;發(fā)布后如何打開數(shù)據(jù)庫;如何在輸入前幾個(gè)字母后,在AutoCompleteTextView組件提示裂變中顯示以所輸入字符串開頭的所有單詞。</p><p>  在線的英文詞典在設(shè)計(jì)該時(shí),我們將該軟件定義為CS結(jié)構(gòu),即使手機(jī)不能接入網(wǎng)絡(luò)但是軟件的各項(xiàng)功能還是能照常使用。在設(shè)計(jì)代碼時(shí),我們采用常用軟件開發(fā)中常用的MVC模式,將操作界面和業(yè)務(wù)邏輯進(jìn)行分離,降低代碼的藕合度,便于軟件的升級(jí)和維護(hù)。在軟件的具體功能實(shí)現(xiàn)時(shí),

32、使用Android布局技術(shù)完成UI的設(shè)計(jì),使用oralce數(shù)據(jù)庫保存單詞的基本信息,使用Android數(shù)據(jù)存儲(chǔ)技術(shù)內(nèi)置的小型嵌入式數(shù)據(jù)庫sqlite完成底層數(shù)據(jù)的讀寫。同樣在線英文詞典也要解決一系列的技術(shù)問題。例如,如何將保存在oracle數(shù)據(jù)庫中的單詞信息解析出來,如何把選中的英文單詞保存在手機(jī)上輕量級(jí)數(shù)據(jù)庫中以及如何把保存在手機(jī)數(shù)據(jù)庫中的單詞信息查詢出來。</p><p>  2.3 功能需求(用例圖分析)&

33、lt;/p><p>  根據(jù)項(xiàng)目的目標(biāo),我們可獲得項(xiàng)目系統(tǒng)的基本需求,以下從不同角度來描述系統(tǒng)的需并且使用用例圖來描述,系統(tǒng)的功能需求,我們分為以下幾個(gè)本分分別描述:基本功能需求例圖,離線詞典的功能例圖,在線詞典的功能例圖,單詞本的共能例圖。各個(gè)例圖分別簡(jiǎn)單的描述了各個(gè)部分的基本功能和簡(jiǎn)單的實(shí)現(xiàn)。</p><p>  2.3.1 基本功能需求例圖</p><p>  圖

34、 2.1 系統(tǒng)的基本功能例圖</p><p>  其中各個(gè)部分的詳細(xì)功能描述如下表所示</p><p>  表2.1 查詢功能表</p><p>  表2.2 添加到單詞本功能表</p><p>  表2.3 發(fā)音功能表</p><p>  2.3.2 離線詞典的例圖</p><p>  圖 1

35、.2 離線的詞典的基本功能例圖</p><p>  其中各個(gè)部分的詳細(xì)功能描述如下表所示</p><p>  表2.4 離線查詢功能表</p><p>  2.3.3 在線查詢用例圖</p><p>  圖2.3 在線詞典的基本功能的例圖</p><p>  其中各個(gè)部分的詳細(xì)功能描述如下表所示</p>

36、<p>  表2.5 離線查詢功能表</p><p>  表2.6 離線查詢的菜單的功能表</p><p>  2.3.4 添加到單詞本的用例圖</p><p>  圖2.4 單詞本的基本功能例圖</p><p>  其中各個(gè)部分的詳細(xì)功能描述如下表所示</p><p>  表2.7 添加到單詞本的功能表&l

37、t;/p><p>  表2.8 顯示添加到單本的單詞</p><p>  2.4 系統(tǒng)結(jié)構(gòu)圖和流程圖</p><p>  此軟件主要分為兩部分來實(shí)現(xiàn),一部分是離線的英文詞典,一部分是在線的英文詞典。離線的英文詞典主要是使用Android自帶的輕量級(jí)數(shù)據(jù)庫SQLite來保存單詞信息,系統(tǒng)通過SQLite數(shù)據(jù)庫中保存的單詞信息來查找到與指定英文相對(duì)應(yīng)的單詞的中文信息。實(shí)現(xiàn)這

38、樣一個(gè)英文詞典需要解決一系列技術(shù)問題。例如,如何將保存英文單詞信息的數(shù)據(jù)庫隨程序一起發(fā)布;發(fā)布后如何打開數(shù)據(jù)庫;如何在輸入前幾個(gè)字母后,在AutoCompleteTextView組件提示裂變中顯示以所輸入字符串開頭的所有單詞。在線的英文詞典在設(shè)計(jì)該時(shí),我們將該軟件定義為CS結(jié)構(gòu),即使手機(jī)不能接入網(wǎng)絡(luò)但是軟件的各項(xiàng)功能還是能照常使用。在設(shè)計(jì)代碼時(shí),我們采用常用軟件開發(fā)中常用的MVC模式,將操作界面和業(yè)務(wù)邏輯進(jìn)行分離,降低代碼的藕合度,便于

39、軟件的升級(jí)和維護(hù)。在軟件的具體功能實(shí)現(xiàn)時(shí),使用Android布局技術(shù)完成UI的設(shè)計(jì),使用oralce數(shù)據(jù)庫保存單詞的基本信息,使用Android數(shù)據(jù)存儲(chǔ)技術(shù)內(nèi)置的小型嵌入式數(shù)據(jù)庫sqlite完成底層數(shù)據(jù)的讀寫。同樣在線英文詞典也要解決一系列的技術(shù)問題。例如,如何將保存在oracle數(shù)據(jù)庫中的單詞信息解析出來,</p><p>  其中離線詞典的主要的系統(tǒng)流程圖如圖2.5所示,在線詞典的結(jié)構(gòu)圖和系統(tǒng)流程圖分別如圖2

40、.6和2.7所示,系統(tǒng)功能結(jié)構(gòu)圖如圖2.8所示:</p><p>  圖 2.5 離線詞典的系統(tǒng)流程圖</p><p>  說明:其中詞典的部分分為在線的電子詞典和在線的電子詞典,在離線部分主要是對(duì)Android自帶的SQLite數(shù)據(jù)的操作,即單詞的信息是存儲(chǔ)在SQLite數(shù)據(jù)庫中的,我們所做的是如何把單詞的基本信息從數(shù)據(jù)庫中讀取出來,并且存儲(chǔ)到單詞本。而在線詞典的部分我們主要使用的是服務(wù)

41、器端的oracle數(shù)據(jù)庫,我們的首要工作就是如何把服務(wù)器端的數(shù)據(jù)庫中的數(shù)據(jù)讀取出來,顯示在手機(jī)的界面上。此外還要單詞本的中的單詞信息的存儲(chǔ),在此處我們也是使用Android的SQLite數(shù)據(jù)庫,而我們的播放單詞的功能就是把存儲(chǔ)在單詞本的單詞按照順序播放。所以本軟件很大以部分的工作是對(duì)數(shù)據(jù)庫的操作。</p><p>  2.6 在線詞典的架構(gòu)圖(C/S)</p><p>  在圖2.6中主要

42、針對(duì)C/S架構(gòu)進(jìn)行說明,所謂的C/S架構(gòu)就是客戶端和服務(wù)器端。我們把此軟件的架構(gòu)定義為C/S,最大的好處就是即使沒有網(wǎng)絡(luò)的情況下,我們?nèi)匀豢梢詮姆?wù)器端的數(shù)據(jù)庫中讀取到我們的單詞信息,只是因?yàn)槲覀兺ㄟ^web服務(wù)器發(fā)布了我們的服務(wù)器,構(gòu)建了一個(gè)虛擬的網(wǎng)絡(luò)資源。</p><p>  圖2.7 在線詞典的系統(tǒng)流程圖</p><p>  在圖2.7中我們主要的是針對(duì)在線的電子詞典進(jìn)行設(shè)計(jì),涉及到的

43、問題就是如何把服務(wù)器端的數(shù)據(jù)庫中的單詞信息讀取出來然后顯示在手機(jī)界面上。我們使用的是Http協(xié)議來解析,通過把單詞信息解析到瀏覽器上,然后我們?cè)偻ㄟ^post()和get()方法來解析瀏覽器上的信息。</p><p>  圖2.8 系統(tǒng)功能結(jié)構(gòu)圖</p><p>  2.5 系統(tǒng)界面需求</p><p>  當(dāng)今社會(huì)的生活節(jié)奏越來越快,隨著硬件移動(dòng)設(shè)備的越來越先進(jìn),人

44、們對(duì)移動(dòng)設(shè)備的要求也越來越高,從以前的追求技術(shù)到現(xiàn)在的追求視覺,因此,也逐步的提高了對(duì)系統(tǒng)的要求。因此設(shè)計(jì)的過程中應(yīng)該注意界面的友好性以及客戶的用戶體驗(yàn)。圖2.9是詞典的用戶界面:</p><p>  圖1.9 電子詞典用戶界面</p><p>  說明:在圖2.9為默認(rèn)的英文詞典的主界面,在文本框中輸入相應(yīng)的單詞或者漢字,點(diǎn)擊查詢按鈕就能顯示出相應(yīng)的漢語釋義或者英文單詞。點(diǎn)擊在線詞典就會(huì)

45、出現(xiàn)在線查詢的界面,點(diǎn)擊單詞本就會(huì)顯示添加到單詞本中的單詞。</p><p><b>  2.6 運(yùn)行環(huán)境</b></p><p>  2.6.1 關(guān)鍵技術(shù)</p><p>  本軟件采用java作為開發(fā)語言,布局和數(shù)據(jù)存儲(chǔ)是開發(fā)本軟件的關(guān)鍵技術(shù),布局用來設(shè)計(jì)用戶交互界面,用戶界面的設(shè)計(jì)是否美觀和合理直接影響用戶體驗(yàn),因此運(yùn)用好布局技術(shù)好是直接

46、和用戶相關(guān)的,而數(shù)據(jù)存儲(chǔ)技術(shù)則記錄了用戶所有的操作數(shù)據(jù)和用戶所需要提取的數(shù)據(jù)。在android中,軟件UI通常使用xml技術(shù)設(shè)計(jì),而xml中控年的位置和狀態(tài)則離不開布局的使用,android中常用的布局有5種,分別是:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、TableLayout,由于布局的使用,并且布局之間可以互相嵌套,使得android軟件UI的設(shè)計(jì)變得非常靈活,

47、即使是一些非常復(fù)雜的界面設(shè)計(jì),只要合理的使用布局,也會(huì)使開發(fā)變得很容易。</p><p>  android中數(shù)據(jù)存儲(chǔ)技術(shù)主要有:文件存儲(chǔ)、preference、sqlite、ContentProvider和網(wǎng)絡(luò)存儲(chǔ),在本軟件中主要使用到了文件存儲(chǔ)、sqlite,文件存儲(chǔ)是以流的形式讀寫文件,可以以文格的格式,也可以以二進(jìn)制的形式,在java語言中要使用流,則寫入文件的對(duì)象必須進(jìn)行序列化,sqlite是嵌入式移動(dòng)

48、設(shè)備中常用的輕量級(jí)數(shù)據(jù)庫,可看作計(jì)算機(jī)上使用的sqlserver、oracle數(shù)據(jù)庫。本軟件中,用戶生詞本中的數(shù)據(jù)都存在sqlite數(shù)據(jù)庫中,而進(jìn)行數(shù)據(jù)備份和恢復(fù)時(shí)則是用文件作為介質(zhì)保存數(shù)據(jù)。</p><p>  2.6.2 運(yùn)行環(huán)境</p><p>  操作系統(tǒng):Android手機(jī)基于Linux操作系統(tǒng)</p><p>  支持環(huán)境:Android 1.5 - 2

49、.3.1版本</p><p>  開發(fā)環(huán)境:Eclipse 3.5 ADT 0.95 </p><p>  第3章 數(shù)據(jù)庫的設(shè)計(jì)</p><p>  數(shù)據(jù)結(jié)構(gòu)組織和數(shù)據(jù)庫文件設(shè)計(jì)要根據(jù)不同用途,使用要求等,來決定數(shù)據(jù)的整體組織形式等一系列問題。數(shù)據(jù)庫,顧名思義,是存放數(shù)據(jù)的倉庫。只不過這個(gè)倉庫是在計(jì)算機(jī)存儲(chǔ)設(shè)備上,而且數(shù)據(jù)是按一定的格式存放的。數(shù)據(jù)庫中的數(shù)據(jù)按一定數(shù)

50、據(jù)模型組織、描述和存儲(chǔ),具有較小的重復(fù)度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并且可以被在一定范圍內(nèi)的各種用戶共享。在涉及數(shù)據(jù)庫的軟件開發(fā)中,需要根據(jù)有待解決的問題性質(zhì)、規(guī)模,以及所采用的前端程序創(chuàng)建工具等,做出合適的數(shù)據(jù)庫類型選擇。</p><p>  3.1 在線詞典的服務(wù)器端的數(shù)據(jù)庫設(shè)計(jì)</p><p>  在線查詢時(shí)需要把服務(wù)器端的oracle數(shù)據(jù)庫中的數(shù)據(jù)解析出來。把單詞庫導(dǎo)入到orac

51、le數(shù)據(jù)庫。在本系統(tǒng)中采用了簡(jiǎn)易版的oracle,即數(shù)據(jù)庫的名字為XE,首先要解決的是在該數(shù)據(jù)庫里某個(gè)用戶下創(chuàng)建表。</p><p>  3.1.1 數(shù)據(jù)庫中數(shù)據(jù)表的設(shè)計(jì)</p><p>  在此軟件中表的關(guān)系比較簡(jiǎn)單,只有一張單詞表,其具體的設(shè)計(jì)為</p><p>  表3.1 數(shù)據(jù)庫中數(shù)據(jù)表的具體設(shè)計(jì)</p><p>  說明:name為

52、單詞的英文名稱為數(shù)據(jù)表的主鍵,info為單詞的中文釋義不能為空。在DOS下創(chuàng)建數(shù)據(jù)表的具體步驟為:</p><p>  安裝oracle簡(jiǎn)易版的數(shù)據(jù)庫之后打開DOS進(jìn)行配置,配置Oracle的步驟為</p><p>  (1)以oracle管理員的身份進(jìn)入oraclesqlplus “as sysdba”</p><p> ?。?)啟動(dòng)oracle監(jiān)聽先退出exit

53、;然后啟動(dòng)監(jiān)聽lsnrctl start</p><p> ?。?)創(chuàng)建新的用戶首先以管理員的身份進(jìn)入sqlplus “/as sysdba”</p><p>  create user name identified by password;</p><p>  grant resourct,connect to name;</p><p>

54、;  注:以新的用戶登錄 首先推出數(shù)據(jù)庫exit;然后sqlplus name/password</p><p> ?。?)修改當(dāng)前的語言格式,默認(rèn)為中文</p><p>  alter session set nls_date_language=english;</p><p>  (5)創(chuàng)建新的數(shù)據(jù)表、</p><p>  create

55、table b_dict(</p><p>  name varchar2(20) primary key,</p><p>  info varchar2(100) not null</p><p><b>  );</b></p><p> ?。?)查看數(shù)據(jù)表是否創(chuàng)建成功select table_name from

56、user_tables;</p><p>  查看數(shù)據(jù)表的內(nèi)容desc b_dict;</p><p>  查看數(shù)據(jù)表的所有內(nèi)容select * from b_dict;</p><p>  將單詞導(dǎo)入到數(shù)據(jù)庫中</p><p>  insert into b_dict values(‘AD’,’/Ad/ abbr.公元(后);耶穌紀(jì)元后’)

57、;</p><p>  圖 3.1 數(shù)據(jù)表b_dict的內(nèi)容</p><p>  3.1.2 在線詞典的客戶端的數(shù)據(jù)庫設(shè)計(jì)</p><p>  客戶端采用的是sqlite數(shù)據(jù)庫,sqlite數(shù)據(jù)庫是Android自帶的小型數(shù)據(jù)庫,可以將少量的數(shù)據(jù)存放在該數(shù)據(jù)庫中。針對(duì)不同的用戶的生詞是不同的,可以很方便的將生詞導(dǎo)入到數(shù)據(jù)庫中,也可以很方便的將單詞從數(shù)據(jù)庫中刪除。此軟

58、件中的數(shù)據(jù)表的關(guān)系也比較簡(jiǎn)單,只有一張表用來存放添加到單詞本中的單詞具體設(shè)計(jì)如下表所示:</p><p>  表3.2 單詞本表的具體設(shè)計(jì)</p><p>  說明:title:存放英文單詞。body:存放相應(yīng)的英文單詞的中文解釋。數(shù)據(jù)庫定義為sqlite.db的原因是:android平臺(tái)下采用的數(shù)據(jù)庫是sqlite3,運(yùn)行后生成數(shù)據(jù)庫的名稱.db文件.定義好的數(shù)據(jù)庫可以直接導(dǎo)入到/dat

59、a/data/com.briup.dictionary/databases/sqlite.db 。這樣生詞本的數(shù)據(jù)就可以直接在模擬器中顯示出來。</p><p>  建表語句為create table dict</p><p>  (_id Integer primary key increment by,</p><p>  title text not null

60、,</p><p>  body text not null);</p><p>  在DOS下查看android下的數(shù)據(jù)庫文件的內(nèi)容如下:</p><p>  (1)cd /data/data/com.briup.dictionary/databases/sqlite.db</p><p>  (2) sqlite3 sqlite.db&l

61、t;/p><p>  (3).tables</p><p>  (4)select *from dict;</p><p>  (5)將單詞導(dǎo)入到數(shù)據(jù)庫中,insert into b_dict values(1,‘AD’,’/Ad/ abbr.公元;耶穌紀(jì)元后’);</p><p>  3.1.3 離線時(shí)的數(shù)據(jù)庫的設(shè)計(jì)</p>&l

62、t;p>  這里的數(shù)據(jù)庫的設(shè)計(jì)和單詞的單詞表的設(shè)計(jì)基本類似,這里就省略一些詳細(xì)的建表的過程而簡(jiǎn)單的給出設(shè)計(jì)的功能表。</p><p>  表3.3 離線時(shí)的數(shù)據(jù)庫的設(shè)計(jì)表</p><p>  3.1.4 軟件數(shù)據(jù)模型</p><p>  建立系統(tǒng)數(shù)據(jù)模型的主要工具是實(shí)體—關(guān)聯(lián)圖,即E-R圖。E-R圖形符號(hào)約定如下表:</p><p>

63、  表3.4 E-R圖圖形符號(hào)表</p><p>  根據(jù)上面的給出的E-R圖的圖形符號(hào)表的描述,畫出的在線時(shí)的數(shù)據(jù)庫的E-R分別如下:</p><p>  圖 3.2 在線時(shí)服務(wù)器端的單詞表的E-R圖</p><p>  圖 3.3 在線時(shí)客戶端的單詞本中單詞表的E-R圖</p><p><b>  3.2 連接數(shù)據(jù)庫</b

64、></p><p>  在線時(shí)的服務(wù)器端用的Oracle數(shù)據(jù)庫用來存儲(chǔ)單詞的基本信息(單詞的名稱和單詞的中文釋義),客戶端用的是android自帶的sqlite數(shù)據(jù)庫。這里將首先介紹如何進(jìn)行Android數(shù)據(jù)庫連接,Android中自帶SQLite數(shù)據(jù)庫,這是一個(gè)十分小型的數(shù)據(jù)庫,這樣正適合Android這種移動(dòng)平臺(tái)使用。Android數(shù)據(jù)庫存儲(chǔ)的位置在data/data/<項(xiàng)目文件夾>/dat

65、abases/目錄下,Android是利用ContentProvider作為內(nèi)容提供商,SQLiteOpenHelper數(shù)據(jù)庫幫助類來進(jìn)行對(duì)數(shù)據(jù)庫的創(chuàng)建和操作。通過Context.getContentResolver()方法直接對(duì)數(shù)據(jù)庫進(jìn)行操作。程序中數(shù)據(jù)庫類為DBHelper extends SQLiteOpenHelper(繼承關(guān)系),內(nèi)容提供類DBProvider extends ContentProvide(繼承關(guān)系)。其次介紹

66、服務(wù)器端的數(shù)據(jù)庫的詳細(xì)設(shè)計(jì),再介紹服務(wù)器端和客戶端的數(shù)據(jù)庫的連接。</p><p>  3.2.1 數(shù)據(jù)庫的創(chuàng)建</p><p>  Android 提供了標(biāo)準(zhǔn)的數(shù)據(jù)庫創(chuàng)建方式。繼承SQLiteOpenHelper ,實(shí)現(xiàn)onCreate() 和 onUpgrade() 兩個(gè)方法,有個(gè)好處就是便于數(shù)據(jù)庫版本的升級(jí),連接數(shù)據(jù)庫的算法見程序清單。數(shù)據(jù)庫如果創(chuàng)建不成功則拋出FIleNotFoun

67、dException異常。服務(wù)器端數(shù)據(jù)庫的創(chuàng)建主要是通過DOS利用命令進(jìn)行創(chuàng)建的,詳細(xì)的創(chuàng)建命令在2.1.1中已經(jīng)詳細(xì)的做了介紹,此處不再進(jìn)行贅述。</p><p>  3.2.2.數(shù)據(jù)庫的操作</p><p>  Android對(duì)SQLite數(shù)據(jù)庫的操作主要有插入、刪除、更新、查詢操作。但是前置條件是必須打開數(shù)據(jù)庫。在這里打開數(shù)據(jù)庫用的主要的方法是openForReadable()和op

68、enForWriteable(),打開數(shù)據(jù)之后才能進(jìn)行相關(guān)的操作,其中插入單詞的方法是insertWord(),刪除單詞的方法是deleteNote(),更新單詞的方法是updateWord()。其詳細(xì)代碼見程序清單。注意:在操作完了數(shù)據(jù)庫之后,需要對(duì)資源進(jìn)行釋放,這里就是對(duì)數(shù)據(jù)庫資源進(jìn)行關(guān)閉,關(guān)閉數(shù)據(jù)庫的方法是close()。在服務(wù)器端的數(shù)據(jù)庫同樣有增加,刪除和更新等操作,因?yàn)槲覀冇迷诰€電子詞典時(shí),需要把數(shù)據(jù)從服務(wù)器端通過URL讀出來

69、。因此我們用的是servlet來實(shí)現(xiàn)單詞的增刪改查。其中查詢操作的介紹將在下面的3.2.3節(jié)數(shù)據(jù)的查看中詳細(xì)的分析,這里不再贅述。</p><p>  3.2.3 數(shù)據(jù)的查看</p><p>  Android中程序是利用Cursor游標(biāo)類指向數(shù)據(jù)表中的某一項(xiàng),然后進(jìn)行查詢數(shù)據(jù),用Log日志顯示出來。查詢時(shí)用的方法是數(shù)據(jù)庫本身的查詢方法query(),需要注意的是這個(gè)方法比較復(fù)雜,他有8個(gè)

70、參數(shù),因?yàn)樗鼘⒁粋€(gè)完整的SQL語句拆成了若干個(gè)部分:</p><p>  第一個(gè)參數(shù)table:表名,相當(dāng)于SQL的from后面的部分。在此還要注意如果和多表聯(lián)合查詢時(shí),就用逗號(hào)將兩個(gè)表名分開,拼成一個(gè)字符串的table值。</p><p>  第二個(gè)參數(shù)是columns,要查詢出來的列名。相當(dāng)于SQL的select后面的部分。</p><p>  第三個(gè)參數(shù)是se

71、lection,查詢的條件,相當(dāng)于SQL的where后面的部分,在這個(gè)語句中允許使用“?”,也就是說這個(gè)用法和JDBC中的PreparedStatement的用法相似。</p><p>  第四個(gè)參數(shù)selectionArgs,對(duì)應(yīng)于selection的值,selection有幾個(gè)問號(hào),這里就得用幾值。</p><p>  第五個(gè)參數(shù)groupBy,相當(dāng)于SQL的group by后面的部分

72、。</p><p>  第六個(gè)參數(shù)having,相當(dāng)于SQL的having后面的部分。</p><p>  第七個(gè)參數(shù)orderBy,相當(dāng)于SQL的order by后面的部分,如果是倒序,或者是聯(lián)合排序,可以寫成類似這樣:String orderBy = “id desc,name”。</p><p>  第八個(gè)參數(shù)limit,指定的結(jié)果集的大小,它和Mysql的l

73、imit用法不太一樣,Mysql可以指定從多少行開始之后取多少條,例如,“l(fā)imit 100,10”,但是這里只支持一個(gè)數(shù)值。</p><p>  注意:游標(biāo)查詢時(shí),必須把Cursor移動(dòng)到第一個(gè)位置,即moveToFirst(),因?yàn)槊看尾樵儠r(shí),游標(biāo)都會(huì)從第一個(gè)往后查找,通常在查詢數(shù)據(jù)庫之前進(jìn)行。此外,游標(biāo)和數(shù)據(jù)庫一樣都要及時(shí)關(guān)閉,要不會(huì)出現(xiàn)異常。其詳細(xì)代碼見程序清單。在Oracle中查詢用到的也是數(shù)據(jù)的que

74、ry()方法,他用到的參數(shù)只有一個(gè)就是sql語句,sql語句的寫法是sql=“select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達(dá)式,”例如String sql = "select * from b_dict where name=?"。最后要執(zhí)行sql語句,用法如下set rs= conn.excute(sql),用rs(別名)表示獲取統(tǒng)計(jì)的值。</p><p>

75、;  3.2.4 服務(wù)器和客戶端的連接</p><p>  服務(wù)器端和客戶端的連接通過URL連接到瀏覽器,然后客戶端從瀏覽器端把信息解析出來。此處主要的方法就是post()或者get()方法,一般用到的都是post()方法,下面簡(jiǎn)單介紹一下post()方法的參數(shù)極其參數(shù)的用法。post()方法有兩個(gè)參數(shù),第一個(gè)是url(統(tǒng)一資源定位符)相當(dāng)于網(wǎng)址,第二個(gè)是封裝的參數(shù)。其使用步驟是:</p><

76、p>  1 創(chuàng)建HttpClient對(duì)象;</p><p>  2 根據(jù)實(shí)際需求創(chuàng)建HttpGet和HttpPost對(duì)象</p><p>  3 如果需要發(fā)送參數(shù),調(diào)用setParams方法來添加請(qǐng)求參數(shù),HttpPost對(duì)象可調(diào)用setEntity</p><p><b>  來設(shè)置。</b></p><p> 

77、 4 調(diào)用HttpClient的execute發(fā)送請(qǐng)求,返回一個(gè)HttpRequest。</p><p>  5 調(diào)用HttpResponse對(duì)象相關(guān)方法獲取服務(wù)器的相應(yīng)內(nèi)容進(jìn)行處理。</p><p><b>  第4章 環(huán)境的搭建</b></p><p>  本軟件在線詞典的設(shè)計(jì)是C/S結(jié)構(gòu)的系統(tǒng),因此要先搭建服務(wù)器端,利用Java EE中的

78、servlet來提供服務(wù),并將其部署在Tomcat下。需要解決的是創(chuàng)建不同的servlet來提供不同的服務(wù)。另外此軟件是運(yùn)行在Android平臺(tái)下,所以需要搭建Android平臺(tái)。</p><p>  4.1關(guān)于 Android的簡(jiǎn)單介紹</p><p>  任何事物要運(yùn)行都要有它的環(huán)境,Android也要有它的環(huán)境才能夠運(yùn)行,下面介紹Android的開發(fā)環(huán)境的配置。</p>

79、<p>  4.1.1 Android環(huán)境的搭建</p><p>  搭建開發(fā)環(huán)境需要的軟件:</p><p>  操作系統(tǒng):Windows XP或Linux</p><p>  軟件包:Android SDK(Software Development kit Java Development kit)、ADT(Android Development T

80、ool)</p><p>  IDE環(huán)境:Eclipse IDE+ADT Eclipse 3.3 以上</p><p>  JDK:Java Runtime Environment 虛擬機(jī)、(JDK)Java Development kit</p><p><b>  安裝步驟如下:</b></p><p>  第一步:

81、安裝Java虛擬機(jī)sun-java7-jdk版本</p><p>  第二步:安裝Eclipse3.5工具官網(wǎng)http://www.eclipse.org/downloads/選擇版本(圖4.1)進(jìn)行安裝。</p><p>  圖4.1 Eclipse的安裝版本</p><p>  第三步:安裝Android SDK,首先要下載SDK,可以在這個(gè)網(wǎng)址下載http:/

82、/developer.android.com/sdk,選擇相應(yīng)的系統(tǒng)進(jìn)行安裝。</p><p>  第四步:安裝Android ADT插件,運(yùn)行Eclipse,選擇help->install new software選擇add,將會(huì)彈出一個(gè)如圖3.2對(duì)話框,點(diǎn)擊OK,選擇要安裝的軟件,然后next,選擇接受協(xié)議,直到安裝成功,重啟Eclipse軟件,設(shè)置Android SDK Home,window->

83、;refrence在SDK location中輸入SDK Tools路徑:E:\android\android-sdk-windows點(diǎn)擊OK這樣Android的環(huán)境就已經(jīng)搭建成功了。</p><p>  圖4.2 安裝ADT</p><p>  4.1.2Android命令行的使用</p><p>  1.創(chuàng)建Android Virtual Device(AVD)

84、</p><p>  使用android list target命令列出當(dāng)前可用SDK版本</p><p>  android create avd –n <name> -t <targetID> [-<option><value>]</p><p>  2.模擬器Emulator的使用</p><

85、p><b>  啟動(dòng)和停止模擬器</b></p><p>  emulator –avd <avd_name> </p><p>  3.Android Debug Bridge(ADB)的使用</p><p>  查詢當(dāng)前模擬器實(shí)例數(shù)量</p><p>  adb devices</p>

86、<p>  4.本地機(jī)器和模擬器之間相互拷貝文件</p><p>  D:adb push d:\tesst.txt/sdcard</p><p>  D:adb pull /sdcard/test.txt d:/</p><p> ?。?)安裝apk應(yīng)用程序</p><p>  adb push d:\test.apk/sdca

87、rd/</p><p>  adb install test.apk</p><p> ?。?)使用shell命令</p><p>  在DOS命令行輸adb shell 進(jìn)入shell命令行</p><p>  退出shell用exit</p><p>  4.1.3 Android工程的簡(jiǎn)單介紹</p>

88、<p>  Android系統(tǒng)將插件ADT集成到了Eclipse工具上,因此,一個(gè)Android程序啟動(dòng)后,系統(tǒng)會(huì)啟動(dòng)一個(gè)模擬器(Emulator),該模擬器是一款手機(jī)版的樣式,擁有手機(jī)硬件的基本操作,我們可以右邊的鍵盤通過代碼屬性設(shè)置將其隱藏,界面的大小可自由設(shè)定,目前最大支持800*600分辨率。</p><p>  1.Android的工程程序的結(jié)構(gòu):Android工程基本結(jié)構(gòu)目錄包括:src

89、(源代碼),gen(Android系統(tǒng)自動(dòng)生成的常量),res(資源文件):主要是存放程序界面的布局配置(.xml)文件和圖片資源。AndroidMainfes.xml是Android四大組件的驅(qū)動(dòng)配置文件,有它的存在,Android程序的四大組件才可以正常的跳轉(zhuǎn)。Android資源的類型和布局如表3.1所示:</p><p>  表4.1 Android資源的類型和布局表</p><p>

90、;  下圖4.2和4.3為電子詞典代碼結(jié)構(gòu)和個(gè)界面的配置文件,圖像資源等,其中src為java的源代碼,res/drawable為詞典工程程序中用到的圖片資源,res/layout為詞典工程中用到的布局文件,res/values為工程中用到的各種XML資源文件,res/raw為工程中離線查詢時(shí)用到的數(shù)據(jù)庫資源。</p><p>  圖4.2 電子詞典工程的結(jié)構(gòu)圖1圖4.3 電子詞典工程結(jié)構(gòu)圖2</

91、p><p>  2.Android工程的配置文件AndroidManifest.xml的介紹</p><p>  Android系統(tǒng)的任何一個(gè)程序啟動(dòng)都需要AndroidManifest.xml來啟動(dòng)程序,任何一個(gè)新建的工程目錄都會(huì)自動(dòng)生成一個(gè)AndroidManifest.xml文件,此配置文件時(shí)整個(gè)程序能夠正常運(yùn)行的核心,他里面包含了AndroidSDK的版本,程序運(yùn)行的默認(rèn)Activit

92、y,當(dāng)程序中的任何一個(gè)組件觸發(fā)事件后,系統(tǒng)都會(huì)自動(dòng)的去AndroidManifest.xml中尋找標(biāo)示來做出相應(yīng)的操作。任何一個(gè)AndroidManifest.xml文件的格式都應(yīng)為:</p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  <manifest xmlns

93、:android="http://schemas.android.com/apk/res/android"</p><p>  android:versionCode="1"</p><p>  android:versionName="1.0"></p><p>  <application

94、></p><p>  <activity></p><p>  <intent-filter></p><p><b>  <action/></b></p><p>  <category/></p><p>  </intent-f

95、ilter></p><p>  </activity></p><p>  </application></p><p>  <uses-permission/></p><p>  </manifest></p><p>  Android支持的編碼是"

96、;utf-8",當(dāng)程序中出現(xiàn)亂碼是,我們須將其編碼格式轉(zhuǎn)化為"utf-8".在 AndroidManifest.xml中會(huì)在第一行聲明一句:<?xml version="1.0" encoding="utf-8"?>。在第二行定義了我們需要使用的架構(gòu),該架構(gòu)來自xmlns:android="http://schemas.android.com/a

97、pk/res/android"xmlns(XML namespace)是一個(gè)命名空間,它就像一條河的源頭一樣能讓我們找到系統(tǒng)架構(gòu),每一個(gè)配置文件必須有這個(gè)xmlns,否則程序中的所使用的所有資源將無法找到。</p><p>  在application元素我們定義android:icon="@drawable/icon"</p><p>  android:l

98、abel="@string/app_name",android:icon是程序在手機(jī)中顯示的圖片,我們運(yùn)用@drawable/icon表示了對(duì)res/drawable目錄下的icon.png的引用。@string/app_name表示了對(duì)res/value目錄下string.xml中定義的app_name參數(shù)的引用。</p><p>  <activity android:name=&q

99、uot;.DemoDectionary"></p><p>  <intent-filter></p><p>  <action android:name="android.intent.action.MAIN"/></p><p>  <category android:name="an

100、droid.intent.category.LAUNCHER" /></p><p>  </intent-filter></p><p>  </activity></p><p>  這是系統(tǒng)確定的首先要啟動(dòng)的Activity是DemoDectionary。在intent-filter選項(xiàng)中,有action和categor

101、y等等屬性,我們需要定義action的值為android.intent.action.MAIN,category的值為android.intent.category.LAUNCHER,它們是系統(tǒng)的值,程序在解析到這些常用后就可以確定首先要啟動(dòng)的Activity。當(dāng)我們需要通過一個(gè)組件觸發(fā)另一個(gè)組件時(shí),我們將設(shè)定action和category的其它屬性值,系統(tǒng)會(huì)根據(jù)我們?cè)O(shè)定的屬性值去AndroidManifest.Xml的applicat

102、ion 中尋找標(biāo)識(shí),任何一個(gè)Activity的action和category是唯一,所以程序在任何時(shí)候都能唯一啟動(dòng)一個(gè)Activity,這樣,不同的Activity之間的跳轉(zhuǎn)就實(shí)現(xiàn)了。在AndroidManifest.Xml中有一個(gè)根結(jié)點(diǎn)<uses-sdk>,它是我們需要定義的ADT版本,例如我們將其值設(shè)定為android:minSdkVersion="4",則表示此Android工程所用的版本為1.6,

103、Androi</p><p>  <provider></provider></p><p>  <activity></activity></p><p>  <receiver></receiver></p><p>  其中聲明provider時(shí)還需要聲明其授權(quán) a

104、uthorities。每個(gè)組件里面還有很多的屬性,會(huì)根據(jù)程序的具體需要定義不同的屬性。</p><p>  4.2 Java Web環(huán)境的搭建</p><p>  本軟件是C/S結(jié)構(gòu)的系統(tǒng),因此要先搭建服務(wù)器端,利用Java EE中的servlet來提供服務(wù),并將其部署在Tomcat下。需要解決的是創(chuàng)建不同的servlet來提供不同的服務(wù)。Web服務(wù)的名稱:DictionaryServic

105、e,在myEclipse中新建一個(gè)web project,取名為DictionaryService,其結(jié)構(gòu)如下圖:</p><p>  圖4.4 Web結(jié)構(gòu)圖</p><p>  com.briup.jdbc是CVM模式中的低層,數(shù)據(jù)庫層,包中的類是用來連接數(shù)據(jù)庫和操作數(shù)據(jù)庫的,其中JDBCConnectionFactory.java用來連接數(shù)據(jù)庫。</p><p>

106、;  private static String url;</p><p>  private static String userName;</p><p>  private static String userPwd;</p><p>  連接數(shù)據(jù)庫需要這三個(gè)值,而這三個(gè)值放入到dbFile中,通過Properties來獲取。然后通過連接工廠方法。Connec

107、tion conn = DriverManager.getConnection(url,userName,userPwd),com.briup.service是CVM模式中的service層,為用戶提供服務(wù)。com.briup.service是CVM模式中的Dao層,為service提供服務(wù),封裝對(duì)數(shù)據(jù)庫的操作的方法。com.briup.servlet包中就各個(gè)不同的Servlet類,其具體情況如下:</p><p&

108、gt;  提供模擬查詢的servlet是QueryDictsServlet,重寫其中的doGet()和doPost()方法,該servlet來處理模擬查詢的功能,并接收要匹配的字符串,參數(shù)為name,其http://192.168.223.50:8888/DictionaryService/servlet/querydictsservlet?name=BC;提供查詢的servlet是QueryDictServlet, 重寫其中的doGe

109、t()和doPost()方法,該servlet來處理確認(rèn)查詢的功能,并接收要查詢的字符串,參數(shù)為name,其url為:http://192.168.223.50:8888/DictionaryService/servlet/querydictsservlet?name=BC;提供刪除單詞的servlet是DeleteDictsServlet,重寫其中的doGet()和doPost()方法,該servlet來處理刪除單詞的功能,并接收要?jiǎng)h

110、除的字符串,參數(shù)為name,其url為http://192.168.223.50:8888/DictionaryService/s</p><p>  詞的功能,不需要接收任何參數(shù),其URL為:</p><p>  http://192.168.223.50:8888/DictionaryService/servlet/queryservlet。</p><p> 

111、 要測(cè)試是否連接成功可以打開任意瀏覽器,輸入上面的url,如果能夠正確的解析出來服務(wù)器端的信息,表示連接成功。如圖是輸入查詢的url時(shí)出現(xiàn)的信息:此信息是以xml的信息表示的,第一行表示xml的版本信息以及所用到的編碼格式,在下面是根節(jié)點(diǎn)response,其中包含兩個(gè)子節(jié)點(diǎn)message和dict,而dict中又包含了兩個(gè)子節(jié)點(diǎn)dictName和dictInfo,需要主要的是message是對(duì)服務(wù)器端是否解析成功的標(biāo)注,也可以不要此節(jié)點(diǎn)

112、,但是根節(jié)點(diǎn)必須存在。實(shí)際上我們從瀏覽器解析信息的時(shí)候就是通過各個(gè)信息的節(jié)點(diǎn)進(jìn)行解析的,此處可以使用兩中解析方法,一種是SAX解析,但是此解析主要針對(duì)的是大批量的數(shù)據(jù)解析,我們這里用到的信息只是單詞的基本信息,沒有必要使用它。因此我們使用的是針對(duì)小批量處理的DOM解析。</p><p>  圖 4.5 從瀏覽器解析到的查詢信息</p><p>  如上圖如果要解析出單詞的英文名字(engl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論