畢業論文基于Android平臺的手機電子書閱讀器設計_第1頁
畢業論文基于Android平臺的手機電子書閱讀器設計_第2頁
畢業論文基于Android平臺的手機電子書閱讀器設計_第3頁
畢業論文基于Android平臺的手機電子書閱讀器設計_第4頁
畢業論文基于Android平臺的手機電子書閱讀器設計_第5頁
已閱讀5頁,還剩44頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、保密類別_ 編 號_本 科 畢 業 論 文基于Android平臺的手機電子書閱讀器設計院(系)別 傳媒技術學院專 業 數字媒體技術班 級08數媒技術(影視)姓 名 學 號 指導教師 學院2012年 4 月 12 日摘 要在科技日益發達的今天,社會競爭越來越激烈,這要求人們不斷的攝取信息來充實自己。要求人們能隨時隨地的了解并獲取所需的信息。在這種情況下,電子書閱讀器剛好滿足了人們便捷地獲取信息的需求。本文設計的手機電子書閱讀器是基于Android平臺設計的,Android平臺是目前發展最快、最具市場前景的智能手機操作系統。本系統是根據Google Android 平臺用戶的喜好和其平臺的特性而設

2、計的,在Google Android平臺自帶的SDK1.5環境下,運用Eclipse,Photoshop等相關工具進行開發的。本文介紹了Google Android 開發的流程,討論了基于Android平臺應用程序開發的關鍵技術,對手機電子書閱讀器做了詳細的需求分析,并重點介紹了基于Android 平臺的手機電子書閱讀器的總體設計,主要包括手機電子書閱讀器的架構設計、各功能模塊的設計與實現。本文設計的手機電子書閱讀器通過了功能和性能方面的測試,證明了本文設計方案的可行性。通過對基于Android平臺手機電子書閱讀器的設計與實現的介紹,希望能為今后開發出功能更強大的閱讀器提供有益的借鑒。關鍵詞:

3、 Android平臺;電子書閱讀器;JavaABSTRACTToday,its a more advanced in technology, increasingly competitive society, which requires people to the intake of information to enrich themselves. Requires people to always be in the know and get the required information. In this case, the news reader just to meet the

4、needs of people know of external objects. In this paper the ebook reader is mobile phone design based on the Android platform of the design, Android platform is the fastest developing, the most market prospect of smartphone operating system.In this system, Google Android platform is based on the use

5、rs preferences and characteristics of its platform designed, in Google Android platform, comes with SDK1.5 environment, the use of the Eclipse, PhotoShop and other tools for development. This article introduces the development process of the Google Android, discusses the application development base

6、d on the Android platform of the key technology, to do a detailed analysis of the demand for Mobile phone ebook and introduces the focus on Mobile phone ebook reader overalls design. includes the ebook reader mobile phone design mainly, architecture design and the function of the system.In this pape

7、r the ebook reader through mobile phone design of the function and performance test, proved the feasibility of this design. Through to the Android platform based on mobile phone ebook reader design and implementation of the introduction, the hope for the development in the future more powerful offer

8、 beneficial reference for the reader.Keywords :Android; E-book reader; Java目 錄 TOC o 1-2 h z u HYPERLINK l _Toc322855401 摘 要 PAGEREF _Toc322855401 h I HYPERLINK l _Toc322855402 ABSTRACT PAGEREF _Toc322855402 h II HYPERLINK l _Toc322855403 緒 論 PAGEREF _Toc322855403 h 1 HYPERLINK l _Toc322855404 (一)課題

9、研究背景及意義 PAGEREF _Toc322855404 h 1 HYPERLINK l _Toc322855405 (二)國內外研究現狀 PAGEREF _Toc322855405 h 1 HYPERLINK l _Toc322855406 (三)論文組織結構及安排 PAGEREF _Toc322855406 h 3 HYPERLINK l _Toc322855407 一、相關理論及關鍵技術 PAGEREF _Toc322855407 h 3 HYPERLINK l _Toc322855408 (一)Andriod特征 PAGEREF _Toc322855408 h 4 HYPERLINK

10、 l _Toc322855409 (二)Andriod架構 PAGEREF _Toc322855409 h 4 HYPERLINK l _Toc322855410 (三)Andriod應用的構成和工作機制 PAGEREF _Toc322855410 h 6 HYPERLINK l _Toc322855411 (四) Andriod手機平臺控件研究 PAGEREF _Toc322855411 h 8 HYPERLINK l _Toc322855412 二、手機電子閱讀器需求分析 PAGEREF _Toc322855412 h 9 HYPERLINK l _Toc322855413 (一)概述 P

