基于Android的背單詞軟件設(shè)計(jì)實(shí)現(xiàn)分析計(jì)算機(jī)畢業(yè)論文_第1頁
基于Android的背單詞軟件設(shè)計(jì)實(shí)現(xiàn)分析計(jì)算機(jī)畢業(yè)論文_第2頁
基于Android的背單詞軟件設(shè)計(jì)實(shí)現(xiàn)分析計(jì)算機(jī)畢業(yè)論文_第3頁
基于Android的背單詞軟件設(shè)計(jì)實(shí)現(xiàn)分析計(jì)算機(jī)畢業(yè)論文_第4頁
基于Android的背單詞軟件設(shè)計(jì)實(shí)現(xiàn)分析計(jì)算機(jī)畢業(yè)論文_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-PAGE . z畢業(yè)論文論文題目:基于Android的背單詞軟件的設(shè)計(jì)與實(shí)現(xiàn)*: 學(xué) 號(hào): 班 級(jí): 專 業(yè):軟件工程 學(xué) 院:軟件學(xué)院 指導(dǎo)教師: 完成時(shí)間:2015年4月17日-. z基于Android的背單詞軟件的設(shè)計(jì)與實(shí)現(xiàn)摘要隨著經(jīng)濟(jì)全球化,我們與外國人的接觸越來越多,英語已經(jīng)成為了中國與外面交流的主要工具,同時(shí)我國的英語教育也開場(chǎng)普及到了小學(xué),人們對(duì)學(xué)習(xí)英語越來越重視。而對(duì)于學(xué)習(xí)英語特別是英語單詞記憶,記憶單詞的方式也在不斷的更新,而今移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來,尤其智能手機(jī)的廣泛應(yīng)用,英語學(xué)習(xí)的平臺(tái)已經(jīng)逐漸向計(jì)算機(jī)或者手機(jī)等移動(dòng)設(shè)備上轉(zhuǎn)移,背單詞的方式方法進(jìn)入一個(gè)新的領(lǐng)域。背單詞軟件是

2、當(dāng)下比擬流行且方便有效的輔助記憶工具,本文介紹的背單詞軟件是一款基于android平臺(tái)的應(yīng)用軟件,其主要功能有單詞學(xué)習(xí),單詞背誦,單詞測(cè)試,真人發(fā)音,添加生詞本等。同時(shí)本文對(duì)背單詞軟件開發(fā)中有關(guān)系統(tǒng)設(shè)計(jì),系統(tǒng)實(shí)施方法和設(shè)計(jì)詞庫等方面進(jìn)展了探索,以此推動(dòng)計(jì)算機(jī)英語輔助軟件開發(fā)。關(guān)鍵詞:Android; 背單詞; 英文學(xué)習(xí); 軟件開發(fā)-. zDesign and implementation of memorizing word software based on AndroidAbstractWith the economic globalization,we contact with fore

3、igners more and more,English has bee the main tool to municate with foreign in China,English education in our country also started to popularize the primary school,people pay more and more attention to learning English.For learning English especially in English words memory,memorize words way are al

4、so constantly updated,but now the advent of the era of mobile Internet,especially the wide application of smart phones,English learning platform has been gradually shift to puter or on mobile devices such as mobile phones,methods of memorizing words into a new field.Memorizing words software is now

5、more popular and convenient and effective tool of memory,crouching tiger word software is introduced in this paper a based on android platform of application software,its main function is the word study, recite words, word test, pronunciation, to add the new words and so on.At the same time in this

6、paper, the back word software development related to system design, system implementation methods and designs thesaurus has e*plored in such aspects,to promote English puter au*iliary software development.Key words: Android; recite words; English study; software development -. z目錄 TOC o 1-3 h z u HY

7、PERLINK l _Toc390334060摘要 PAGEREF _Toc390334060 h IHYPERLINK l _Toc390334061AbstractPAGEREF _Toc390334061 h IIHYPERLINK l _Toc3903340621. 緒論 PAGEREF _Toc390334062 h 1HYPERLINK l _Toc3903340631.1研究容 PAGEREF _Toc390334063 h 1HYPERLINK l _Toc3903340641.2研究意義 PAGEREF _Toc390334064 h 1HYPERLINK l _Toc390

8、3340651.3研究現(xiàn)狀和開展趨勢(shì) PAGEREF _Toc390334065 h 1HYPERLINK l _Toc3903340662. 平臺(tái)與開發(fā)工具 PAGEREF _Toc390334066 h 3HYPERLINK l _Toc3903340672.1 開發(fā)平臺(tái)介紹 PAGEREF _Toc390334067 h 3HYPERLINK l _Toc3903340682.2 開發(fā)語言與開發(fā)環(huán)境 PAGEREF _Toc390334068 h 3HYPERLINK l _Toc3903340693. 英語背單詞軟件總體設(shè)計(jì)與需求分析 PAGEREF _Toc390334069 h 5

9、HYPERLINK l _Toc3903340703.1 Android四大組件簡介 PAGEREF _Toc390334070 h 5HYPERLINK l _Toc3903340713.2 Android 手機(jī)應(yīng)用軟件的UI設(shè)計(jì) PAGEREF _Toc390334071 h 6HYPERLINK l _Toc3903340723.3 英語背單詞軟件需求分析與性能分析 PAGEREF _Toc390334072 h 7HYPERLINK l _Toc3903340733.4 英語背單詞軟件操作流程圖與數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc390334073 h 7HYPERLINK l _T

10、oc3903340743.4.1 英語背單詞軟件操作流程圖 PAGEREF _Toc390334074 h 7HYPERLINK l _Toc3903340753.4.2 數(shù)據(jù)庫的創(chuàng)立與設(shè)計(jì) PAGEREF _Toc390334075 h 8HYPERLINK l _Toc3903340764. 系統(tǒng)各個(gè)模塊的具體實(shí)現(xiàn) PAGEREF _Toc390334076 h 13HYPERLINK l _Toc3903340774.1 啟動(dòng)模塊的實(shí)現(xiàn) PAGEREF _Toc390334077 h 13HYPERLINK l _Toc3903340784.2 用戶信息模塊的實(shí)現(xiàn) PAGEREF _To

