版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業(yè)設計題 目 Android手機電子書閱讀器的設計與實現 2Android 手機電子書閱讀器的設計與實現The design and Implementation of the Android mobile phone ebook readerXxxI畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權說明畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權說明原創(chuàng)性聲明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設計(論文) ,是我個人在指導教師的指導下進行的研究工作及取得的成果.盡我所知,除文中特別加以標注和致謝的地方外,不包含其他人或組織已經發(fā)表或公布過的研究成果,也不包含我為獲得 及其它教育機構的學位或學歷而使用過的材料。
2、對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了謝意。作 者 簽 名: 日 期: 指導教師簽名: 日期: 使用授權說明使用授權說明本人完全了解 大學關于收集、保存、使用畢業(yè)設計(論文)的規(guī)定,即:按照學校要求提交畢業(yè)設計(論文)的印刷本和電子版本;學校有權保存畢業(yè)設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學??梢圆捎糜坝?、縮印、數字化或其它復制手段保存論文;在不以贏利為目的前提下,學??梢怨颊撐牡牟糠只蛉績热?。作者簽名: 日 期: II學位論文原創(chuàng)性聲明學位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導師的指導下獨立進行研究所取得的研究成果.除
3、了文中特別加以標注引用的內容外,本論文不包含任何其他個人或集體已經發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明.本人完全意識到本聲明的法律后果由本人承擔.作者簽名: 日期: 年 月 日學位論文版權使用授權書學位論文版權使用授權書本學位論文作者完全了解學校有關保留、使用學位論文的規(guī)定,同意學校保留并向國家有關部門或機構送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權 大學可以將本學位論文的全部或部分內容編入有關數據庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文.涉密論文按學校規(guī)定處理。作者簽名:日期: 年 月 日導師簽名: 日期
4、: 年 月 日III注 意 事 項1.設計(論文)的內容包括:1)封面(按教務處制定的標準封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300 字左右) 、關鍵詞4)外文摘要、關鍵詞 5)目次頁(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論) 、正文、結論7)參考文獻8)致謝9)附錄(對論文支持必要時)2.論文字數要求:理工類設計(論文)正文字數不少于 1 萬字(不包括圖紙、程序清單等) ,文科類論文正文字數不少于 1。2 萬字。3。附件包括:任務書、開題報告、外文譯文、譯文原文(復印件) 。4。文字、圖表要求:1)文字通順,語言流暢,書寫字跡工整,打印字體及大小符合要求,無錯別字,不準請他人代
5、寫2)工程設計類題目的圖紙,要求部分用尺規(guī)繪制,部分用計算機繪制,所有圖紙應符合國家技術標準規(guī)范.圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準用徒手畫3)畢業(yè)論文須用 A4 單面打印,論文 50 頁以上的雙面打印4)圖表應繪制于無格子的頁面上5)軟件工程類課題應有程序清單,并提供電子文檔5.裝訂順序1)設計(論文)2)附件:按照任務書、開題報告、外文譯文、譯文原文(復印件)次序裝訂IV摘要摘要在這個信息化的時代,計算機越來越精致,手機也越來越智能化,所以,一個較好的應用軟件在很大程度上能提升一個手機的品牌。而在智能手機上安裝一個擁有豐富功能支持的電子書閱讀器,更是我們刻不容緩的事情。本
6、設計采用 Android 平臺,根據對手機電子書閱讀器的客戶需求分析和技術可行性分析,經過總體設計和詳細設計編碼測試等階段,完成了電子書閱讀器軟件的設計。不僅實現了電子書閱讀器最基本的閱讀功能,而且還為用戶提供了豐富的功能支持,包括找書,書簽,自動翻頁以及閱讀界面設置的操作。而本次設計最大的特點則是通過屏幕觸控實現了移動時的翻頁特效.經過不斷的測試與完善,電子書閱讀器功能穩(wěn)定,并且在真機上對其進行了測試與驗證,基本上達到了用戶的需求標準。關鍵詞:關鍵詞: Android;電子書閱讀器;屏幕觸控;翻頁;AbstractIn the time of information technology,
7、with the increasingly sophisticated of computers and more and more intelligent of mobile phones, a better application software can enhance a brand of the phone to large extent。 It is our urgent for us that installed on the smart-phone has a rich functionality to support the e-book reader。Based on th
8、e needs analysis of customers and technical feasibility analysis, I use the Android platform to achieve the design of mobile phones e-book reader. After completing the overall design and detailed design coding testing stage, I achieved the design of the e-book reader software. Not only can the soft
9、achieve the basic function of E-book reader, but also offer many other functions for users, including books and bookmarks, flipping pages automatically and designing the reader。 The significant character of the design achieve the flipping page of mobile by touching screen Through continuous testing
10、and improvement, Ebook reader is stable. The testing and verification in real device has carried out to meet the customers requirements which have reached the standards of the customers requirements。 Key words: Android; ebook Reader; Touch Screen; Flip目目 錄錄第 1 章 前言.1V1。1 課題提出的背景目的及意義 .11.1。1 課題提出的背景
11、.11.1.2 課題提出的目的.11.1。3 課題提出的意義.11。2 設計思路及研究方法 .21。2。1 設計思路.21.2.2 研究方法.2第 2 章 需求分析.32.1 軟件的基本功能要求 .32.2 系統(tǒng)架構.42.3 開發(fā)環(huán)境 .4第 3 章 軟件設計.63.1 總體軟件結構設計 .63.2 接口設計 .73。2.1 外部接口.73.2。2 內部接口.83.3 數據庫設計 .83.3.1 數據模式設計.83。3.2 數據表格設計.83.3.3 表的具體設計.93.3.4 數據字典.103。4 軟件設計模型 .103。5 代碼設計 .123.6 軟件維護設計 .12第 4 章 系統(tǒng)功能
12、模塊的設計與實現.134.1 關鍵技術 .134.1.1 android 平臺及 java 語言.134.1。2 中介軟件.134。1.3 四大組件.144。1。4 sqlite3 數據庫.144.1。5 Tomcat 服務器.14VI4.2 歡迎界面的實現 .154.3 主控制類的實現 .154.4 工具類的設計.164。5 閱讀界面的實現 .164。6 找書功能的實現 .184。7 書簽功能的實現 .194.8 設置字體大小功能的實現 .204。9 更換背景圖片以及設置字體顏色功能的實現 .214.10 音樂播放功能的實現 .21第 5 章 系統(tǒng)測試.225。1 歡迎界面 .225。2 用
13、戶閱讀界面 .23畢業(yè)設計總結.32參考文獻.33附錄一 核心代碼.34附錄二 畢業(yè)設計外文翻譯(英文).36附錄三 畢業(yè)設計外文翻譯(中文).44致謝.511第第 1 章章 前言前言1。1 課題提出的背景目的及意義1。1.1 課題提出的背景在這個信息化的時代, IT 業(yè)已經成為世界發(fā)展的主流,我們對信息技術的依賴遠遠超過了對我們自己的依賴,計算機和手機已經成為我們日常生活中不可缺少的獲得信息的渠道。正因為如此,各種各樣的軟件層出不窮,我們的生活也因為各種各樣的軟件變的更有滋有味。不缺乏娛樂性,也不缺乏教育意義,讓我們從這些軟件中受益匪淺,使我們看到了相比以前的巨大進步。同時,隨著科技的發(fā)展,
14、計算機越來越精致,手機也越來越智能化,所以我們的依賴性也越來越大,越來越離不開這些給我們提供日常信息的工具。手機也已不再僅僅是簡單的人與人通話的工具,而是在很大程度上成為了我們獲取信息的一個更好的渠道。一個好的軟件,能夠標志一個手機品牌的地位。所以,開發(fā)一款好的手機軟件是相當必要的.以前我們看看雜志,小說都要去圖書館借閱,而且時間有限,很不方便;而現在是在電腦上或者手機上看雜志,看小說,文檔。以此看來,一個好的手機閱讀器軟件的開發(fā)是相當有必要的。1.1。2 課題提出的目的此次設計的目的很明顯,就是給予閱讀者更大的便利性,閱讀者不用再到處拿著一本厚厚的書籍,大大減少了讀者的負擔,只需要下載一本
15、txt 格式的電子書,放在 sd 卡里邊,就是人們的生活百科。當然,有些下載不來的資料,還是需要翻閱書籍的。1。1.3 課題提出的意義計算機改變了人類的工作方式,互聯網創(chuàng)造著全新的生活空間,我們接受信息的方式也正在發(fā)生深刻的質變。由于現在閱讀器的越來越普及,我們每天清晨讀報的習慣也在面對大資訊量的新聞網站時漸漸淡化,面對印刷出版物,我們仍視之為文化傳承的載體,但不可抵擋的,是無紙化電子閱讀時代的悄然臨近.我們現在信息化的生活,充斥著信息的傳遞,但是,越來越多的人依賴于幾乎朝夕相伴的手機。雖然,現在也出現了供人們閱讀使用的電子書,但是這些電子書的功能很少很簡單,僅僅是簡簡單單的供人們一行一行的閱
16、覽文字信息,或者是僅僅添加一個添加書簽的小功能,根本遠遠不能滿足人們的需求。于是,一個功能良好的全面的電子書閱讀器越來越成為廣大用戶的追求。本軟件是基于 android 系統(tǒng)智能手機開發(fā)的一款電子書閱讀器軟件,它有一個閱讀主界面,主要用來閱讀文檔。其優(yōu)越性表現在實現了從 SD 卡讀取文檔或從服務器端下載文檔,自動翻頁,添加書簽,選擇書簽,清空書簽,2設置背景音樂,設置背景圖片,設置字體顏色,設置字體大小等功能。此外,給用戶更清晰方便的界面,也是本軟件的出發(fā)點之一。1。2 設計思路及研究方法1。2.1 設計思路閱讀器的設計流程主要是按照軟件設計的一般流程:需求分析、概要設計、詳細設計、測試與維護
17、的基本流程來設計開發(fā)的。首先,從整體分析軟件功能,將功能模塊化;然后對每個模塊進行調試。最后對各個模塊進行系統(tǒng)集成。通過幾個月的觀察,發(fā)現幾乎所有的人都有手機,而且?guī)缀跤幸话胍陨系娜擞檬謾C來閱讀資料??墒沁@些閱讀軟件不盡人意,而且一個好的閱讀軟件也還沒有安裝在智能手機上。本系統(tǒng)針對這一點進行了較仔細的分析,在老版的閱讀軟件基礎之上進行改進,最后,對系統(tǒng)進行了實現和維護。1.2。2 研究方法本系統(tǒng)在整體框架研究方法采用的是問卷調查法和觀察研究法。而在總體設計上采用的是結構化方法,在局部底層開發(fā)上為便于交流采用快速原型法。問卷調查法也稱問卷法,它是調查者運用統(tǒng)一設計的問卷向被選取的調查對象了解情況
18、或征詢意見的調查方法。觀察研究法指根據既定的研究目的,對現象或行為做有計劃與有系統(tǒng)的觀察,并依觀察的記錄對現象或行為做客觀性的描述和解釋。結構化系統(tǒng)的設計方法是在結構化程序設計思想基礎上發(fā)展起來的,它的基本涵義是一個系統(tǒng)由層次化的程序模塊構成,每一個模塊只有一個入口和一個出口,每一個模塊只歸其上一級模塊調用,并有模塊連接的準則和構造模塊的標準,而且用系統(tǒng)結構圖來表達系統(tǒng)的結構,盡可能用最優(yōu)的方式將系統(tǒng)內各部分組織起來.第第 2 章章 需求分析需求分析2。1 軟件的基本功能要求經過以上問卷調查和觀察研究方法,在現行業(yè)務流程和數據分析的基礎上基本上確定了系統(tǒng)的功能,設計也基本上達到了目標。根據軟件
19、設計的步驟,需求分析是軟件設計成功的基礎,也是必不可少的步驟.同時,也對軟件的設計提出了具體的要求.在做足了充分的調查研究之后,基本可以確定軟件的功能界面如下:(1)剛打開軟件時的歡迎動畫界面.3(2)在沒有閱讀記錄情況下打開軟件時進入的軟件說明界面。(3)在主界面下單擊“菜單”按鈕后彈出的歡迎主菜單界面。(4)找書選擇界面,用來選擇找書的途徑。(5)網絡下載列表界面,用來列出服務器端可供下載的文檔。(6)下載完成提示界面,用戶從服務器端完成指定文檔下載任務時顯示的界面。(7)已存在要下載文件提示界面,當用戶指定要下載的文檔在 SD 卡中已存在時顯示的界面。(8)SD 卡文件列表界面,列出 S
20、D 卡中存在的所有資料。(9)閱讀界面,用來閱讀文檔的主界面,是整個閱讀器設計核心部分。(10)書簽功能界面,用來選擇與書簽相關的具體操作。(11)添加書簽功能界面,將當前閱讀到的位置以書簽名和書頁號的形式存至書簽表,方便下次閱讀。(12)選擇書簽功能界面,通過選擇書簽記錄跳轉至想要閱讀的位置.(13)刪除書簽功能界面,再不想要該條書簽記錄的情況下實現刪除操作。(14)自動翻頁功能界面,實現不同時間間隔自動翻頁的效果。(15)設置界面,用來選擇對閱讀界面不同的設置。(16)背景音樂界面,可在閱讀的同時欣賞音樂,更大限度的提升。(17)背景圖片界面,用來設置不同的閱讀界面風格,使閱讀更為個性化。
21、(18)字體顏色界面,用來設置不同的閱讀字體顏色,提升用戶的視覺體驗。(19)字體大小界面,通過設置字體大小來滿足實際應用中的多重需求。基本說明如下:本系統(tǒng)是一個電子書閱讀器,主要包含一個主界面,用來實現閱讀的功能.在閱讀界面時,點擊 menu,手機底部會出現四個選項:找書、書簽、自動翻頁、設置。點擊找書選項會有兩種操作可供選擇,分別是在 SD 卡中找書和通過網絡下載;點擊書簽選項會有三種操作可供選擇,分別為添加書簽、選擇書簽和清空書簽,其中長按選擇書簽列表中的某條書簽記錄也可達到刪除該條記錄的目的;點擊自動翻頁選項會有四種操作可供選擇,分別為每隔 30秒、40 秒、50 秒自動翻頁和停止自動
22、翻頁;點擊設置選項會有四種操作可供選擇,分別為設置背景音樂、設置背景圖片、設置字體顏色和設置字體大小,為此用戶可通過自己的喜好來設置不同閱讀界面的風格,并且可以選擇自己喜愛的音樂作為背景音樂,在閱讀的同時欣賞。42。2 系統(tǒng)架構本設計總體邏輯結構層次劃分如圖 2.1 所示。圖 2。1 功能結構圖2。3 開發(fā)環(huán)境數據庫由于本設計和數據庫密切相關,但是對數據庫的要求不高,因此可用 Android 系統(tǒng)本身自帶的 Sqlite 數據庫。Android SDK 與 Eclipse 開發(fā)的插件 ADT 由于本設計是基于 Android 系統(tǒng)的,而 Android 開發(fā)環(huán)境的搭建是基于 Eclipse 的
23、,因此需要下載 Android SDK 與 Eclipse 開發(fā)的插件 ADT。服務器 由于本設計需要用服務器來為其提供下載服務,而且對服務器的要求不高,因此在設計時用 Tomcat 作服務器。第第 3 章章 軟件設計軟件設計3。1 總體軟件結構設計打開電子書閱讀器之后,軟件會先查看上次閱讀的最后記錄,以此作為根據來進行判斷從而跳轉至相應的閱讀界面。然后用戶就可在閱讀界面下通過選擇 menu 來執(zhí)行想要的操作:找書、書簽、自動翻頁、設置。點擊找書選項會有兩種操作可供選擇,分別是在 SD 卡中找書和通過網絡下載;點擊書簽選項會有三種操作可供選擇,分別為添加書簽、選擇書簽和清空書簽,其中長按選擇書
24、簽列表中的某條書簽記錄也可達到刪除該條記錄的目的;點擊自動翻頁選項會有四種操作可供選擇,分別為每隔 30 秒、40 秒、50 秒自動翻頁和停止自動翻頁;點擊設置選項會有四種操作可供選擇,分別為設置背景音樂、設置背景圖片、設置字體顏色和設置字體大小,為此用戶可通過自己的喜好來設置不同閱讀界面的風格,并且可以選擇自己喜愛的音樂作為背景音樂,在閱讀的同時欣賞.根據各個模塊的不同功能,對本設計進行了層次結構的劃分。在 Eclipse 下創(chuàng)建了一個名為 Test 的工程,工程的結構圖如圖 3.1:圖 3.1 軟件工程結構圖該功能包是通過 Android SDK 自動生成的,主要包括以下內容:5(1)sr
25、c 源代碼目錄:該目錄存放 Android 應用程序所有的源代碼.該目錄項有不同的包,包中對應開發(fā)的源代碼,開發(fā)過程中的主要精力都集中在開發(fā) src 目錄下內容。(2)gen 文件夾目錄:該目錄存放了 Eclipse 的 ADT 插件自動生成的 R.java 文件。實際上 R。java 定義了一個 R 類,它包含了應用中用戶界面、圖像、字符串等各種資源與之相對應的資源編號(id).這些資源編號都是系統(tǒng)自動生成的,即有一資源對象,系統(tǒng)就為此在 R 類中生成相應資源編號,好比一本字典.(3)Res 資源目錄:該目錄定義了 drawable、layout 及 values 3 個目錄。a。 draw
26、able 目錄:該目錄下有 drawable-hdpi,drawable-ldpi,drawable-mdpi3 個文件夾,分別用來存放不同分辨率的圖片資源,用于不同分辨率 的手機的開發(fā),可以通過Resource.getDrawable(id)獲得該資源。b. layout 目錄:該目錄下包含了所有使用 XML 格式的界面描述文件。主要用于 表述應用程序的用戶界面布局,也用于描述用戶界面和接口組件。c. values 目錄:該目錄包含了使用 XML 格式的參數描述文件,也可以在此添加一些額外的資源,如字符串、顏色、樣式和數組等。主要用于在代碼中通過 R 類來調用它們,而不直接使用,這樣可將代碼
27、和資源分開管理,便于維護。除了以上文件夾外,還用一個 AndroidManifest.xml 文件,該文件是系統(tǒng)的控制文件,告訴系統(tǒng)如何處理創(chuàng)建的所有頂層項目,尤其是 Activity,凡是需要用到的組件都要在此注冊.同時該文件也是所有 Android 應用程序都需要的文件,其描述了程序包的全局變量,包括公開的應用程序組件和每個組件的實現類,什么樣的數據可以操作,在什么地方可以運行等。在這個文件中最重要的一個內容就是 Intent 過濾器,這些過濾器描述了何時、何種情況下讓 Activity 啟動.當一個 Activity(或操作系統(tǒng))想要執(zhí)行一個動作,它將創(chuàng)建一個 Intent 對象。該對象
28、包含了很多描述符,描述了想做的操作,像處理數據,數據的類型,以及一些其他的信息.Android 將 Intent 對象中的所有公開的 Intent 過濾器比較,找到一個最能恰當處理請求的數據和動作的 Activity。3.2 接口設計3.2。1 外部接口在用戶界面部分,根據需求分析結果,用戶需要一個友善界面。在界面設計上,應做到簡單明了,易于操作,并且要注意到界面的布局,應突出的顯示重要以及出錯信息。在界面設計部分,本系統(tǒng)按照 Microsoft 公司的用戶界面設計標準,為用戶提供友好、方便、直觀、6簡潔的操作環(huán)境。本系統(tǒng)采用了窗口繼承的方式,使窗口有統(tǒng)一的界面風格。同時,對錯誤信息、提示信息
29、進行標準化,盡量做到清晰明了。3。2。2 內部接口系統(tǒng)在功能模塊的設計上,以“高內聚、低耦合為設計目標.內部接口方面,各模塊之間采用函數調用、參數傳遞、返回值的方式進行信息傳遞。具體參數的結構將在下面數據結構設計的內容中說明.接口傳遞的信息將是以數據結構封裝的數據、參數傳遞或返回值的形式在各模塊間傳遞。3。3 數據庫設計3。3。1 數據模式設計一共設計了 3 張表,是:(1)閱讀記錄表(閱讀記錄的 ID,書的路徑,閱讀記錄數據)(2)書簽表(書簽的 ID,書簽對應的閱讀記錄的 ID,書簽名,書頁)(3)上次閱讀記錄表(上次閱讀記錄的 ID,書的路徑,上次閱讀到的書頁,上次閱讀時的字體)數據庫表
30、的設計如下:圖 3。2 數據庫結構圖3。3.2 數據表格設計本數據庫用的是一個小型數據庫 sqlite3,在數據庫中創(chuàng)建了三個表格。即BookRecord、BookMark 和 LastTimePage,分別用來存放閱讀記錄的數據、書簽的數據和上次的閱讀記錄數據。具體內容如表 31、表 3-2 和表 3-3 所示:表 3-1 閱讀記錄表字段名稱數據類型字段大小是否主鍵說明ridInteger8是閱讀記錄的 IDpath文本50否書的路徑data字節(jié)數組不定否預讀記錄數據表 3-2 書簽表字段名稱數據類型字段大小是否主鍵說明midInteger8是書簽的 ID7ridfkInteger8否書簽對
31、應的閱讀記錄的 IDbmname文本50否書簽名pageInteger8否書頁表 33 上次閱讀記錄表字段名稱數據類型字段大小是否主鍵說明lidInteger8是上次閱讀的記錄 IDpath文本50否書的路徑pageInteger8否上次閱讀到的頁數fontsizeInteger8否上次閱讀的字體大小3。3。3 表的具體設計表名:BookRecord表中字段名稱:rid, path, data.說明:用 varchar 類型存儲 path,blob 類型存儲相應的路徑下的閱讀過程,并規(guī)定 rid 為閱讀記錄表的主鍵.表名:BookMark表中字段名稱:mid, ridfk, bmname, p
32、age。 說明:創(chuàng)建書簽 mid 為 integer 類型主鍵,定義書簽名字 bmname 為 varchar 類型,書頁號 page 為 integer 類型的書簽表。表名:LastTimePage表中字段名稱:lid, path, page, fontsize.說明:創(chuàng)建書簽 lid 為 integer 型主鍵,定義路徑 path 為 varchar 類型,書頁號 page 為integer 類型,字體大小為 integer 類型的上次閱讀記錄表.3。3.4 數據字典數據字典是物理數據庫的具體體現。表 3-4 BookRecord 數據字典字段名類型閱讀記錄的 ID整型書的路徑文本8閱讀記
33、錄數據字節(jié)數組表 35 BookMark 數據字典字段名類型書簽的 ID整型書簽對應的閱讀記錄的 ID整型書簽名文本書頁整型表 3-6 LastTimePage 數據字典字段名類型上次閱讀記錄的 ID整型書的路徑文本上次閱讀到的頁數整型上次閱讀時字體大小整型3.4 軟件設計模型 建立系統(tǒng)數據模型的主要工具是實體關聯圖,即 E-R 圖。ER 圖的圖形符號約定如下表:表表 3 37 7 E-RE-R 圖圖形符號圖圖形符號圖 3.3 存儲閱讀記錄的 E-R 圖圖 3。4 存儲書簽的 E-R 圖圖 3。5 存儲上次閱讀記錄的 ER 圖3.5 代碼設計代碼是按使用的目的,表示識別、分類、排序數據的數字、
34、文字或符號.識別是將文件中存儲數據區(qū)別開,或將文件中的數據按組區(qū)別開,識別主要用數據更新與查找。分類是根據數據編碼中的定義對數據分類,用于檢索數據或統(tǒng)計分析.排序是根據編碼規(guī)則,按代碼中規(guī)定的次序排序,用于輸出與生成報表.3.6 軟件維護設計采用 MVC 設計模式,將 UI 層和業(yè)務邏輯層分離開來,采用針對接口編程的方式,降低了代碼之間的耦合度,便于軟件的升級和程序性能的優(yōu)化.9第第 4 章章 系統(tǒng)功能模塊的設計與實現系統(tǒng)功能模塊的設計與實現4.1 關鍵技術4。1.1 android 平臺及 java 語言以下圖表展示了 Android 操作系統(tǒng)的主要組成部分:圖 4.1 Android 系統(tǒng)
35、架構圖 本系統(tǒng)是以 java 為編程語言,從接口到功能,靈活多變.主要運用的是 Activity 之間的相互跳轉,然后利用 Intent 實現多個程序同時運行的效果。運行中如果某個 Activity 的畫面被另一個 Activity 所取代,則這個 Activity 停止。本系統(tǒng)通過把 View 類與 XML(可擴展標記語言)將用戶界面放置在視圖窗口,然后注冊事件來完成相應的功能.例如,當視圖要處理用戶的點擊事件的時候,android 就要向框架注冊一個 OnClickListener 等.本系統(tǒng)中觸發(fā)事件都是通過這種來實現的。 Java 語言是一種簡單易用,面向對象的,可移植的語言。它具有很
36、多的優(yōu)越性和特點,比如:平臺無關性,安全性,面向對象,健壯性等等。本系統(tǒng)就是在android 平臺上使用 java 語言完成的系統(tǒng)。4。1.2 中介軟件 中介軟件是 android 操作系統(tǒng)應用程序的橋梁,主要分為函數和虛擬機。Android 的數據存儲采用 sqlite3 數據庫系統(tǒng),用戶可以用 ContentProvider 類獲取數據。android 中數據存儲技術主要有:文件存儲、preference、sqlite、ContentProvider 和網絡存儲,在本軟件中主要使用到了文件存儲、sqlite 和 ContentProvider,文件存儲是以流的形式讀寫文件,可以以文格的格式
37、,也可以以二進制的形式,在 java 語言中要使用流,則寫入文件的對象必須進行序列化,sqlite 是嵌入式移動設備中常用的輕量級數據庫,可看作計算機上使用的 sql server、oracle 數據庫。本軟件中,用戶生詞本中的數據都存在 sqlite 數據庫中,而進行數據備份和恢復時則是用文件作為介質保存數據.4.1.3 四大組件Android 的四大組件是支持 android 應用程序顯示,跳轉,服務和事件的重要工具,它們主要是:Activity(活動) ,Intent(意圖) ,Service(服務) ,ContentProvider(內容提供器).Activity 是一個用戶的界面基類
38、,屬于 UI。一個 Activity 就是一個類,每個 Activity 類都需要繼承 Activity 基類,并與其他控件結合使用。Intent 實現 Activity、service 等之間的跳轉和數據傳輸。Service 是后臺服務,為用戶提供數據支持.ContentProvider 負責數據的存儲和讀取。在 android 中,軟件 UI 通常使用 xml 技術設計,而 xml 中控年的位置和狀態(tài)則離不開10布局的使用,android 中常用的布局有 5 種,分別是:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、Table
39、Layout,由于布局的使用,并且布局之間可以互相嵌套,使得 android 軟件 UI 的設計變得非常靈活,即使是一些非常復雜的界面設計,只要合理的使用布局,也會使開發(fā)變得很容易。4。1.4 sqlite3 數據庫Sqlite3 是建立在 android 平臺上的一個數據庫,除了支持 varchar(n) (可變字符) ,char(n)(定長字符)等數據特性外,還支持空(NULL) ,整型(INTEGER) ,文本類型(TEXT)等數據類型。它的特點入下:輕量級(只需帶上很小的動態(tài)庫,就能享受它的全部功能) 、獨立性(使用不需要安裝,在部署的時候能省去很多麻煩) 、隔離性(數據庫中所有的信息
40、都包含在一個文件內,方便管理和維護)和安全性(可以同時讀取數據,但同時只有一個能夠寫入數據)等特性。4。1.5 Tomcat 服務器服務器的架設:(1)在 http://下載合適版本的 Tomcat。(2)在/apachetomcat5。0.28/webapps 目錄下新建文件夾 txt.(3)在 txt 文件夾下創(chuàng)建文本文件 txt_list.txt。(4)在 txt_list.txt 下寫入內容。(5)根據 txt_list。txt 的內容,創(chuàng)建文本。(6)打開/pache-tomcat5.0.8/bin 目錄。(7)打開/pache-tomcat-5。0
41、.8/bin 目錄下的 startup。bat.(8)打開瀏覽器,在地址欄輸入 http:/localhost:8088/,效果如圖 4.2 所示: 圖 4.2 bin 目錄圖4.2 歡迎界面的實現本模塊主要完成閱讀器歡迎界面的漸變效果顯示,在進入程序界面時首先調用。該功能的實現主要是通過繪制黑色矩形,然后對其進行平面貼圖,并通過不斷的更改圖片的透明值來實現的。4.3 主控制類的實現11 ReaderActivity 類是主要控制程序運行的類,實現了各個界面的有序切換,各個按鈕和對話框的監(jiān)聽事件,加載了程序中用到的相關資源,有效地控制了程序的運行。(1)onCreate 方法是程序運行時,進入
42、主界面前調用的方法,在此方法中對程序中用到的相關變量進行賦值,并為相關類創(chuàng)建對象,以方便調用.(2)onKeyDownf 方法是重寫父類的 onKeyDown 方法,當按下不同的鍵時,此方法設計返回鍵(4 號鍵)和 Menu 鍵(82 號鍵),并且本設計中支持屏幕觸控事件和鍵盤監(jiān)聽事件。(3)onCreateOptionsMenu 方法表示的是程序運行時,用戶按下鍵盤上的 Menu 鍵后,顯示的找書、書簽、自動翻頁和設置的按鈕選項,當用戶按下不同的鍵后,彈出相應的對話框。(4)sendMessage 方法表示各個界面相互跳轉時調用的方法和不同線程之間傳遞消息的方法.(5)isWhichTime
43、 方法用以判斷是否為第一次打開程序,如果是,則程序中的變量值為默認值;若不是第一次打開,則獲取上一次打開時設置的值.(6) saveCurrentData 和 savePreference 方法表示當程序退出、換書和第一次打開一本書時都要想數據庫中 BookRecord 表中插入數據,第一次打開一本書時,向數據庫中插入數據是因為,如果表中不存在當前書的信息,則無法存書簽。4。4 工具類的設計(1)Constant 類存放了整個設計過程中,大部分類經常用到的常量值,如字體大小、字體顏色、屏幕的寬和高等。將這些常量值放在一起,不但方便了設計,而且方便管理。(2)加載文本的工具類 TextLoadU
44、til 的設計主要是為文本的讀入提供方法。4。5 閱讀界面的實現ReaderView 類主要負責自適應屏、繪制閱讀器的主界面、實現鍵盤和屏幕的觸控事件以及實現翻頁功能。(1)surfaceCreated 方法主要負責成員變量的初始化工作.(2)onDraw 方法負責標題、廣告條、左右頁面等圖片的繪制。其中廣告條的繪制是動態(tài)的,在廣告條線程中值需要更改圖片數據下標志值 NUM。(3)onTouchEvent 方法負責處理屏幕觸控事件,屏幕觸控事件為移動是翻頁特效的實現。(4)drawPage 方法負責根據閱讀記錄對象 ReadRecord 繪制左右兩頁面。12圖 4.3 從用戶進入軟件到閱讀界面
45、時的流程圖圖 4.4 用戶在閱讀界面時的操作流程圖當用戶進行閱讀界面的時候,首先閱讀控制模塊會根據用戶之前閱讀到的位置來確定載入電子書文本的起始位置,然后會根據手機終端屏幕大小和字體大小來確定該頁應該顯示多少文字。在獲取文字長度之后,會讀取相應長度的字符并以此為基礎生成左右相鄰兩頁內容的 bitmap 圖片。用戶在閱讀的時候可以觸摸屏幕的不同位置進行不同操作,左下角是往前翻頁,右下角是往后翻頁.4。6 找書功能的實現找書功能分為在 SDCARD 中和在網絡中找書。(1)在 SDCARD 中找書用戶可以將已有的 txt 格式的書放在 SDCARD 中,通過本閱讀器的在 SDCARD 中找書的功能
46、將書加載進閱讀器進行閱讀,具體步驟如下:按下 Menu 鍵,在主界面中彈出的選項中選擇找書,彈出找書對話框,選中 SDCARD,即可根據當前路徑獲得對應文件數組,并將數組中的所有文件加入到文件列表中,然后再為文件列表添加監(jiān)聽,從而實現在點擊某一文件時跳轉至對應頁面的功能.(2)在網絡中找書本閱讀器不僅提供了在本地找書的功能,而且也支持在網絡中找書.具體步驟如下:當單擊在網絡中找書的按鈕時,調用 downTxt 方法下載 txt 文檔。圖 4。5 用戶找書時的操作流程圖4。7 書簽功能的實現(1)添加書簽功能的實現 在本設計的書簽功能中有很多漂亮的 Dialog,這些 Dialog 是通過 xm
47、l 文件自己布局的或者是通過 Java 代碼自定義實現的。其中 styles。xml 文件設置了 Dialog 的背景圖片和標題格式,是設置對話框屬性的文件。在完成了輸入書簽對話框所需要繼承的類、布局文件和對話框屬性的文件之后,創(chuàng)建了書簽輸入對話框,并通過 onPrepareDialog 方法為自定義的輸入書簽對話框中的按鈕添加了監(jiān)聽。(2)選擇書簽功能的實現 選擇書簽對話框不同于添加書簽對話框,是用 Java 代碼實現的。具體的實現步驟如下:13a. 在數據庫中取出所有書簽的名字和頁數的索引值,并分別放入兩個數組 tempname和 temppage 中,用來放入書簽列表中顯示。b. 用 J
48、ava 代碼編寫列表對話框,并且為 ListView 添加內容適配器,將在數據庫中取出的書簽名稱和其對應的頁數的索引加入到 ListView 中。c. 當單擊選擇書簽對話框中的某一項時,得到當前的頁數,根據頁數查找 HashMap,找到相應的 BookMark 類的對象,從而知道要跳轉到的頁的索引值。d. 當長時間按住選擇書簽對話框中的某一項時,彈出“是否刪除這條記錄”的對話框,如果單擊“確定”按鈕,則會刪除這條記錄,單擊“取消”按鈕則不會刪除記錄。圖 4。6 書簽功能操作流程圖4.8 設置字體大小功能的實現字體大小對話框與選擇書簽對話框的設計基本相同,也是通過 Java 代碼為對話框中控件的
49、擺放形式設置布局。當單擊小號、中號、大號字體后,如果當前字體與要變換的字體相同,則不發(fā)生變化,否則將字體的大小和中英文間距重新賦值,然后重新繪制當前界面。字體大小變化后書簽和 HashMap 的更新:(1)updataBookMarkAndHashMap 方法負責字體大小變化后,更新書簽和 HashMap。(2)drawVirtualPage 方法是字體大小變化后,書簽和 HashMap 更新過程中,虛擬繪制主界面中每一頁信息,并且為下一頁的 Left_Start 的值賦值的方法.4.9 更換背景圖片以及設置字體顏色功能的實現(1)更換背景圖片功能的實現 a. 為了使對話框看起來更美觀,為對話
50、框中的按鈕設置背景圖,同時背景圖與要設置背景一致,為用戶提供參考。 b。 為按鈕添加監(jiān)聽,使單擊按鈕后,可以實現更換閱讀內容背景的圖片. c。 設置要更換的圖片,并規(guī)定圖片加載的屬性,用到了 PicLoadUtil 這個工具類的方法來實現圖片自適應。 d。 重新繪制左右兩側背景圖片上的文字。(2)設置字體顏色功能的實現 a. 為了使對話框看起來更美觀,為對話框中的按鈕設置背景圖,同時背景圖與要設置字體顏色一致,為用戶提供參考。14 b. 為按鈕添加監(jiān)聽,使單擊按鈕后,可以實現重新設置閱讀界面字體顏色。 c。 完成字體顏色設置,返回到當前閱讀界面繼續(xù)閱讀.4。10 音樂播放功能的實現(1)完成自
51、定義對話框的設計.(2)將曲目導入 ListView,為其添加監(jiān)聽,同時實現控制音樂播放與停止的功能。(3)當音樂播放器為空或正在播放曲目二,則更改播放曲目一,在為其設置播放模式后,播放曲目,否則是否播放器,最終返回閱讀主界面。第第 5 章章 系統(tǒng)測試系統(tǒng)測試5.1 歡迎界面打開本系統(tǒng),首先進入的是歡迎界面,效果如圖 5。1 和圖 5.2 所示。圖 5.1 歡迎動畫界面 1圖 5.2 歡迎動畫界面 25.2 用戶閱讀界面若為第一次打開軟件,則在歡迎動畫播放完后進入軟件說明界面,效果如圖 5。3 所示。圖 5.3 軟件說明界面單擊“菜單按鈕彈出主菜單,效果如圖 5。4 所示。圖 5.4 閱讀界面
52、的 menu 功能在主菜單中單擊“找書”按鈕進入找書選擇界面,效果如圖 5.5 所示。圖 5。5 找書界面在找書選擇界面,單擊“網絡”按鈕,進入網絡下載列表,效果如圖 5.6 所示。圖 5.6 網絡下載列表界面選擇某一文本并單擊,下載完畢后彈出提示信息,效果如圖 5。7 所示。圖 5.7 下載完成提示信息如果下載文件已存在,彈出提示界面,效果如圖 5。8 所示。圖 5.8 存在要下載文件提示界面在找書選擇界面,單擊“SDCARD按鈕,進入 SDCARD 文件列表,效果如圖 5.9 所示。圖 5.9 SDCARD 文件列表界面在 SDCARD 文件列表中選中某文本后,單擊進入閱讀界面,效果如圖
53、5.10 所示。15圖 5.10 閱讀界面在主菜單中單擊“書簽”按鈕進入書簽功能界面,效果如圖 5。11 所示。圖 5。11 書簽功能界面在書簽功能界面中單擊“添加書簽”按鈕進入添加書簽界面,效果如圖 5。12 所示.圖 5。12 添加書簽界面在書簽功能界面中單擊“選擇書簽”按鈕進入選擇書簽界面,效果如圖 5.13 所示.圖 5。13 選擇書簽界面在書簽功能界面單擊“清空書簽”按鈕進入清空書簽界面,效果如圖 5.14 所示。圖 5.14 刪除書簽界面在主菜單中單擊“自動翻頁按鈕進入自動翻頁界面,效果如圖 5.15 所示.圖 5。15 自動翻頁界面在主菜單中單擊“設置”按鈕進入設置界面,效果如圖
54、 5。16 所示。圖 5。16 設置界面在設置界面中單擊“背景音樂按鈕進入背景音樂界面,效果如圖 5.17 所示.圖 5。17 背景音樂界面在設置界面中單擊“背景圖片按鈕進入背景圖片界面,效果如圖 5.18 所示。圖 5。18 背景圖片界面在設置界面中單擊“字體顏色”按鈕進入字體顏色界面,效果如圖 5。19 所示。圖 5。19 字體顏色界面在設置界面單擊“字體大小按鈕進入字體大小界面,效果如圖 5。20 所示。圖 5.20 字體大小界面畢業(yè)設計總結畢業(yè)設計總結經過測試,本設計的所有模塊均可正常運行,并且達到了預期的效果.與此同時本設計還存在著很多的不足。在此,我對其特點和不足作些闡述。特點:本
55、設計以 java 為開發(fā)語言、sqlite3 數據庫作為后臺支撐,很好的解決了實際開發(fā)中遇到的技術問題.本設計的界面特點:界面友好、易于操作維護,采用了大量的人機交互式操作,能很好的完成閱讀的全過程,使瀏覽者一進入就可以獨立的進行自己需要的操作,一目了然.本設計實現了從 SDCARD 找書或從服務器端下載新書,添加書簽,選擇書簽,清空所有書簽,清空某一條書簽,自動翻頁,設置背景音樂、背景圖片,更改字體顏色、字體大小,加載廣告信息的功能,能夠讓讀者很順利的達到閱讀的目的,且不會影響閱讀的進度,在很大16程度上給予了極大的方便。通過最終的運行,可以達到省時的目的,方便,快捷,仿真翻頁,記錄閱讀者最
56、后一次閱讀的信息并在下次打開時自動初始化到上次閱讀到的界面是本設計最大的特點。不足:在本設計中只有將服務器端的新書下載至 SDCARD 中才可供讀者閱讀,未能實現在線閱讀的功能,不能充分利用資源;SDCARD 中存儲的文件名只能以英文的形式存在,從而使得在 SDCARD 找書界面中的書名只能以英文形式出現.由于水平有限,難免有不足之處;設計中也還存在不完善之處,有待改進.參考文獻參考文獻1 楊豐盛.Android 應用開發(fā)揭秘M.北京:機械工業(yè)出版社,2010.1。2 王家林.大話企業(yè)級 Android 應用開發(fā)實踐M。北京:電子工業(yè)出版社,2011。8。3 王永松.Android 平臺開發(fā)之
57、旅M.北京:機械工業(yè)出版社,2001。1.4 佘志龍.Android SDK 開發(fā)范例大全M.北京:人民郵電出版社,2010.6。5 吳亞峰.Android 應用案例開發(fā)大全M 。北京:人民郵電出版社,2012.10.6 郭宏志。 Android 應用開發(fā)詳解M。北京:電子工業(yè)出版社,2010.7 吳亞峰.Android 核心技術與實例詳解M.北京:電子工業(yè)出版社,2010。10.8 李芝興。Java 程序設計之網絡編程M.北京:清華大學出版社,2009.8.9 張白一,崔尚森。面向對象程序設計M 。西安:西安電子科技大學出版,2006。01.10 張孝祥.Java 就業(yè)培訓教程M.北京:清華
58、大學出版社,2007.07.11 李興華。Java 開發(fā)實戰(zhàn)經典M。北京:清華大學出版社,2009.08.12 李鐘尉,周小彤.Java 從入門到精通M。北京:清華大學出版社,2010。07。13 孫鑫。Java Web 開發(fā)詳解M.北京:電子工業(yè)出版社,2006.04。14 閻宏。Java 與模式M.北京:電子工業(yè)出版社,2002。10.15 埃史爾,陳昊鵬。Java 編程思想M 。北京:機械工業(yè)出版社,2007。06.16 王世江,蓋索林.Google Android 開發(fā)入門指南M.北京:人民郵電出版社,2009.11.17 李剛.瘋狂 Android 講義M。北京:電子工業(yè)出版社,20
59、11。6。18 Reto Meier.Professional Android2 Application DevelopmentM.北京:清華大學出版社, 2010.12.19 Rick Rogers,Blake Meike,Ziqurd Mednieks.Android 應用開發(fā)M.北京:人民郵電出版社, 2010.09。20 Grant Allen,Mike Owens.The Definitive Guide to SQLite(Second Edition) M.電子工業(yè)17出版社,2012.01.21 公磊,周聰?;?Android 的移動終端應用程序開發(fā)與研究J.計算機與現代化。
60、2008 年,第 8 期。22 劉衛(wèi)國,Android 的架構與應用開發(fā)研究J。計算機系統(tǒng)應用。2008 年,第 11 期。23 Android 官方網站 /reference/java/net/Socket。html.附錄附錄一一 核心代碼核心代碼建立 BookRecord 表的 SQL 語句:static SQLiteDatabase sld;public static void createOrOpenDatabase()try sld=SQLiteDatabase.openDatabase ( /data/data/com.bn。r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省洛陽市宜陽縣2025-2026學年九年級(上)期末化學試卷(含答案)
- 北京市朝陽區(qū)2025-2026學年高三上學期期末數學試卷(含答案)
- 2025-2026學年新疆吐魯番市八年級(上)期末道德與法治試卷含答案
- 化工企業(yè)安全培訓
- 2026年利率債投資策略報告:名義GDP增速回升下的再平衡
- 鋼結構制孔技術操作要點
- 2026年人力資源管理師人才招募渠道管理知識練習(含解析)
- 2026年菏澤市定陶區(qū)事業(yè)單位公開招聘初級綜合類崗位人員(10人)參考考試題庫及答案解析
- 室內裝潢設計咨詢公司經營管理制度
- 2026廣西崇左市本級城鎮(zhèn)公益性崗位招聘37人備考考試試題及答案解析
- 如何做好一名護理帶教老師
- 房地產項目回款策略與現金流管理
- 非連續(xù)性文本閱讀(中考試題20篇)-2024年中考語文重難點復習攻略(解析版)
- 畜禽糞污資源化利用培訓
- 《搶救藥物知識》課件
- 建筑工程咨詢服務合同(標準版)
- 2024年4月自考05424現代設計史試題
- 綜合能源管理系統(tǒng)平臺方案設計及實施合集
- 甲苯磺酸奧馬環(huán)素片-藥品臨床應用解讀
- 共享單車對城市交通的影響研究
- 監(jiān)理大綱(暗標)
評論
0/150
提交評論