11、AGEREF _Toc322855413 h 9 HYPERLINK l _Toc322855414 (二)手機閱讀器功能需求 PAGEREF _Toc322855414 h 9 HYPERLINK l _Toc322855415 (三)手機性能需求 PAGEREF _Toc322855415 h 13 HYPERLINK l _Toc322855416 三、手機電子書閱讀器總體設計 PAGEREF _Toc322855416 h 13 HYPERLINK l _Toc322855417 (一)軟件架構設計 PAGEREF _Toc322855417 h 13 HYPERLINK l _Toc

12、322855418 (二)軟件結構設計 PAGEREF _Toc322855418 h 14 HYPERLINK l _Toc322855419 (三)功能模塊設計 PAGEREF _Toc322855419 h 15 HYPERLINK l _Toc322855420 (四)系統數據流設計 PAGEREF _Toc322855420 h 15 HYPERLINK l _Toc322855421 四、手機電子書閱讀器的設計與實現 PAGEREF _Toc322855421 h 15 HYPERLINK l _Toc322855422 (一)數據庫設計 PAGEREF _Toc322855422

13、 h 15 HYPERLINK l _Toc322855423 (二)關鍵代碼實現 PAGEREF _Toc322855423 h 17 HYPERLINK l _Toc322855424 五、系統測試 PAGEREF _Toc322855424 h 26 HYPERLINK l _Toc322855425 (一)Android手機系統測試之打斷事件 PAGEREF _Toc322855425 h 26 HYPERLINK l _Toc322855426 (二)測試中發現的問題及修復 PAGEREF _Toc322855426 h 27 HYPERLINK l _Toc322855427 (三

14、)本程序的擴展功能 PAGEREF _Toc322855427 h 27 HYPERLINK l _Toc322855428 (四)測試結果 PAGEREF _Toc322855428 h 28 HYPERLINK l _Toc322855429 結 語 PAGEREF _Toc322855429 h 31 HYPERLINK l _Toc322855430 參考文獻 PAGEREF _Toc322855430 h 32 HYPERLINK l _Toc322855431 后 記 PAGEREF _Toc322855431 h 33緒 論手機已經成為了生活中不可缺少的通訊設備,沒有手機有時會讓

15、人覺得寸步難行。手機不僅具備傳統的打電話、發短信等基本的功能,而且具有強大的處理能力和可擴展能力,能進行電子圖書的閱覽、基于3G網絡實現高速數據傳輸、第三方瀏覽軟件的運用等,越來越多的功能和業務將被開發出來并大規模的應用。正基于此,Google于2007年11月5日宣布推出基于Linux平臺的開源手機操作系統,號稱首個為移動終端打造的真正開放和完整的移動軟件Android。(一)課題研究背景及意義當今社會手機是已經成為了生活中不可缺少的通訊設備,隨著科技的發展手機的功能也越來越強大,手機電子閱讀器是手機中的一種重要軟件,其真正意義上指的是一個可以閱讀設備,是專門用來閱讀電子書的,隨著二十一世紀

16、數字信息化的不斷興起,電子閱讀器的市場競爭也變得越來越激烈。時下社會的進步更是讓人們的生活越來越忙碌,抱著厚厚的書本穿梭于大街小巷已經不再適應這個忙碌的時代。當人們奔波于不同的城市、出沒在不同的場所、搭乘不同的交通工具的時候,手機電子閱讀器就可以為人們提供方便快捷的閱讀平臺,它的作用就像一座橋梁,在我們不方便利用書本或者網絡的時候提供一個更快更方便的平臺,讓人們能隨時的閱讀自己喜歡的電子圖書。 就是因為手機電子閱讀器方便快捷的優點,使得人們把用手機電子閱讀器閱讀閱讀電子書當做當科技時代的一種時尚。這也讓手機電子閱讀器在人們的生活中扮演的角色越來越重要。(二)國內外研究現狀二十世紀七十年代,著名

17、軟件工程師Andsan.Fandamu在美國布朗大學闡述通過計算機創建和閱讀文件的時候首次提出了電子書1 趙繼海.電子書閱讀器的發展及其對圖書館的影響J.大學圖書館學報,2001,19(4)1 趙繼海.電子書閱讀器的發展及其對圖書館的影響J.大學圖書館學報,2001,19(4)最早出現在市場上的電子書閱讀器是美國Soft Book公司的Soft Book和Nov.Media公司的RocketBook2 高峰,李玲試論電子書對圖書館的影響J山西廣播電視大學學報,2007,12(1)。它們都具有美觀的外型形狀像一本古典的精裝書,存儲容量分別為8MB和32MB的內存,分別可以容納5,000和32,0