11、c390334078 h 14HYPERLINK l _Toc3903340794.3 用戶單詞學(xué)習(xí)模塊的實(shí)現(xiàn) PAGEREF _Toc390334079 h 16HYPERLINK l _Toc3903340804.4 用戶單詞復(fù)習(xí)模塊的實(shí)現(xiàn) PAGEREF _Toc390334080 h 17HYPERLINK l _Toc3903340814.5 用戶單詞測(cè)試模塊的實(shí)現(xiàn) PAGEREF _Toc390334081 h 19HYPERLINK l _Toc3903340824.6 生詞本模塊的實(shí)現(xiàn) PAGEREF _Toc390334082 h 20HYPERLINK l _Toc3903

12、340834.7 各界面之間切換的實(shí)現(xiàn) PAGEREF _Toc390334083 h 21HYPERLINK l _Toc3903340845. 客戶端界面測(cè)試 PAGEREF _Toc390334084 h 23HYPERLINK l _Toc3903340855.1 系統(tǒng)測(cè)試的目標(biāo) PAGEREF _Toc390334085 h 23HYPERLINK l _Toc3903340865.2 測(cè)試流程 PAGEREF _Toc390334086 h23HYPERLINK l _Toc3903340875.3 測(cè)試用例與測(cè)試結(jié)果 PAGEREF _Toc390334087 h 23HYPER

13、LINK l _Toc3903340886. 總結(jié) PAGEREF _Toc390334088 h 24HYPERLINK l _Toc3903340896.1 本文工作總結(jié) PAGEREF _Toc390334089 h 24HYPERLINK l _Toc3903340906.2 進(jìn)一步工作的打算 PAGEREF _Toc390334090 h 24HYPERLINK l _Toc390334091參考文獻(xiàn) PAGEREF _Toc390334091 h 25HYPERLINK l _Toc390334092致 PAGEREF _Toc390334092 h 25HYPERLINK l _

14、Toc390334093外文原文 PAGEREF _Toc390334093 h 26HYPERLINK l _Toc390334094外文翻譯 PAGEREF _Toc390334094 h 37-. z1. 緒 論1.1研究容本著對(duì)用戶學(xué)習(xí)英語提供便利和有效記憶的目標(biāo),該英語背單詞軟件是基于Android手機(jī)平臺(tái),通過詞庫的解析與導(dǎo)入,開發(fā)出針對(duì)使用Android平臺(tái)的手機(jī)英語背單詞系統(tǒng)。用戶使用此平臺(tái)進(jìn)展單詞學(xué)習(xí)、單詞背誦、單詞測(cè)試、參加生詞本等。相對(duì)于書本辭典操作來說,背單詞可以更簡便的直接的表達(dá)給用戶,而且使用方便,操作簡單。用戶作為系統(tǒng)的效勞群體,按照自己的需求選擇詞庫進(jìn)展單詞學(xué)習(xí)

15、等,按照自己的方式選擇所需背記單詞的數(shù)量。遇到有生僻的單詞可以參加生詞本方便以后的二次查找,節(jié)省時(shí)間,方便閱覽。本系統(tǒng)要求主要實(shí)現(xiàn)以下功能模塊:用戶能夠選擇詞庫,導(dǎo)入詞庫;用戶能夠進(jìn)展單詞的學(xué)習(xí);用戶能夠進(jìn)展已學(xué)習(xí)過單詞的復(fù)習(xí),同時(shí)制定復(fù)習(xí)方案;用戶能夠進(jìn)展單詞的測(cè)試;提供單詞的真人發(fā)音功能;提供生詞本功能,用戶可以隨時(shí)添加生詞。1.2研究意義以前人們用最簡單的辭典,在眾多的資料中翻閱、查找,費(fèi)時(shí)、費(fèi)力,而且應(yīng)用性非常差。設(shè)計(jì)這么一個(gè)背單詞系統(tǒng),使得用戶可以便捷,快速的進(jìn)展操作,同時(shí)也到達(dá)了穩(wěn)定,準(zhǔn)確的目的。基于Android的英語背單詞程序的設(shè)計(jì)可以進(jìn)一步擴(kuò)大學(xué)習(xí)英語的途徑,讓廣闊公眾能夠隨

16、時(shí)隨地方便且快捷地認(rèn)識(shí)與記憶英語單詞,以提高自身的英語水平。本軟件提供從初次記憶單詞到熟記單詞的所有功能,幫助大家科學(xué)學(xué)習(xí)。當(dāng)您初次使用本軟件記憶單詞后,系統(tǒng)會(huì)自動(dòng)為您制定學(xué)習(xí)復(fù)習(xí)方案,幫助您科學(xué)快速地完成記憶單詞的過程。軟件提供測(cè)試功能,幫助您自我檢測(cè)學(xué)習(xí)狀態(tài)。更好地發(fā)揮了Android技術(shù)對(duì)移動(dòng)互聯(lián)網(wǎng)的現(xiàn)實(shí)性作用。1.3研究現(xiàn)狀和開展趨勢(shì)據(jù)市場(chǎng)研究公司IDC稱,2013年上季度Android手機(jī)全球份額達(dá)75%。成為最大智能手機(jī)系統(tǒng)。今年第一季度,全球Android智能手機(jī)出貨量上升至1.621億臺(tái),高于去年同期的9030萬臺(tái);市場(chǎng)份額為75%,高于去年同期的59.1%。其他操作系統(tǒng)的表現(xiàn)

