《電子商務(wù)移動開發(fā)技術(shù)》大作業(yè)簡易PDF閱讀器_第1頁
《電子商務(wù)移動開發(fā)技術(shù)》大作業(yè)簡易PDF閱讀器_第2頁
《電子商務(wù)移動開發(fā)技術(shù)》大作業(yè)簡易PDF閱讀器_第3頁
《電子商務(wù)移動開發(fā)技術(shù)》大作業(yè)簡易PDF閱讀器_第4頁
《電子商務(wù)移動開發(fā)技術(shù)》大作業(yè)簡易PDF閱讀器_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1 電子商務(wù)移動開發(fā)技術(shù)大作業(yè) 簡易簡易 pdfpdf 閱讀器閱讀器 院院 系:系:經(jīng)濟管理學(xué)院 專專 業(yè)業(yè):電子商務(wù) 班班 級:級:12 計商 a2 學(xué)學(xué) 號:號:20124831633 姓姓 名名: 授課教師:授課教師: 20152015 年年 6 6 月月 1 1 日日 定稿定稿 ii 簡易簡易 pdfpdf 閱讀器閱讀器 摘摘 要要 在科技日益發(fā)達的今天,社會競爭越來越激烈,這要求人們不斷的攝取信息來 充實自己。要求人們能隨時隨地的了解并獲取所需的信息。在這種情況下,電子書 閱讀器剛好滿足了人們便捷地獲取信息的需求。本文設(shè)計的簡易 pdf 閱讀器是基于 android 平臺設(shè)計的,an

2、droid 平臺是目前發(fā)展最快、最具市場前景的智能手機操作 系統(tǒng)。 本系統(tǒng)是根據(jù) google android 平臺用戶的喜好和其平臺的特性而設(shè)計的,在 google android 平臺自帶的 sdk 環(huán)境下,運用 eclipse,photoshop 等相關(guān)工具進 行開發(fā)的。本文介紹了 google android 開發(fā)的流程,討論了基于 android 平臺應(yīng) 用程序開發(fā)的關(guān)鍵技術(shù),對簡易 pdf 閱讀器做了詳細的需求分析,并重點介紹了基 于 android 平臺的手機電子書閱讀器的總體設(shè)計,主要包括手機電子書閱讀器的架 構(gòu)設(shè)計、各功能模塊的設(shè)計與實現(xiàn)。 本文設(shè)計的簡易 pdf 閱讀器通過

3、了功能和性能方面的測試,證明了本文設(shè)計方 案的可行性。通過對基于 android 平臺手機簡易 pdf 閱讀器的設(shè)計與實現(xiàn)的介紹, 希望能為今后開發(fā)出功能更強大的閱讀器提供有益的借鑒。 關(guān)鍵詞:android,pdf,sdk,pdf 閱讀器,sd 卡讀取 3 a simple pdf reader abstract in science and technology increasingly developed today, society is more and more fierce competition, it requires people to constantly absorb

4、information to enrich themselves. people can understand and get the required information anytime and anywhere. in this case, e-book readers just meet the needs of the people to obtain information easily. this paper design the simplified pdf reader is designed based on the android platform, the andro

5、id platform is the fastest growing, most market prospect of intelligent mobile phone operating system. this system is according to users preferences and google android platform is designed according to the features of its platform, bring on the google android platform sdk environment, using the ecli

6、pse, photoshop and other related tools for development. google android development process has been introduced in this paper, based on the android platform application development is discussed, the key technologies of simplified pdf reader demand analysis in detail, and introduced the overall design

7、 based on android platform of mobile phone e-book reader, mainly includes the architecture design of mobile phone e-book reader, each function module design and implementation. simple pdf reader design in this paper through the functional and performance testing, proved the feasibility of the design

8、. based on based on the android platform mobile phone the introduction of the design and implementation of a simplified pdf reader, hope for the future to develop more powerful reader in order to provide the beneficial reference. keywords: android, pdf, sdk, pdf reader, read sd card 4 目目 錄錄 摘摘 要要.1