18、00多個電子頁的信息,與計算機串口相連,可以從Soft Book和Nuvo Media的網上售書連鎖店,下載書籍和期刊。2000年8月,美國微軟公司發布了一個可供人們閱讀電子書的應用軟件Microsoft Reader,這種閱讀器軟件的核心技術是Clear Type1 祁英紅幾種常用電子書刊閱讀器的比較J甘肅科技縱橫,2006,35(6),微軟稱之為“對液晶顯示屏具有革命性的變革”,它是一種能使文字在顯示器上的顯示效果像印在紙上一樣平滑清晰的字符顯示技術,這種技術大大提高了屏幕的分辨率和清晰度,使讀者能夠獲得最接近傳統書的閱讀效果。同時南開大學津科公司開發了一款閱讀不耗電的電子書閱讀器,該電子

19、書閱讀器已經面市并將投人大規模生產。它采用了華人科學家吳葆剛博士發明的“2 高峰,李玲試論電子書對圖書館的影響J山西廣播電視大學學報,2007,12(1)1 祁英紅幾種常用電子書刊閱讀器的比較J甘肅科技縱橫,2006,35(6)2 周康電子書悄悄走近我們J出版參考,2006,(27)目前主流的電子書閱讀器有熊貓看書,它是網龍公司自主研發并出品的一款免費閱讀軟件,支持在線書籍查詢,在線書籍分類閱讀,書籍收藏與撤銷收藏,新聞分類閱讀,新聞訂閱分類與撤銷訂閱。是基于iPhone/Windows Mobile/Symbian/Android/M8/Kjava等多手機平臺上的全能免費閱讀軟件。全面支持T

20、XT、ZIP、HTML、UMD、NDB等多種格式,同時還支持JPG、BMP、PNG、GIF等多種格式圖像查看。自適應中文編碼,自動排版,支持RSS新聞離線閱讀。電子閱讀現在是國家和業內非常重視的一個新興產業,它與國家提倡的“自主創新,增強核心競爭力”、開展低碳、節能環保的社會環境相吻合,很多廠商、科研院所都將目光放到了這個原本沒有足夠重視的領域上。同時,手機電子書閱讀器作為廣大網民經常使用的一個工具,在手機閱讀市場逐漸擴大的時候,人們對于閱讀的方便性和各種功能設置都有了更高的要求。雖然現在手機電子書閱讀器功能己經比較完善,但是離人們的期望還存在較大的距離,比如改善人們的閱讀環境,使人們讀起來不

21、感到疲倦而且充滿樂趣,同時現在的閱讀器多媒體性能還不夠完善。因此,手機電子書閱讀器的應用研究還大有潛力可挖。(三)論文組織結構及安排本文共分為五部分,內容安排如下所示。第一部分緒論,主要介紹本課題研究的背景及意義,國內外研究現狀,本文的組織結構及安排。第二部分相關理論及關鍵技術,介紹了Android特征,Android架構和Android應用的構成和工作機制等內容,研究了Android控件。第三部分手機電子書閱讀器需求分析,主要介紹了閱讀器各功能模塊需求。第四部分手機電子書閱讀器總體設計,分別從這幾個角度進行描述:軟件架構圖,軟件結構圖和功能模塊設計。第五部分手機電子書閱讀器詳細設計與實現,主

22、要介紹了開發環境,關鍵模塊代碼實現和系統測試。第六部分結語,對全文進行了總結和展望。一、相關理論及關鍵技術 隨著計算機的廣泛運用,手機市場的迅速發展,各種音頻視頻資源也在網上廣為流傳,這些資源看似平常,但已經漸漸成為人們生活中必不可少的一部分了。于是各種手機播放器也緊跟著發展起來,但是很多播放器一味追求外觀花哨,功能龐大,對用戶的手機造成了很多資源浪費,比如CPU,內存等的占用率過高,在用戶需要多任務操作時,受到了不小的影響,帶來了許多不便,而對于大多數普通用戶,許多功能用不上,形同虛設。針對以上各種弊端,選擇了開發多語種的音頻視頻播放器,將各種性能優化,繼承播放器的常用功能,滿足一般用戶(如

23、聽歌,看電影)的需求,除了能播放常見格式的語音視頻文件,高級功能:還能播放RMVB格式的視頻文件。此外,還能支持中文、英文等語言界面。Android是一個移動設備的軟件平臺,是由Linux+Java構成的開源軟件,它提供包括SDK、Key Apps、Middleware、Linux Kernel四個部分在內的全套手機軟件方案。它開放了基于Linux內核以上的開發工具,從而保證了內容的可移植性和多樣性。Android平臺為開發應用程序提供了一套很好的框架,我們可以在這個平臺的基礎上開發不同的應用程序,也可以開發新的組件供應用程序調用1 高煥堂1 高煥堂. 應用框架原理與程序設計 36 技M. 臺