17、則要平穩(wěn)很多。Android越來越引起人們的關(guān)注和追捧。移動(dòng)通信和互聯(lián)網(wǎng)成為當(dāng)今世界開展最快、市場(chǎng)潛力最大、前景最誘人的兩大業(yè)務(wù),它們的增長速度都是任何預(yù)測(cè)家未曾預(yù)料到的,所以移動(dòng)互聯(lián)網(wǎng)可以預(yù)見將會(huì)創(chuàng)造經(jīng)濟(jì)神話。移動(dòng)互聯(lián)網(wǎng)的優(yōu)勢(shì)決定其用戶數(shù)量龐大,截至2012年9月底,全球移動(dòng)互聯(lián)網(wǎng)用戶已達(dá)15億。Android是一種以Linu*為根底的開放源碼操作系統(tǒng),采用Linu*核,主要使用于便攜設(shè)備。開放手機(jī)聯(lián)盟OHA成員可以任意使用和修改安卓的SDK軟件包。系統(tǒng)的開源性使其具有良好的拓展性,一方面,為眾多移動(dòng)應(yīng)用開發(fā)者提供了良好的系統(tǒng)性平臺(tái),有利于移動(dòng)應(yīng)用的集合;另一方面,終端廠商可以針對(duì)自身的特殊

18、需要定制化開發(fā)。與此相比,盡管2010年2月,塞班根本完成開源工作,但由于代碼臃腫,用戶界面設(shè)計(jì)缺失,塞班的開源并無實(shí)際意義,錯(cuò)失開展良機(jī)。因此,基于Android的英語背單詞程序開發(fā),也是現(xiàn)代移動(dòng)互聯(lián)網(wǎng)時(shí)代下催生的人們生活中不可或缺的一個(gè)產(chǎn)物。我們認(rèn)為,安卓操作系統(tǒng)開展迅猛主要得益于免費(fèi)、開源和良好產(chǎn)業(yè)運(yùn)作策略,這三點(diǎn)為安卓在智能手機(jī)市場(chǎng)贏得更多的開展機(jī)遇。系統(tǒng)的免費(fèi)讓更多的廠商參加,推動(dòng)了份額的上升;代碼的開源讓更多的開發(fā)者進(jìn)入應(yīng)用開發(fā);應(yīng)用的豐富吸引了更多用戶選擇,這也是谷歌值得眾多廠商學(xué)習(xí)的地方。此外,谷歌通過OHA聯(lián)合眾多廠商進(jìn)展系統(tǒng)研發(fā),不斷更新版本,將系統(tǒng)應(yīng)用推廣到更多的終端產(chǎn)品

19、中,確保用戶體驗(yàn)持續(xù)改善。3G互聯(lián)網(wǎng)時(shí)代下,移動(dòng)應(yīng)用越來越多,Android 更新包于2013年2月11日發(fā)布,未來采用Android系統(tǒng)手機(jī)越來越多。不僅僅在于手機(jī),在任何移動(dòng)設(shè)備上,都可以采用Android開發(fā)移植到終端設(shè)備上,例如電視、冰箱、空調(diào)、洗衣機(jī)等。將這些設(shè)備計(jì)入互聯(lián)網(wǎng),我們可以通過手機(jī)實(shí)時(shí)知道各個(gè)設(shè)備的狀態(tài),也可以控制它們工作??傊?,Android 將帶給我們更加智能、便捷、現(xiàn)代的生活。從而,Android應(yīng)用的開發(fā),將會(huì)越來越龐大,需求將會(huì)越來越豐富。開發(fā)英語背單詞手機(jī)軟件和其他應(yīng)用將會(huì)越來越普遍,Android將會(huì)越來越壯大。-. z2. 平臺(tái)與開發(fā)工具2.1開發(fā)平臺(tái)介紹本

20、設(shè)計(jì)采用windows 作為開發(fā)平臺(tái),由于windows系列操作系統(tǒng)做為市場(chǎng)份額最大的PC操作系統(tǒng),無論是用戶數(shù)還是基于windows平臺(tái)應(yīng)用數(shù)都是遙遙領(lǐng)先的。大多數(shù)開發(fā)者都會(huì)選擇此平臺(tái)作為開發(fā)平臺(tái),而且很多應(yīng)用在windows 平臺(tái)提供了的相應(yīng)的開發(fā)工具,如Eclipse、QT等。雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境IDE來使用,但是 Eclipse 的目標(biāo)卻不僅僅這樣。Eclipse 這個(gè)開發(fā)工具還包括插件的開發(fā)環(huán)境Plug-in Development Environment,PDE,而這個(gè)組件主要是針對(duì)希望擴(kuò)展 Eclipse 的人來的,因?yàn)镋clips

21、e允許他們構(gòu)建出與 Eclipse 開發(fā)環(huán)境無縫集成的工具。因?yàn)?Eclipse 中的所有東西都是插件存在,對(duì)于 Eclipse 提供的插件,并且給用戶提供一致及統(tǒng)一的集成開發(fā)環(huán)境來說,所有的軟件開發(fā)人員都具有一樣的發(fā)揮場(chǎng)所。Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組效勞,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具Java Development Kit,JDK。 雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境IDE來使用,但 Eclipse 的目標(biāo)

22、卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境Plug-in Development Environment,PDE,這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場(chǎng)所。本畢設(shè)安裝的是Android 開發(fā)插件。2.2開發(fā)語言與開發(fā)環(huán)境Android的上層應(yīng)用程序是用Java語言開發(fā),同時(shí)還需要基于Dalvik虛擬機(jī),所以,Google公司推薦使用主流的Java繼承開發(fā)環(huán)境

23、Eclipse。只有Eclipse還不夠,因?yàn)槭鞘褂肑ava語言進(jìn)展開發(fā),還應(yīng)該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的應(yīng)用程序開發(fā)和Java開發(fā)有較大區(qū)別的,所以還需要有Google提供的Android SDK。同時(shí),還需要在Eclipse安裝ADT,為Android開發(fā)提供開發(fā)工具的升級(jí)或者變更,是Eclipse下開發(fā)工具的升級(jí)下載的工具。eclipse裝有android開發(fā)插件,從而運(yùn)行Android 模擬器 ,模擬Android智能手機(jī)。簡言之,需要以下軟件,才能搭建Android開發(fā)環(huán)境,從而進(jìn)展

