android的電子書閱讀器畢業(yè)論文_第1頁
android的電子書閱讀器畢業(yè)論文_第2頁
android的電子書閱讀器畢業(yè)論文_第3頁
android的電子書閱讀器畢業(yè)論文_第4頁
android的電子書閱讀器畢業(yè)論文_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

.33-/NUMPAGES38目錄TOC\o"1-2"\h\z\u31819前言18279第一章相關理論與關鍵技術4132251.1Andriod特征4174571.2Andriod架構51.2.1關鍵應用程序61.2.2應用程序框架61.2.3C/C++函數庫61.2.4Java程序運行環(huán)境61.2.5Linux核6163831.3Andriod應用的構成和工作機制6169781.4Andriod手機平臺控件研究91.4.1Android系統(tǒng)控件與自定義控件的比較研究.Android自定義控件的實現(xiàn)的研究.98279第二章手機電子閱讀器需求分析 11176012.1概述1150592.2手機閱讀器功能需求112.2.1書籍列表和日志列表需求分析112.2.2書寫界面122.2.3書簽列表122.2.4閱讀界面12191792.3手機性能需求12281922.4數據需求1319177第三章手機電子書閱讀器總體設計 14163883.1技術框架設計143.2功能模塊設計143.3數據庫介紹1525146第四章手機電子書閱讀器的設計與實現(xiàn) 164.1項目結構164.2項目描述1719251第五章項目技術總結28258335.1技術創(chuàng)新與特點2839885.2程序的擴展功能2818245.3個人收獲與體會2923807參考文獻3031819致31android系統(tǒng)下電子書閱覽器電子信息工程系電子092201H裴志丹指導教師:胡莉摘要:在科技日益發(fā)達的今天,社會競爭越來越激烈,這要求人們不斷的攝取信息來充實自己。要求人們能隨時隨地的了解并獲取所需的信息。在這種情況下,電子書閱讀器剛好滿足了人們便捷地獲取信息的需求。本文設計的手機電子書閱讀器是基于Android平臺設計的,Android平臺是目前發(fā)展最快、最具市場前景的智能手機操作系統(tǒng)。本系統(tǒng)是根據GoogleAndroid平臺用戶的喜好和其平臺的特性而設計的,在GoogleAndroid平臺自帶的SDK2.3.1環(huán)境下,運用Eclipse,Photoshop等相關工具進行開發(fā)的。本文介紹了GoogleAndroid開發(fā)的流程,討論了基于Android平臺應用程序開發(fā)的關鍵技術,對手機電子書閱讀器做了詳細的需求分析,并重點介紹了基于Android平臺的手機電子書閱讀器的總體設計,主要包括手機電子書閱讀器的架構設計、各功能模塊的設計與實現(xiàn)。 本文設計的手機電子書閱讀器通過了功能和性能方面的測試,證明了本文設計方案的可行性。通過對基于Android平臺手機電子書閱讀器的設計與實現(xiàn)的介紹,希望能為今后開發(fā)出功能更強大的閱讀器提供有益的借鑒。關鍵詞:Android,電子書閱讀器,SDKEbookreaderonandroidSchoolofAppliedScienceElectronic092203HPeiZhidanDirector:huliABSTRACT:Today,it’samoreadvancedintechnology,increasinglycompetitivesociety,whichrequirespeopletotheintakeofinformationtoenrichthemselves.Requirespeopletoalwaysbeintheknowandgettherequiredinformation.Inthiscase,thenewsreaderjusttomeettheneedsofpeopleknowofexternalobjects.InthispapertheebookreaderismobilephonedesignbasedontheAndroidplatformofthedesign,Androidplatformisthefastestdeveloping,themostmarketprospectofsmartphoneoperatingsystem.Inthissystem,GoogleAndroidplatformisbasedontheuser'spreferencesandcharacteristicsofitsplatformdesigned,inGoogleAndroidplatform,comeswithSDK2.3.1environment,theuseoftheEclipse,PhotoShopandothertoolsfordevelopment.ThisarticleintroducesthedevelopmentprocessoftheGoogleAndroid,discussestheapplicationdevelopmentbasedontheAndroidplatformofthekeytechnology,todoadetailedanalysisofthedemandforMobilephoneebookandintroducesthefocusonMobilephoneebookreaderoverall’sdesign.includestheebookreadermobilephonedesignmainly,architecturedesignandthefunctionofthesystem.Inthispapertheebookreaderthroughmobilephonedesignofthefunctionandperformancetest,provedthefeasibilityofthisdesign.ThroughtotheAndroidplatformbasedonmobilephoneebookreaderdesignandimplementationoftheintroduction,thehopeforthedevelopmentinthefuturemorepowerfulofferbeneficialreferenceforthereader.Keywords:Android,E-bookreader,SDK前言手機已經成為了生活中不可缺少的通訊設備,沒有手機有時會讓人覺得寸步難行。手機不僅具備傳統(tǒng)的打、發(fā)短信等基本的功能,而且具有強大的處理能力和可擴展能力,能進行電子圖書的閱覽、基于3G網絡實現(xiàn)高速數據傳輸、第三方瀏覽軟件的運用等,越來越多的功能和業(yè)務將被開發(fā)出來并大規(guī)模的應用。正基于此,Google于2007年11月5日宣布推出基于Linux平臺的開源手機操作系統(tǒng),號稱首個為移動終端打造的真正開放和完整的移動軟件——Android。當今社會手機是已經成為了生活中不可缺少的通訊設備,隨著科技的發(fā)展手機的功能也越來越強大,手機電子閱讀器是手機中的一種重要軟件,其真正意義上指的是一個可以閱讀設備,是專門用來閱讀電子書的,隨著二十一世紀數字信息化的不斷興起,電子閱讀器的市場競爭也變得越來越激烈。時下社會的進步更是讓人們的生活越來越忙碌,抱著厚厚的書本穿梭于大街小巷已經不再適應這個忙碌的時代。當人們奔波于不同的城市、出沒在不同的場所、搭乘不同的交通工具的時候,手機電子閱讀器就可以為人們提供方便快捷的閱讀平臺,它的作用就像一座橋梁,在我們不方便利用書本或者網絡的時候提供一個更快更方便的平臺,讓人們能隨時的閱讀自己喜歡的電子圖書。就是因為手機電子閱讀器方便快捷的優(yōu)點,使得人們把用手機電子閱讀器閱讀閱讀電子書當做當科技時代的一種時尚。這也讓手機電子閱讀器在人們的生活中扮演的角色越來越重要。二十世紀七十年代,著名軟件工程師Andsan.Fandamu在美國布朗大學闡述通過計算機創(chuàng)建和閱讀文件的時候首次提出了電子書(electronicBook,eBook)這一術語。電子書是利用現(xiàn)代信息技術創(chuàng)造的全新出版方式,將傳統(tǒng)的書籍方式以數字的形式通過計算機網絡實現(xiàn)。閱讀器指的是一個設備,是專門用來看電子書的。隨著數字化的不斷興起,電子閱讀器市場的競爭變得越來越激烈。最早出現(xiàn)在市場上的電子書閱讀器是美國SoftBook公司的SoftBook和Nov.Media公司的RocketBook。它們都具有美觀的外型形狀像一本古典的精裝書,存儲容量分別為8MB和32MB的存,分別可以容納5,000和32,000多個電子頁的信息,與計算機串口相連,可以從SoftBook和NuvoMedia的網上售書連鎖店,下載書籍和期刊。2000年8月,美國微軟公司發(fā)布了一個可供人們閱讀電子書的應用軟件MicrosoftReader,這種閱讀器軟件的核心技術是ClearType,微軟稱之為“對液晶顯示屏具有革命性的變革”,它是一種能使文字在顯示器上的顯示效果像印在紙上一樣平滑清晰的字符顯示技術,這種技術大大提高了屏幕的分辨率和清晰度,使讀者能夠獲得最接近傳統(tǒng)書的閱讀效果。同時南開大學津科公司開發(fā)了一款閱讀不耗電的電子書閱讀器,該電子書閱讀器已經面市并將投人大規(guī)模生產。它采用了華人科學家吳葆剛博士發(fā)明的“多穩(wěn)態(tài)液晶顯示器”,并在國際上首次實現(xiàn)了“翻頁不耗電”閱讀顯示。除了上述幾種電子書閱讀器之外,EveryBook,Librius,GlassBook等公司也都推出了自己的電子書閱讀器和閱讀軟件,出版集團和美國通公司聯(lián)手合作推出了中文電子“掌上書屋”。隨著這些閱讀器的出現(xiàn),使得電子圖書、期刊這些原本只能在PC上閱讀的東西突然變得可以移動,電子書籍與紙制書籍之間的距離縮短了一大步。同時,電子書閱讀器更方便和靈活的使用功能也在不斷地研究推出,例如,可以在閱讀的時候加批注、書簽、字體可縮放、旋轉和支持聲音播放等等。目前主流的電子書閱讀器有熊貓看書,它是網龍公司自主研發(fā)并出品的一款免費閱讀軟件,支持在線書籍查詢,在線書籍分類閱讀,書籍收藏與撤銷收藏,新聞分類閱讀,新聞訂閱分類與撤銷訂閱。是基于iPhone/WindowsMobile/Symbian/Android/M8/Kjava等多手機平臺上的全能免費閱讀軟件。全面支持TXT、ZIP、HTML、UMD、NDB等多種格式,同時還支持JPG、BMP、PNG、GIF等多種格式圖像查看。自適應中文編碼,自動排版,支持RSS新聞離線閱讀。電子閱讀現(xiàn)在是國家和業(yè)非常重視的一個新興產業(yè),它與國家提倡的“自主創(chuàng)新,增強核心競爭力”、開展低碳、節(jié)能環(huán)保的社會環(huán)境相吻合,很多廠商、科研院所都將目光放到了這個原本沒有足夠重視的領域上。同時,手機電子書閱讀器作為廣大網民經常使用的一個工具,在手機閱讀市場逐漸擴大的時候,人們對于閱讀的方便性和各種功能設置都有了更高的要求。雖然現(xiàn)在手機電子書閱讀器功能己經比較完善,但是離人們的期望還存在較大的距離,比如改善人們的閱讀環(huán)境,使人們讀起來不感到疲倦而且充滿樂趣,同時現(xiàn)在的閱讀器多媒體性能還不夠完善。因此,手機電子書閱讀器的應用研究還大有潛力可挖。本文共分為五部分,容安排如下所示。第一部分緒論,主要介紹本課題研究的背景與意義,國外研究現(xiàn)狀,本文的組織結構與安排。第二部分相關理論與關鍵技術,介紹了Android特征,Android架構和Android應用的構成和工作機制等容,研究了Android控件。第三部分手機電子書閱讀器需求分析,主要介紹了閱讀器各功能模塊需求。第四部分手機電子書閱讀器總體設計,分別從這幾個角度進行描述:軟件架構圖,軟件結構圖和功能模塊設計。第五部分手機電子書閱讀器詳細設計與實現(xiàn),主要介紹了開發(fā)環(huán)境,關鍵模塊代碼實現(xiàn)和系統(tǒng)測試。第六部分結語,對全文進行了總結和展望。第一章相關理論與關鍵技術隨著計算機的廣泛運用,手機市場的迅速發(fā)展,各種音頻視頻資源也在網上廣為流傳,這些資源看似平常,但已經漸漸成為人們生活中必不可少的一部分了。于是各種手機播放器也緊跟著發(fā)展起來,但是很多播放器一味追求外觀花哨,功能龐大,對用戶的手機造成了很多資源浪費,比如CPU,存等的占用率過高,在用戶需要多任務操作時,受到了不小的影響,帶來了許多不便,而對于大多數普通用戶,許多功能用不上,形同虛設。針對以上各種弊端,選擇了開發(fā)多語種的音頻視頻播放器,將各種性能優(yōu)化,繼承播放器的常用功能,滿足一般用戶(如聽歌,看電影)的需求,除了能播放常見格式的語音視頻文件,高級功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文等語言界面。Android是一個移動設備的軟件平臺,是由Linux+Java構成的開源軟件,它提供包括SDK、KeyApps、Middleware、LinuxKernel四個部分在的全套手機軟件方案。它開放了基于Linux核以上的開發(fā)工具,從而保證了容的可移植性和多樣性。Android平臺為開發(fā)應用程序提供了一套很好的框架,我們可以在這個平臺的基礎上開發(fā)不同的應用程序,也可以開發(fā)新的組件供應用程序調用。1.1Android特征Dalvik虛擬:Android采用的Java虛擬機是自主開發(fā)的代號為Dalvik的虛擬機技術,在保證API方面兼容的同時Dalvik針對移動手機進行了大幅優(yōu)化,占用資源更小,運行效率更高。嵌瀏覽器:基于開源的瀏覽器網頁排版引擎WebKit。優(yōu)化的圖形:強大的自定義二維圖形庫?;贠penGLES1.O標準的3D圖形功能,在移動3D開發(fā)中有著至關重要的地位。SQLite數據庫:SQLitet提供結構化的數據存儲。它是一款輕型免費的且開源的數據庫,它的設計目標是嵌入前言式的,它占用的資源非常低、需要的存空間少、處理速度比較快和支持事務處理功能等。多媒體支持:支持各種通用的音視頻和靜態(tài)圖像格式,如MP3、JPG、PNG等。OpenCore是Android多媒體框架的核心,所有Android平臺的音視頻采集,播放的操作都是通過它來實現(xiàn)的。通過OpenCore,程序員可以方便快速的開發(fā)出想要的多媒體應用程序。GSM技術:(依賴硬件)GlobalSystemforMobileCommunications,全球移動通訊系統(tǒng),俗稱“全球通”,是第二代移動通信技術,其開發(fā)El的是讓傘球各地可以共同使用一個移動網絡標準,讓用戶使_一部手機就能行遍全球。藍牙,EDGE,3G,andWiFi是一種短距離的無線連接技術,在短距離可以實現(xiàn)話音和數據的無線傳輸。EDGE(EnhaIlcedDataRateforGSMEvolution),是增強型數據速率GSM演進技術。Camera,GPS,compass,andaccelerometer:(依賴硬件)GPS(GlobalPositioningSystem)全球定位系統(tǒng)。它是一個由覆蓋全球的24顆1J星組成的衛(wèi)星系統(tǒng)。Compass是個開放源代碼的JAVA搜索引擎框架。強大的開發(fā)環(huán)境:包括一個設備模擬器,調試工具,存和性能檢測,以與EclipseIDE的開發(fā)插件。Eclipse是個集成開發(fā)環(huán)境。1.2Android架構Android的架構是Linux核、C/C++函數庫、Dalvik虛擬機、應用框架以與關鍵應用程序構成的,如圖1所示,通過編譯基于框架的應用程序可以降低開發(fā)負荷。應用軟件原則上是在DalvikVM上運行的。圖SEQ圖表\*ARABIC1.1Android的架構1.2.1關鍵應用程序Android平臺包含一些關鍵應用程序,如收發(fā)客戶端程序、短信收發(fā)程序、日歷和網頁瀏覽器等,開發(fā)者可以在其平臺上開發(fā)更多有特色的應用程序。開發(fā)語言是Java。1.2.2應用程序框架Android應用程序的開發(fā)基于框架和組件。Android本身已在其框架中提高了許多的組件供應用程序調用,當然開發(fā)者也開放新的組件,并將組件放入應用程序框架中,以供自己和其它應用程序調用。1.2.3C/C++函數庫Android應用程序框架之下是一套C/C++函數庫,它們服務于Android應用程序組件,其功能通過組件間接提供給開發(fā)者。這些函數庫包括:標準C函數庫、媒體功能庫、瀏覽器引擎、2D和3D圖形庫、基于WEB應用的的安全協(xié)議SSL、用于點陣和矢量字體渲染的FreeType以與SQLite引擎等。1.2.4Java程序運行環(huán)境Android的Java程序運行環(huán)境包含一組Java核心函數庫與Dalvik虛擬機,它們有效地優(yōu)化了Java程序的運行過程。所有的Android應用都運行在它自己的進程里,該進程是一個Dalvik虛擬機的實例,Dalvik被設計成能在一臺設備上高效的運行多個虛擬機實例。Dalvik虛擬機的可執(zhí)行文件被封裝成Dalvik可執(zhí)行格式(.dex)。這是被優(yōu)化過的最小存依賴的格式。Java編譯器(dx工具)將注冊了的和運行時用到的類編譯成.dex格式。Dalvik虛擬機依賴于底層Linux核提供的功能,如線程機制,和存管理機制等。1.2.5Linux核Android系統(tǒng)平臺是基于優(yōu)化了的Linux核,是其系統(tǒng)平臺的核心。它提供諸如存管理、進程管理、設備驅動等服務,同時也是手機軟硬件的連接層,提供了一個屏蔽層用于屏蔽硬件和上層軟件。1.3Android應用的構成和工作機制對于一個Android應用程序來說,是由Activity、IntentReceiver、Service、ContentProvider四部分組成,但并不是每一個Android應用程序都必須由這四部分組成。在應用程序中使用時,需要在配置文件AndroidMainfest.xml中進行配置。這個配置文件是每個Android應用程序所必需的,用于定義應用程序的組件、組件的功能以與必要條件等。ActivityActivity是構成應用程序中最重要的構造塊,在Android應用程序中,幾乎都是通過Activity來與用戶進行交互,所以Activity主要負責的就是創(chuàng)建與用戶進行交互的顯示窗口,你可以在這些窗口里通過調用setContentView(View)方法來顯示你自己的用戶界面。圖1.SEQ圖表\*ARABIC2Activity狀態(tài)變換路徑圖(1)活動生命周期活動(Activity)在系統(tǒng)中以活動棧的形式進行管理。當一個新的活動啟動后,被放到了棧項,成為了運行活動,而新活動之前的活動在活動棧里總位于新活動之下,直到新的活動退出才重新回到前臺。從圖2Activity狀態(tài)轉換路徑圖中可以看出,Activity有三個關鍵的循環(huán):1)活動的整個生命期:從首次調用onCreate(Bundle)開始,到最終調用onDestroyO結束。在onCreate()中進行所有初始化,在onDestroyO時進行清理工作,釋放資源。2)活動的可見生命期:從調用onStart()開始,到onStop()被調用為止。在這段時間,即使活動不與用戶進行交互,用戶也可以在屏幕上看到它。在這兩個方法調用之間,可以維護活動顯示給用戶的資源。onStart()和onStop()方法可以多次調用,因為活動隨時可以在可見和隱藏之間進行轉換。3)活動的后臺生命期:從調用onResume()開始,到onPause()被調用為止。在這段時間活動處于其它所有活動之前,并與用戶進行交互。一個活動可以不斷在resumed狀態(tài)和paused狀態(tài)之間變換。(2)活動之間的切換Android使用了Intent類來實現(xiàn)活動之間的切換工作。Intent負責對應用中一次操作的動作、動作涉與的數據和附加數據進行描述。根據Intent的描述,負責找到對應的組件,將Intent傳遞給調用的組件并完成組件的調用。因此,Intent起著一種媒體中介的作用,專門提供組件互相調用的相關信息,實現(xiàn)調用者與被調用者之間的解耦。在應用中,我們可以以兩種形式來使用Intent:直接Intent,指定了component屬性的Intent,通過指定具體的組件類,通知應用啟動對應的組件。間接Intent,沒有指定comonent屬性的Intent,則需要包含足夠的信息,這樣系統(tǒng)才能根據這些信息,在所有的可用組件中,確定滿足此Intent的組件。IntentReceiverIntentReceivert是用于對外部事件的響應,當外部事件發(fā)生時,會使用NotificationManager通知用戶。當一個IntentReceiver被觸發(fā)時,系統(tǒng)會在需要的時候啟動對應的應用程序。如在本系統(tǒng)中,當用戶正在其它界面進行操作時,有好友發(fā)送消息過來,就會以通知的形式發(fā)送到當前界面的正上方來通知用戶。各種應用還可以通過使用Context.broadcastIntent()將它們的IntentReceiver廣播給其它的應用程序,實現(xiàn)應用之間的通訊。ServiceService是提供連續(xù)信息的應用程序。它是運行于應用程序后臺的服務,在用戶進行其它活動的時候,這個服務將一直運行在基于Android平臺的即時通訊系統(tǒng)的研究與實現(xiàn)后臺直到用戶停止該服務或服務運行結束。本系統(tǒng)客戶端擴展功能的閱讀器就是采用Service來進行設計和開發(fā)的,使用戶可以邊聊天邊看書。ContentProviderContentProvider應用程序能夠將它們的數據保存到文件、SQL數據庫和其它的存儲設備中。當應用程序需要使用存儲設備中的數據時,可以使用ContentProvider來完成。使用ContentProvider能夠靈活的替換底層使用的存儲設備,使開發(fā)者可以專著于應用邏輯的開發(fā),不用考慮底層存儲設備的細節(jié),從而使應用系統(tǒng)具有良好的數據。1.4Android手機平臺控件研究1.4.1Android系統(tǒng)控件與自定義控件的比較研究在GoogleAndroid中給出了非常多的絢麗的控件,但是在某些時候需要的實現(xiàn)某些功能的時候,系統(tǒng)的控件顯得有些笨拙和難以控制,如,在本系統(tǒng)中,本打算使用系統(tǒng)自帶的控件TabLayout顯示頻道,但是現(xiàn)在的過程中,發(fā)現(xiàn),該控件的每一個Tab之間有一定距離的間隔,且每一個Tab上面的圖片很難控制其顯示的方式和顯示的效果,因此該綜合美觀和操作性的基礎上,決定不用該控件來顯示頻道切換界面。而才用筆者自定義的控件——TabHost,此控件從需求上必須能彌補系統(tǒng)控件TabLayout的不足,且能易于用戶操作。1.4.2A在GoogleAndroid移動平臺中,自定義控件都大致可以分成三部分。第一,界面的實現(xiàn);第二,功能的實現(xiàn);第三,控件的調用。(1)界面的實現(xiàn)。在GoogleAndroid平臺中所有的控件都是繼承了View這個超類,所以在本軟件自定義一個控件的時候也需要繼承這個超類,但是有些情況下不需要繼承這個超類而是繼承它的子類,如基于GoogleAndroid平臺的手機電子書閱讀器中,就繼承了這個超類的子類ViewGroup,即:publicclassTabControllerextendsViewGroup{}?;诖宋覀兙偷玫搅吮鞠到y(tǒng)要實現(xiàn)的那個控件的最基本的那部分——界面的實現(xiàn)。(2)功能的實現(xiàn)。要實現(xiàn)一個控件,讓其能產生特定的效果,本系統(tǒng)需要自己來重寫父類某些甚至是全部的構造函數,如在基于GoogleAndroid平臺的電子書閱讀器中,筆者就重寫了protectedvoidonLayout(booleanchanged,intl,intt,intr,intb){……… } protectedvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){………. } protectedvoidonFinishInflate(){…………}等方法。在方法中實現(xiàn)所需的功能,這樣一個自定義控件就好了。(3)控件的調用。在Android系統(tǒng)中,控件的調用非常的方便,如系統(tǒng)控件TextView,其調用方式如下:<TextView…….></TextView> 但是當使用自定義控件的時候,其調用方式就與其有很大的區(qū)別。在自定義控件中,其調用的形式是通過命名空間的形式來進行調用的。如,在基于GoogleAndroid移動平臺的手機電子書閱讀器中,調用自定義控件的方式如下:<.baina.viewtools.TabController></.baina.viewtools.TabController>第二章手機電子閱讀器需求分析為了開發(fā)出真正滿足用戶需求的軟件產品,需要對開發(fā)產品做出需求分析。對軟件的需求的合理把握是軟件開發(fā)周期中非常重要的一個環(huán)節(jié),本章將對手機閱讀器作較為全面的需求分析。2.1概述隨著手機功能不斷增強,手機閱讀器已成為智能手機重要軟件之一。開發(fā)一款符合廣大用戶需求的手機閱讀器有很好的市場前景和意義本項目是以Java語言為基礎,結合Android開發(fā)平臺,并利用Android提供SDK,實現(xiàn)在Android平臺上的手機閱讀器。該項目不僅滿足了普通電子書閱讀器的閱讀功能還添加了書寫功能。可以識別txt格式和doc格式的文件;可以對書籍進行刪除;對于圖書的閱讀可以選擇不同的書紙背景;對閱讀的字體可以進行大小,顏色的選擇設置;該系統(tǒng)還有記憶功能,利用Android自帶的Sqlite數據庫,對書簽進行存儲;還有一些常用的軟件功能如:旋轉屏幕、后退和退出等。2.2手機閱讀器功能需求該開發(fā)項目作為Android平臺上的應用軟件,它具有與用戶交互的界面,所以此閱讀器可以從用戶操作的界面分為四部分:書籍列表界面、日志列表界面、書寫界面、書簽列表界面和閱讀界面。我們從這些界面分開進行分析。2.2.書籍列表和日志列表功能一樣,在SD中添加圖書到列表之中。它們用例圖如下圖2.1所示。添加添加刪除用戶打開進入閱讀界面圖2.1用戶需求表2.2.書寫界面里是對讀書后的感想、今天心情的記錄或者編寫自己的書籍,保存在SD卡中,顯示在日志列表中。我們也可以對寫過的書籍進行追加編輯。2.2.3書簽列表中列出我們閱讀書時以方便下次閱讀而的保存的書簽。2.2.4在閱讀界面中我們可以調整字體大小、字體顏色、設置背景、閱讀界面的旋轉、關于、退出等操作。用例圖如圖2.2所示字體大小字體大小字體顏色用戶界面背景關于退出界面旋轉后退圖2.2用戶功能表2.3手機性能需求1.系統(tǒng)要求Android系統(tǒng)2.2版本以上,對以后繼續(xù)進行升級開發(fā)有可延續(xù)性。2.靈活性軟件基于Android操作系統(tǒng),是基于組件的開發(fā)方式。數據庫Android自帶數據庫SQLite。4.時間特性的要求軟件的速度要在用戶可接受的圍能擴展需求。5.軟件特性要求軟件運行速度要在用戶可接受的圍之,對流量、電量等消耗要在用戶可接受圍之。2.4數據需求1.電子書存儲到SD卡2.書簽存儲到數據庫中,存儲著圖書地址,頁號3.背景圖片在項目本身第三章手機電子書閱讀器總體設計3.1技術框架設計該項目是基于Android應用程序框架,并且采用模塊化的設計模式,這種設計模式,給以后項目擴展和維護帶來了很大的便利。通過對該項目的主要功能分析分為書籍和日志管理、閱讀管理、書寫書簽管理,結構圖如圖3.1所示。電子書閱讀器電子書閱讀器書籍和日志管理閱讀管理書簽管理掃描添加刪除書籍打開閱讀字體大小字體顏色閱讀背景添加書簽關于后退界面刪除書簽退出應用書寫日志書寫管理圖3.1技術框架表3.2功能模塊設計根據系統(tǒng)的總體結構圖,對其功能進行如下設計。書籍和日志管理模塊書籍和日志模塊雖然不在同意界面上,但是他們的功能大致一樣。都是對SD卡的文件夾進行掃描顯示列表,可以刪除文件和文件的容讀取。閱讀管理在列表中選中文件進行讀取,閱讀界面顯示文件容??梢詫﹂喿x字體的大小、顏色;閱讀界面背景;書簽的添加和一些應用程序應該具有的一些功能進行設置等。書寫管理我們可寫日志或者寫書到SD卡中書簽管理;書簽的添加時在閱讀界面進行添加到SQLite數據庫中,在書簽列表中我們顯示出數據庫中的書簽。對書簽使用和刪除操作。3.3數據庫介紹我們使用Android自帶的SQLite數據庫。我們使用數據庫只需要存放書簽。圖書在SD卡中存放,并不放在數據庫中。建立數據庫的名稱:book.db只包括1表:Book_mark表: 屬性數據類型主鍵_idIntegerYesBooknameVarcharNomarkVarcharNourlVarcharNo手機電子書閱讀器的設計與實現(xiàn)4.1項目結構項目在編寫是的代碼結構。如圖4.1所示:圖4.1項目結構表圖4.1(續(xù))項目結構表4.2項目描述數據庫的實現(xiàn)由于只有書簽才使用了數據庫,所以建立的數據庫是十分簡單的。建表語句:Stringsql="createtablebook_mark(_idintegerprimarykeyautoincrement,bookname,mark,url)";界面監(jiān)聽實現(xiàn)主頁面主頁面包含書籍模塊、日記模塊、書寫模塊和書簽模塊。用選項卡對這四個模塊相互切換代碼:ReaderActivity.activityList.add(this);//添加該Activity到集合中host=getTabHost();host.setBackgroundResource(R.drawable.a5);finalTabSpectabSpec1=host.newTabSpec("ts1"); tabSpec1.setContent(newIntent(HomeActivity.this,BookListActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); tabSpec1.setIndicator("圖書列表",getResources().getDrawable(R.drawable.b_list));finalTabSpectabSpec2=host.newTabSpec("ts2"); tabSpec2.setContent(newIntent(HomeActivity.this,NotesListActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); tabSpec2.setIndicator(“日志列表",getResources().getDrawable(R.drawable.note)); TabSpectabSpec3=host.newTabSpec("ts3"); tabSpec3.setContent(newIntent(HomeActivity.this,WriteNoteActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); tabSpec3.setIndicator("寫意生活",getResources().getDrawable(R.drawable.writer)); TabSpectabSpec4=host.newTabSpec("ts4"); tabSpec4.setContent(newIntent(HomeActivity.this,BookMark.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); tabSpec4.setIndicator("書簽列表",getResources().getDrawable(R.drawable.bookmark));host.addTab(tabSpec1);host.addTab(tabSpec2);host.addTab(tabSpec3);host.addTab(tabSpec4);書籍和日志模塊雖然不在同意界面上,但是他們的功能大致一樣?!皶斜怼憋@示的是掃描SD下除了notes文件夾下的所有txt和doc文件。而“日志列表”顯示的則只是notes文件夾下的txt文件。如圖4.2(圖書列表),我們對列表中的文件進行點擊就讀取文件容。圖4.2圖書列表書寫模塊:我們可寫日志或者寫書到SD卡下的notes文件夾下中,如果沒有此文件夾,則先創(chuàng)建文件夾在保存在其下文件。我們保存后寫的日志或文章在日志列表中顯示出來我們如果想在日志繼續(xù)撰寫日志列表的文件。直接在“寫意生活”模塊進行書寫。書寫后的文字追加到notes文件加下的已存txt文件里。如圖4.3。圖4.3寫意生活書簽管理:書簽的添加時在閱讀界面進行添加到SQLite數據庫中,在書簽列表中我們顯示出數據庫中的書簽。如圖4.4。點擊選中的書簽,檢索有此書簽名在數據庫查詢頁數和圖書的地址。然后傳入閱讀界面,繼續(xù)閱讀上次的容。如圖4.4書簽列表我們長按“圖書列表”或“日志列表”某列中的文件就可以刪除文件.代碼如下:*長按列表中某文章,刪除該文章*/listView.setOnItemLongClickListener(newOnItemLongClickListener(){OverridepublicbooleanonItemLongClick(AdapterView<?>arg0,Viewarg1,intposition,longarg3){finalStringuri=name.get(position).get("url").toString(); AlertDialog.Builderbuilder=newAlertDialog.Builder(BookListActivity.this) .setTitle("提示") .setMessage("你確定要刪除?。?!") .setPositiveButton("確定",newDialogInterface.OnClickListener(){OverridepublicvoidonClick(DialogInterfacedialog,intwhich){ Filefile=newFile(uri); file.delete(); Intentintent=newIntent(BookListActivity.this,HomeActivity.class); HomeActivity.tabId=0; startActivity(intent); } }); builder.setNegativeButton("取消",null); builder.show();returnfalse; } });閱讀管理在列表中選中文件進行讀取,讀取結果的頁面,如圖4.5。圖4.5閱讀頁面在閱讀界面設置菜單,如圖4.6。圖4.6菜單在閱讀界面的菜單中點擊“字體”菜單,彈出對話框對字體進行設置,包括字體大小,顏色。用進度條設置字體大小,用下拉菜單對字體顏色進行設置,在對選中字體大小和顏色后,點擊確定按鈕,確定字體樣式的設置,點擊取消則不對閱讀文字進行設置。如圖4.7。圖4.7字體設置在閱讀界面的菜單中點擊“背景”菜單。對閱讀界面的背景進行設置,通過使用Gallery(畫廊)組件來實現(xiàn)圖片的選擇切換。通過ImageView組件對選中的圖片在對話框中顯示效果,確定按鈕是設置背景,取消則是取消設置。如圖4.8。圖4.8背景在閱讀界面的菜單中點擊“旋轉”菜單。則是對閱讀界面的旋轉,屏幕旋轉后如圖4.9.圖4.9旋轉在閱讀界面的菜單中點擊“后退”菜單。調用finish()方法,結束此Activity,從而退出閱讀界面返回列表界面。在閱讀界面的菜單中點擊“書簽”菜單。彈出“保存書簽”對話框。在EditText中可以設置自己要存的書簽名。也可以用默認書簽名(默認書簽名是‘書名+頁號’)。如圖4.10。保存書簽時,向book_mark表中,插入書簽名、獲取的頁數和圖書的路徑。書簽保存后可以再“書簽列表“中查看自己保存的書簽。圖4.10保存書簽在閱讀界面的菜單中點擊“更多”菜單。包含兩個子菜單“關于”和“退出”如圖4.11。子菜單“關于”容如圖4.12.圖4.11關于圖4.12關于界面第五章項目技術總結5.1技術創(chuàng)新與特點某些電子書閱讀器只有閱讀模塊,該電子書閱讀器不僅可以閱讀文件,還可以書寫日志、心情、和圖書。我們有時候一次沒有寫完,下次我們只要命名同樣的文件名,還可以追加容。該電子書使用資源小,只有在使用書簽的時候才使用了SQLite數據庫。減輕了手機的負荷。5.2程序的擴展功能本程序因為設計制作的時間和精力有限,僅僅只是達到之前預想的各種功能的實現(xiàn),并沒有達到真實意義上的完美,在測試過程中發(fā)現(xiàn)還有很多的功能可以進行擴展,此部分將會在以后的完善和程序升級過程中逐步完善。本程序界面問題的完善針對本程序界面方面,因為時間有限,本程序的所有主題和背景燈均采用網絡資源進行填充,使得本程序的界面顯示比較單調缺乏個人創(chuàng)意,在日后完善的過程中,可以通過專人設計或者自己進行圖片處理使得本程序的界面變的更加優(yōu)化,讓用戶在閱讀書籍的時候有更加絢麗的視覺體驗。與其他應用程序的同步處理在測試過程中,本程序運行穩(wěn)定,沒有發(fā)現(xiàn)與其他程序不兼容的問題,所以在以后的功能擴展方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論