24、灣:MISOO 設計中心,2008.(一)Andriod特征Dalvik虛擬:Android采用的Java虛擬機是自主開發的代號為Dalvik的虛擬機技術,在保證API方面兼容的同時Dalvik針對移動手機進行了大幅優化,占用資源更小,運行效率更高。內嵌瀏覽器:基于開源的瀏覽器網頁排版引擎WebKit。優化的圖形:強大的自定義二維圖形庫?;贠penGL ES 1O標準的3D圖形功能,在移動3D開發中有著至關重要的地位。SQLite數據庫:SQLitet提供結構化的數據存儲。它是一款輕型免費的且開源的數據庫,它的設計目標是嵌入式的,它占用的資源非常低、需要的內存空間少、處理速度比較快和支持事務

25、處理功能等。多媒體支持:支持各種通用的音視頻和靜態圖像格式,如MP3、JPG、PNG等。Open Core是Android多媒體框架的核心,所有Android平臺的音視頻采集,播放的操作都是通過它來實現的。通過Open Core,程序員可以方便快速的開發出想要的多媒體應用程序。GSM技術:(依賴硬件)Global System for Mobile Communications,全球移動通訊系統,俗稱“全球通”,是第二代移動通信技術,其開發El的是讓傘球各地可以共同使用一個移動電話網絡標準,讓用戶使_一部手機就能行遍全球。藍牙,EDGE,3G,and WiFi是一種短距離的無線連接技術,在短距

26、離內可以實現話音和數據的無線傳輸。EDGE(EnhaIlced Data Rate for GSM Evolution),是增強型數據速率GSM演進技術。Camera,GPS,compass,and accelerometer:(依賴硬件)GPS(Global Positioning System)全球定位系統。它是一個由覆蓋全球的24顆1J星組成的衛星系統。Compass是個開放源代碼的JAVA搜索引擎框架。強大的開發環境:包括一個設備模擬器,調試工具,內存和性能檢測,以及EclipseIDE的開發插件。Eclipse是個集成開發環境。1 張鵬,姜昊,許力.Eclipse插件開發M.1 張鵬

27、,姜昊,許力.Eclipse插件開發M.北京:電子工業出版社,2008(二)Andriod架構Android的架構是Linux內核、C/C+函數庫、Dalvik虛擬機、應用框架以及關鍵應用程序構成的,如圖1所示,通過編譯基于框架的應用程序可以降低開發負荷。應用軟件原則上是在Dalvik VM上運行的。圖 SEQ 圖表 * ARABIC 1 Android的架構1 張鵬.Eclipse插件開發學習筆記Z.1 張鵬.Eclipse插件開發學習筆記Z.北京:電子工業出版社,2008關鍵應用程序Android平臺內包含一些關鍵應用程序,如郵件收發客戶端程序、短信收發程序、日歷和網頁瀏覽器等,開發者可以

28、在其平臺上開發更多有特色的應用程序。開發語言是Java。應用程序框架Android應用程序的開發基于框架和組件。Android本身已在其框架中提高了許多的組件供應用程序調用,當然開發者也開放新的組件,并將組件放入應用程序框架中,以供自己和其它應用程序調用。C/C+函數庫Android應用程序框架之下是一套C/C+函數庫,它們服務于Android應用程序組件,其功能通過組件間接提供給開發者。這些函數庫包括:標準C函數庫、媒體功能庫、瀏覽器引擎、2D和3D圖形庫、基于WEB應用的的安全協議SSL、用于點陣和矢量字體渲染的FreeType以及SQLite引擎等。Java程序運行環境Android的J

29、ava程序運行環境包含一組Java核心函數庫及Dalvik虛擬機,它們有效地優化了Java程序的運行過程。所有的Android應用都運行在它自己的進程里,該進程是一個Dalvik虛擬機的實例,Dalvik被設計成能在一臺設備上高效的運行多個虛擬機實例。Dalvik虛擬機的可執行文件被封裝成Dalvik可執行格式(.dex)。這是被優化過的最小內存依賴的格式。Java編譯器(dx工具)將注冊了的和運行時用到的類編譯成.dex格式。Dalvik虛擬機依賴于底層Linux內核提供的功能,如線程機制,和內存管理機制等。Linux內核Android系統平臺是基于優化了的Linux內核,是其系統平臺的核心

30、。它提供諸如內存管理、進程管理、設備驅動等服務,同時也是手機軟硬件的連接層,提供了一個屏蔽層用于屏蔽硬件和上層軟件。(三)Andriod應用的構成和工作機制對于一個Android應用程序來說,是由Activity、 Intent Receiver 、Service、Content Provider四部分組成,但并不是每一個Android應用程序都必須由這四部分組成。在應用程序中使用時,需要在配置文件AndroidMainfest.xml中進行配置。這個配置文件是每個Android應用程序所必需的,用于定義應用程序的組件、組件的功能以及必要條件等。ActivityActivity是構成應用程序中