24、Android應(yīng)用程序的開發(fā)。運(yùn)行開發(fā)環(huán)境如表2-1所示:表2-1 運(yùn)行開發(fā)環(huán)境名稱版本語種操作系統(tǒng)Window7旗艦版Sp1簡體中文Eclipse開發(fā)工具 3.6默認(rèn)ADT安卓開發(fā)工具17默認(rèn)基于平臺(tái)Android1.6以上默認(rèn)-. z3. 英語背單詞軟件總體設(shè)計(jì)與需求分析3.1Android四大組件簡介ActivityActivity是Android應(yīng)用程序和用戶進(jìn)展交互的窗口,它是Android系統(tǒng)構(gòu)造中最根本的一種,Activity要為各界面的狀態(tài)進(jìn)展保持,它做許多的持久化事情,良好的管理生命周期和一些要跳轉(zhuǎn)的邏輯。一個(gè)Activity一般展現(xiàn)一個(gè)用戶界面。比方,一個(gè)Activity可

25、以為一個(gè)用戶展示選擇的菜單列表或者展示出一些圖片和圖片的標(biāo)題。對(duì)于一個(gè)消息效勞應(yīng)用程序,它可能包括一個(gè)顯示聯(lián)系人列表的界面,一個(gè)編寫信息的界面,和其它的一些查看信息及修改應(yīng)用程序的設(shè)置而用到的Activity。雖然這些Activity共同工作,一起構(gòu)成了一個(gè)應(yīng)用完整的程序,但是每個(gè)Activity都是相對(duì)獨(dú)立的。ServiceService在后臺(tái),為Activity效勞,封裝好一些完整的功能邏輯,并承受上面的指令,然后完成相關(guān)的事務(wù)處理,使用中要定義好承受的Intent提供同步及異步的接口。Service雖然沒有用戶的界面,但是Service會(huì)在后臺(tái)一直運(yùn)行。比方,Service可能會(huì)在用戶處

26、理其它事務(wù)時(shí),同時(shí)播放音樂,或者把網(wǎng)絡(luò)上的數(shù)據(jù)獲取下來,或者進(jìn)展一些運(yùn)算,然后把計(jì)算的構(gòu)造提供應(yīng)Activity,讓它展示給用戶。使用中,Service都要繼承類Serivce。和Activity等其它組件一樣,Service運(yùn)行在應(yīng)用程序的主線程中。因此Service不能讓其它組件或者用戶界面阻塞,這個(gè)通常就要為這些Service類增加線程執(zhí)行耗時(shí)的任務(wù)。Broadcast ReceiverBroadcast Receiver是Android提供的第三方應(yīng)用數(shù)據(jù)的方案,它可以派生出Content Provider這個(gè)類,然后對(duì)外提供數(shù)據(jù),它可以像數(shù)據(jù)庫一樣進(jìn)展選擇排序,它屏蔽部的細(xì)節(jié),并對(duì)外

27、提供了一個(gè)統(tǒng)一接口模型,這很好的簡化上層應(yīng)用,它對(duì)數(shù)據(jù)整合提供了更方便的方式。Broadcase Receiver并不執(zhí)行任何的任務(wù),它僅是承受并響應(yīng)播送的通知的一類組件。而大局部的播送的通知是由系統(tǒng)產(chǎn)生,比方改變時(shí)區(qū)時(shí),電池電量低時(shí),用戶選擇一幅圖片或用戶換了語言首時(shí)。對(duì)于應(yīng)用程序,也同樣可以良好的發(fā)送播送通知,比方通知其他的應(yīng)用程序*些數(shù)據(jù)已經(jīng)下載到設(shè)備上來并且可以使用。Content Provider 承受一種或多種的Intent作為觸發(fā)事件,對(duì)于承受到的相關(guān)消息,進(jìn)展一些簡單處理,轉(zhuǎn)換成Notification,這統(tǒng)一了Android系統(tǒng)的事件播送模型。對(duì)于應(yīng)用程序可以通過Conten

28、tProvider來其它的應(yīng)用程序中的一些私有的數(shù)據(jù),這即是Android系統(tǒng)中提供的一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機(jī)制。對(duì)于共享的數(shù)據(jù)可存儲(chǔ)在系統(tǒng)的文件中、SQLite中或者其它的媒體中。ContentProvider實(shí)現(xiàn)類擴(kuò)展自ContentProvider這個(gè)類,并通過實(shí)現(xiàn)此類的一組標(biāo)準(zhǔn)接口,使其它的應(yīng)用程序能存取它控制的一些數(shù)據(jù)。但是應(yīng)用程序并不是直接調(diào)用ContentProvider中的一些方法,而是間接的,通過類ContentResolver來實(shí)現(xiàn)。ContentResolver這個(gè)類能夠與任何的一個(gè)ContentProvider進(jìn)展通信,它能與ContentProvider良好的合作管理進(jìn)

29、程間通信。3.2Android 手機(jī)應(yīng)用軟件的UI設(shè)計(jì)由于Android系統(tǒng)是一款手機(jī)操作系統(tǒng),所以基于此系統(tǒng)的應(yīng)用開發(fā)也是基于手機(jī)屏幕大小的。手機(jī)屏幕大小不一,但要求軟件能夠適應(yīng)不同大小的手機(jī)屏幕,也就是界面能夠自動(dòng)適應(yīng),而且屏幕能夠翻轉(zhuǎn)基于重力感應(yīng)使屏幕畫面自動(dòng)水平和垂直切換。Android 界面由兩大根本組件組成:即容器和控件。一個(gè)窗口由一個(gè)根本的容器組成, 容器中可以放容器或者控件,每一個(gè)容器或者控件都有大小、長寬等屬性。在一個(gè)Android 應(yīng)用中,一個(gè)ActivityActivity是Android中最常用也是最根本的組件通常就是一個(gè)單獨(dú)的屏幕,每一個(gè)Activity都被實(shí)現(xiàn)為一個(gè)