9、abstract .2 第一章第一章 緒論緒論.5 1.11.1 概述概述.5 1.21.2 課題研究的目的和意義課題研究的目的和意義.6 1.31.3 本文的結(jié)構(gòu)本文的結(jié)構(gòu).6 1.41.4 本章小結(jié)本章小結(jié).6 第二章第二章 研究現(xiàn)狀研究現(xiàn)狀.7 2.12.1 國內(nèi)外研究現(xiàn)狀國內(nèi)外研究現(xiàn)狀.7 2.22.2 本章小結(jié)本章小結(jié).7 第三章第三章 可行性分析可行性分析.8 3.13.1 需求分析需求分析.8 3.23.2 pdfpdf 閱讀器功能需求閱讀器功能需求 .8 3.33.3 運行環(huán)境運行環(huán)境.8 3.43.4 開發(fā)工具開發(fā)工具.9 3.53.5 本章小結(jié)本章小結(jié).9 參參 考考 文文

10、 獻獻.12 致致 謝謝.13 符號與標(biāo)記(附錄符號與標(biāo)記(附錄 1 1).14 第 6 頁 第一章第一章 緒論緒論 1.11.1 概述概述 手機已經(jīng)成為了生活中不可缺少的通訊設(shè)備,沒有手機有時會讓人覺得寸步難 行。手機不僅具備傳統(tǒng)的打電話、發(fā)短信等基本的功能,而且具有強大的處理能力 和可擴展能力,能進行電子圖書的閱覽、基于 3g 網(wǎng)絡(luò)實現(xiàn)高速數(shù)據(jù)傳輸、第三方瀏 覽軟件的運用等,越來越多的功能和業(yè)務(wù)將被開發(fā)出來并大規(guī)模的應(yīng)用。正基于此, google 于 2007 年 11 月 5 日宣布推出基于 linux 平臺的開源手機操作系統(tǒng),號稱首 個為移動終端打造的真正開放和完整的移動軟件andro

11、id。 二十世紀七十年代,著名軟件工程師 andsan.fandamu 在美國布朗大學(xué)闡述通過 計算機創(chuàng)建和閱讀文件的時候首次提出了電子書1(electronic book,ebook)這一 術(shù)語。電子書是利用現(xiàn)代信息技術(shù)創(chuàng)造的全新出版方式,將傳統(tǒng)的書籍出版發(fā)行方 式以數(shù)字的形式通過計算機網(wǎng)絡(luò)實現(xiàn)。閱讀器指的是一個設(shè)備,是專門用來看電子 書的。隨著數(shù)字化的不斷興起,電子閱讀器市場的競爭變得越來越激烈。 電子閱讀現(xiàn)在是國家和業(yè)內(nèi)非常重視的一個新興產(chǎn)業(yè),它與國家提倡的“自主 創(chuàng)新,增強核心競爭力”、開展低碳、節(jié)能環(huán)保的社會環(huán)境相吻合,很多廠商、科 研院所都將目光放到了這個原本沒有足夠重視的領(lǐng)域上。

12、同時,手機電子書閱讀器 作為廣大網(wǎng)民經(jīng)常使用的一個工具,在手機閱讀市場逐漸擴大的時候,人們對于閱 讀的方便性和各種功能設(shè)置都有了更高的要求。 雖然現(xiàn)在手機電子書閱讀器功能己經(jīng)比較完善,但是離人們的期望還存在較大 的距離,比如改善人們的閱讀環(huán)境,使人們讀起來不感到疲倦而且充滿樂趣,同時 現(xiàn)在的閱讀器多媒體性能還不夠完善。因此,手機電子書閱讀器的應(yīng)用研究還大有 潛力可挖。 第 7 頁 1.21.2 課題研究的目的和意義課題研究的目的和意義 當(dāng)今社會手機是已經(jīng)成為了生活中不可缺少的通訊設(shè)備,隨著科技的發(fā)展手機 的功能也越來越強大,手機電子閱讀器是手機中的一種重要軟件,其真正意義上指 的是一個可以閱讀

13、設(shè)備,是專門用來閱讀電子書的,隨著二十一世紀數(shù)字信息化的 不斷興起,電子閱讀器的市場競爭也變得越來越激烈。 時下社會的進步更是讓人們的生活越來越忙碌,抱著厚厚的書本穿梭于大街小 巷已經(jīng)不再適應(yīng)這個忙碌的時代。當(dāng)人們奔波于不同的城市、出沒在不同的場所、 搭乘不同的交通工具的時候,手機電子閱讀器就可以為人們提供方便快捷的閱讀平 臺,它的作用就像一座橋梁,在我們不方便利用書本或者網(wǎng)絡(luò)的時候提供一個更快 更方便的平臺,讓人們能隨時的閱讀自己喜歡的電子圖書。 就是因為手機電子閱讀器方便快捷的優(yōu)點,使得人們把用手機電子閱讀器閱讀 閱讀電子書當(dāng)做當(dāng)科技時代的一種時尚。這也讓手機電子閱讀器在人們的生活中扮 演

14、的角色越來越重要。 1.31.3 本文的結(jié)構(gòu)本文的結(jié)構(gòu) 本文介紹了作者從了解國內(nèi)外發(fā)展現(xiàn)狀,到配置開發(fā)環(huán)境以及需求分析之后完 成項目并且調(diào)試成功的過程,展現(xiàn)了簡易 pdf 閱讀器的開發(fā)歷程。 1.41.4 本章小結(jié)本章小結(jié) 本章主要初步介紹了 android 技術(shù)的起源與發(fā)展,簡易 pdf 閱讀器開發(fā)的意義 和目的,和電子閱讀器這個行業(yè)的背景。 第 8 頁 第第 2 章章 研究現(xiàn)狀研究現(xiàn)狀 2.12.1 國內(nèi)外研究現(xiàn)狀國內(nèi)外研究現(xiàn)狀 最早出現(xiàn)在市場上的電子書閱讀器是美國 soft book 公司的 soft book 和 nov.media 公司的 rocketbook。它們都具有美觀的外型形

15、狀像一本古典的精裝書, 存儲容量分別為 8mb 和 32mb 的內(nèi)存,分別可以容納 5,000 和 32,000 多個電子頁的 信息,與計算機串口相連,可以從 soft book 和 nuvo media 的網(wǎng)上售書連鎖店,下 載書籍和期刊。2000 年 8 月, 美國微軟公司發(fā)布了一個可供人們閱讀電子書的應(yīng)用軟件 microsoft reader, 這種閱讀器軟件的核心技術(shù)是 clear type,微軟稱之為“對液晶顯示屏具有革命性 的變革”,它是一種能使文字在顯示器上的顯示效果像印在紙上一樣平滑清晰的字 符顯示技術(shù),這種技術(shù)大大提高了屏幕的分辨率和清晰度,使讀者能夠獲得最接近 傳統(tǒng)書的閱讀

16、效果。同時南開大學(xué)津科公司開發(fā)了一款閱讀不耗電的電子書閱讀器, 該電子書閱讀器已經(jīng)面市并將投人大規(guī)模生產(chǎn)。它采用了華人科學(xué)家吳葆剛博士發(fā) 明的“多穩(wěn)態(tài)液晶顯示器”,并在國際上首次實現(xiàn)了“翻頁不耗電”閱讀顯示。除 了上述幾種電子書閱讀器之外,every book,librius,glass book 等公司也都推出 了自己的電子書閱讀器和閱讀軟件,遼寧出版集團和美國秦通公司聯(lián)手合作推出了 中文電子“掌上書屋”。隨著這些閱讀器的出現(xiàn),使得電子圖書、期刊這些原本只 能在 pc 上閱讀的東西突然變得可以移動,電子書籍與紙制書籍之間的距離縮短了一 大步。同時,電子書閱讀器更方便和靈活的使用功能也在不斷地

17、研究推出,例如, 可以在閱讀的時候加批注、書簽、字體可縮放、旋轉(zhuǎn)和支持聲音播放等等。 2.22.2 本章小結(jié)本章小結(jié) 本章主要介紹了電子閱讀器在國際國內(nèi)上的發(fā)展現(xiàn)狀,以及行業(yè)背景。 第 9 頁 第第 3 章章 可行性分析可行性分析 為了開發(fā)出真正滿足用戶需求的軟件產(chǎn)品,需要對開發(fā)產(chǎn)品做出需求分析。對 軟件的需求的合理把握是軟件開發(fā)周期中非常重要的一個環(huán)節(jié),本章將對手機閱讀 器作較為全面的需求分析。 3.13.1 需求分析需求分析 隨著手機功能不斷增強,手機閱讀器已成為智能手機重要軟件之一。開發(fā)一款 符合廣大用戶需求的手機閱讀器有很好的市場前景和意義。 本軟件的目標(biāo)是開發(fā)一款基于 android

18、 平臺符合用戶使用需求的手機電子書閱 讀器。本閱讀器支持 pdf 格式的文件。用戶可以通過 pdf 閱讀器從 sdcard 選擇自己 想要觀看的 pdf 文件。本軟件具有美觀簡潔便于用戶使用的觸摸界面,這也是 android 操作系統(tǒng)不同于傳統(tǒng) windows mobile 和 symbian 系統(tǒng)上應(yīng)用軟件的優(yōu)勢之 一。 3.23.2 pdfpdf 閱讀器功能需求閱讀器功能需求 作為 android 平臺上開發(fā)的應(yīng)用軟件,它具有與用戶交互的界面,界面簡潔美 觀易于操作。因此,對手機閱讀器的功能規(guī)定可以從手機閱讀器的界面來劃分。手 機閱讀器的用戶操作界面分為一下四部分:讀取界面,閱讀界面。 3

19、.33.3 運行環(huán)境運行環(huán)境 1.系統(tǒng)要求 android 系統(tǒng) 2.2 版本以上,對以后繼續(xù)進行升級開發(fā)有可延續(xù)性。 第 10 頁 2.靈活性 軟件基于 android 操作系統(tǒng),是基于組件的開發(fā)方式。 3.時間特性的要求 軟件的速度要在用戶可接受的范圍能擴展需求。 4.軟件特性要求 軟件運行速度要在用戶可接受的范圍之內(nèi),對流量、電量等消耗要在用戶可接 受范圍之內(nèi)。 3.43.4 開發(fā)工具開發(fā)工具 作者運用 myeclipse 軟件搭配 android apk 進行軟件開發(fā),操作系統(tǒng)為 win7 64 位,使用虛擬機為 android 4.0 480*800 的虛擬機。 3.53.5 本章小

20、結(jié)本章小結(jié) 本章主要介紹了 pdf 閱讀器的需求分析、pdf 閱讀器的功能需求和軟件運行需 要的環(huán)境和軟件的開發(fā)環(huán)境。 第 11 頁 第四章第四章 系統(tǒng)設(shè)計系統(tǒng)設(shè)計 4.14.1 結(jié)構(gòu)設(shè)計結(jié)構(gòu)設(shè)計 android 的架構(gòu)是 linux 內(nèi)核、c/c+函數(shù)庫、dalvik 虛擬機、應(yīng)用框架以及關(guān) 鍵應(yīng)用程序構(gòu)成的,如圖 1 所示,通過編譯基于框架的應(yīng)用程序可以降低開發(fā)負荷。 應(yīng)用軟件原則上是在 dalvik vm 上運行的。 圖 1 android 的架構(gòu)1 關(guān)鍵應(yīng)用程序 android 平臺內(nèi)包含一些關(guān)鍵應(yīng)用程序,如郵件收發(fā)客戶端程序、短信收發(fā)程 序、日歷和網(wǎng)頁瀏覽器等,開發(fā)者可以在其平臺上開

21、發(fā)更多有特色的應(yīng)用程序。開 發(fā)語言是 java。 應(yīng)用程序框架 1 張鵬.eclipse 插件開發(fā)學(xué)習(xí)筆記z.北京:電子工業(yè)出版社,2008 第 12 頁 android 應(yīng)用程序的開發(fā)基于框架和組件。android 本身已在其框架中提高了許 多的組件供應(yīng)用程序調(diào)用,當(dāng)然開發(fā)者也開放新的組件,并將組件放入應(yīng)用程序框 架中,以供自己和其它應(yīng)用程序調(diào)用。 c/c+函數(shù)庫 android 應(yīng)用程序框架之下是一套 c/c+函數(shù)庫,它們服務(wù)于 android 應(yīng)用程序 組件,其功能通過組件間接提供給開發(fā)者。這些函數(shù)庫包括:標(biāo)準 c 函數(shù)庫、媒體 功能庫、瀏覽器引擎、2d 和 3d 圖形庫、基于 web

22、應(yīng)用的的安全協(xié)議 ssl、用于點陣 和矢量字體渲染的 freetype 以及 sqlite 引擎等。 java 程序運行環(huán)境 android 的 java 程序運行環(huán)境包含一組 java 核心函數(shù)庫及 dalvik 虛擬機,它 們有效地優(yōu)化了 java 程序的運行過程。所有的 android 應(yīng)用都運行在它自己的進程 里,該進程是一個 dalvik 虛擬機的實例,dalvik 被設(shè)計成能在一臺設(shè)備上高效的 運行多個虛擬機實例。dalvik 虛擬機的可執(zhí)行文件被封裝成 dalvik 可執(zhí)行格式 (.dex)。這是被優(yōu)化過的最小內(nèi)存依賴的格式。java 編譯器(dx 工具)將注冊了的和 運行時用到

23、的類編譯成.dex 格式。dalvik 虛擬機依賴于底層 linux 內(nèi)核提供的功能, 如線程機制,和內(nèi)存管理機制等。 linux 內(nèi)核 android 系統(tǒng)平臺是基于優(yōu)化了的 linux 內(nèi)核,是其系統(tǒng)平臺的核心。它提供 諸如內(nèi)存管理、進程管理、設(shè)備驅(qū)動等服務(wù),同時也是手機軟硬件的連接層,提供 了一個屏蔽層用于屏蔽硬件和上層軟件。 4.2 系統(tǒng)功能設(shè)計系統(tǒng)功能設(shè)計 應(yīng)用平臺層是位于 android 操作系統(tǒng)與應(yīng)用層之間的,homescreen 是用來用用 程序顯示的,它是用來管理和開啟應(yīng)用程序的平臺。最上層的是應(yīng)用程序,該層包 含手機上安裝的各種應(yīng)用程序,只要包括:日歷,地圖,聯(lián)系人,短信,

24、電話,鬧 第 13 頁 鐘等。本文設(shè)計的手機電子說閱讀器就是屬于應(yīng)用層。 圖 2-系統(tǒng)功能設(shè)計 4.34.3 本章小結(jié)本章小結(jié) 本章介紹了系統(tǒng)設(shè)計的概要。 第 14 頁 第五章第五章 系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn) 5.15.1 界面設(shè)計界面設(shè)計 界面設(shè)計見圖 3、圖 4、圖 5、圖 6、圖 7。本閱讀器的界面簡單明了,使用戶 在最短時間內(nèi)打開自己想要查看的 pdf,省略花哨的界面只保留最有用的功能。 圖 3-閱讀器初始界面 第 15 頁 圖 4 閱讀器打開 pdf 界面 第 16 頁 、 圖 5-閱讀器未找到 pdf 界面 第 17 頁 圖 6-閱讀器查找 pdf 界面 第 18 頁 圖 7-閱讀器在應(yīng)用