31、最重要的構造塊, 在Android應用程序中,幾乎都是通過Activity來與用戶進行交互,所以Activity主要負責的就是創建與用戶進行交互的顯示窗口,你可以在這些窗口里通過調用setContentView(View)方法來顯示你自己的用戶界面。圖 SEQ 圖表 * ARABIC 2 Activity狀態變換路徑圖1 劉慧.Java ME實用詳解-1 劉慧.Java ME實用詳解-用Eclipse進行移動開發M.北京:電子工業出版社,2007(1)活動生命周期活動(Activity)在系統中以活動棧的形式進行管理。當一個新的活動啟動后,被放到了棧項,成為了運行活動,而新活動之前的活動在活動

32、棧里總位于新活動之下,直到新的活動退出才重新回到前臺。從圖2 Activity狀態轉換路徑圖中可以看出,Activity有三個關鍵的循環:1)活動的整個生命期:從首次調用onCreate(Bundle)開始,到最終調用onDestroyO結束。在onCreate()中進行所有初始化,在onDestroyO時進行清理工作,釋放資源。2)活動的可見生命期:從調用onStart()開始,到onStop()被調用為止。在這段時間內,即使活動不與用戶進行交互,用戶也可以在屏幕上看到它。在這兩個方法調用之間,可以維護活動顯示給用戶的資源。onStart()和onStop()方法可以多次調用,因為活動隨時可

33、以在可見和隱藏之間進行轉換。3)活動的后臺生命期:從調用onResume()開始,到onPause()被調用為止。在這段時間內活動處于其它所有活動之前,并與用戶進行交互。一個活動可以不斷在resumed狀態和paused狀態之間變換。(2)活動之間的切換Android使用了Intent類來實現活動之間的切換工作。Intent負責對應用中一次操作的動作、動作涉及的數據和附加數據進行描述。根據Intent的描述,負責找到對應的組件,將Intent傳遞給調用的組件并完成組件的調用。因此,Intent起著一種媒體中介的作用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的解耦。在應用中,我們

34、可以以兩種形式來使用Intent:直接Intent,指定了component屬性的Intent,通過指定具體的組件類,通知應用啟動對應的組件。間接Intent,沒有指定comonent屬性的Intent,則需要包含足夠的信息,這樣系統才能根據這些信息,在所有的可用組件中,確定滿足此Intent的組件。Intent ReceiverIntent Receivert是用于對外部事件的響應,當外部事件發生時,會使用NotificationManager通知用戶。當一個Intent Receiver被觸發時,系統會在需要的時候啟動對應的應用程序。如在本系統中,當用戶正在其它界面進行操作時,有好友發送消

35、息過來,就會以通知的形式發送到當前界面的正上方來通知用戶。各種應用還可以通過使用ContextbroadcastIntent()將它們的Intent Receiver廣播給其它的應用程序,實現應用之間的通訊。ServiceService是提供連續信息的應用程序。它是運行于應用程序后臺的服務,在用戶進行其它活動的時候,這個服務將一直運行在基于Android平臺的即時通訊系統的研究與實現后臺直到用戶停止該服務或服務運行結束。本系統客戶端擴展功能的閱讀器就是采用Service來進行設計和開發的,使用戶可以邊聊天邊看書。Content ProviderContent Provider應用程序能夠將它們

36、的數據保存到文件、SQL數據庫和其它的存儲設備中。當應用程序需要使用存儲設備中的數據時,可以使用Content Provider來完成。使用Content Provider能夠靈活的替換底層使用的存儲設備,使開發者可以專著于應用邏輯的開發,不用考慮底層存儲設備的細節,從而使應用系統具有良好的數據。(四) Andriod手機平臺控件研究1.Android系統控件與自定義控件的比較研究在Google Android 中給出了非常多的絢麗的控件,但是在某些時候需要的實現某些功能的時候,系統的控件顯得有些笨拙和難以控制,如,在本系統中,本打算使用系統自帶的控件TabLayout 顯示頻道,但是現在的過

37、程中,發現,該控件的每一個Tab之間有一定距離的間隔,且每一個Tab上面的圖片很難控制其顯示的方式和顯示的效果,因此該綜合美觀和操作性的基礎上,決定不用該控件來顯示頻道切換界面。而才用筆者自定義的控件TabHost ,此控件從需求上必須能彌補系統控件TabLayout 的不足,且能易于用戶操作。2. Android 自定義控件的實現的研究在Google Android 移動平臺中,自定義控件都大致可以分成三部分。第一,界面的實現;第二,功能的實現;第三,控件的調用。(1)界面的實現。在Google Android 平臺中所有的控件都是繼承了View這個超類,所以在本軟件自定義一個控件的時候也需