30、獨(dú)立的類,并且繼承Activity這個(gè)子類。Activity提供了與用戶交互的可視化界面。創(chuàng)立一個(gè)Activity一般繼承Activity父類。覆蓋Activity的onCreate()方法,在該方法中調(diào)用setOnConte*tView方法來展示要顯示的視圖。整個(gè)Android 工程劃分不同文件在不同文件夾中,android使用*ml文件作為系統(tǒng)的布局文件,android 資源文件和 文件夾如圖3-1所示:圖3-1Android工程文件構(gòu)造要想控制手機(jī)界面的顯示方式,則必須使用布局這一概念。布局就像容器,里面可以裝下很多控件。布局里面還可以套用其他的布局。這樣就可以實(shí)現(xiàn)界面的多樣化以及設(shè)計(jì)的

31、靈活性。 (1) LinearLayout線性布局: 線性版面配置,在這個(gè)標(biāo)簽中,所有元件都是按由上到下的排隊(duì)排成的。包括垂直線性布局和水平線性布局。(2) RelativeLayout相對(duì)布局就是以相對(duì)的方式定位布局,允許子元素指定他們相對(duì)于其它元素或父元素的位置通過ID指定。相對(duì)布局例如如圖3-2所示:圖3-2Android相對(duì)布局(3) FrameLayout幀布局是最簡單的一個(gè)布局對(duì)象。是一個(gè)框架布局樣式,可以用include標(biāo)簽載入定義的另一個(gè)layout文件,所有的子元素將會(huì)固定在屏幕的左上角;你不能為FrameLayout中的一個(gè)子元素指定一個(gè)位置。后一個(gè)子元素將會(huì)直接在前 一個(gè)

32、子元素之上進(jìn)展覆蓋填充,把它們部份或全部擋住除非后一個(gè)子元素是透明的。 (4) TableLayout表格布局 是一種類似表格的布局,這種布局會(huì)把包含的元素以行和列進(jìn)展排列。表格的列數(shù)為所有行中的最大列數(shù);每一行可以是一個(gè)TableRow布局對(duì)象,也可以是普通的View視圖對(duì)象,TableRow里面每一個(gè)元素占一列TableLayout總列數(shù)由列數(shù)最多的那一行決定。因此,要想實(shí)現(xiàn)各種顯示效果,可根據(jù)不同的界面需求,選用不同的布局方法。3.3英語背單詞軟件需求分析與性能分析技術(shù)可行性上,Android是一個(gè)成熟強(qiáng)大的移動(dòng)操作系統(tǒng),而且是一個(gè)開源的系統(tǒng),市場(chǎng)占有率很高。Android應(yīng)用是用jav

33、a語言,雖然版本有好多,但一般會(huì)向下兼容,用Eclipse + ADT來創(chuàng)立應(yīng)用程序,Android提供開發(fā)的足夠的接口API讓開發(fā)者開發(fā)功能強(qiáng)大的應(yīng)用程序。 經(jīng)濟(jì)可行性上,該應(yīng)用程序不需要效勞器端,不需要與別的應(yīng)用進(jìn)展交互,只需要本地Android智能機(jī)設(shè)置好,用戶學(xué)習(xí)容自動(dòng)保存,而且復(fù)習(xí)方案可自行設(shè)置提醒。占用存小,用戶電池消耗小。所以該方案是可行的。操作可行性上,利用現(xiàn)有的windows系統(tǒng)進(jìn)展開發(fā)。使用Eclipse作為開發(fā)工具以及使用Sqlite作為數(shù)據(jù)庫,通過模擬器進(jìn)展程序調(diào)試,然后通過android智能機(jī)進(jìn)展功能測(cè)試。整個(gè)過程平臺(tái)廣泛,皆可實(shí)現(xiàn)。系統(tǒng)性能分析方面要求程序響應(yīng)速度快

34、、平安性高、信息處理速度快。3.4英語背單詞軟件操作流程圖與數(shù)據(jù)庫設(shè)計(jì)3.4.1 英語背單詞軟件操作流程圖本英語背單詞軟件的操作流程圖如圖3-3所示:啟動(dòng)選擇詞庫學(xué)習(xí)習(xí)復(fù) 習(xí)測(cè) 試生詞本發(fā)音參加生詞本發(fā)音參加生詞本測(cè)試結(jié)果參加生詞本編輯單詞刪除圖3-3 操作流程圖數(shù)據(jù)庫的創(chuàng)立與設(shè)計(jì)當(dāng)前android平臺(tái)采用的是sqlite數(shù)據(jù)庫。SQLite數(shù)據(jù)庫功能強(qiáng)大,使用方便。本系統(tǒng)使用了SQLite數(shù)據(jù)庫來保存英文單詞信息。在Android中創(chuàng)立和翻開一個(gè)數(shù)據(jù)庫都可以使用openOrCreateDatabase方法來實(shí)現(xiàn),本系統(tǒng)創(chuàng)立了名為wordroid.db的數(shù)據(jù)庫,并返回一個(gè)SQLiteDatab