25、程序列表中的圖標(biāo) 5.25.2 閱讀閱讀 pdfpdf 功能功能 本功能可以在 android 手機上將 pdf 文件以圖片的形式打開,解決以往 pdf 文 件在手機上無法查看的問題。部分代碼如下: package com.sun.pdfview; import java.util.iterator; 第 19 頁 import java.util.list; import net.sf.andpdf.utils.utils; import android.graphics.matrix; import android.graphics.pointf; import android.graph

26、ics.rectf; import android.util.log; import com.sun.pdfview.font.pdffont; import com.sun.pdfview.font.pdfglyph; public class pdftextformat implements cloneable /* character spacing */ private float tc = 0; /* word spacing */ private float tw = 0; /* horizontal scaling */ private float th = 1; /* lead

27、ing */ private float tl = 0; /* rise amount */ private float tr = 0; /* text mode */ private int tm = pdfshapecmd.fill; /* text knockout */ private float tk = 0; /* current matrix transform */ private matrix cur; /* matrix transform at start of line */ private matrix line; /* font */ private pdffont

28、 font; /* font size */ private float fsize = 1; /* are we between bt and et? */ private boolean inuse = false; / private object array= new object1; 第 20 頁 /* build text rep of word */ private stringbuffer word = new stringbuffer(); / this is where we build and keep the word list for this page. /* st

29、art location of the hunk of text */ private pointf wordstart; /* location of the end of the previous hunk of text */ private pointf prevend; /* * create a new pdftextformat, with initial values */ public pdftextformat() cur = new matrix(); line = new matrix(); wordstart = new pointf(-100, -100); pre