38、要繼承這個超類,但是有些情況下不需要繼承這個超類而是繼承它的子類,如基于Google Android 平臺的手機電子書閱讀器中,就繼承了這個超類的子類ViewGroup,即:public class TabController extends ViewGroup?;诖宋覀兙偷玫搅吮鞠到y要實現的那個控件的最基本的那部分界面的實現。(2)功能的實現。要實現一個控件,讓其能產生特定的效果,本系統需要自己來重寫父類某些甚至是全部的構造函數,如在基于Google Android 平臺的電子書閱讀器中,筆者就重寫了protected void onLayout(boolean changed, int

39、l, int t, int r, int b) protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) .protected void onFinishInflate() 等方法。在方法中實現所需的功能,這樣一個自定義控件就好了。(3)控件的調用。在Android 系統中,控件的調用非常的方便,如系統控件TextView,其調用方式如下:但是當使用自定義控件的時候,其調用方式就與其有很大的區別。在自定義控件中,其調用的形式是通過命名空間的形式來進行調用的。如,在基于Google Android 移動平臺的手機電

40、子書閱讀器中,調用自定義控件的方式如下:二、手機電子閱讀器需求分析為了開發出真正滿足用戶需求的軟件產品,需要對開發產品做出需求分析。對軟件的需求的合理把握是軟件開發周期中非常重要的一個環節,本章將對手機閱讀器作較為全面的需求分析。(一)概述隨著手機功能不斷增強,手機閱讀器已成為智能手機重要軟件之一。開發一款符合廣大用戶需求的手機閱讀器有很好的市場前景和意義。本軟件的目標是開發一款基于Android平臺符合用戶使用需求的手機電子書閱讀器。本電子書閱讀器支持txt格式的文件。用戶可以通過電子書閱讀器從圖書庫選擇自己喜愛的書籍,新建分類列表,閱讀書籍,添加書簽,字體設置,更換主題等。本軟件具有美觀簡

41、潔便于用戶使用的觸摸界面,這也是Android操作系統不同于傳統Windows Mobile和Symbian系統上應用軟件的優勢之一。(二)手機閱讀器功能需求作為Android平臺上開發的應用軟件,它具有與用戶交互的界面,界面簡潔美觀易于操作。因此,對手機閱讀器的功能規定可以從手機閱讀器的界面來劃分。手機閱讀器的用戶操作界面分為一下四部分:分類界面,書籍界面,寫書界面,閱讀界面。本節通過用例圖分別對這三個界面進行功能需求分析。1.分類界面需求分析該手機電子書閱讀器默認顯示的界面就是分類界面。用戶可根據自己的喜愛為書籍添加類表,便于書籍導入時的分類劃分。用戶單擊列表,即可查看該分類下所用的書籍。

42、分類界面用例圖如下圖3所示。添加添加圖3 分類界面用例圖分類界面的需求分析如表1所示。表1 分類界面的需求分析參與者用戶概述用戶點擊添加/刪除/修改/查詢,分類即可被添加/刪除/修改/查詢前置條件點擊對應列表項,標號已被記下詳細描述用戶點擊所要操作的列表項點擊Menu菜單,出現操作選項點擊所要實現的操作后置條件此分類添加成功/刪除成功/重命名成功/查詢到此分類的書籍 2.書籍界面需求分析用戶點擊書架按鈕便可跳到書架的主界面。書架可認為是便于用戶瀏覽、挑選書籍的列表。用戶從SD卡中收錄新書,將書籍信息存到數據庫中,并以Gridview的布局方式展示,同時可以對書籍進行增、刪、改、查。書籍界面用例

43、圖如圖4所示。圖4 書籍界面用例圖(1)錄入書籍界面錄入書籍界面的需求分析如表2所示。參與者用戶概述用戶點擊錄入按鈕,跳到sdcard界面前置條件sdcard已完成掃描,sdcard界面按鈕生效詳細描述用戶點擊要錄入的書籍選擇書籍的分類系統跳轉到書架界面后置條件書籍已載入書架,用戶可以瀏覽并選擇書架中的書籍進行閱讀表2 錄入書籍界面的需求分析(2)刪除、修改書籍界面刪除、修改書籍界面的需求分析如表3所示。表3 錄入書籍界面的需求分析參與者用戶概述用戶點擊刪除/修改,分類即可被刪除/修改續后表接前表前置條件點擊對應列表項,標號已被記下詳細描述1.用戶點擊所要操作的列表項2.點擊Menu菜單,出現

44、操作選項3.點擊所要實現的操作后置條件此書籍添刪除成功/重命名成功(3)進入閱讀書籍界面進入閱讀書籍界面的需求分析如表4所示。表4 進入閱讀書籍界面的需求分析參與者用戶概述用戶點擊書籍,跳轉到閱讀界面前置條件點擊對應列表項,標號已被記下詳細描述1.用戶點擊所要操作的列表項2.點擊Menu菜單,出現操作選項,選擇“打開”按鈕3.跳轉到閱讀界面后置條件閱讀界面成功跳轉,用戶可以閱讀書籍(4)書寫界面用戶可以自己編寫書籍,并存入數據庫,通過分類與書架界面對其進行相應的增、刪、改、查處理。(5)閱讀界面在電子書閱讀界面可以調節字體大小、字體顏色、自動分頁,通過圖片選擇對主題背景進行切換等操作,閱讀時用