35、ase對(duì)象db如下:SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase( DB_NAME, null);DB_NAME為數(shù)據(jù)庫的儲(chǔ)存地址:data/data/wordroid.model/databases/wordroid.db 創(chuàng)立表通過e*ecSQL方法來執(zhí)行一條SQL語句。本系統(tǒng)創(chuàng)立了一個(gè)名為sql的表。具體代碼如下:String sql=CREATE TABLE + table + ( ID te*t not null, SPELLING te*t not null , MEANNING te*t not null, PHONE

36、TIC_ALPHABET te*t, LIST te*t not null + );db.e*ecSQL(sql);向表中添加一條數(shù)據(jù)使用insert方法來添加數(shù)據(jù)即單詞。具體實(shí)現(xiàn)如下:db.insert(table, null, values);通過使用update方法來修改表中數(shù)據(jù),具體實(shí)現(xiàn)如下:db.update(table, values, whereClause, whereArgs);通過使用delete方法從表中刪除數(shù)據(jù)。關(guān)閉數(shù)據(jù)庫很重要,經(jīng)常容易忘記。直接使用SQLiteDatabase的close方法。在Android中查詢數(shù)據(jù)是通過Cursor類實(shí)現(xiàn)的,使用SQLiteDa

37、tabase.query()方法時(shí),會(huì)得到一個(gè)Cursor對(duì)象,Cursor指向的就是每一條數(shù)據(jù)。注意Android使用Cursor類返回一個(gè)需要的值,Cursor作為一個(gè)指針從數(shù)據(jù)庫查詢返回結(jié)果,使用Cursor允許Android更有效地管理它們需要的行和列,運(yùn)用cursor.moveToFirst()是對(duì)Cursor指向的位置進(jìn)展操作:移到第一行。wordroid.db文件放在Eclipse Android工程中的res文件夾下的raw目錄中,通過使用getResources().openRawResource方法獲得raw目錄中資源的InputStream對(duì)象,然后將該InputStre

38、am對(duì)象中的數(shù)據(jù)寫入手機(jī)存或SD卡的目錄中相應(yīng)文件中。如圖3-4所示:圖3-4 數(shù)據(jù)庫文件在wordroid數(shù)據(jù)庫中主要包含以下幾個(gè)表格:表BOOKS 該表記錄了詞庫的根本信息,包括詞庫的ID,詞庫的名稱,參加時(shí)間,list數(shù)量,單詞數(shù)量。如下表3-1所示:表3-1 BOOKS表字段類型非空默認(rèn)值主鍵描述IDte*t編號(hào)NAMEte*t名稱GENERATE_TIMEte*t參加時(shí)間NUMOFLISTte*tList數(shù)量NUMOFWORDte*t單詞數(shù)量BOOKS表具體容如圖3-5所示:圖3-5 表BOOKS表book1該表記錄了單詞的根本信息,包括單詞的編號(hào),單詞的拼寫,單詞的意思,單詞音標(biāo),

39、所屬list. 如下表3-2所示:表3-2 book1表字段類型非空默認(rèn)值主鍵描述IDte*t編號(hào)SPELLINGte*t拼寫MEANNINGte*t意思PHONETIC_ALPHABETte*t音標(biāo)LISTte*t所屬list表book1具體容如圖3-6所示:圖3-6表book1表book2該表記錄了單詞的根本信息,包括單詞的編號(hào),單詞的拼寫,單詞的意思,單詞音標(biāo),所屬list。見表3-2。表book2具體容如圖3-7所示:圖3-7表book2表book3該表記錄了單詞的根本信息,包括單詞的編號(hào),單詞的拼寫,單詞的意思,單詞音標(biāo),所屬list。 見表3-2。表book3具體容如圖3-8所示:

40、圖3-8表book3表PLAN該表記錄了復(fù)習(xí)方案的根本信息,包括詞庫的編號(hào),所在list,已學(xué)習(xí)list,學(xué)習(xí)時(shí)間,復(fù)習(xí)次數(shù),復(fù)試時(shí)間,最正確得分,是否復(fù)習(xí)。 如下表3-3所示。表3-3 PLAN表字段類型非空默認(rèn)值主鍵描述BOOKIDte*t詞庫的編號(hào)LISTte*t所在listLEARNEDte*t已學(xué)習(xí)listLEARN_TIMEte*t學(xué)習(xí)時(shí)間REVIEW_TIMESte*t復(fù)習(xí)次數(shù)REVIEWTIMEte*t復(fù)試時(shí)間BESTSCOREte*t最正確得分SHOULDREVIEWte*t是否復(fù)習(xí)表PLAN具體容如圖3-9所示:圖3-9表PLAN-. z4. 系統(tǒng)各個(gè)模塊的具體實(shí)現(xiàn)4.1啟

41、動(dòng)模塊的實(shí)現(xiàn)啟動(dòng)界面是系統(tǒng)的第一個(gè)界面,目的是給用戶一種直觀的感受,給用戶一種良好的感覺。啟動(dòng)界面的布局文件為layout文件夾里的login.*ml,由一個(gè)Linearlayout線性布局 構(gòu)成,里面包含一個(gè)ImageView 圖片控件并填充整個(gè)手機(jī)界面,考慮到橫豎屏切換和屏幕大小,在res的drawable-hdpi、drawable-ldpi和drawa ble-mdpi三個(gè)文件夾分別放三種尺寸圖片,分辨路為480*800、800*480、320*460并且啟動(dòng)畫面要覆蓋整個(gè)手機(jī)屏幕,啟動(dòng)界面如圖4-1所示:圖4-1 啟動(dòng)界面啟動(dòng)界面最主要的工作時(shí)設(shè)置畫面延時(shí),并且能夠在畫面顯示的3秒對(duì)

42、HOME鍵、返回鍵,做出相應(yīng),并且可以支持橫豎屏切換。實(shí)現(xiàn)延時(shí)效果主要使用線程來實(shí)現(xiàn)。當(dāng)android程序啟動(dòng)時(shí),首先由AndroidMainfest.*ml系統(tǒng)主配置文件來查找第一個(gè)要顯示界面第一個(gè)要顯示的Activity必須要包含在與之間代碼如下:protectedvoid onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubthis.setTitle(安卓背單詞-Wordroid);super.onCreate(savedInstanceState);this.setContentView(R.layo

43、ut.login);LayoutInflater mInflater = LayoutInflater.from(this);myView = mInflater.inflate(R.layout.main, null);Thread thread = new Thread()publicvoid run()try Thread.sleep(2000);Message m = new Message();m.what=1;Main.this.mHandler.sendMessage(m); catch (InterruptedE*ception e1) / TODO Auto-generate

