版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、-PAGE . z畢業(yè)論文論文題目:基于Android的背單詞軟件的設(shè)計與實現(xiàn)*: 學(xué) 號: 班 級: 專 業(yè):軟件工程 學(xué) 院:軟件學(xué)院 指導(dǎo)教師: 完成時間:2015年4月17日-. z基于Android的背單詞軟件的設(shè)計與實現(xiàn)摘要隨著經(jīng)濟全球化,我們與外國人的接觸越來越多,英語已經(jīng)成為了中國與外面交流的主要工具,同時我國的英語教育也開場普及到了小學(xué),人們對學(xué)習(xí)英語越來越重視。而對于學(xué)習(xí)英語特別是英語單詞記憶,記憶單詞的方式也在不斷的更新,而今移動互聯(lián)網(wǎng)時代的到來,尤其智能手機的廣泛應(yīng)用,英語學(xué)習(xí)的平臺已經(jīng)逐漸向計算機或者手機等移動設(shè)備上轉(zhuǎn)移,背單詞的方式方法進入一個新的領(lǐng)域。背單詞軟件是
2、當下比擬流行且方便有效的輔助記憶工具,本文介紹的背單詞軟件是一款基于android平臺的應(yīng)用軟件,其主要功能有單詞學(xué)習(xí),單詞背誦,單詞測試,真人發(fā)音,添加生詞本等。同時本文對背單詞軟件開發(fā)中有關(guān)系統(tǒng)設(shè)計,系統(tǒng)實施方法和設(shè)計詞庫等方面進展了探索,以此推動計算機英語輔助軟件開發(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)狀和開展趨勢 PAGEREF _Toc390334065 h 1HYPERLINK l _Toc3903340662. 平臺與開發(fā)工具 PAGEREF _Toc390334066 h 3HYPERLINK l _Toc3903340672.1 開發(fā)平臺介紹 PAGEREF _Toc390334067 h 3HYPERLINK l _Toc3903340682.2 開發(fā)語言與開發(fā)環(huán)境 PAGEREF _Toc390334068 h 3HYPERLINK l _Toc3903340693. 英語背單詞軟件總體設(shè)計與需求分析 PAGEREF _Toc390334069 h 5
9、HYPERLINK l _Toc3903340703.1 Android四大組件簡介 PAGEREF _Toc390334070 h 5HYPERLINK l _Toc3903340713.2 Android 手機應(yīng)用軟件的UI設(shè)計 PAGEREF _Toc390334071 h 6HYPERLINK l _Toc3903340723.3 英語背單詞軟件需求分析與性能分析 PAGEREF _Toc390334072 h 7HYPERLINK l _Toc3903340733.4 英語背單詞軟件操作流程圖與數(shù)據(jù)庫設(shè)計 PAGEREF _Toc390334073 h 7HYPERLINK l _T
10、oc3903340743.4.1 英語背單詞軟件操作流程圖 PAGEREF _Toc390334074 h 7HYPERLINK l _Toc3903340753.4.2 數(shù)據(jù)庫的創(chuàng)立與設(shè)計 PAGEREF _Toc390334075 h 8HYPERLINK l _Toc3903340764. 系統(tǒng)各個模塊的具體實現(xiàn) PAGEREF _Toc390334076 h 13HYPERLINK l _Toc3903340774.1 啟動模塊的實現(xiàn) PAGEREF _Toc390334077 h 13HYPERLINK l _Toc3903340784.2 用戶信息模塊的實現(xiàn) PAGEREF _To
11、c390334078 h 14HYPERLINK l _Toc3903340794.3 用戶單詞學(xué)習(xí)模塊的實現(xiàn) PAGEREF _Toc390334079 h 16HYPERLINK l _Toc3903340804.4 用戶單詞復(fù)習(xí)模塊的實現(xiàn) PAGEREF _Toc390334080 h 17HYPERLINK l _Toc3903340814.5 用戶單詞測試模塊的實現(xiàn) PAGEREF _Toc390334081 h 19HYPERLINK l _Toc3903340824.6 生詞本模塊的實現(xiàn) PAGEREF _Toc390334082 h 20HYPERLINK l _Toc3903
12、340834.7 各界面之間切換的實現(xiàn) PAGEREF _Toc390334083 h 21HYPERLINK l _Toc3903340845. 客戶端界面測試 PAGEREF _Toc390334084 h 23HYPERLINK l _Toc3903340855.1 系統(tǒng)測試的目標 PAGEREF _Toc390334085 h 23HYPERLINK l _Toc3903340865.2 測試流程 PAGEREF _Toc390334086 h23HYPERLINK l _Toc3903340875.3 測試用例與測試結(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 進一步工作的打算 PAGEREF _Toc390334090 h 24HYPERLINK l _Toc390334091參考文獻 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研究容本著對用戶學(xué)習(xí)英語提供便利和有效記憶的目標,該英語背單詞軟件是基于Android手機平臺,通過詞庫的解析與導(dǎo)入,開發(fā)出針對使用Android平臺的手機英語背單詞系統(tǒng)。用戶使用此平臺進展單詞學(xué)習(xí)、單詞背誦、單詞測試、參加生詞本等。相對于書本辭典操作來說,背單詞可以更簡便的直接的表達給用戶,而且使用方便,操作簡單。用戶作為系統(tǒng)的效勞群體,按照自己的需求選擇詞庫進展單詞學(xué)習(xí)
15、等,按照自己的方式選擇所需背記單詞的數(shù)量。遇到有生僻的單詞可以參加生詞本方便以后的二次查找,節(jié)省時間,方便閱覽。本系統(tǒng)要求主要實現(xiàn)以下功能模塊:用戶能夠選擇詞庫,導(dǎo)入詞庫;用戶能夠進展單詞的學(xué)習(xí);用戶能夠進展已學(xué)習(xí)過單詞的復(fù)習(xí),同時制定復(fù)習(xí)方案;用戶能夠進展單詞的測試;提供單詞的真人發(fā)音功能;提供生詞本功能,用戶可以隨時添加生詞。1.2研究意義以前人們用最簡單的辭典,在眾多的資料中翻閱、查找,費時、費力,而且應(yīng)用性非常差。設(shè)計這么一個背單詞系統(tǒng),使得用戶可以便捷,快速的進展操作,同時也到達了穩(wěn)定,準確的目的。基于Android的英語背單詞程序的設(shè)計可以進一步擴大學(xué)習(xí)英語的途徑,讓廣闊公眾能夠隨
16、時隨地方便且快捷地認識與記憶英語單詞,以提高自身的英語水平。本軟件提供從初次記憶單詞到熟記單詞的所有功能,幫助大家科學(xué)學(xué)習(xí)。當您初次使用本軟件記憶單詞后,系統(tǒng)會自動為您制定學(xué)習(xí)復(fù)習(xí)方案,幫助您科學(xué)快速地完成記憶單詞的過程。軟件提供測試功能,幫助您自我檢測學(xué)習(xí)狀態(tài)。更好地發(fā)揮了Android技術(shù)對移動互聯(lián)網(wǎng)的現(xiàn)實性作用。1.3研究現(xiàn)狀和開展趨勢據(jù)市場研究公司IDC稱,2013年上季度Android手機全球份額達75%。成為最大智能手機系統(tǒng)。今年第一季度,全球Android智能手機出貨量上升至1.621億臺,高于去年同期的9030萬臺;市場份額為75%,高于去年同期的59.1%。其他操作系統(tǒng)的表現(xiàn)
17、則要平穩(wěn)很多。Android越來越引起人們的關(guān)注和追捧。移動通信和互聯(lián)網(wǎng)成為當今世界開展最快、市場潛力最大、前景最誘人的兩大業(yè)務(wù),它們的增長速度都是任何預(yù)測家未曾預(yù)料到的,所以移動互聯(lián)網(wǎng)可以預(yù)見將會創(chuàng)造經(jīng)濟神話。移動互聯(lián)網(wǎng)的優(yōu)勢決定其用戶數(shù)量龐大,截至2012年9月底,全球移動互聯(lián)網(wǎng)用戶已達15億。Android是一種以Linu*為根底的開放源碼操作系統(tǒng),采用Linu*核,主要使用于便攜設(shè)備。開放手機聯(lián)盟OHA成員可以任意使用和修改安卓的SDK軟件包。系統(tǒng)的開源性使其具有良好的拓展性,一方面,為眾多移動應(yīng)用開發(fā)者提供了良好的系統(tǒng)性平臺,有利于移動應(yīng)用的集合;另一方面,終端廠商可以針對自身的特殊
18、需要定制化開發(fā)。與此相比,盡管2010年2月,塞班根本完成開源工作,但由于代碼臃腫,用戶界面設(shè)計缺失,塞班的開源并無實際意義,錯失開展良機。因此,基于Android的英語背單詞程序開發(fā),也是現(xiàn)代移動互聯(lián)網(wǎng)時代下催生的人們生活中不可或缺的一個產(chǎn)物。我們認為,安卓操作系統(tǒng)開展迅猛主要得益于免費、開源和良好產(chǎn)業(yè)運作策略,這三點為安卓在智能手機市場贏得更多的開展機遇。系統(tǒng)的免費讓更多的廠商參加,推動了份額的上升;代碼的開源讓更多的開發(fā)者進入應(yīng)用開發(fā);應(yīng)用的豐富吸引了更多用戶選擇,這也是谷歌值得眾多廠商學(xué)習(xí)的地方。此外,谷歌通過OHA聯(lián)合眾多廠商進展系統(tǒng)研發(fā),不斷更新版本,將系統(tǒng)應(yīng)用推廣到更多的終端產(chǎn)品
19、中,確保用戶體驗持續(xù)改善。3G互聯(lián)網(wǎng)時代下,移動應(yīng)用越來越多,Android 更新包于2013年2月11日發(fā)布,未來采用Android系統(tǒng)手機越來越多。不僅僅在于手機,在任何移動設(shè)備上,都可以采用Android開發(fā)移植到終端設(shè)備上,例如電視、冰箱、空調(diào)、洗衣機等。將這些設(shè)備計入互聯(lián)網(wǎng),我們可以通過手機實時知道各個設(shè)備的狀態(tài),也可以控制它們工作??傊珹ndroid 將帶給我們更加智能、便捷、現(xiàn)代的生活。從而,Android應(yīng)用的開發(fā),將會越來越龐大,需求將會越來越豐富。開發(fā)英語背單詞手機軟件和其他應(yīng)用將會越來越普遍,Android將會越來越壯大。-. z2. 平臺與開發(fā)工具2.1開發(fā)平臺介紹本
20、設(shè)計采用windows 作為開發(fā)平臺,由于windows系列操作系統(tǒng)做為市場份額最大的PC操作系統(tǒng),無論是用戶數(shù)還是基于windows平臺應(yīng)用數(shù)都是遙遙領(lǐng)先的。大多數(shù)開發(fā)者都會選擇此平臺作為開發(fā)平臺,而且很多應(yīng)用在windows 平臺提供了的相應(yīng)的開發(fā)工具,如Eclipse、QT等。雖然大多數(shù)用戶很樂于將 Eclipse 當作 Java 集成開發(fā)環(huán)境IDE來使用,但是 Eclipse 的目標卻不僅僅這樣。Eclipse 這個開發(fā)工具還包括插件的開發(fā)環(huán)境Plug-in Development Environment,PDE,而這個組件主要是針對希望擴展 Eclipse 的人來的,因為Eclips
21、e允許他們構(gòu)建出與 Eclipse 開發(fā)環(huán)境無縫集成的工具。因為 Eclipse 中的所有東西都是插件存在,對于 Eclipse 提供的插件,并且給用戶提供一致及統(tǒng)一的集成開發(fā)環(huán)境來說,所有的軟件開發(fā)人員都具有一樣的發(fā)揮場所。Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組效勞,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具Java Development Kit,JDK。 雖然大多數(shù)用戶很樂于將 Eclipse 當作 Java 集成開發(fā)環(huán)境IDE來使用,但 Eclipse 的目標
22、卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境Plug-in Development Environment,PDE,這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。本畢設(shè)安裝的是Android 開發(fā)插件。2.2開發(fā)語言與開發(fā)環(huán)境Android的上層應(yīng)用程序是用Java語言開發(fā),同時還需要基于Dalvik虛擬機,所以,Google公司推薦使用主流的Java繼承開發(fā)環(huán)境
23、Eclipse。只有Eclipse還不夠,因為是使用Java語言進展開發(fā),還應(yīng)該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的應(yīng)用程序開發(fā)和Java開發(fā)有較大區(qū)別的,所以還需要有Google提供的Android SDK。同時,還需要在Eclipse安裝ADT,為Android開發(fā)提供開發(fā)工具的升級或者變更,是Eclipse下開發(fā)工具的升級下載的工具。eclipse裝有android開發(fā)插件,從而運行Android 模擬器 ,模擬Android智能手機。簡言之,需要以下軟件,才能搭建Android開發(fā)環(huán)境,從而進展
24、Android應(yīng)用程序的開發(fā)。運行開發(fā)環(huán)境如表2-1所示:表2-1 運行開發(fā)環(huán)境名稱版本語種操作系統(tǒng)Window7旗艦版Sp1簡體中文Eclipse開發(fā)工具 3.6默認ADT安卓開發(fā)工具17默認基于平臺Android1.6以上默認-. z3. 英語背單詞軟件總體設(shè)計與需求分析3.1Android四大組件簡介ActivityActivity是Android應(yīng)用程序和用戶進展交互的窗口,它是Android系統(tǒng)構(gòu)造中最根本的一種,Activity要為各界面的狀態(tài)進展保持,它做許多的持久化事情,良好的管理生命周期和一些要跳轉(zhuǎn)的邏輯。一個Activity一般展現(xiàn)一個用戶界面。比方,一個Activity可
25、以為一個用戶展示選擇的菜單列表或者展示出一些圖片和圖片的標題。對于一個消息效勞應(yīng)用程序,它可能包括一個顯示聯(lián)系人列表的界面,一個編寫信息的界面,和其它的一些查看信息及修改應(yīng)用程序的設(shè)置而用到的Activity。雖然這些Activity共同工作,一起構(gòu)成了一個應(yīng)用完整的程序,但是每個Activity都是相對獨立的。ServiceService在后臺,為Activity效勞,封裝好一些完整的功能邏輯,并承受上面的指令,然后完成相關(guān)的事務(wù)處理,使用中要定義好承受的Intent提供同步及異步的接口。Service雖然沒有用戶的界面,但是Service會在后臺一直運行。比方,Service可能會在用戶處
26、理其它事務(wù)時,同時播放音樂,或者把網(wǎng)絡(luò)上的數(shù)據(jù)獲取下來,或者進展一些運算,然后把計算的構(gòu)造提供應(yīng)Activity,讓它展示給用戶。使用中,Service都要繼承類Serivce。和Activity等其它組件一樣,Service運行在應(yīng)用程序的主線程中。因此Service不能讓其它組件或者用戶界面阻塞,這個通常就要為這些Service類增加線程執(zhí)行耗時的任務(wù)。Broadcast ReceiverBroadcast Receiver是Android提供的第三方應(yīng)用數(shù)據(jù)的方案,它可以派生出Content Provider這個類,然后對外提供數(shù)據(jù),它可以像數(shù)據(jù)庫一樣進展選擇排序,它屏蔽部的細節(jié),并對外
27、提供了一個統(tǒng)一接口模型,這很好的簡化上層應(yīng)用,它對數(shù)據(jù)整合提供了更方便的方式。Broadcase Receiver并不執(zhí)行任何的任務(wù),它僅是承受并響應(yīng)播送的通知的一類組件。而大局部的播送的通知是由系統(tǒng)產(chǎn)生,比方改變時區(qū)時,電池電量低時,用戶選擇一幅圖片或用戶換了語言首時。對于應(yīng)用程序,也同樣可以良好的發(fā)送播送通知,比方通知其他的應(yīng)用程序*些數(shù)據(jù)已經(jīng)下載到設(shè)備上來并且可以使用。Content Provider 承受一種或多種的Intent作為觸發(fā)事件,對于承受到的相關(guān)消息,進展一些簡單處理,轉(zhuǎn)換成Notification,這統(tǒng)一了Android系統(tǒng)的事件播送模型。對于應(yīng)用程序可以通過Conten
28、tProvider來其它的應(yīng)用程序中的一些私有的數(shù)據(jù),這即是Android系統(tǒng)中提供的一種標準的共享數(shù)據(jù)的機制。對于共享的數(shù)據(jù)可存儲在系統(tǒng)的文件中、SQLite中或者其它的媒體中。ContentProvider實現(xiàn)類擴展自ContentProvider這個類,并通過實現(xiàn)此類的一組標準接口,使其它的應(yīng)用程序能存取它控制的一些數(shù)據(jù)。但是應(yīng)用程序并不是直接調(diào)用ContentProvider中的一些方法,而是間接的,通過類ContentResolver來實現(xiàn)。ContentResolver這個類能夠與任何的一個ContentProvider進展通信,它能與ContentProvider良好的合作管理進
29、程間通信。3.2Android 手機應(yīng)用軟件的UI設(shè)計由于Android系統(tǒng)是一款手機操作系統(tǒng),所以基于此系統(tǒng)的應(yīng)用開發(fā)也是基于手機屏幕大小的。手機屏幕大小不一,但要求軟件能夠適應(yīng)不同大小的手機屏幕,也就是界面能夠自動適應(yīng),而且屏幕能夠翻轉(zhuǎn)基于重力感應(yīng)使屏幕畫面自動水平和垂直切換。Android 界面由兩大根本組件組成:即容器和控件。一個窗口由一個根本的容器組成, 容器中可以放容器或者控件,每一個容器或者控件都有大小、長寬等屬性。在一個Android 應(yīng)用中,一個ActivityActivity是Android中最常用也是最根本的組件通常就是一個單獨的屏幕,每一個Activity都被實現(xiàn)為一個
30、獨立的類,并且繼承Activity這個子類。Activity提供了與用戶交互的可視化界面。創(chuàng)立一個Activity一般繼承Activity父類。覆蓋Activity的onCreate()方法,在該方法中調(diào)用setOnConte*tView方法來展示要顯示的視圖。整個Android 工程劃分不同文件在不同文件夾中,android使用*ml文件作為系統(tǒng)的布局文件,android 資源文件和 文件夾如圖3-1所示:圖3-1Android工程文件構(gòu)造要想控制手機界面的顯示方式,則必須使用布局這一概念。布局就像容器,里面可以裝下很多控件。布局里面還可以套用其他的布局。這樣就可以實現(xiàn)界面的多樣化以及設(shè)計的
31、靈活性。 (1) LinearLayout線性布局: 線性版面配置,在這個標簽中,所有元件都是按由上到下的排隊排成的。包括垂直線性布局和水平線性布局。(2) RelativeLayout相對布局就是以相對的方式定位布局,允許子元素指定他們相對于其它元素或父元素的位置通過ID指定。相對布局例如如圖3-2所示:圖3-2Android相對布局(3) FrameLayout幀布局是最簡單的一個布局對象。是一個框架布局樣式,可以用include標簽載入定義的另一個layout文件,所有的子元素將會固定在屏幕的左上角;你不能為FrameLayout中的一個子元素指定一個位置。后一個子元素將會直接在前 一個
32、子元素之上進展覆蓋填充,把它們部份或全部擋住除非后一個子元素是透明的。 (4) TableLayout表格布局 是一種類似表格的布局,這種布局會把包含的元素以行和列進展排列。表格的列數(shù)為所有行中的最大列數(shù);每一行可以是一個TableRow布局對象,也可以是普通的View視圖對象,TableRow里面每一個元素占一列TableLayout總列數(shù)由列數(shù)最多的那一行決定。因此,要想實現(xiàn)各種顯示效果,可根據(jù)不同的界面需求,選用不同的布局方法。3.3英語背單詞軟件需求分析與性能分析技術(shù)可行性上,Android是一個成熟強大的移動操作系統(tǒng),而且是一個開源的系統(tǒng),市場占有率很高。Android應(yīng)用是用jav
33、a語言,雖然版本有好多,但一般會向下兼容,用Eclipse + ADT來創(chuàng)立應(yīng)用程序,Android提供開發(fā)的足夠的接口API讓開發(fā)者開發(fā)功能強大的應(yīng)用程序。 經(jīng)濟可行性上,該應(yīng)用程序不需要效勞器端,不需要與別的應(yīng)用進展交互,只需要本地Android智能機設(shè)置好,用戶學(xué)習(xí)容自動保存,而且復(fù)習(xí)方案可自行設(shè)置提醒。占用存小,用戶電池消耗小。所以該方案是可行的。操作可行性上,利用現(xiàn)有的windows系統(tǒng)進展開發(fā)。使用Eclipse作為開發(fā)工具以及使用Sqlite作為數(shù)據(jù)庫,通過模擬器進展程序調(diào)試,然后通過android智能機進展功能測試。整個過程平臺廣泛,皆可實現(xiàn)。系統(tǒng)性能分析方面要求程序響應(yīng)速度快
34、、平安性高、信息處理速度快。3.4英語背單詞軟件操作流程圖與數(shù)據(jù)庫設(shè)計3.4.1 英語背單詞軟件操作流程圖本英語背單詞軟件的操作流程圖如圖3-3所示:啟動選擇詞庫學(xué)習(xí)習(xí)復(fù) 習(xí)測 試生詞本發(fā)音參加生詞本發(fā)音參加生詞本測試結(jié)果參加生詞本編輯單詞刪除圖3-3 操作流程圖數(shù)據(jù)庫的創(chuàng)立與設(shè)計當前android平臺采用的是sqlite數(shù)據(jù)庫。SQLite數(shù)據(jù)庫功能強大,使用方便。本系統(tǒng)使用了SQLite數(shù)據(jù)庫來保存英文單詞信息。在Android中創(chuàng)立和翻開一個數(shù)據(jù)庫都可以使用openOrCreateDatabase方法來實現(xiàn),本系統(tǒng)創(chuàng)立了名為wordroid.db的數(shù)據(jù)庫,并返回一個SQLiteDatab
35、ase對象db如下:SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase( DB_NAME, null);DB_NAME為數(shù)據(jù)庫的儲存地址:data/data/wordroid.model/databases/wordroid.db 創(chuàng)立表通過e*ecSQL方法來執(zhí)行一條SQL語句。本系統(tǒng)創(chuàng)立了一個名為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ù)即單詞。具體實現(xiàn)如下:db.insert(table, null, values);通過使用update方法來修改表中數(shù)據(jù),具體實現(xiàn)如下:db.update(table, values, whereClause, whereArgs);通過使用delete方法從表中刪除數(shù)據(jù)。關(guān)閉數(shù)據(jù)庫很重要,經(jīng)常容易忘記。直接使用SQLiteDatabase的close方法。在Android中查詢數(shù)據(jù)是通過Cursor類實現(xiàn)的,使用SQLiteDa
37、tabase.query()方法時,會得到一個Cursor對象,Cursor指向的就是每一條數(shù)據(jù)。注意Android使用Cursor類返回一個需要的值,Cursor作為一個指針從數(shù)據(jù)庫查詢返回結(jié)果,使用Cursor允許Android更有效地管理它們需要的行和列,運用cursor.moveToFirst()是對Cursor指向的位置進展操作:移到第一行。wordroid.db文件放在Eclipse Android工程中的res文件夾下的raw目錄中,通過使用getResources().openRawResource方法獲得raw目錄中資源的InputStream對象,然后將該InputStre
38、am對象中的數(shù)據(jù)寫入手機存或SD卡的目錄中相應(yīng)文件中。如圖3-4所示:圖3-4 數(shù)據(jù)庫文件在wordroid數(shù)據(jù)庫中主要包含以下幾個表格:表BOOKS 該表記錄了詞庫的根本信息,包括詞庫的ID,詞庫的名稱,參加時間,list數(shù)量,單詞數(shù)量。如下表3-1所示:表3-1 BOOKS表字段類型非空默認值主鍵描述IDte*t編號NAMEte*t名稱GENERATE_TIMEte*t參加時間NUMOFLISTte*tList數(shù)量NUMOFWORDte*t單詞數(shù)量BOOKS表具體容如圖3-5所示:圖3-5 表BOOKS表book1該表記錄了單詞的根本信息,包括單詞的編號,單詞的拼寫,單詞的意思,單詞音標,
39、所屬list. 如下表3-2所示:表3-2 book1表字段類型非空默認值主鍵描述IDte*t編號SPELLINGte*t拼寫MEANNINGte*t意思PHONETIC_ALPHABETte*t音標LISTte*t所屬list表book1具體容如圖3-6所示:圖3-6表book1表book2該表記錄了單詞的根本信息,包括單詞的編號,單詞的拼寫,單詞的意思,單詞音標,所屬list。見表3-2。表book2具體容如圖3-7所示:圖3-7表book2表book3該表記錄了單詞的根本信息,包括單詞的編號,單詞的拼寫,單詞的意思,單詞音標,所屬list。 見表3-2。表book3具體容如圖3-8所示:
40、圖3-8表book3表PLAN該表記錄了復(fù)習(xí)方案的根本信息,包括詞庫的編號,所在list,已學(xué)習(xí)list,學(xué)習(xí)時間,復(fù)習(xí)次數(shù),復(fù)試時間,最正確得分,是否復(fù)習(xí)。 如下表3-3所示。表3-3 PLAN表字段類型非空默認值主鍵描述BOOKIDte*t詞庫的編號LISTte*t所在listLEARNEDte*t已學(xué)習(xí)listLEARN_TIMEte*t學(xué)習(xí)時間REVIEW_TIMESte*t復(fù)習(xí)次數(shù)REVIEWTIMEte*t復(fù)試時間BESTSCOREte*t最正確得分SHOULDREVIEWte*t是否復(fù)習(xí)表PLAN具體容如圖3-9所示:圖3-9表PLAN-. z4. 系統(tǒng)各個模塊的具體實現(xiàn)4.1啟
41、動模塊的實現(xiàn)啟動界面是系統(tǒng)的第一個界面,目的是給用戶一種直觀的感受,給用戶一種良好的感覺。啟動界面的布局文件為layout文件夾里的login.*ml,由一個Linearlayout線性布局 構(gòu)成,里面包含一個ImageView 圖片控件并填充整個手機界面,考慮到橫豎屏切換和屏幕大小,在res的drawable-hdpi、drawable-ldpi和drawa ble-mdpi三個文件夾分別放三種尺寸圖片,分辨路為480*800、800*480、320*460并且啟動畫面要覆蓋整個手機屏幕,啟動界面如圖4-1所示:圖4-1 啟動界面啟動界面最主要的工作時設(shè)置畫面延時,并且能夠在畫面顯示的3秒對
42、HOME鍵、返回鍵,做出相應(yīng),并且可以支持橫豎屏切換。實現(xiàn)延時效果主要使用線程來實現(xiàn)。當android程序啟動時,首先由AndroidMainfest.*ml系統(tǒng)主配置文件來查找第一個要顯示界面第一個要顯示的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類負責(zé)顯示。然后根據(jù)當前類要顯示布局文件文件來繪制整個界面。隨之,啟動延時線程,采用循環(huán),循環(huán)一次線程休眠100ms防止系統(tǒng)卡頓。按下HOME鍵則返回手機主界面,延時暫停,再點擊啟動程序時延時線程繼續(xù)運行,直到3s后,跳到下一個界面。當按下返回鍵時,程序?qū)㈥P(guān)閉。4.2用戶信息模塊的實現(xiàn)該界面的布局文件為main.*ml,整個界面直觀明了的展示了該系統(tǒng)的主要功能以及用戶學(xué)習(xí)進度。界面用一圖片作為背景,在界面左上角顯示兩個圖片按鈕(ImageButton):刪除按鈕與重置按鈕,組成一個線性布局。在界面中間上方處顯示下拉列表組件Spinner,給用戶提供詞庫的選擇:GRE紅寶書上,GRE紅寶書中
48、,GRE紅寶書下以及導(dǎo)入新詞庫。在界面中間布局了三個文本框Te*tview和兩個使用進度條ProgressBar,組成一個線性布局。一個文本框用來顯示用戶學(xué)習(xí)信息:詞庫名稱,總詞匯量與創(chuàng)立時間;兩個使用進度條分別顯示已學(xué)習(xí)list的數(shù)量與已復(fù)習(xí)list的數(shù)量。在界面的的底部布局了四個按鈕Button:學(xué)習(xí),復(fù)習(xí),測試,生詞本。組成了一個線性布局。這些控件在一起采用相對布局,可以使這些控件的位置相對擺放,靠在父容器下方,不至于零散。用戶信息主界面如圖4-2所示:圖4-2 用戶信息主界面上文提到了該界面給用戶提供詞庫選擇的下拉列表組件Spinner,詞庫選擇則要為下拉列表定義一個適配器,這里就用到
49、前面定義的books;同時為適配器設(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),這個事響應(yīng)菜單被選中。同時該界面initWidgets() 實現(xiàn)了桌面小插件的設(shè)置,把用戶生詞本的容直接呈現(xiàn),方便用戶的瀏覽。對于界面左上角的兩個刪除與重置按鈕,通過 onClick(View v)事件,頁面上顯示一個對話框dialog,dialog的樣式設(shè)置由res,文件夾下的values文件夾dialogStyle.*ml負責(zé),界面顯示時,先生成一個dialog對象,然后顯示這個dialog。詞庫由wordroid.db數(shù)據(jù)庫里的表Book1, Book2, Book3組成,通過this.s
51、etListAdapter(new ArrayAdapter(this, R.layout.file_row, fileNames);實現(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í)模塊的實現(xiàn)該界面的布局文件為studyword_main.*ml和studyword.*ml。studyword_main.*ml文件里顯示兩個文本框,構(gòu)成一個框架布局FrameLayout。分別為未學(xué)習(xí)過的LIST和所有的LIST;同時顯
53、示各項LIST列表。用戶單詞學(xué)習(xí)列表界面如圖4-3所示:圖4-3 用戶單詞學(xué)習(xí)列表界面Studyword.*ml布局文件界面上方布局了一個文本框:單詞記憶。界面中間顯示一個圖片按鈕和兩個文本框,構(gòu)成一個線性布局。圖片按鈕為發(fā)音標示,按鈕的屬性設(shè)置為android:drawable/btn_default,文本框分別為拼寫spelling與單詞解釋info。界面底部顯示三個按鈕,構(gòu)成一個線性布局。按鈕分別為:上一個,參加生詞本,下一個。用戶單詞學(xué)習(xí)記憶界面如圖4-4所示:圖4-4 用戶單詞學(xué)習(xí)記憶界面重復(fù)參加生詞本以后會提示:生詞本中已包含這個單詞;強制退出時會提示學(xué)習(xí)未完成,進展選擇。該學(xué)習(xí)模
54、塊的機器發(fā)音功能通過TTS引擎實現(xiàn),TTS即Te*tToSpeech,將所指定的文本轉(zhuǎn)成不同語言音頻輸出。如果用戶手機支持TTS發(fā)音功能,首先設(shè)置發(fā)音語言tts.setLanguage(loc),判斷語言可用后,使用Speak()方法可以直接在應(yīng)用程序中實現(xiàn)語音功能tts.speak(list.get(currentnum).getSpelling(),Te*tToSpeech.QUEUE_ADD,null)。發(fā)音完成后,回收TTS即可,當確定應(yīng)用程序不再需要TTS的相關(guān)功能后,可以在Activity的OnDestroy()方法中調(diào)用super.onDestroy()釋放當前TTS實體所占用的
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í)模塊的實現(xiàn)該界面的布局文件為reviewlayout.*ml。界面的上方布局了一個文本框:單詞復(fù)習(xí)。界面中間顯示一個圖片按鈕和兩個文本框,構(gòu)成線性布局嵌套。圖片按鈕為發(fā)音標示,按鈕的屬性設(shè)置為android:drawable/btn_default,文本框分別為拼寫spelling與單詞解釋info。界面底部顯示三個按鈕,另有兩個隱藏按鈕,構(gòu)成一個線性布局。按鈕分別為:參加生詞本,我記得,不記得了,記對了,記錯了。用戶單詞復(fù)習(xí)界面如圖4-5所示:圖4-5 用戶單詞復(fù)習(xí)界面按下我記得按鈕文本框顯示單詞的解釋,界面
57、下方顯示記對了記錯了兩個按鈕,按下記對了進入下一個單詞的復(fù)習(xí)。強制退出時會提示復(fù)習(xí)未完成,進展選擇。該單詞復(fù)習(xí)模塊首先需要對已學(xué)習(xí)過的list進展數(shù)據(jù)存儲,這里使用Activity類的getSharedPreferences方法獲得SharedPreferences對象,其中存儲key-value的文件的名稱由getSharedPreferences方法的第一個參數(shù)指定;使用該接口的edit獲得SharedPreferences.Editor對象,再通過SharedPreferences.Editor接口的putString方法保存數(shù)據(jù)。進入復(fù)習(xí)界面后,則通過getString讀取保存的lis
58、t。用戶在復(fù)習(xí)選擇時通過setVisibility()實現(xiàn)各個按鈕控件的可見與否。復(fù)習(xí)完成時生成一個dialog對象,然后顯示這個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用戶單詞測試模塊的實現(xiàn)用戶單詞測試界面的布局文件為test_list_item.*ml,test_list.*ml和test.*ml。test_list.*ml布局文件界面顯示了一個文本框和一個使用列表ListView,文本框為選擇測試單元,使用列表控件包含所選詞庫所有的list并顯示最高正確率。點擊*個list后進入test.*ml布局文件界面,該界面的上方布局了一個文本框:單詞測試。界面中間顯示一個文本框和一個單項選擇鈕組RadioGroup,構(gòu)成線性布局。文本框的屬性設(shè)置為android:attr/te*tAppearanceSmall,容為單詞與單詞的拼寫;單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人健身教練合同:2024版專業(yè)輔導(dǎo)合同書版B版
- 2025年食堂節(jié)能環(huán)保設(shè)施改造承包協(xié)議9篇
- 2025年高新技術(shù)產(chǎn)業(yè)園區(qū)土地購置合同范本3篇
- 2025年度跨境電商供應(yīng)鏈融資擔保合同4篇
- 2025版企業(yè)綠化項目施工合同范本匯編4篇
- 二零二五版環(huán)保檢測技術(shù)服務(wù)合同標準范本3篇
- 2024年藥品研發(fā)與藥師合作契約3篇
- 個人投資合同及投資款支付借條(2024版)3篇
- 2025年度智慧安防系統(tǒng)承包意向書4篇
- 東莞市規(guī)范離婚合同書2024版樣本版
- 檢驗員績效考核
- 農(nóng)藥合成研發(fā)項目流程
- 機電安裝工程安全管理
- 2024年上海市第二十七屆初中物理競賽初賽試題及答案
- 信息技術(shù)部年終述職報告總結(jié)
- 理光投影機pj k360功能介紹
- 六年級數(shù)學(xué)上冊100道口算題(全冊完整版)
- 八年級數(shù)學(xué)下冊《第十九章 一次函數(shù)》單元檢測卷帶答案-人教版
- 帕薩特B5維修手冊及帕薩特B5全車電路圖
- 小學(xué)五年級解方程應(yīng)用題6
- 年月江西省南昌市某綜合樓工程造價指標及
評論
0/150
提交評論