45、戶可以通過書籍頁數、保存讀取書簽等方式對書籍進行定位和記錄,翻頁與界面切換均采用動畫特效,視覺效果極佳。如圖5所示為閱讀界面用例圖。圖5 閱讀界面用例圖(三)手機性能需求1.系統要求Android系統2.2版本以上,對以后繼續進行升級開發有可延續性。2.靈活性軟件基于Android操作系統,是基于組件的開發方式。3.時間特性的要求軟件的速度要在用戶可接受的范圍能擴展需求。 4.軟件特性要求軟件運行速度要在用戶可接受的范圍之內,對流量、電量等消耗要在用戶可接受范圍之內。三、手機電子書閱讀器總體設計(一)軟件架構設計本文所采用的軟件架構如圖6所示,系統層是基于Linux內核2.6版本來編寫的And

46、roid操作系統。應用平臺層是位于Android操作系統與應用層之間的,HomeScreen是用來用用程序顯示的,它是用來管理和開啟應用程序的平臺。最上層的是應用程序,該層包含手機上安裝的各種應用程序,只要包括:日歷,地圖,聯系人,短信,電話,鬧鐘等。本文設計的手機電子說閱讀器就是屬于應用層。圖6 軟件架構圖(二)軟件結構設計手機電子書閱讀器是基于Andriod應用程序架構,并且采用了模塊化的設計模式,為未來的擴展和維護提供了便利。通過對當前軟件主要功能的分析,系統化分為書籍列表、書架管理、原創作品三個部分,結構圖如圖7所示。圖7 軟件結構圖(三)功能模塊設計根據系統總體架構圖,對其功能模塊進

47、行如下設計。書籍列表模塊書籍列表模塊可以對軟件中的書籍進行增刪等操作,可以從外界如SD卡中導入書籍,也可將書架中的書籍刪除。書架管理模塊書架管理模塊可以實現對軟件中的書籍管理功能、閱讀功能,可以對字體顏色、大小等進行設置,可以添加書簽和查看書簽,可以定位文檔。原創作品模塊用戶可以自己編輯書籍并保存到自己的書籍列表以便自己隨時對書籍翻閱、添加、修改等相應管理操作。(四)系統數據流設計 系統數據流如圖8所示。圖8 系統數據流圖四、手機電子書閱讀器的設計與實現(一)數據庫設計數據結構組織和數據庫文件的設計要根據不同的用途,使用要求等來決定數據整體組織形式等一些問題。數據庫中的數據按一定數據模型組織、

48、描述和存儲,具有較小的重復度。較高的數據獨立性和易擴展性,并且可以再被一定范圍內的各種用戶共享。在涉及數據庫的軟件開發中,需要根據有待解決的問題的性質、規模,以及所采用的前端程序創建工具等,做出合適的數據庫類型選擇。1.數據庫及字段屬性設計本項目中的數據庫設計比較簡單,主要涉及三個表:books、booksmark和classify。其中表books主要是存儲書籍,如表5所示;表booksmark主要存儲書簽,如表6所示;表classify主要存儲書籍分類,如表7所示。表5 books字段表表6 booksmark字段表表7 classify字段表2.數據庫的連接Android中自帶的SQLi

49、te數據庫是十分小型的數據庫,這樣正適合Android這種移動平臺使用。Android數據庫的存儲位置在data/data/databases/目錄下,Android是利用ContentProvider作為內容提供商,SQLiteOpenHelper數據庫幫助類來進行對數據庫的創建和操作。通過Context.getContentResolver()方法直接對數據庫進行操作。程序中數據庫的類為RssDB extend SQLiteOpenHelper(繼承關系)。(1)數據庫的創建Android提供了標準的數據庫創建方式,繼承SQLiteOpenHelper,實現onCreate和onUpgra

50、de兩個方法,有個好處就是便于數據庫版本的升級,連接數據庫的算法如下:public RssDB(Context context) /創建數據庫super(context, DB_NAME, null, DB_VERTION);public void onCreate(SQLiteDatabase db) /類創建是調用,在這里主要創建tablepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) /版本升級時調用數據庫創建不成功會拋出FileNodFindException異常。(2)數據庫操作打開數據

51、庫操作:db = this.getWriteableDataBase();this表示RSSDB執行sql語句:db.execSql(sql);插入數據:db.insert()刪除數據:db.delete();更新數據:db.update()查詢數據:db.query();當執行完這些操作后,一定要關閉數據庫連接:db.close();這些操作的具體使用方法可參照Android SDK。(二)關鍵代碼實現1. Android SDK 版本的選取當前Google Android SDK主要有SDK1.1、SDK1.5、SDK1.6、SDK2.0、SDK2.1,其中SDK1.1由于不太穩定且在控件