44、d catch blocke1.printStackTrace();thread.start();OperationOfBooks OOB = new OperationOfBooks();SharedPreferences setting = getSharedPreferences(wordroid.model_preferences, MODE_PRIVATE);OOB.setNotify(setting.getString(time, 18:00 下午),Main.this); File dir = new File(data/data/wordroid.model/databases

45、); if (!dir.e*ists() dir.mkdir(); if (!(new File(SqlHelper.DB_NAME).e*ists() FileOutputStream fos;try fos = new FileOutputStream(SqlHelper.DB_NAME);byte buffer = newbyte8192; int count = 0; InputStream is = getResources().openRawResource( R.raw.wordorid); while (count = is.read(buffer) 0) fos.write(

46、buffer, 0, count); fos.close(); is.close(); catch (E*ception e) / TODO Auto-generated catch blocke.printStackTrace(); SharedPreferences settings=getSharedPreferences(SETTING_BOOKID, 0);DataAccess.bookID=settings.getString(BOOKNAME, );OOB.UpdateListInfo(Main.this);initWidgets();登錄界面由SplashActivity.ja

47、va類負(fù)責(zé)顯示。然后根據(jù)當(dāng)前類要顯示布局文件文件來繪制整個(gè)界面。隨之,啟動(dòng)延時(shí)線程,采用循環(huán),循環(huán)一次線程休眠100ms防止系統(tǒng)卡頓。按下HOME鍵則返回手機(jī)主界面,延時(shí)暫停,再點(diǎn)擊啟動(dòng)程序時(shí)延時(shí)線程繼續(xù)運(yùn)行,直到3s后,跳到下一個(gè)界面。當(dāng)按下返回鍵時(shí),程序?qū)㈥P(guān)閉。4.2用戶信息模塊的實(shí)現(xiàn)該界面的布局文件為main.*ml,整個(gè)界面直觀明了的展示了該系統(tǒng)的主要功能以及用戶學(xué)習(xí)進(jìn)度。界面用一圖片作為背景,在界面左上角顯示兩個(gè)圖片按鈕(ImageButton):刪除按鈕與重置按鈕,組成一個(gè)線性布局。在界面中間上方處顯示下拉列表組件Spinner,給用戶提供詞庫的選擇:GRE紅寶書上,GRE紅寶書中

48、,GRE紅寶書下以及導(dǎo)入新詞庫。在界面中間布局了三個(gè)文本框Te*tview和兩個(gè)使用進(jìn)度條ProgressBar,組成一個(gè)線性布局。一個(gè)文本框用來顯示用戶學(xué)習(xí)信息:詞庫名稱,總詞匯量與創(chuàng)立時(shí)間;兩個(gè)使用進(jìn)度條分別顯示已學(xué)習(xí)list的數(shù)量與已復(fù)習(xí)list的數(shù)量。在界面的的底部布局了四個(gè)按鈕Button:學(xué)習(xí),復(fù)習(xí),測(cè)試,生詞本。組成了一個(gè)線性布局。這些控件在一起采用相對(duì)布局,可以使這些控件的位置相對(duì)擺放,靠在父容器下方,不至于零散。用戶信息主界面如圖4-2所示:圖4-2 用戶信息主界面上文提到了該界面給用戶提供詞庫選擇的下拉列表組件Spinner,詞庫選擇則要為下拉列表定義一個(gè)適配器,這里就用到

49、前面定義的books;同時(shí)為適配器設(shè)置下拉列表下拉時(shí)的菜單樣式;最后將適配器(adapter)添加到下拉列表上(pickBook)。代碼如下:ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, books);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);pickBook.setAdapter(adapter);事件pickBook.setOnItemSelectedLi

