版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘 要</b></p><p> 基于Android平臺的電子書管理及閱讀系統(tǒng),是采用JAVA語言開發(fā)的一個小型應用系統(tǒng)。在科技日益發(fā)展的今天,社會競爭越來越激烈,3G時代已經(jīng)慢慢融入了我們的日常生活。手機已經(jīng)成為人們?nèi)粘I钪胁豢扇鄙俚囊徊糠?,尤其是在電子產(chǎn)品日新月異的今天,我們在平時隨處可見的電子產(chǎn)品中,手機無疑是一個最大的用戶集,而各大廠商智能手機則依
2、舊是電子商場的一個耀眼明星。其中代表作有微軟的WP7系統(tǒng),蘋果的IOS系統(tǒng),但是其中Google的Android系統(tǒng)以其開放的源代碼和方便簡潔的操作成為手機領域的領頭羊。所以我選擇了這個題目作為畢業(yè)設計的題目,并希望再進一步完善系統(tǒng)后將系統(tǒng)發(fā)布到Google android market上供用戶下載使用。</p><p> 據(jù)了解,越來越多的年輕人喜歡閱讀小說,本系統(tǒng)則根據(jù)用戶需求及平臺的特性而設計的,在Goo
3、gle Android SDK2.1環(huán)境下,運用Eclipse,PhotoShop等相關工具進行開發(fā)。同時解決了大型書籍載入、動態(tài)分頁等眾多技術難題。</p><p> 該系統(tǒng)在Android手機上運行,由于手機性能及內(nèi)存的瓶頸,在設計方面,本系統(tǒng)進行了相應的優(yōu)化處理,以減少不必要的內(nèi)存損耗,盡可能的使其在手機上能夠流暢運行,增強友好度,方便用戶使用。</p><p> 關鍵詞:電子書
4、,安卓,JAVA。</p><p><b> Abstract</b></p><p> Based on the E-book management and reading system of Android platform is a small application system which adopt to a development language
5、of JAVA . Increasing development in technology today , more and more competitive , 3G era has been slowly integrated into our daily lives . Mobile phones have become an indispensable daily part of life , especially in th
6、e rapidly changing electronic products today , we usually ubiquitous in electronic products , mobile phone users is undoubtedly one of the lar</p><p> It is understood that more and more young people like t
7、o read novels , the system is based on user needs and characteristics of platform design , in Google Android SDK2.1 environment , the use of the Eclipse , PhotoShop and other tools for development . While addressing a la
8、rge load of books , dynamic pages , and many other technical problems . </p><p> The system runs on Android phones , because mobile performance and memory bottlenecks , in terms of design , the system was o
9、ptimized accordingly , to reduce unnecessary memory loss , as much as possible so that it can run smoothly on the phone , and enhance Friendliness , user-friendly . </p><p> Key words: E-book, Android, JAVA
10、.目錄</p><p><b> 1 前言1</b></p><p><b> 2 可行性分析2</b></p><p> 2.1 開發(fā)前景2</p><p> 2.2 市場可行性2</p><p> 2.3 技術可行性3</p><p
11、> 2.3.1 Android基本框架3</p><p> 2.3.2 Android系統(tǒng)的四大組件5</p><p><b> 3 系統(tǒng)分析7</b></p><p> 3.1 功能需求(用例圖分析)7</p><p> 3.1.1 書庫管理需求7</p><p>
12、3.1.2 閱讀的基本功能需求8</p><p> 3.1.3 SD卡內(nèi)電子書清單管理需求9</p><p> 3.2 系統(tǒng)流程圖和結構圖10</p><p> 3.3 系統(tǒng)界面需求12</p><p> 3.4 系統(tǒng)性能需求12</p><p> 3.5 運行環(huán)境需求12</p>
13、<p> 4 數(shù)據(jù)庫設計13</p><p> 4.1 Android SQLite概述13</p><p> 4.2 Android SQLite特征及內(nèi)部結構13</p><p> 4.3 數(shù)據(jù)庫概念模型16</p><p> 4.4 數(shù)據(jù)庫字段設計17</p><p> 4.4.1
14、 電子書信息表17</p><p> 4.4.2 書簽信息表18</p><p> 5 系統(tǒng)功能詳細設計19</p><p> 5.1 系統(tǒng)主界面功能實現(xiàn)19</p><p> 5.1.1 系統(tǒng)主界面19</p><p> 5.1.2 工具欄21</p><p> 5.1
15、.3 OptionsMenu22</p><p> 5.2 手機擴展卡訪問22</p><p> 5.2.1本地書目的顯示22</p><p> 5.2.2 刷新本地書目24</p><p> 5.2.3 本地書目的導入25</p><p> 5.3 文章載入及翻頁實現(xiàn)27</p>
16、<p> 5.3.1 文章載入28</p><p> 5.3.2 手勢識別30</p><p> 5.4 閱讀設置功能實現(xiàn)31</p><p> 5.4.1 字體設置32</p><p> 5.4.2 亮度設置33</p><p> 5.4.3 書簽34</p><
17、p> 5.4.4 跳轉36</p><p> 5.4.5 橫、豎屏翻頁切換37</p><p> 5.5 其它功能點實現(xiàn)38</p><p> 5.5.1 回退鍵的重寫38</p><p> 5.5.2 快捷方式及書目刪除39</p><p> 5.5.3 SharedPreferences
18、40</p><p><b> 6 系統(tǒng)測試42</b></p><p> 6.1 測試環(huán)境42</p><p> 6.2 超大文件載入42</p><p> 6.3 書目損壞或為空42</p><p> 6.4 關于 43</p><p><b
19、> 7 總結44</b></p><p><b> 致謝45</b></p><p><b> 參考文獻46</b></p><p><b> 1 前言</b></p><p> 當今社會的生活節(jié)奏越來越快,人們對手機的要求也越來越高,由于手機
20、市場的迅猛發(fā)展,使得手機操作系統(tǒng)也出現(xiàn)了不同的種類,現(xiàn)在的市場上熱門手機操作系統(tǒng)有三個,微軟的WP7系統(tǒng),蘋果的IOS系統(tǒng),以及谷歌的Android系統(tǒng),Android一次的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。眾多手機品牌靠著Android系統(tǒng)備受推崇,其中值得一
21、提的是摩托羅拉公司,就在2009年11月憑借其一款搭載Android平臺的Droid手機,兩個月內(nèi)突破百萬臺,擊敗了蘋果的iphone 3GS,被《時代》雜志評為“年度最佳科技產(chǎn)品”。因此告別了兩年多的低迷態(tài)勢,從而走出泥潭。</p><p> Android以其特有的開放性優(yōu)勢越來越受到人們和智能手機廠商的關注,并吸引了大量的第三方開發(fā)者加入,本次設計運用Android平臺手機作為研究開發(fā)對象,配合Java語
22、言程序設計以及面向對象思想設計了一款電子書管理及閱讀系統(tǒng)。本系統(tǒng)實現(xiàn)了以下功能:電子書的導入及管理、手勢識別、動態(tài)載入圖書、字體、亮度、閱讀模式、書簽、跳轉等。在實現(xiàn)時遵循可靠性、安全性、友好性,從而確定一套可行方案。本次設計是對所學只是的綜合運用,把理論知識和實現(xiàn)相結合,最終將技術難點一一攻破。本論文大多是在將設計于實現(xiàn)的方法,并沒有大量羅列具體實現(xiàn)的代碼。</p><p><b> 2 可行性分析
23、</b></p><p><b> 2.1 開發(fā)前景</b></p><p> 目前,在智能手機市場上的操作系統(tǒng)主要有NOKIA的Symbian(塞班)、微軟的Windows mobile、Google的Android(安卓)、蘋果的IOS、黑莓Blackberry的RIM等。</p><p> 在全球手機操作系統(tǒng)排行中,An
24、droid被看好是相當紅的話題,美國市場研究公司IDC發(fā)布報告稱,Android操作系統(tǒng)有望在未來幾年席卷智能手機市場,增速將超過所有競爭對手。IDC認為,從現(xiàn)在起到2013年,Android有望成為增速最快的手機操作系統(tǒng),屆時將成為全球第二大智能手機操作系統(tǒng)。之所以出現(xiàn)這種變化,是因為越來越多的手機廠商開始采用Android這一免費的開源系統(tǒng)。</p><p> 總之,Android系統(tǒng)平臺可以說是當前被關注
25、度最高的智能手機系統(tǒng)平臺之一。其強大的開放性、良好的安全穩(wěn)定性、強悍而犀利的功能及眾多實力廠商的支持,可以說是潛力巨大,魅力無限。</p><p><b> 2.2 市場可行性</b></p><p> Android操作系統(tǒng)得到了全球眾多業(yè)界重量級廠商的支持。隨著Android智能手機平臺的推出,很快便在其周圍匯集了全球移動領域一大批的重量級廠商,并組成了開放手
26、機聯(lián)盟(Open Handset Alliance),包括摩托羅拉、PHILIPS、三星、HTC等在內(nèi)的34家企業(yè)。由于Android是一個完全開源的智能手機系統(tǒng)平臺,得到了業(yè)內(nèi)眾多資深廠商的支持,并且Android手機操作簡單,性能強大,因此基于Android平臺的高端智能手機出貨數(shù)量不斷增長,市場占有率快速上揚。</p><p> 與此同時,隨著科技信息時代的到來,越來越多的人認為手機已經(jīng)不僅僅是用來打電話
27、、發(fā)短信的。他們用手機聊QQ、看電影、玩游戲、看小說等等。因此這個市場的商業(yè)價值很高,所以我選擇開發(fā)基于Android平臺的電子書管理及閱讀系統(tǒng)。該系統(tǒng)提供了強大的閱讀功能以及對電子書的管理,并且該軟件安全可靠、便捷清爽,從市場的角度來看,十分有必要進行開發(fā)。</p><p><b> 2.3 技術可行性</b></p><p> 我們已經(jīng)系統(tǒng)的學過JAVA技術,
28、并對軟件開發(fā)的流程有一定的了解,進而學習了Android相關的一些技術,隨著對幾種技術的掌握,從技術的角度講,該系統(tǒng)是可以實現(xiàn)的。</p><p> 本項目需要用到Sun公司開發(fā)的JAVA技術以及Google公司開發(fā)的Android技術在Eclipse環(huán)境下進行開發(fā)。下面對Android技術的簡單介紹和必要的闡述。</p><p> 2.3.1 Android基本框架</p>
29、;<p> 圖2.3.1 Android框架圖</p><p> (1)Applications</p><p> Application Android會同一個核心應用程序包一起發(fā)布,該應用程序包包括email客戶端,SMS短信息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應用程序都是用JAVA編寫的。</p><p> (2)Appl
30、ication FrameWork</p><p> 開發(fā)者完全可以訪問核心應用程序所使用的API框架。該應用程序架構用來簡化組建軟件的重用:任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。該應用程序重用機制使得組建可以被用戶替換。</p><p> 所有的應用程序都由一系列的服務和系統(tǒng)組成,包括:</p>
31、<p> ·可擴展的視圖(Views)可以用來建應用程序,包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons),甚至包括一個可嵌入的web瀏覽器</p><p> ·內(nèi)容管理器(Content Providers)使得應用程序可以訪問另一個應用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)。</p><p
32、> ·資源管理器(Resource Manager)提供非代碼資源的訪問,如本地字符串,圖形,和分層文件(layout files)。</p><p> ·通知管理器(Notification Manager)使得應用程序可以在狀態(tài)欄中顯示客戶通知信息。</p><p> ·活動類管理器(Activity Manager)用來管理應用程序生命周期并
33、提供常用的導航回退功能。</p><p> (3)Libraries庫</p><p> Android包括一個被Android系統(tǒng)中各種不同組件所使用的C/C++庫集。該庫通過Android應用程序框架為開發(fā)者提供服務。</p><p> (4)Android Runtime</p><p> Android包括了一個核心庫,該核心
34、庫提供了JAVA編程語言核心庫的大多數(shù)功能。</p><p> 每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik是針對于同時高效地運行多個VMs來實現(xiàn)的。Dalvik虛擬機執(zhí)行.dex的Dalvik可執(zhí)行文件,該格式文件針對最小內(nèi)存使用做了優(yōu)化。該虛擬機是基于寄存器的,所有的類都經(jīng)由JAVA匯編器編譯,然后通過SDK中的dx工具轉化成.dex格式由虛擬機執(zhí)
35、行。</p><p> (5)Linux內(nèi)核</p><p> Android的核心系統(tǒng)服務依賴于Linux2.6內(nèi)核,如安全性,內(nèi)存管理,進程管理,網(wǎng)絡協(xié)議棧和驅動模型。Linux內(nèi)核也同時作為硬件和軟件堆棧之間的硬件抽象層。</p><p> 2.3.2 Android系統(tǒng)的四大組件</p><p> 在Android系統(tǒng)中,為我
36、們提供了四大基本組件,每個組件是一個視圖,但是有些是可見的,有些是不可見的視圖,像Activity,ContentProvider是可見的視圖,Service和BroadcastReceiver是不可見的,它們只在系統(tǒng)的后臺運行。下面分別介紹四大組件:</p><p> (1)Activity簡介</p><p> 在Android系統(tǒng)中Activity提供可視化的用戶界面,一個And
37、roid應用通常由多個Activity組成。多個Activity組成了Activity棧(Stack),當前活動的Activity處于棧頂。Activity有自己的生命周期,由Android系統(tǒng)來控制。</p><p> (2)Service簡介</p><p> 顧名思義Service就是運行在后臺的一種服務程序,一般很少和用戶交互,因此沒有可視化界面,定義一個Service類比較簡
38、單,只要繼承Service類,實現(xiàn)其生命周期中的方法就可以了。一個定義好的Service必須在AndroidManifest配置文件注冊,通過<service>元素聲明才能使用。Service有自己的生命周期,我們可以調(diào)用startService()啟動一個Service或者bindService()方法來綁定一個存在的Service。</p><p> (3)Broadcast Receiver簡
39、介</p><p> Broadcast Receiver顧名思義廣播接收器,它和事件處理機制類似,只不過事件處理機制是程序組件級別的(例如,某個按鈕的單擊事件),而廣播事件處理機制是系統(tǒng)級別的。到目前為止我們可以使用Intent來啟動一個程序組件,我們還可以通過使用sendBroadcast()方法來發(fā)起一個系統(tǒng)級別的事件廣播來傳遞消息。我們可以在你的應用程序中實現(xiàn)Broadcast Receiver來監(jiān)聽和
40、響應這些廣播的Intent。</p><p> (4)ContentProvider簡介</p><p> ContentProvider用來保存和檢索數(shù)據(jù),并且使應用程序之間相互訪問數(shù)據(jù)成為可能。它是跨應用程序共享數(shù)據(jù)的唯一方法。</p><p><b> 3 系統(tǒng)分析</b></p><p> 3.1 功能需
41、求(用例圖分析)</p><p> 3.1.1 書庫管理需求</p><p> 圖3.1.1 書庫管理圖</p><p> ·用例名稱:最近閱讀</p><p> 目標:使得用戶可以直接查看最近閱讀的書目以及這些書目的相關信息(包括書名、導入方式、閱讀進度等)</p><p> ·用例名稱
42、:本地書庫</p><p> 目標:使得用戶可以直接查看已經(jīng)導入系統(tǒng)的書目以及這些書目的相關信息(包括書名、導入方式等)</p><p> ·用例名稱:電子書導入</p><p> 目標:使得用戶可以將SD卡中的TXT文件導入本地書庫</p><p> 3.1.2 閱讀的基本功能需求</p><p>
43、 圖3.1.2 閱讀的基本功能圖</p><p> ·用例名稱:字體調(diào)節(jié)</p><p> 目標:使得用戶可以根據(jù)自己的需求調(diào)節(jié)字體大小,同時系統(tǒng)將動態(tài)分配頁數(shù)與每頁所容納的字符個數(shù)</p><p> ·用例名稱:亮度調(diào)節(jié)/亮度模式</p><p> 目標:使得用戶可以根據(jù)自己的需求調(diào)節(jié)屏幕亮度及是否開啟夜間模式
44、</p><p><b> ·用例名稱:書簽</b></p><p> 目標:支持用戶添加、刪除書簽及跳轉到書簽位置</p><p> ·用例名稱:頁面跳轉</p><p> 目標:支持用戶可以任意跳轉到任意頁數(shù)</p><p> ·用例名稱:翻頁模式/翻頁
45、</p><p> 目標:支持用戶可以在橫屏閱讀和豎屏閱讀間進行切換及閱讀電子書</p><p> 3.1.3 SD卡內(nèi)電子書清單管理需求</p><p> 圖3.1.2 SD卡導入圖</p><p> ·用例名稱:導入本地書目</p><p> 目標:將所有SD卡內(nèi)包含TXT文件的父文件夾全部列出
46、</p><p> 3.2 系統(tǒng)流程圖和結構圖</p><p> ?。?)電子書管理及閱讀系統(tǒng)流程圖(圖3.2.1)</p><p> 圖3.2.1 系統(tǒng)流程圖</p><p> (2)電子書管理及閱讀系統(tǒng)結構圖(圖3.2.2)</p><p> 圖3.2.2 系統(tǒng)結構圖</p><p>
47、; ?。?)電子書管理及閱讀系統(tǒng)功能表(表3.2.3)</p><p> 表3.2.3 功能表</p><p> 3.3 系統(tǒng)界面需求</p><p> 該系統(tǒng)要求界面簡潔,UI組件友好,操作方便。</p><p> 為達到理想效果,該項目所有圖片素材全部由本人通過PhotoShop進行處理所得。</p><p&g
48、t; 3.4 系統(tǒng)性能需求</p><p> 根據(jù)Android手機系統(tǒng)超過五秒視為無響應特性制定如下要求:</p><p> ?。?)載入大文件時,系統(tǒng)響應時間最長不能超過5秒(理論上0秒載入)</p><p> ?。?)掃描SD卡時,系統(tǒng)響應時間最長不能超過5秒</p><p> (3)翻頁時,系統(tǒng)響應時間最長不能超過5秒</
49、p><p><b> ?。?)提高系統(tǒng)性能</b></p><p> 3.5 運行環(huán)境需求</p><p> 操作系統(tǒng):Android手機基于Linux操作系統(tǒng)</p><p> 支持環(huán)境:Android 2.1版本及以上</p><p> 開發(fā)環(huán)境:Eclipse</p>&l
50、t;p><b> 4 數(shù)據(jù)庫設計</b></p><p> 4.1 Android SQLite概述</p><p> SQLite第一個Alpha版本誕生于2000年5月,它是一款輕型數(shù)據(jù)庫,它的設計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用,它占用的資源非常少,在嵌入式設備中,可能只需要幾百KB內(nèi)存就夠了。也許這正是Android系統(tǒng)要采用SQ
51、Lite數(shù)據(jù)庫的原因之一吧。</p><p> SQLite支持SQL語言,它是開源的,任何人都可以使用它,許多開源項目(Mozilla,PHP,Python)都使用了SQLite。</p><p> SQLite由以下幾個組件組成:SQL編譯器、內(nèi)核、后端以及附件,SQLite通過利用虛擬機和虛擬數(shù)據(jù)庫引擎(VDBE),使調(diào)試、修改和擴展SQLite的內(nèi)核變得更加方便。</p&
52、gt;<p> 本系統(tǒng)大量使用對數(shù)據(jù)庫的增、刪、改、查等操作。</p><p> 4.2 Android SQLite特征及內(nèi)部結構</p><p> ?。?)SQLite特征</p><p> SQLite數(shù)據(jù)庫是D.Richard Hipp用C語言編寫的開源嵌入式數(shù)據(jù)庫,支持的數(shù)據(jù)庫大小為2TB。它具有如下特征:</p><
53、;p> 輕量級:SQLite和C/S模式的數(shù)據(jù)庫軟件不同,它是進程內(nèi)的數(shù)據(jù)引擎,因此不存在數(shù)據(jù)庫的客戶端和服務器。使用SQLite一般只需要帶上它的一個動態(tài)庫,就可以享受它的全部功能。而且那個動態(tài)庫的尺寸也相當小。</p><p> 獨立性:SQLite數(shù)據(jù)庫的核心引擎本身不依賴第三方軟件,使用它也不需要“安裝”所以在部署的時候能省去不少麻煩。</p><p> 隔離性:SQL
54、ite數(shù)據(jù)庫中所有的信息(比如表、視圖、觸發(fā)器)都包含在一個文件內(nèi),方便管理和維護。</p><p> 跨平臺:SQLite數(shù)據(jù)庫支持大部分操作系統(tǒng),除了我們在電腦上使用的操作系統(tǒng)外,很多手機系統(tǒng)同樣可以運行,比如Android、Windows Mobile、Sysbin、Palm等。</p><p> 多語言接口:SQLite數(shù)據(jù)庫支持很多語言接口,比如C/C++、java、Pyth
55、on、dotNet、Ruby、Perl等,得到很多開發(fā)者的喜愛。</p><p> 安全性:SQLite數(shù)據(jù)庫通過數(shù)據(jù)庫級上的獨占性和共享鎖來實現(xiàn)獨立事務處理。這意味著多個進程在同一時間從同一數(shù)據(jù)庫讀取數(shù)據(jù),但只有一個可以寫入數(shù)據(jù)。在某個進程或線程向數(shù)據(jù)庫執(zhí)行寫操作前,必須獲得獨占鎖定。在發(fā)出獨占鎖定后,其他的讀或寫操作將不會再發(fā)生。</p><p> ?。?)SQLite內(nèi)部結構<
56、;/p><p> SQLite基本上符合SQL-92標準,和其他的主要SQL數(shù)據(jù)庫沒什么區(qū)別,它的優(yōu)點就是高效,Android運行時環(huán)境包含了完整的SQLite。</p><p> SQLite和其他數(shù)據(jù)庫最大的不同就是對數(shù)據(jù)類型的支持,創(chuàng)建一個表時,可以在CREATE TABLE語句中指定某列的數(shù)據(jù)類型,但是你可以把任何數(shù)據(jù)類型放入任何列中,當某個值插入數(shù)據(jù)庫時,SQLite將檢查它的類
57、型,如果該類型與關聯(lián)的列不匹配,則SQLite會嘗試將該值轉換成該列的類型,如果不能轉換,則該值將作為其本身具有的類型存儲,比如可以把一個字符串(String)放入INTEGER列,SQLite稱這為“弱類型”(mainfest typing)。此外,SQLite不支持一些標準的SQL功能,特別是外鍵約束(FOREIGN KEY constrains),嵌套transcaction和RIGHT OUTER JOIN 和FULL OUTE
58、R JOIN,還有一些ALTER TABLE功能。</p><p> 圖4.2.2 SQLite內(nèi)部結構</p><p> 除了上述功能外,SQLite是一個完整的SQL系統(tǒng),擁有完整的觸發(fā)器,交易等等。</p><p> 4.3 數(shù)據(jù)庫概念模型</p><p> (1)電子書信息E-R(實體-聯(lián)系:entity-relation圖)
59、圖(圖4.3.1)</p><p> 圖4.3.1 SQLite內(nèi)部結構</p><p> (2)書簽信息E-R圖(圖4.3.2)</p><p> 圖4.3.2 SQLite內(nèi)部結構</p><p> (3)電子書與書簽關系(圖4.3.3)</p><p> 1
60、 n </p><p> 圖4.3.3 電子書與書簽關系</p><p> 4.4 數(shù)據(jù)庫字段設計</p><p> 4.4.1 電子書信息表</p><p> 文件導入狀態(tài)表主要用于記錄文件的導入狀態(tài)信息,表名為localbook,其中包含4個字段:parent字段記錄文件的父文件夾
61、地址,用于顯示導入書目時顯示。path字段記錄文件的地址。type字段記錄文件是否已經(jīng)導入本地書庫,0為未導入,1為已導入。now字段記錄文件是否導入最近閱讀書庫,0為未導入,1為已導入。</p><p> 表4.4.1 電子書信息表</p><p> 4.4.2 書簽信息表</p><p> 書簽信息表主要用于記錄書簽的相關信息,表名為markhelper,
62、其中包含4個字段:path字段記錄電子書的地址。page字段記錄當前書簽所處頁數(shù)。word字段記錄當前頁數(shù)的前10個字符。time字段用于記錄當前時間,精確到毫秒,用于區(qū)分同一本書的不同書簽。</p><p> 表4.4.2 書簽信息表</p><p> 5 系統(tǒng)功能詳細設計</p><p> 5.1 系統(tǒng)主界面功能實現(xiàn)</p><p>
63、; 5.1.1 系統(tǒng)主界面</p><p> (1)功能說明:展示最近閱讀書目</p><p> (2)運行界面:如圖5.1.1所示</p><p> 圖5.1.1 最近閱讀</p><p> Android的每一個可視化界面,都有一個唯一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像,文字,顏色的引用,程序在運行時
64、可以通過代碼對各配置文件進行讀取。這樣就可以形成不同的可視化界面和絢麗的效果。</p><p><b> (3)實現(xiàn)方法:</b></p><p><b> <1>界面的實現(xiàn)</b></p><p> 圖5.1.1為進入系統(tǒng)時首個界面“最近閱讀”,主界面布局文件名為main.xml,該界面通過在線性布局&
65、lt;LinearLayout>下嵌套兩個相對布局<RelativeLayout >,從而實現(xiàn)效果,第一個相對布局<RelativeLayout >用于實現(xiàn)上方所在書庫的提示欄。第二個相對布局<RelativeLayout >下嵌套<ListView>和網(wǎng)格組件<GridView>,分別用于實現(xiàn)電子書相關信息的羅列以及下方工具欄的顯示。同時在載入布局之前調(diào)用request
66、WindowFeature(Window.FEATURE_NO_TITLE)去除標題,為提高美觀性本系統(tǒng)所有界面均采用無標題模式。</p><p><b> <2>書目的載入</b></p><p> ListView為Android內(nèi)的一個視圖,本界面采用適配器SimpleAdapter對ListView進行加載,遍歷數(shù)據(jù)庫localbook,將數(shù)據(jù)
67、庫內(nèi)標識為最近閱讀的書目信息放入map中,再將map添加到ArrayList內(nèi),調(diào)用適配器實現(xiàn)對ArrayList集合內(nèi)數(shù)據(jù)遍歷并加載到用于顯示的布局item.xml。</p><p><b> <3>點擊事件</b></p><p> 通過調(diào)用setOnItemClickListener實現(xiàn)對ListView的點擊監(jiān)聽。當用戶點擊書目時,采用Inte
68、nt將該書目的地址存入并跳轉到下一個Activity顯示界面。</p><p><b> 5.1.2 工具欄</b></p><p> (1)功能說明:最近閱讀與本地書庫的切換</p><p> (2)運行界面:如圖5.1.2所示</p><p> 圖5.1.2.工具欄</p><p>&
69、lt;b> (3)實現(xiàn)方法:</b></p><p> 下方工具欄通過GridView實現(xiàn),用法基本于ListView相同,調(diào)用適配器SimpleAdapter載入布局item_menu.xml,設置列數(shù)為3。同樣通過調(diào)用setOnItemClickListener實現(xiàn)對點擊監(jiān)聽。當用戶點擊“本地書庫”時,進行文字和圖片的切換,同時重新遍歷數(shù)據(jù)庫localbook,將數(shù)據(jù)庫內(nèi)標識為已導入的書
70、目信息進行存儲,并載入到ListView中,從而實現(xiàn)“最近閱讀”與“本地書庫”之間的切換。</p><p> 5.1.3 OptionsMenu</p><p> (1)功能說明:當點擊手機MENU鍵時彈出OptionsMenu菜單</p><p> (2)運行界面:如圖5.1.3所示</p><p> 圖5.1.3 OptionsM
71、enu</p><p><b> (3)實現(xiàn)方法:</b></p><p> 重寫onCreateOptionsMenu方法,載入menu.xml布局文件,實現(xiàn)點擊手機MENU按鍵時彈出此選項框。需要在res目錄下創(chuàng)建menu文件夾,將menu.xml放入該文件夾內(nèi)。重寫onOptionsItemSelected方法,實現(xiàn)對該menu的點擊監(jiān)聽,通過布局文件中的I
72、D進行判斷點擊的是哪個,然后進行相關處理。</p><p> 5.2 手機擴展卡訪問</p><p> 5.2.1本地書目的顯示</p><p> (1)功能說明:在導入本地書目界面內(nèi)列出所有包含電子書的文件夾</p><p> (2)運行界面:如圖5.2.1所示</p><p> 圖5.2.1 導入本地書目
73、</p><p><b> (3)實現(xiàn)方法:</b></p><p> 當點擊OptionsMenu中的“導入本地書目”時,通過Intent跳轉到該頁面,首先查詢數(shù)據(jù)庫,如果數(shù)據(jù)庫為空則表示第一次進入該界面,則進行對SD卡的遍歷,通過file.listFiles()方法,采用遞歸模式,記錄所有包含電子書的父文件夾地址及電子書地址,通過ListView進行羅列,同時
74、寫入數(shù)據(jù)庫localbook。由于遍歷SD時采用遞歸模式,如果文件較多會影響系統(tǒng)效率,為提高友好度,故開啟線程進InThread行遍歷,同時調(diào)用自定義Dialog進行提示,該Dialog實現(xiàn)去標題,加入TextView和ProgressBar實現(xiàn)如圖效果,當遍歷結束后由InThread向主線程發(fā)送消息,通過Handler接收,同時調(diào)用Dialog的dismiss()方法,使其消失。</p><p> 如果查詢時
75、,數(shù)據(jù)庫localbook內(nèi)有數(shù)據(jù),則不進行SD卡遍歷直接將數(shù)據(jù)庫內(nèi)信息導入集合內(nèi),通過讀取進行顯示。這樣大大提高了系統(tǒng)效率,節(jié)省了不必要的資源。</p><p> 5.2.2 刷新本地書目</p><p> (1)功能說明:手動刷新本地書目</p><p> (2)運行界面:如圖5.2.2所示</p><p> 圖5.2.2 刷新本
76、地書目</p><p><b> (3)實現(xiàn)方法:</b></p><p> 當數(shù)據(jù)庫localbook內(nèi)有數(shù)據(jù)時,不進行SD卡遍歷,用戶可根據(jù)需要進行手動刷新。刷新的實現(xiàn)為開啟線程,遍歷SD卡電子書信息,同時取出localbook內(nèi)電子書信息進行對比,得出電子書的更改信息。并進行對數(shù)據(jù)庫電子書相關信息的修改。最后載入數(shù)據(jù)庫更改后的電子書信息。</p>
77、<p> 5.2.3 本地書目的導入</p><p> (1)功能說明:將SD卡內(nèi)書目導入本地書庫</p><p> (2)運行界面:如圖5.2.3、5.2.4所示</p><p> 圖5.2.3導入本地數(shù)目</p><p><b> (3)實現(xiàn)方法:</b></p><p&g
78、t; <1>界面實現(xiàn)與全選</p><p> 如圖5.2.3 當點擊某一個ListView中的文件夾時,通過數(shù)據(jù)庫查詢到該父文件夾包含的所有電子書信息,切換布局同時將電子書信息羅列出來。</p><p> 如圖5.2.4 進入子此界面后會添加一個全選的文字按鈕,將電子書信息存儲到一個集合中,進行邏輯判斷,點擊后全選文字按鈕會切換成反選按鈕。</p><
79、p> <2>書目導入過程及顯示</p><p> 該界面與圖5.2.2界面同用一個點擊監(jiān)聽事件,通過邏輯判斷,如果是點擊的是一個文件夾,則遍歷該文件夾包含的電子書,如果點擊的不是文件夾則將點擊的電子書的相關信息記錄到集合中,同時彈出popupwindow,顯示該集合的長度。</p><p> 圖5.2.4 popupwindow
80、</p><p> Popupwindow經(jīng)常于dialog混用,popupwindow用于將一個布局懸浮在另一個布局的上方,通過獲取該布局內(nèi)部按鈕ID,調(diào)用onClickListener獲取點擊事件。當點擊導入后,用popupwindow.dismiss()使其消失,同時從新加載ListView的適配器,同時更新數(shù)據(jù)庫,試導入書目狀態(tài)更改為已導入。</p><p> 返回上一級是通過
81、將適配器的數(shù)據(jù)源ArrayList內(nèi)下標為0的位置添加“返回上一級”信息,ArrayList的map內(nèi)并添加標志位,獲取點擊事件時,如果判斷點擊的為ListView的第0個位置,并且該位置不是文件夾時,則加載所有父文件夾信息,從而實現(xiàn)返回上一級功能。</p><p><b> (4)流程圖:</b></p><p><b> N</b><
82、;/p><p><b> Y </b></p><p> 圖5.2.5導入本地數(shù)目流程圖</p><p> 5.3 文章載入及翻頁實現(xiàn)</p><p> 5.3.1 文章載入</p><p> (1)功能說明:點擊書目后載入文章</p><p> (2)運行
83、界面:如圖5.3.1所示</p><p> 圖5.3.1 文章載入</p><p><b> (3)實現(xiàn)方法:</b></p><p> 如圖5.3.1當點擊本地書庫或最近閱讀內(nèi)書目后,通過Intent將書目地址載入并跳轉,getWindow().addFlags(WindowManager.LayoutParams.FlAG_FULLS
84、CREEN)實現(xiàn)全屏模式。同時更新數(shù)據(jù)庫,將該書目的狀態(tài)更改為最近閱讀。載入的實現(xiàn)具體如下:</p><p><b> <1>跳轉及編碼</b></p><p> 獲取Intent傳來的地址,對文件進行讀取,首先讀取文件的前三個字節(jié),目的是獲取該文件的編碼方式。</p><p><b> <2>計算書目頁
85、數(shù)</b></p><p> 根據(jù)字體的大小動態(tài)分配每頁的字符數(shù),將InputStreamReader套一層BufferedReader,通過調(diào)用read(char[],0,size)方法讀入字符,當返回值為-1時讀到結尾,否則頁數(shù)加1,這樣就可以用計算出本書的頁數(shù)。</p><p> <3>獲取指定頁數(shù)的內(nèi)容</p><p> 傳入要
86、載入的頁數(shù),同樣用InputStreamReader套一層BufferedReader并進行編碼轉換,再通過skip(size*(page-1))跳過該頁數(shù)之前的所有字符,然后通過read(char[],0,size)讀出該頁數(shù)的字符,然后存儲到StringBuffer內(nèi)。</p><p> <4>顯示指定頁數(shù)的內(nèi)容</p><p> 布局文件內(nèi)添加ViewFlipper組
87、件,將得到的StringBuffer寫入TextView中,再將TextView添加到ViewFlipper內(nèi),從而達到效果。ViewFlipper相當于一個容器,可以將視圖放入然后通過showNext()等方法對視圖進行切換。</p><p> <5>使一頁顯示不下的內(nèi)容通過滾動閱讀</p><p> ViewFlipper為水平滑動容器,當屏幕的空間無法完全顯示設置一頁
88、的字符數(shù)時,采用滾動作為垂直滑動容器,自定義一個FriendlyScrollView類,來重寫ScrollView的onTouchEvent和dispatchTouchEvent方法。在布局文件中添加FriendlyScrollView組件。從而實現(xiàn)垂直滾動。</p><p> 5.3.2 手勢識別</p><p> (1)功能說明:翻頁效果的實現(xiàn)</p><p&g
89、t; (2)運行界面:如圖5.3.2所示</p><p> 圖5.3.2 屏幕點擊</p><p><b> (3)實現(xiàn)方法:</b></p><p> <1>滑動屏幕事件及ViewFlipper翻頁</p><p> 實現(xiàn)OnGestureListener接口,并實現(xiàn)全部的方法。通過new Ges
90、tureDetector(this)添加監(jiān)聽,實現(xiàn)的onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)方法中,e1、e2分別為第一下點擊屏幕和離開屏幕的事件,可通過e1.getX()獲取第一次點擊屏幕時的橫坐標,e2.getX()獲取手指離開屏幕時的橫坐標,通過判斷當e1.getX() – e2.getX() > 120時即手指在屏幕右
91、邊滑到左邊時,判定為向后翻頁,當e1.getX() – e2.getX() < -120時即手指在屏幕左邊滑到右邊時,判定為向前翻頁。</p><p> 由于ViewFlipper中的切換是循環(huán)形式的,所以當向后翻頁或向后時,調(diào)用文件讀取方法將下一頁或上一頁的字符全部讀入到StringBuffer,并載入到ViewFlipper,此時調(diào)用ViewFlipper.showNext(),同時調(diào)用flipper
92、.removeViewAt(0)將ViewFlipper中0位置的視圖刪除,這樣就可以保證ViewFlipper中只有一個視圖存在,并且只讀取一頁的字符,從而實現(xiàn)動態(tài)載入的目的,這樣大大提升了系統(tǒng)性能,從而理論上實現(xiàn)無限大電子書的載入。</p><p> 在res下添加anim文件夾,放入翻頁動畫xml布局,在flipper.showNext()之前調(diào)用fllipper.setInAnimation實現(xiàn)翻頁的動
93、畫效果。</p><p><b> <2>屏幕點擊事件</b></p><p> 實現(xiàn)的onSingleTapUp(MotionEvent e)方法中,e為點擊屏幕事件,通過e.getY()獲取點擊屏幕的縱坐標,同時獲取屏幕高度進行判斷,如果點擊坐標為屏幕上1/3部分則調(diào)用先前翻頁方法,如果點擊坐標為屏幕下1/3部分則調(diào)用向后翻頁方法,如圖5.3.2
94、如果點擊其它部分即屏幕中間部分,則通過popupwindow彈出下方閱讀設置菜單,并退出全屏模式。再點一下該部分popupwindow消失,切換會全屏模式。</p><p> 5.4 閱讀設置功能實現(xiàn)</p><p> 閱讀設置菜單內(nèi)所有控件均放入popupwindow進行彈出,從而提高界面友好度及美觀性。</p><p> 5.4.1 字體設置</p&
95、gt;<p> (1)功能說明:調(diào)整文字大小</p><p> (2)運行界面:如圖5.4.1所示</p><p> 圖5.4.1 字體設置</p><p><b> (3)實現(xiàn)方法:</b></p><p> 如圖5.4.1 在xml文件中放入SeekBar組件,在布局文件中設定SeekBar的
96、最大值為20,同時通過onProgressChanged實現(xiàn)對SeekBar事件的監(jiān)聽,通過seekbar.getProgress()可以取出當前SeekBar的值,根據(jù)該值從新設置每頁的字符數(shù),同時從新計算該書的頁數(shù),計算完成后,再次載入該頁數(shù)的內(nèi)容到TextView中,并設置字體的大小,完成后將TextView載入到flipper中,并移除flipper的0位置的視圖,從而達到字體改變的效果。</p><p>
97、; 5.4.2 亮度設置</p><p> (1)功能說明:調(diào)整屏幕亮度及夜間模式</p><p> (2)運行界面:如圖5.4.2所示</p><p> 圖5.4.2 亮度設置</p><p><b> (3)實現(xiàn)方法:</b></p><p> 如圖5.4.2 同樣采用SeekBa
98、r組件,對SeekBar進行實時監(jiān)聽。獲取出SeekBar值,通過getWindow().setAttributes(WindowManager.LayoutParams.screenBrightness)進行設置屏幕的亮度。</p><p> 夜間模式為一個ImageButton,通過onClick進行監(jiān)聽,點擊后通過setImageResource切換按鈕的圖片,同時修改TextView的背景及字體顏色,同
99、時重新載入TextView,從而實現(xiàn)夜間模式。</p><p><b> 5.4.3 書簽</b></p><p> (1)功能說明:書簽的添加、跳轉、刪除</p><p> (2)運行界面:如圖5.4.3所示</p><p> 圖5.4.3 我的書簽</p><p><b>
100、 (3)實現(xiàn)方法:</b></p><p><b> <1>書簽的添加</b></p><p> 如圖5.4.3 popupwindow內(nèi)放入兩個ImageButton,點擊添加書簽,則將當前頁數(shù)、當前時間(精確到毫秒,用于區(qū)分各個書簽)、當前頁數(shù)的前10個字符添加入數(shù)據(jù)庫markhelper,同時使popupwindow消失并彈出一個To
101、ast,提示用戶添加成功。Toast為系統(tǒng)對話框,該對話框幾秒后會自動消失。</p><p><b> <2>書簽的跳轉</b></p><p> 創(chuàng)建一個自定義Dialog,內(nèi)部嵌套ListView,用于羅列書簽信息,由于SimpleAdapter為系統(tǒng)適配器,無法添加ListView內(nèi)部事件的監(jiān)聽,所以采用自定義Adapter,繼承BaseAdap
102、ter,重寫其中的getView方法,在該方法內(nèi)實現(xiàn)對點擊事件的監(jiān)聽。</p><p> 當點擊我的書簽時,遍歷數(shù)據(jù)庫markhelper,如果數(shù)據(jù)庫為空,則彈出Toast,提示用戶“您還沒有書簽”,否則將數(shù)據(jù)庫內(nèi)數(shù)據(jù)遍歷出來,放入集合中并加載ListView的自定義適配器。</p><p> 重寫MarkDialog的構造方法,當調(diào)用時將Read類中的Handler傳入,用于接受界面
103、跳轉信息,時候當點擊某個書簽時,onItemClickListener獲取是哪個書簽,取出頁數(shù)數(shù)據(jù),開啟線程,在Read類通過Handler接收,當接受信息時,調(diào)用MarkDialog內(nèi)的靜態(tài)方法getA()來獲取當前點擊書簽所在的頁數(shù),并進行flipper動態(tài)載入,從而實現(xiàn)跳轉到該書簽的位置。</p><p><b> <3>書簽的刪除</b></p><
104、p> 由于采用自定義適配器,可以監(jiān)聽到ListView內(nèi)部嵌套的點擊時間,故當添加用于刪除書簽的ImageButton,如圖5.4.3 當點擊小垃圾桶圖標時,獲取出該書簽的時間信息,在數(shù)據(jù)庫中刪除此行信息,同時從新加載ListView。當數(shù)據(jù)庫為空時,使MarkDialog消失。</p><p><b> (4)流程圖:</b></p><p> 圖5.4
105、.3(4) 書簽流程圖</p><p><b> 5.4.4 跳轉</b></p><p> (1)功能說明:跳轉到指定頁數(shù)</p><p> (2)運行界面:如圖5.4.4所示</p><p><b> 圖5.4.4 跳轉</b></p><p><b>
106、 (3)實現(xiàn)方法:</b></p><p> 如圖5.4.4 同樣采用SeekBar組件,根據(jù)書的總頁數(shù)動態(tài)設置Seek的最大值,實時獲取SeekBar的值,調(diào)用頁面跳轉的方法即重新載入flipper實現(xiàn)跳轉到指定頁數(shù)功能。跳轉之前記錄當前頁數(shù),如果用戶點擊取消,則跳回跳轉之前記錄的頁數(shù)。</p><p> 5.4.5 橫、豎屏翻頁切換</p><p&
107、gt; (1)功能說明:橫屏翻頁與豎屏翻頁之間額切換</p><p> (2)運行界面:如圖5.4.5所示</p><p> 圖5.4.5橫、豎屏翻頁切換</p><p><b> (3)實現(xiàn)方法:</b></p><p> 如圖5.4.5 同樣采用ImageButton組件,默認為橫屏翻頁即橫向滑動翻頁,點擊
108、按鈕后,切換模式,將整個文件全部載入到flipper,實現(xiàn)上下滾動翻頁,但內(nèi)容過多時,內(nèi)存將溢出,故判斷如果內(nèi)容超過10萬字符時,截取前10萬字符顯示,并通過Toast提示用戶“文件過長,建議切換橫屏閱讀”。</p><p> 5.5 其它功能點實現(xiàn)</p><p> 5.5.1 回退鍵的重寫</p><p> (1)功能說明:當按手機回退鍵時頁面的跳轉 &l
109、t;/p><p><b> (2)實現(xiàn)方法:</b></p><p> 在閱讀界面、導入本地書目界面均通過onKeyDown重寫了手機的回退鍵按鈕,在閱讀界面\導入本地書目界面重寫回退鍵,通過Intent傳標志到MainActivity,在MainActivity中通過getIntent獲取標志,并通過標志載入最近閱讀界面\本地書目界面。從而實時更新本地書庫及最近閱讀
110、。</p><p> 5.5.2 快捷方式及書目刪除</p><p> (1)功能說明:將書目添加到桌面快捷方式及刪除書目</p><p> (2)運行界面:如圖5.5.2所示</p><p> 圖5.5.2ContextMenu及快捷方式</p><p><b> (3)實現(xiàn)方法:</b&g
111、t;</p><p><b> <1>書目的刪除</b></p><p> 如圖5.5.2 通過onCreateContextMenu創(chuàng)建上下文菜單,并通過給ListView添加長按點擊事件,當用戶長按某一個電子書時,在界面上方就會彈出該對話框。通過onContextItemSelected監(jiān)聽點擊的是Menu中的哪個選項。</p>&l
112、t;p> 當點擊“從閱讀列表中刪除”,獲取當前書目的地址,清空與該書有關的所有信息記錄,并重新載入ListView。</p><p><b> <2>添加快捷方式</b></p><p> 在Mainfest中加入添加快捷方式權限,當點擊“創(chuàng)建快捷方式”,添加Intent,將圖標、標題、地址、標志等信息傳入,創(chuàng)建快捷方式并發(fā)送廣播。在MainA
113、ctivity中進行獲取Intent標志信息,如果判斷為在快捷方式進入,則獲取書目地址,進行跳轉到該書目。</p><p> 5.5.3 SharedPreferences</p><p> (1)功能說明:書目各種狀態(tài)的記錄</p><p> (2)運行界面:如圖5.5.4所示</p><p> 圖5.5.4SharedPrefer
114、ences</p><p><b> (3)實現(xiàn)方法:</b></p><p> 如圖5.5.3 閱讀進度是通過SharedPreferences記錄。SharedPreferences提供了一種輕量級的數(shù)據(jù)存儲方法,它是以“鍵-值”對的方式進行存儲。本系統(tǒng)大量使用SharedPreferences,包括記錄閱讀設置的字體、亮度、亮度模式、翻頁模式、閱讀進度。當下
115、次進入閱讀界面時,均會讀取SharedPreferences內(nèi)存儲的相關信息進行設置。</p><p><b> 6 系統(tǒng)測試</b></p><p><b> 6.1 測試環(huán)境</b></p><p> 手機平臺:HTC Incredible S(G11)</p><p> 手機系統(tǒng):An
116、droid 2.2</p><p> CPU頻率:1024MHz</p><p> 機身內(nèi)存:1124MB ROM+786MB RAM</p><p><b> 儲存卡:2G</b></p><p> 6.2 超大文件載入</p><p> 將一個50M的文本導入本地書庫并進行閱讀,點擊
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文范文——基于android平臺的手機電子書閱讀器設計
- 電子書城系統(tǒng) ——畢業(yè)論文
- 基于android的手機電子書閱讀器的設計與實現(xiàn)(優(yōu)秀)
- 基于Android電子書閱讀器研究與實現(xiàn)論文.doc
- 基于android電子書閱讀器研究與實現(xiàn)
- 基于Android的電子書閱讀器的設計與實現(xiàn)論文.doc
- 基于Android的手機電子書閱讀器的設計與實現(xiàn)評審記錄.doc
- 基于電子書包的教學模式研究 畢業(yè)論文
- 基于Android的手機電子書閱讀器的設計與實現(xiàn)外文翻譯.doc
- 基于Android的手機電子書閱讀器的設計與實現(xiàn)開題報告.doc
- 智能時代手機電子書閱讀軟件盤點
- Linux平臺嵌入式epub電子書閱讀與管理系統(tǒng).pdf
- 基于android平臺的手機商城的畢業(yè)論文
- 基于Android的手機電子書閱讀器的設計與實現(xiàn)中期檢查表.doc
- 基于語義的電子書交互閱讀.pdf
- 基于Android的手機電子書閱讀器的設計與實現(xiàn)任務書.doc
- 基于Android的手機電子書閱讀器的設計與實現(xiàn)計劃進程表.doc
- 基于android平臺的手機計步器設計【畢業(yè)論文】
- 基于android的電子書閱覽器的設計與實現(xiàn)職業(yè)學院畢業(yè)論文
- 臺灣電子書及平臺現(xiàn)況介紹
評論
0/150
提交評論