52、支持上的不足已經被淘汰,開發人員絕大多數不使用SDK1.1。而支持Android SDK2.0、SDK2.1的機型尚少,且價格較為昂貴,使用數量不是太多。根據公司調查顯示,現在大多數用戶手中的機型為Android SDK1.5或1.6的,由于Google Andorid SDK可以向下兼容,所以在基于Google Android 平臺下的手機電子書閱讀器選取的SDK為Google Android SDK 1.51 余志龍1 余志龍. Google Android SDK 開發范例大全M. 北京:人民郵電出版社,20092.界面的設計(1)主界面設計由于Android平臺手機屏幕大小有限,為了不

53、使用戶有凌亂的感覺,在主界面只設計了三個頻道,既三個最受歡迎頻道:分類、書庫、寫書。主界面如圖9所示。圖9 軟件主界面圖9中,分類功能鍵提供了書籍的分類,而書庫功能鍵提供了則是書籍管理,寫書功能鍵提供的則是自己寫書功能。為了使三個功能鍵能更好的切換,筆者自定義了一個控件,既TabActivity.其布局文件如下: (2)書庫界面設計由于書庫中的書籍是以書架的形式展現的,所以筆者采用了GridView 控件進行顯示,其布局代碼如下: 書庫界面如圖10所示。圖10 書庫界面(3)寫書界面設計讀者可以根據自己的情感書寫,并將其保存在sdcard中。其布局代碼如下: 寫書界面如圖11所示。 圖11 寫

54、書界面3.頻道的切換在基于 Google Android 平臺的電子閱讀器中,頻道的切換主有兩個方面:在主界面的三個頻道的切換和在Menu功能鍵塊中的頻道的切換。(1)在主界面中的三個頻道的切換:筆者采用了自定義的控件TabActivity來進行顯示,對頻道控制的關鍵代碼如下:TabHost th=getTabHost();TabSpec tabSpec1=th.newTabSpec(tab1);tabSpec1.setIndicator(分類,getResources().getDrawable(R.drawable.fenlei);tabSpec1.setContent(new Inten

55、t(this,ClassifyActivity.class);TabSpec tabSpec2=th.newTabSpec(tab2);tabSpec2.setIndicator(書庫,getResources().getDrawable(R.drawable.book);tabSpec2.setContent(new Intent(this,BooksActivity.class);TabSpec tabSpec4=th.newTabSpec(tab4);tabSpec4.setIndicator(寫書,getResources().getDrawable(R.drawable.advanc

56、ed);tabSpec4.setContent(new Intent(this,MamoAdd.class);th.addTab(tabSpec1);th.addTab(tabSpec2);th.addTab(tabSpec4);(2)Menu功能鍵塊中的頻道的切換由于在Menu功能塊中包含的頻道較多,固采用了Google Android 平臺經典的MenuItem進行顯示,而對該MenuItem進行監聽,當點擊其中一個Item(既頻道)時,將跳轉到該item(頻道)中去,其關鍵代碼如下:class ButClickListener implements OnMenuItemClickList

57、enerOverridepublic boolean onMenuItemClick(MenuItem item) if(item=addMenu)else if(item=delMenu)else if(item=modMenu)else if(item=seeMenu)else if(item=flixkerMenu)4.閱讀界面的顯示在基于 Google Android 平臺的電子書閱讀器中,當用戶點擊了其選定的頻道,將該頻道的書籍內容全部顯示給用戶,為此,筆者采用了Android 平臺流行的 TextView,其關鍵代碼如下:Intent intent=new Intent();int

58、ent.setClassName(BooksActivity.this,com.ketai.reader.ReadActivity);String booksNameStrAll=arraylist.get(sign).toString();String booksNameStr=booksNameStrAll.substring(booksNameStrAll.indexOf(=)+1,booksNameStrAll.indexOf(,);Log.i(查看booksNameStr:,booksNameStr);Log.i(查看書名:, booksNameStr);String sql=sel

59、ect bookspath from books where booksname=+booksNameStr+;System.out.println(查看sql:+sql);Cursor cursor=sqliteDatabase.rawQuery(sql, null);arraylist=new ArrayList();String boospathStr = null;while(cursor.moveToNext()boospathStr=cursor.getString(cursor.getColumnIndex(bookspath);System.out.println(查看boos

60、pathStr:+boospathStr);cursor.close();intent.putExtra(bookspath,boospathStr);startActivity(intent);overridePendingTransition(R.anim.new_dync_in_from_right, R.anim.new_dync_out_to_left); updateListView();5.數據的持久化在 Google Android 平臺中,數據的持久化,官方提供了四種方法,分別為:數據庫、Content Provider、SharePerfrence、Files。考慮到基于

溫馨提示

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

評論

0/150

提交評論