50、stener(new OnItemSelectedListener()為下拉列表設(shè)置各種事件的響應(yīng),這個(gè)事響應(yīng)菜單被選中。同時(shí)該界面initWidgets() 實(shí)現(xiàn)了桌面小插件的設(shè)置,把用戶生詞本的容直接呈現(xiàn),方便用戶的瀏覽。對(duì)于界面左上角的兩個(gè)刪除與重置按鈕,通過 onClick(View v)事件,頁面上顯示一個(gè)對(duì)話框dialog,dialog的樣式設(shè)置由res,文件夾下的values文件夾dialogStyle.*ml負(fù)責(zé),界面顯示時(shí),先生成一個(gè)dialog對(duì)象,然后顯示這個(gè)dialog。詞庫由wordroid.db數(shù)據(jù)庫里的表Book1, Book2, Book3組成,通過this.s

51、etListAdapter(new ArrayAdapter(this, R.layout.file_row, fileNames);實(shí)現(xiàn)詞庫的導(dǎo)入操作。相關(guān)代碼如下:super.onCreate(savedInstanceState);this.setTitle(導(dǎo)入新詞庫);this.setContentView(R.layout.import_book);setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);File f = new File(/sdcard/);File files=f.listFiles()

52、;fileNames = new Stringfiles.length;for (int i=0;ifileNames.length;i+)fileNamesi=filesi.getName();this.setListAdapter(new ArrayAdapter(this, R.layout.file_row, fileNames);4.3用戶單詞學(xué)習(xí)模塊的實(shí)現(xiàn)該界面的布局文件為studyword_main.*ml和studyword.*ml。studyword_main.*ml文件里顯示兩個(gè)文本框,構(gòu)成一個(gè)框架布局FrameLayout。分別為未學(xué)習(xí)過的LIST和所有的LIST;同時(shí)顯

53、示各項(xiàng)LIST列表。用戶單詞學(xué)習(xí)列表界面如圖4-3所示:圖4-3 用戶單詞學(xué)習(xí)列表界面Studyword.*ml布局文件界面上方布局了一個(gè)文本框:單詞記憶。界面中間顯示一個(gè)圖片按鈕和兩個(gè)文本框,構(gòu)成一個(gè)線性布局。圖片按鈕為發(fā)音標(biāo)示,按鈕的屬性設(shè)置為android:drawable/btn_default,文本框分別為拼寫spelling與單詞解釋info。界面底部顯示三個(gè)按鈕,構(gòu)成一個(gè)線性布局。按鈕分別為:上一個(gè),參加生詞本,下一個(gè)。用戶單詞學(xué)習(xí)記憶界面如圖4-4所示:圖4-4 用戶單詞學(xué)習(xí)記憶界面重復(fù)參加生詞本以后會(huì)提示:生詞本中已包含這個(gè)單詞;強(qiáng)制退出時(shí)會(huì)提示學(xué)習(xí)未完成,進(jìn)展選擇。該學(xué)習(xí)模

54、塊的機(jī)器發(fā)音功能通過TTS引擎實(shí)現(xiàn),TTS即Te*tToSpeech,將所指定的文本轉(zhuǎn)成不同語言音頻輸出。如果用戶手機(jī)支持TTS發(fā)音功能,首先設(shè)置發(fā)音語言tts.setLanguage(loc),判斷語言可用后,使用Speak()方法可以直接在應(yīng)用程序中實(shí)現(xiàn)語音功能tts.speak(list.get(currentnum).getSpelling(),Te*tToSpeech.QUEUE_ADD,null)。發(fā)音完成后,回收TTS即可,當(dāng)確定應(yīng)用程序不再需要TTS的相關(guān)功能后,可以在Activity的OnDestroy()方法中調(diào)用super.onDestroy()釋放當(dāng)前TTS實(shí)體所占用的

55、資源。相關(guān)代碼如下:public class TTS private Te*tToSpeech.OnInitListener ttsInitListener = new Te*tToSpeech.OnInitListener() Overridepublic void onInit(int status) Locale loc = new Locale(us, , ); if (tts.isLanguageAvailable(loc) = Te*tToSpeech.LANG_AVAILABLE)tts.setLanguage(loc); tts.setOnUtterancepletedList

56、ener(ttsUtterancepletedListener);4.4用戶單詞復(fù)習(xí)模塊的實(shí)現(xiàn)該界面的布局文件為reviewlayout.*ml。界面的上方布局了一個(gè)文本框:單詞復(fù)習(xí)。界面中間顯示一個(gè)圖片按鈕和兩個(gè)文本框,構(gòu)成線性布局嵌套。圖片按鈕為發(fā)音標(biāo)示,按鈕的屬性設(shè)置為android:drawable/btn_default,文本框分別為拼寫spelling與單詞解釋info。界面底部顯示三個(gè)按鈕,另有兩個(gè)隱藏按鈕,構(gòu)成一個(gè)線性布局。按鈕分別為:參加生詞本,我記得,不記得了,記對(duì)了,記錯(cuò)了。用戶單詞復(fù)習(xí)界面如圖4-5所示:圖4-5 用戶單詞復(fù)習(xí)界面按下我記得按鈕文本框顯示單詞的解釋,界面

57、下方顯示記對(duì)了記錯(cuò)了兩個(gè)按鈕,按下記對(duì)了進(jìn)入下一個(gè)單詞的復(fù)習(xí)。強(qiáng)制退出時(shí)會(huì)提示復(fù)習(xí)未完成,進(jìn)展選擇。該單詞復(fù)習(xí)模塊首先需要對(duì)已學(xué)習(xí)過的list進(jìn)展數(shù)據(jù)存儲(chǔ),這里使用Activity類的getSharedPreferences方法獲得SharedPreferences對(duì)象,其中存儲(chǔ)key-value的文件的名稱由getSharedPreferences方法的第一個(gè)參數(shù)指定;使用該接口的edit獲得SharedPreferences.Editor對(duì)象,再通過SharedPreferences.Editor接口的putString方法保存數(shù)據(jù)。進(jìn)入復(fù)習(xí)界面后,則通過getString讀取保存的lis

58、t。用戶在復(fù)習(xí)選擇時(shí)通過setVisibility()實(shí)現(xiàn)各個(gè)按鈕控件的可見與否。復(fù)習(xí)完成時(shí)生成一個(gè)dialog對(duì)象,然后顯示這個(gè)dialog。相關(guān)核心代碼如下:private void UpdateView() if (currentnumlist.size()SharedPreferences setting = getSharedPreferences(wordroid.model_preferences, MODE_PRIVATE);if(setting.getBoolean(iftts, false)Thread thread =new Thread(new Runnable() p

59、ublic void run()try Thread.sleep(500);tts.speak(list.get(currentnum).getSpelling(),Te*tToSpeech.QUEUE_FLUSH, null); public void onClick(DialogInterface dialog, int whichButton) tts.shutdown();finish();Intent intent = new Intent();intent.setClass(Review.this, ReviewMain.class);startActivity(intent);)

60、.create();4.5用戶單詞測(cè)試模塊的實(shí)現(xiàn)用戶單詞測(cè)試界面的布局文件為test_list_item.*ml,test_list.*ml和test.*ml。test_list.*ml布局文件界面顯示了一個(gè)文本框和一個(gè)使用列表ListView,文本框?yàn)檫x擇測(cè)試單元,使用列表控件包含所選詞庫所有的list并顯示最高正確率。點(diǎn)擊*個(gè)list后進(jìn)入test.*ml布局文件界面,該界面的上方布局了一個(gè)文本框:單詞測(cè)試。界面中間顯示一個(gè)文本框和一個(gè)單項(xiàng)選擇鈕組RadioGroup,構(gòu)成線性布局。文本框的屬性設(shè)置為android:attr/te*tAppearanceSmall,容為單詞與單詞的拼寫;單

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論