30、vend = new pointf(-100, -100); tc = tw = tr = tk = 0; tm = pdfshapecmd.fill; th = 1; /* * reset the pdftextformat for a new run */ public void reset() cur.reset(); line.reset(); inuse = true; word.setlength(0); /* * end a span of text */ public void end() inuse = false; 第 21 頁 /* get the char spacin

31、g */ public float getcharspacing() return tc; /* set the character spacing */ public void setcharspacing(float spc) this.tc = spc; /* get the word spacing */ public float getwordspacing() return tw; /* set the word spacing */ public void setwordspacing(float spc) this.tw = spc; /* * get the horizont

32、al scale * return the horizontal scale, in percent */ public float gethorizontalscale() return th * 100; /* * set the horizontal scale. * param scl the horizontal scale, in percent (100=normal) */ public void sethorizontalscale(float scl) this.th = scl / 100; /* get the leading */ public float getle

33、ading() return tl; 第 22 頁 /* set the leading */ public void setleading(float spc) this.tl = spc; /* get the font */ public pdffont getfont() return font; /* get the font size */ public float getfontsize() return fsize; /* set the font and size */ public void setfont(pdffont f, float size) this.font

34、= f; this.fsize = size; /* * get the mode of the text */ public int getmode() return tm; /* * set the mode of the text. the correspondence of m to mode is * show in the following table. m is a value from 0-7 in binary: * * 000 fill * 001 stroke * 010 fill + stroke * 011 nothing * 100 fill + clip * 1

35、01 stroke + clip * 110 fill + stroke + clip 第 23 頁 * 111 clip * * therefore: fill corresponds to the low bit being 0; clip * corresponds to the hight bit being 1; and stroke corresponds * to the middle xor low bit being 1. */ public void setmode(int m) int mode = 0; if (m if (m if (m this.tm = mode;

36、 /* * set the mode from another text format mode * * param mode the text render mode using the * codes from pdfshapecmd and not the wacky pdf codes */ public void settextformatmode(int mode) this.tm = mode; /* * get the rise */ public float getrise() return tr; /* 第 24 頁 * set the rise */ public voi

37、d setrise(float spc) this.tr = spc; /* * perform a carriage return */ public void carriagereturn() carriagereturn(0, -tl); /* * perform a carriage return by translating by x and y. the next * carriage return will be relative to the new location. */ public void carriagereturn(float x, float y) matrix

38、 trans = new matrix(); trans.settranslate(x, y); line.preconcat(trans); cur.set(line); /* * get the current transform */ public matrix gettransform() return cur; /* * set the transform matrix directly */ public void setmatrix(float matrix) line = new matrix(); utils.setmatvalues(line, matrix); cur.s

39、et(line); 第 25 頁 /* * add some text to the page. * param cmds the pdfpage to add the commands to * param text the text to add */ public void dotext(pdfpage cmds, string text) pointf zero = new pointf(); matrix scale = new matrix(); utils.setmatvalues(scale, fsize, 0, 0, fsize * th, 0, tr); matrix at

40、 = new matrix(); list l = font.getglyphs(text); for (iterator i = l.iterator(); i.hasnext();) pdfglyph glyph = (pdfglyph) i.next(); at.set(cur); at.preconcat(scale); pointf advance = glyph.addcommands(cmds, at, tm); float advancex = (advance.x * fsize) + tc; if (glyph.getchar() = ) advancex += tw; a

41、dvancex *= th; cur.pretranslate(advancex, advance.y); float src = zero.x, zero.y; float dst = new floatsrc.length; cur.mappoints(dst, src); prevend.set(dst0, dst1); /* * add some text to the page. * param cmds the pdfpage to add the commands to * param ary an array of strings and doubles, where the

42、strings * represent text to be added, and the doubles represent kerning 第 26 頁 * amounts. */ public void dotext(pdfpage cmds, object ary) throws pdfparseexception for (int i = 0; i ary.length; i+) if (aryi instanceof string) dotext(cmds, (string) aryi); else if (aryi instanceof double) float val = (

43、double) aryi).floatvalue() / 1000f; cur.pretranslate(-val * fsize * th, 0); else throw new pdfparseexception(bad element in tj array); /* * finish any unfinished words. todo: write this! */ public void flush() / todo: finish any unfinished words /* * clone the text format */ override public object c

44、lone() pdftextformat newformat = new pdftextformat(); / copy values newformat.setcharspacing(getcharspacing(); newformat.setwordspacing(getwordspacing(); newformat.sethorizontalscale(gethorizontalscale(); newformat.setleading(getleading(); newformat.settextformatmode(getmode(); newformat.setrise(get

45、rise(); / copy immutable fields newformat.setfont(getfont(), getfontsize(); 第 27 頁 / clone transform (mutable) / newformat.gettransform().settransform(gettransform(); return newformat; 5.35.3 本章小結(jié)本章小結(jié) 本章主要介紹了 pdf 閱讀器的界面布局,界面樣式,和 pdf 閱讀器其中的功能, 并且展示部分代碼。 第六章第六章 系統(tǒng)測試系統(tǒng)測試 6.16.1 androidandroid 手機系統(tǒng)測試之打斷

46、事件手機系統(tǒng)測試之打斷事件 android 手機提供的打斷事件與以往手機有著一些機制上的不同,當(dāng)然也有很多 跟以前一樣的機制。所以我們要從他的應(yīng)用程序打斷機理出發(fā),定制本系統(tǒng)的系統(tǒng) 測試用例的打斷事件。 1打斷事件一般分為系統(tǒng)基本打斷事件; 2back 鍵; 3改變手機方向; 4長按 home 鍵,切換應(yīng)用程序; 5內(nèi)容沖突檢測(content provider); 6長按 power 鍵,調(diào)出關(guān)機窗口; 第 28 頁 home 鍵回 home app,當(dāng)前測試的應(yīng)用就會放到后臺處于 stop 狀態(tài)。 如果想監(jiān)控到 activity 生命周期的變化,必然會在 create 或 start 等處

47、有代碼來 進行處理。在 startactivityforresu 函數(shù)中,minstrumentation.execstartactivity()一句 讓我們看到至少有一個 minstrumentation 的對象受委托在啟動 activity,這個委托是 有可能加入監(jiān)控動作的。 public void startactivityforresult(intent intent, int requestcode) . 在以 perform 開頭的幾個函數(shù)中,本系統(tǒng)再次發(fā)現(xiàn)了對 minstrumentation 對象的 調(diào)用。例如 performstart()函數(shù)。 final void perf

48、ormstart() . 該類的接口主要有以下幾類:對 activity 監(jiān)控對象的處理接口,activity 狀態(tài)改 變時的回調(diào)通知接口,生成 activity 和 application 的接口,向 activity 發(fā)送事件通 知的接口,性能處理的接口等。 先來看 callactivityoncreate()函數(shù)。 public void callactivityoncreate(activity activity, bundle icicle) . 再來看本文章前文提到的 execstartactivity()函數(shù)。 public activityresult execstartact

49、ivity( . 6.26.2 測試中發(fā)現(xiàn)的問題及修復(fù)測試中發(fā)現(xiàn)的問題及修復(fù) 本系統(tǒng)在設(shè)計開發(fā)的過程當(dāng)中,遇到了不少的問題,在老師的細心幫助和指導(dǎo), 在各位朋友,同時的同心協(xié)助下都已一一解決。 本程序的最主要問題是在文件源獲取時,發(fā)生因為手機儲存卡內(nèi)部文件繁瑣, 第 29 頁 樣式冗雜,導(dǎo)致本程序在遍歷內(nèi)存卡,添加可用文件的時候出現(xiàn)錯誤的判斷,使得 電子書不能正常的導(dǎo)入或者導(dǎo)入手機之后程序卻不能正確的讀取,在同學(xué)的幫助之 下,本程序最終采用直接輸入文件名查詢文件,完美的解決了文件加載錯誤的問題。 6.36.3 本章小結(jié)本章小結(jié) 本章主要介紹了軟件的測試過程,和其中問題和修復(fù)過程。 第七章第七章

50、 總結(jié)總結(jié) 7.17.1 主要結(jié)論主要結(jié)論 隨著智能手機和 3g 網(wǎng)絡(luò)的發(fā)展,手機的功能和性能、通信網(wǎng)絡(luò)的數(shù)據(jù)業(yè)務(wù)支持 能力將極大增強,手機將脫離傳統(tǒng)的打電話、發(fā)短信等基本的功能,而基于智能手 機強大的處理能力和可擴展能力,基于 3g 網(wǎng)絡(luò)高速數(shù)據(jù)傳輸,越來越多的功能和業(yè) 務(wù)將被開發(fā)出來并大規(guī)模的應(yīng)用 。而 android 手機平臺作為移動平臺的新秀,以 其良好的性能和強大的功能,以開源的形式受到廣大開發(fā)者和手機制造商的青睞, 在這種情況下,google android 無疑成為我們進行智能手機開發(fā)的一個非常好的選 擇。 本文,筆者通過對 android 這個橫空出世的平臺的簡要介紹,概述了其

51、眾多的 優(yōu)點和其對整個智能手機乃至手機軟件開發(fā)行業(yè)的意義和重要性,闡明了其研究的 重要性和必行性。而后,筆者根據(jù) android market 上用戶的喜愛程度來選擇了研 究方向:基于 android 手機平臺的 pdf 閱讀器。并根據(jù)此項目自身的特點和 android 平臺的特點,選取了相應(yīng)的開發(fā)工具,并對其做了簡單的介紹。而后根據(jù) 第 30 頁 電子書閱讀器的特點選擇了數(shù)據(jù)庫存取方式,并根據(jù) android 手機的特點制定了基 于 andorid 手機平臺下的電子商業(yè)閱讀器的布局(界面),然后根據(jù) android 平臺的 自身特點進行了開發(fā),并對其關(guān)鍵性代碼進行了說明。并對該項目做了相關(guān)的

52、測試。 在本課題完成的過程中,筆者完成了以下工作: 1.閱讀了大量的相關(guān)書籍,對 android 手機平臺的開發(fā)有了較為深層次的了解。 2.實踐了開發(fā)環(huán)境的搭建,并最開發(fā)工具做了相關(guān)的了解和優(yōu)化,最終選取了 當(dāng)前開發(fā)環(huán)境和開發(fā)工具的配置。 3.開發(fā)并測試了基于 android 平臺下的 pdf 閱讀器,對一些已知的和用戶反饋 的 bug 和不足之處進行了修改。 7.27.2 研究展望研究展望 由于時間倉促,本系統(tǒng)還有些功能需要進一步完善,下一步努力的方向如下: 1. 實現(xiàn)在線閱讀網(wǎng)站內(nèi) pdf 功能。 2. 提供閱讀 umd,chm,html,pdb 等格式的書籍功能。 3. 提供編輯 pdf

53、 功能。 第 31 頁 參參 考考 文文 獻獻 1 趙繼海.電子書閱讀器的發(fā)展及其對圖書館的影響j.大學(xué)圖書館學(xué)報,2001,19(4) 2高峰,李玲試論電子書對圖書館的影響j山西廣播電視大學(xué)學(xué)報,2007,12(1) 3祁英紅幾種常用電子書刊閱讀器的比較j甘肅科技縱橫,2006,35(6) 4周康電子書悄悄走近我們j出版參考,2006,(27) 5高煥堂. 應(yīng)用框架原理與程序設(shè)計 36 技m. 臺灣:misoo 設(shè)計中心,2008 6張鵬,姜昊,許力.eclipse 插件開發(fā)m.北京:電子工業(yè)出版社,2008 7張鵬.eclipse 插件開發(fā)學(xué)習(xí)筆記z.北京:電子工業(yè)出版社,2008 8劉慧

54、.java me 實用詳解-用 eclipse 進行移動開發(fā)m.北京:電子工業(yè)出版社,2007 9 余志龍. google android sdk 開發(fā)范例大全m. 北京:人民郵電出版社,2009 第 32 頁 第 33 頁 致致 謝謝 歷時將近兩個月的時間終于將這篇論文寫完,在論文的寫作過程中遇到了無數(shù) 的困難和障礙,都在同學(xué)和老師的幫助下度過了。尤其要強烈感謝我的論文指導(dǎo)老 師蔣文蓉老師,她對我進行了無私的指導(dǎo)和幫助,不厭其煩的幫助進行論文的修 改和改進。另外,在校圖書館查找資料的時候,圖書館的老師也給我提供了很多方 面的支持與幫助。在此向幫助和指導(dǎo)過我的各位老師表示最中心的感謝! 感謝這

55、篇論文所涉及到的各位學(xué)者。本文引用了數(shù)位學(xué)者的研究文獻,如果沒 有各位學(xué)者的研究成果的幫助和啟發(fā),我將很難完成本篇論文的寫作。 感謝我的同學(xué)和朋友,在我寫論文的過程中給予我了很多你問素材,還在論文 的撰寫和排版燈過程中提供熱情的幫助。 由于我的學(xué)術(shù)水平有限,所寫論文難免有不足之處,懇請各位老師和學(xué)友批評 和指正! 第 34 頁 符號與標(biāo)記(附錄符號與標(biāo)記(附錄 1 1) 部分代碼: package com.sun.pdfview; import java.io.file; import java.io.fileoutputstream; import java.io.ioexception;

56、import java.lang.ref.weakreference; import java.util.arraylist; import java.util.hashmap; import java.util.stack; import net.sf.andpdf.pdfviewer.bytebuffer; import net.sf.andpdf.utils.utils; import android.graphics.matrix; import android.graphics.path; import android.graphics.rectf; import android.g

57、raphics.path.direction; import android.graphics.path.filltype; import android.os.debug; import com.sun.pdfview.colorspace.pdfcolorspace; import com.sun.pdfview.decode.pdfdecoder; import com.sun.pdfview.font.pdffont; 第 35 頁 public class pdfparser extends basewatchable /* emit a file of dct stream data. */ public final static string debug_dctdecode_data = debugdct

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論