版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> 安卓校園小助手的設計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 現(xiàn)代社會,手機導航己經(jīng)成為人們工作生活中必不可缺少的一項導航定
2、位服務。隨著手機硬件的快速升級換代,對應于手機的各種高級軟件服務和應用層出不窮。在這當中,手機導航定位服務,是一項全新且具有廣闊市場和應用價值的業(yè)務。這其中的領(lǐng)航者百度地圖,是百度公司向全國提供的電子地圖服務。它擁有紙質(zhì)地圖所無法比擬的優(yōu)越性,特別是在近年來移動設備智能化、輕便化的趨勢下,再加上網(wǎng)絡速度的提升,更是讓百度地圖與人們的生活產(chǎn)生更為息息相關(guān)。并且隨著移動互聯(lián)時代的到來,智能手機終端在我們的生活中扮演著越來越重要的角色,時刻影
3、響著我們的日常生活。作為一次在移動終端的簡單嘗試,安卓校園小助手試圖為廣大師生提供在手機上的信息展示和道路指引。廣大師生只需打開手機,輕輕一點,即能從網(wǎng)絡中獲取豐富的信息資源,方便快捷。</p><p> 程序設計的目的是希望能給需要此類信息的人們帶來方便,同時自己在完成此程序的過程中學到知識和經(jīng)驗。</p><p> 論文系統(tǒng)地分析了河北農(nóng)業(yè)大學校園助手軟件開發(fā)的背景及過程,首先介紹
4、了軟件的開發(fā)環(huán)境,然后介紹了本軟件的詳細設計過程以及具體界面的設計和功能,最后對在本軟件開發(fā)過程中的所遇到的問題進行了總結(jié)?;贏ndroid的校園通系統(tǒng)是利用 Eclipse、Android SDK、開發(fā)Android程序的Eclipse 插件作為開發(fā)工具,基本流程首先要安裝Eclipse。本軟件應用于Android手機,方便學校師生在手機上就能直觀的了解到河北農(nóng)業(yè)大學的相關(guān)信息及校園風貌,并且學校師生可以使用軟件提供的圖書
5、掃描功能進行圖書條形碼的掃描,從而獲得圖書信息。</p><p> 關(guān)鍵詞:安卓,手機導航,百度地圖,網(wǎng)絡傳輸,條形碼圖像處理庫</p><p><b> Abstract</b></p><p> With the advent of the era of mobile Internet, smart phones terminal i
6、n our life plays a more and more important role, moment affects our daily lives. As a simple attempt at the mobile terminal, the android campus little helper is trying to show for the majority of teachers and students to
7、 provide information on a mobile phone and road guide. The general teachers and students need to open the phone, gently, namely can obtain abundant information resources from the Internet, convenient and quick.</p>
8、<p> Hope is the purpose of design this program can bring convenience to people in need such information, at the same time their learned knowledge in the process of complete of the program and experience.</p&g
9、t;<p> Paper systematically analyzed the hebei agricultural university campus assistant background and process of software development, first introduced the software development environment, then introduces the d
10、etailed design of the software process as well as the specific interface design and function, and finally to the problems in the software development process are summarized. Based on the campus of the Android system is A
11、ndroid program developed by the Eclipse, Android SDK, Eclipse plug-in as a </p><p> key words:Android, JSON; eclipse; network transmission; open source; servers; mobile client</p><p><b>
12、 目 錄</b></p><p><b> 摘 要II</b></p><p><b> 1 緒論1</b></p><p><b> 1.1 前言1</b></p><p> 1.2 開發(fā)概述1</p><p> 1.3
13、 手機操作系統(tǒng)的開發(fā)現(xiàn)狀1</p><p> 1.4 Android的構(gòu)架分析2</p><p> 1.5 Android特征2</p><p> 1.6 論文結(jié)構(gòu)3</p><p> 2 開發(fā)環(huán)境和開發(fā)技術(shù)4</p><p> 2.1 Eclipse 和 Android的簡介4</p&g
14、t;<p> 2.2 應用程序框架4</p><p> 2.3 系統(tǒng)運行庫4</p><p> 2.4 Linux內(nèi)核5</p><p> 2.5 Android應用的構(gòu)成和工作機制5</p><p> 2.6 Android與其他手機操作系統(tǒng)的比較6</p><p> 2.7
15、本章小結(jié)6</p><p> 3 系統(tǒng)的需求分析7</p><p> 3.1 設計思想7</p><p> 3.2 經(jīng)濟可行性7</p><p> 3.3 系統(tǒng)可行性分析7</p><p> 3.4 操作可行性7</p><p> 3.5 系統(tǒng)技術(shù)性分析7</p&
16、gt;<p> 3.6 系統(tǒng)的需求分析7</p><p> 4 基于安卓平臺的百度地圖導航設計9</p><p> 4.1 百度地圖API申請和使用簡介9</p><p> 4.2 百度地圖SDK簡介10</p><p> 4.3 百度地圖庫文件的工程配置流程11</p><p>
17、4.4 百度地圖初始化的代碼配置流程11</p><p> 5 ZXing條形碼識別和豆瓣讀書API14</p><p> 5.1 ZXing的簡介:14</p><p> 5.1.1一維碼14</p><p> 5.1.2 二維碼14</p><p> 5.2 ZXing調(diào)用過程15</
18、p><p> 5.3 豆瓣讀書15</p><p> 5.3.1 豆瓣圖書API調(diào)用流程15</p><p> 6 校園助手系統(tǒng)設計與實現(xiàn)16</p><p> 6.1 總體設計結(jié)構(gòu)圖16</p><p> 6.1.1 該系統(tǒng)的架構(gòu)如圖:16</p><p> 6.1.2 該系
19、統(tǒng)的功能結(jié)構(gòu)圖:16</p><p> 6.2 總體設計實現(xiàn)17</p><p> 6.2.1 歡迎界面:17</p><p> 6.2.2 校園新聞:17</p><p> 6.2.3 校園導航:18</p><p> 6.2.4 圖書掃描:19</p><p>
20、 7 總結(jié)以及展望20</p><p><b> 7.1 總結(jié)20</b></p><p><b> 7.2 展望20</b></p><p> 8 系統(tǒng)測試知識21</p><p> 8.1 測試作用21</p><p> 8.2 測試目的21<
21、;/p><p> 8.3 測試方法21</p><p><b> 致 謝22</b></p><p><b> 參考文獻23</b></p><p><b> 附錄24</b></p><p><b> 1 緒論</b>
22、;</p><p><b> 1.1 前言</b></p><p> 隨著更行各業(yè)的技術(shù)迅猛發(fā)展,移動通信設備與Internet向移動終端的普及,年輕一代的手機用戶對移動終端的要求越來越高,而Symbian,Windows Mobile,ios等手機平臺過于封閉,不能很好的滿足用戶的需求,因此市場迫切需要一個開發(fā)性很強的平臺。經(jīng)過多年的發(fā)展,第三代數(shù)字通信(3G)
23、技術(shù)活動了廣泛的接受,它為移動終端用戶帶來了更快的數(shù)據(jù)傳輸速率。隨著3G網(wǎng)絡的使用,移動終端不再僅是通訊網(wǎng)絡的終端,還將成為互聯(lián)網(wǎng)的終端。因此,移動終端的應用軟件和需要的服務將會有很大的發(fā)展空間。Google為此與2007年11月推出了一個專為移動設備設計的軟件平臺——Android。</p><p> Android 是一套真正意義上的開發(fā)性的移動設備綜合平臺,它包括操作系統(tǒng)、中間件和一些關(guān)鍵的平臺應用。An
24、droid 是由Linux +Java構(gòu)成的開源軟件,允許所有廠商和個人在其基礎(chǔ)上進行開發(fā)。Android平臺的開放性等特點既能促進技術(shù)(包括平臺本身)的創(chuàng)新,又有助于降低開發(fā)成本,還可以是運營商能非常方便地制定自己的特色化的產(chǎn)品。因此,它具有很大的市場發(fā)展?jié)摿Α?lt;/p><p> 手機校園通系統(tǒng)能很好的幫助本校師生及外來人員直觀的了解到本校的相關(guān)信息和校園風貌,對于不熟悉校園的人來說,在導航功能上也起到很重要
25、的作用。打開軟件就能看到學院的平面圖結(jié)構(gòu),能幫助新來人員迅速的熟悉校園環(huán)境。</p><p><b> 1.2 開發(fā)概述</b></p><p> 隨著移動互聯(lián)網(wǎng)高速的發(fā)展,校園手機用戶數(shù)量不斷攀升, 手機校園通系統(tǒng)能簡單直觀的為校園手機用戶展示河北農(nóng)業(yè)大學的風貌,對于不熟悉校園的人來說,在導航功能上也起到很重要的作用?;诎沧肯到y(tǒng)開發(fā)的校園導覽系統(tǒng)是一個穩(wěn)定、快
26、捷的覽視平臺,是手機用戶的最佳選擇。</p><p> 1.3 手機操作系統(tǒng)的開發(fā)現(xiàn)狀</p><p> 蘋果iOS是由蘋果公司開發(fā)的移動操作系統(tǒng)。蘋果公司最早于2007年1月9日的Macworld大會上公布這個系統(tǒng),最初是設計給iPhone使用的,后來陸續(xù)套用到iPod touch、iPad以及Apple TV等產(chǎn)品上。IOS與蘋果的Mac OS X操作系統(tǒng)一樣,它也是以Darwin
27、為基礎(chǔ)的,因此同樣屬于類Unix的商業(yè)操作系統(tǒng)。原本這個系統(tǒng)名為iPhone OS,因為pad,iPhone,iPod Touch都使用iPhone OS,所以2010WWDC大會上宣布改名為iOS(IOS為美國Cisco公司網(wǎng)絡設備操作系統(tǒng)注冊商標,蘋果改名已獲得Cisco公司授權(quán))。Symbian是一個實時性、多任務的純32位操作系統(tǒng),具有功耗低、內(nèi)存占用少等特點,非常適合手機等移動設備使用,經(jīng)過不斷完善,可以支持GPRS、藍牙、S
28、yncML以及3G技術(shù)。</p><p> Windows mobile系列操作系統(tǒng)是從微軟計算機的Windows操作系統(tǒng)上變化而來的。Windows mobile系列操作系統(tǒng)功能強大,而且支持該操作系統(tǒng)的智能手機大多數(shù)都采用了英特爾嵌入式處理器,主頻比較高,在其它硬件設置(如內(nèi)存、儲存卡容量等)上也采用其他操作系統(tǒng)的智能手機要高出許多,因此性能比較強勁,速度比較快。Windows mobile系列操作系統(tǒng)包括
29、SmartPhone以及Pocket PC Phone兩種平臺。Pocket PC Phone主要用于掌上電腦型的智能手機,而Smartphone則主要為手上智能手機提供操作系統(tǒng)。</p><p> Linux系統(tǒng)是一個源代碼開放的操作系統(tǒng)。由于其開源性,手機制造商可以根據(jù)實際情況開放自己的Linux手機操作系統(tǒng),從而也能夠吸引更多的軟件制造商在其上開發(fā)更多的應用軟件,豐富的第三方的應用。但是Linux操作系統(tǒng)
30、也還存在一些不足,集成開放環(huán)境和基于Linux的產(chǎn)品與PC的連接性比較差等。</p><p> 1.4 Android的構(gòu)架分析</p><p> Android是一個移動設備的軟件平臺,是由Linux +Java構(gòu)成的開源軟件,它提供包括SDK、Key Apps、Middleware、Linux Kernel四個部分在內(nèi)的全套手機軟件方案。它開放了基于Linux內(nèi)核以上的開發(fā)工具,從
31、而保證了內(nèi)容的可移植性和多樣性。Android平臺為我們開發(fā)應用程序提供了一套很好的框架,我們可以在這個平臺的基礎(chǔ)上開發(fā)不同的應用程序,也可以開發(fā)新的組件供應用程序調(diào)用。</p><p> Android的架構(gòu)是由Linux內(nèi)核、C/C++函數(shù)庫、Dalvik虛擬機、應用框架以及關(guān)鍵應用程序構(gòu)成的。通過編譯基于框架的應用程序可以降低開發(fā)負荷。應用軟件原則上是在DalvikVM上運行的。</p>&
32、lt;p> 圖1-1Android架構(gòu)</p><p> 1.5 Android特征</p><p> 應用框架:用于開發(fā)可重用、可替代的組件。</p><p> Dalvik虛擬機:Android采用的Java虛擬機是自主開發(fā)的代號為Dalvik的虛擬機技術(shù),在保證API方面兼容的同時Dalvik針對移動手機進行了大幅優(yōu)化,占用資源更小,運行效率更高
33、。</p><p> 內(nèi)嵌瀏覽器:基于開源的瀏覽器網(wǎng)頁排版引擎WebKit。</p><p> 優(yōu)化的圖形:強大的自定義二維圖形庫?;贠penGL ES 1.0標準的3D圖形功能,在移動3D開發(fā)中有著至關(guān)重要的地位。</p><p> SQLite數(shù)據(jù)庫:SQLite提供結(jié)構(gòu)化的數(shù)據(jù)存儲。它是一款輕型免費的且開源的數(shù)據(jù)庫,它的設計目標是嵌入式的,它占用的資源
34、非常低、需要的內(nèi)存空間少、處理速度比較快和支持事務處理功能等。</p><p> 多媒體支持:支持各種通用的音頻、視頻和靜態(tài)圖像格式,如MP3、JPG、PNG等。Open Core是Android多媒體框架的核心,所有Android平臺的音頻和視頻采集、播放的操作都是通過它來實現(xiàn)的。通過Open Core,程序員可以方便快速的開發(fā)出想要的多媒體應用程序。</p><p> GSM技術(shù):
35、(依賴硬件)Global System for Mobile Communications,全球通訊系統(tǒng),俗稱“全球通”,是第二代移動通信技術(shù),其開發(fā)目的是讓全球各地可以共同使用一個移動電話網(wǎng)絡標準,讓用戶使用一部手機就能行遍全球。</p><p> 藍牙,EDGE,3G and WiFi:(依賴硬件)藍牙和Wi-Fi都是一種短距離的無線連接技術(shù),在短距離內(nèi)可以實現(xiàn)話音和數(shù)據(jù)的無線傳輸。EDGE(Enhance
36、d Data Rate for GSM Evolution),是增強型數(shù)據(jù)速率GSM演進技術(shù)。</p><p> Camera ,GPS, compass ,andaccelerometer:(依賴硬件)GPS(Global Positioning System),即全球定位系統(tǒng)。它是由一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。Compass是一個開放源碼的Java搜索引擎框架。</p><
37、p> 強大的開發(fā)環(huán)境:包括一個設備模擬器,調(diào)試工具,內(nèi)存和性能檢測,以及Eclipse IDE的開發(fā)插件。Eclipse是個集成開放環(huán)境。</p><p><b> 1.6 論文結(jié)構(gòu)</b></p><p> 緒論 分析了系統(tǒng)的研究背景,介紹了當前手機操作系統(tǒng)、即時通訊軟件的發(fā)展現(xiàn)狀。</p><p><b> 第一
38、章 緒論</b></p><p> 第二章 開發(fā)環(huán)境和開發(fā)技術(shù)</p><p> 第三章 系統(tǒng)的需求分析</p><p> 第四章 基于安卓平臺的百度地圖導航設計</p><p> 地五章 ZXing條形碼識別和豆瓣讀書API</p><p> 第六章 河北農(nóng)業(yè)大學校園通系統(tǒng)設計與實現(xiàn)</p
39、><p> 第七章 總結(jié)以及展望</p><p> 第八章 系統(tǒng)測試知識</p><p><b> 致謝</b></p><p><b> 參考文獻</b></p><p><b> 附錄</b></p><p> 2 開
40、發(fā)環(huán)境和開發(fā)技術(shù)</p><p> 河北農(nóng)業(yè)大學校園通系統(tǒng)是利用ANDROID面向?qū)ο蟮木幊谭椒?OOP)以及基于Eclipse + ANDROID SDK 作為開發(fā)工具, Android會同一系列核心應用程序包一起發(fā)布,該應用程序包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。其解釋如下:</p><p> 2.
41、1 Eclipse 和 Android的簡介</p><p> Eclipse 是一個開放源代碼的、基于Java的可擴展開發(fā)平臺,由IBM倡議開發(fā),通過安裝插件組件構(gòu)建的集成開發(fā)環(huán)境。</p><p> Android是谷歌(Google)公司推出的手機開發(fā)平臺,與iPhone相似,Android采用WebKit瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網(wǎng)功能,用戶能夠在手機上查看電子
42、郵件、搜索網(wǎng)址和觀看視頻節(jié)目等,比iPhone等其他手機更強調(diào)搜索功能,界面更強大,可以說是一種融入全部Web應用的單一平臺。</p><p> 2.2 應用程序框架</p><p> 開發(fā)人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構(gòu)設計簡化了組件的重用;任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限
43、制)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。</p><p> 隱藏在每個應用后面的是一系列的服務和系統(tǒng), 其中包括;</p><p> 豐富而又可擴展的視圖(Views),可以用來構(gòu)建應用程序, 它包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的web瀏覽器。</p><p>
44、 內(nèi)容提供器(Content Providers)使得應用程序可以訪問另一個應用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫), 或者共享它們自己的數(shù)據(jù)</p><p> 資源管理器(Resource Manager)提供 非代碼資源的訪問,如本地字符串,圖形,和布局文件( layout files )。</p><p> 通知管理器 (Notification Manager) 使得應用程序可以在狀
45、態(tài)欄中顯示自定義的提示信息。</p><p> 活動管理器( Activity Manager) 用來管理應用程序生命周期并提供常用的導航回退功能。</p><p><b> 2.3 系統(tǒng)運行庫</b></p><p><b> 程序庫:</b></p><p> Android 包含一些C
46、/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應用程序框架為開發(fā)者提供服務。以下是一些核心庫:</p><p> 系統(tǒng) C 庫 --- 一個從 BSD 繼承來的標準 C 系統(tǒng)函數(shù)庫( libc ), 它是專門為基于 embedded Linux 的設備定制的。</p><p> 媒體庫 --- 基于 Packet Video Op Encore;該
47、庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態(tài)圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。</p><p> Surface Manager - 對顯示子系統(tǒng)的管理,并且為多個應用程序提 供了2D和3D圖層的無縫融合。</p><p> LibWebCore --- 一個最新的web瀏覽器引擎用,支持Android瀏覽器和
48、一個可嵌入的web視圖。</p><p> SGL --- 底層的2D圖形引擎</p><p> 3D libraries --- 基于OpenGL ES 1.0 APIs實現(xiàn);該庫可以使用硬件 3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速。</p><p> FreeType --- 位圖(bitmap)和矢量(vector)字體顯示。</p>
49、;<p> SQLite --- 一個對于所有應用程序可用,功能強勁的輕型關(guān)系型數(shù)據(jù)庫引擎。</p><p><b> 運行庫:</b></p><p> Android 包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設計
50、成一個設備可以同時高效地運行多個虛擬系統(tǒng)。 Dalvik虛擬機執(zhí)行(.dex)的Dalvik可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了優(yōu)化。同時虛擬機是基于寄存器的,所有的類都經(jīng)由JAVA編譯器編譯,然后通過SDK中 的 "dx" 工具轉(zhuǎn)化成.dex格式由虛擬機執(zhí)行。Dalvik虛擬機依賴于linux內(nèi)核的一些功能,比如線程機制和底層內(nèi)存管理機制。</p><p> 2.4 Linux內(nèi)核&
51、lt;/p><p> Android 的核心系統(tǒng)服務依賴于 Linux 2.6 內(nèi)核,如安全性、內(nèi)存管理、進程管理、網(wǎng)絡協(xié)議和驅(qū)動模型。Linux 內(nèi)核也同時作為硬件和軟件棧之間的抽象層。 </p><p> 2.5 Android應用的構(gòu)成和工作機制</p><p> Android應用程序來說,是由Activity、Intent Receiv
52、er、Service、ContentProvider四部分組成,但并不是每一個Android應用程序都必須由這四部分組成。在應用程序中使用時,需要在配置文件Android應用程序中所必需的,用于定義應用程序的組件、組件的功能以及必要條件等。Android應用的構(gòu)成和工作流程圖如圖2-1所示。</p><p> 圖2-1 Android的構(gòu)成和工作流程</p><p> 2.6 And
53、roid與其他手機操作系統(tǒng)的比較</p><p> Android和Windows Mobile的區(qū)別:</p><p> 首先需要了解的一點是Android和Windows Mobile是兩個運行在手持設備商的不同智能平臺。Android是Google主導手機開放聯(lián)盟開發(fā)的,Windows Mobile則是微軟主導開發(fā)的。</p><p> 兩個系統(tǒng)的差別在
54、于三方面:</p><p> 一是系統(tǒng)內(nèi)核:Android系統(tǒng)基于Linux內(nèi)核,而Windows Mobile則是居于微軟的Win CE。兩者的架構(gòu)完全不同。</p><p> 二是代碼開源程度:Android完全開源,使用免費。但是Windows Mobile則完全相反,使用的話需要給微軟一定的授權(quán)費用。因此Android更受程序員和手機廠商歡迎,更可以有效降低手機成本。</
55、p><p> 三是兩者的組件和功能不同:Windows Mobile擴展能力強,就像是一臺掌上電腦。相對言之Android系統(tǒng)則是更注重于手機功能,目前來說在應用程序數(shù)量上弱于前者,但是畢竟是剛剛起步,由于其開源的特點,相信其應用程序數(shù)量會成幾何形增長。</p><p> Android平臺和iPhone 對比:</p><p> 蘋果的APP是獨創(chuàng)專用文件,開發(fā)
56、者開發(fā)后審核速度慢,大部分軟件是收費的。相反,安卓是通用的安卓機APK文件,開發(fā)者可以使用較低成本和時間開發(fā),而且?guī)缀跞棵赓M。蘋果手機性價比比較低,不如安卓很多機型性價比高,安卓便宜實惠,而蘋果價格較高功能也不是尖端。另外在DIY美化方面安卓可以說是方法各種各樣,也很簡單明了,如刷MIUI系統(tǒng),安裝各種桌面,安裝各種有趣的小插件,隨隨便便就可以美化系統(tǒng),而且還不用擔心給系統(tǒng)帶來損害;蘋果雖然也能進行美化,但是前提是要越獄,但是越獄帶來
57、了潛在的風險即——白蘋果等,一旦出現(xiàn)白蘋果就只能重新刷固件了,比安卓刷機稍微麻煩</p><p><b> 2.7 本章小結(jié)</b></p><p> 本章對Android平臺的特征、架構(gòu)以及Android應用的構(gòu)成和工作機制進行了詳細的分析。對于Android應用程序來說,主要由Activity、 Service、 Intent Receiver和Conten
58、t Provider四部分組成,但并不是對于每一個應用程序,這四部分都是必須的。Activity是應用程序中最重要的一個組件,我們對其進行了詳細的分析,包括Activity的生命周期以及Activity之間的切換。最后對Android與其它的手機操作系統(tǒng)進行了比較,說明了Android的優(yōu)勢。</p><p><b> 3 系統(tǒng)的需求分析</b></p><p>&
59、lt;b> 3.1 設計思想</b></p><p> 設計思想是項目開始的第一項工作,用來整體把握整個項目。 </p><p> 設計客戶端程序:組織需要展示的數(shù)據(jù),分類整理,設計頁面UI布局。在開始頁面展示客戶端的按鈕列表,二層頁面展示了每一按鈕按下后的文字信息,展示聯(lián)網(wǎng)后下載的圖片信息和加載的地圖信息,通過與用戶交互從而得到網(wǎng)絡數(shù)據(jù)信息。</p>
60、<p><b> 3.2 經(jīng)濟可行性</b></p><p> 此系統(tǒng)開發(fā)所需軟件工具:Eclipse,AndroidSDK,均是開源工具,在網(wǎng)上都可以方便得下載到。</p><p> 開發(fā)需要在一臺個人電腦上實現(xiàn),由于現(xiàn)在的個人電腦有著價格越來越低,配置和性能也越來越高的特點,而此項目的開發(fā)并不需要配置特別高的電腦作支持。所以有了設備和工具支持,開
61、發(fā)本項目幾乎沒有物理成本,僅僅是簡單的人工成本,這樣開發(fā)此項目在經(jīng)濟可行性上成為可能。</p><p> 整個系統(tǒng)建設完成后會給廣大校園師生帶來強有力的技術(shù)和信息支持,其用來查閱圖書信息和瀏覽學校的地圖,并能對其放大、縮小和移動,實現(xiàn)自我定位、位置查找和路徑跟蹤,提供學習場所、校內(nèi)公交、健身、餐飲等一系列信息查詢功能,滿足了校園手機用戶基本的地圖導航服務需求。</p><p> 3.3
62、 系統(tǒng)可行性分析</p><p> 個人安卓智能手機可行性,現(xiàn)在,安卓智能手機的價格已經(jīng)是越來越便宜,性能卻是一天比一天好,本系統(tǒng)的開發(fā)可以為方便在校師生查閱相關(guān)資料提供了非常便捷的平臺,節(jié)省資源提高個人管理生活和工作的效率,同時還能具有較高的安全性。同時本系統(tǒng)所枆資源小,每個人的安卓智能手機都能滿足,所以本系統(tǒng)在運行上是可行的。</p><p><b> 3.4 操作可行性
63、</b></p><p> 客戶端簡潔的頁面和結(jié)構(gòu)清晰的布局,使得在使用時非常方便,在操作上要求非常低,只需簡單的點擊對應按鈕,就能獲取所需資源。就像平時觀看電視節(jié)目按動遙控器一般。 </p><p> 3.5 系統(tǒng)技術(shù)性分析</p><p> 目前在網(wǎng)絡方面,非常流行的就是Android語言,本系統(tǒng)依靠當前的技術(shù)水平完全能夠?qū)崿F(xiàn)??蛻舳说拈_發(fā)采用
64、Java語言,在Windows或Linux系統(tǒng)中使用Eclipse平臺開發(fā)。結(jié)合平時所學知識,自己有著編寫過Java小項目和熟練使用Eclipse的經(jīng)驗,在技術(shù)上成為可行。Java是一種面向?qū)ο笳Z言,結(jié)合JavaBean 的使用,對于系統(tǒng)化的項目編寫有著獨特的優(yōu)勢,在稍大的系統(tǒng)當中,Java語言的面向?qū)ο笮再|(zhì)能方便得操作各類數(shù)據(jù),同時豐富的接口使得程序的擴展性和靈活性大大增加。使用系統(tǒng)或自定義類來完成工作,能夠?qū)崿F(xiàn)代碼的重用效率,有效減
65、少代碼冗余。</p><p> 上述語言特性和 Eclipse 平臺的可擴展及強大的功能支持著開發(fā)的技術(shù)可行性。</p><p> 3.6 系統(tǒng)的需求分析</p><p> 本系統(tǒng)主要用于對手機上網(wǎng)用戶,點擊瀏覽該系統(tǒng),主要是界面程序的開發(fā)、數(shù)據(jù)庫的建立。應用程序功應完善,界面人機交互要好,而且操作要簡單。數(shù)據(jù)庫中的數(shù)據(jù)要條理清晰,易于維護,同時要保證數(shù)據(jù)庫中
66、的數(shù)據(jù)完整。能夠節(jié)省時間,可以讓在校手機用戶快速的找到想要的信息,能很方便的了解學院新聞信息、平面結(jié)構(gòu)、相關(guān)介紹及相關(guān)公告等內(nèi)容。</p><p> 河北農(nóng)業(yè)大學校園通系統(tǒng)是基于Eclipse、Android SDK、開發(fā)Android程序的Eclipse 插件作為開發(fā)工具, ACCESS2003作為后臺數(shù)據(jù)庫支持。選擇ANDROID語言,因為ANDROID基于不同的開發(fā)平臺,更好的實現(xiàn)了人機交互。同時ANDR
67、OID語言簡單,在較短的時間內(nèi)能夠開發(fā)出使用性強、功能完善,易于操作的程序,也能實現(xiàn)與數(shù)據(jù)庫的連接。</p><p> 4 基于安卓平臺的百度地圖導航設計</p><p> 本系統(tǒng)的大部分功能是基于安卓平臺的百度地圖開發(fā)實現(xiàn)的,它不僅提供了構(gòu)成地圖的基本接口,還提供本地搜索,路線規(guī)劃,定位等服務,我們可以使用百度地圖Android SDK開發(fā)適用于移動設備的地圖應用,通過接口,可以輕
68、松訪問百度服務和數(shù)據(jù),構(gòu)建功能豐富,交互性強的地圖應用程序。</p><p> 下面就對百度地圖的開發(fā)使用進行簡單的介紹: </p><p> 4.1 百度地圖API申請和使用簡介</p><p> 百度地圖移動版API是一套基于安卓 2.1及以上設備的應用程序接口,通過該接口,您可以輕松訪問百度服務和數(shù)據(jù),構(gòu)建功能豐富、交互性強的地圖應用程序。百度
69、地圖移動版API不僅包含構(gòu)建地圖的基本接口,還提供了諸如地圖定位、本地搜索、路線規(guī)劃等數(shù)據(jù)服務,你可以根據(jù)自己的需要進行選擇。 </p><p> 用戶在使用API之前需要獲取百度地圖移動版API Key,該Key與你的百度賬戶相關(guān)聯(lián),您必須先有百度帳戶,才能獲得API KEY。并且,該KEY與您引用API的程序名稱有關(guān),KEY的申請具體流程如圖4-1所示。</p>
70、<p> 圖4-1申請百度API密鑰 </p><p> 然后獲得已申請的API密鑰,如圖4-2所示。 </p><p> 為了能使用百度地圖應用,首先將API包括的兩個文件baidumapapi.jar和libBMapApiEngine.so拷貝到工程根目錄及l(fā)ibs\armeabi目錄下,并在工程屬性->Java Build
71、;Path->Libraries中選擇“Add JARs”,選定baidumapapi.jar,確定后返回,這樣就可以在程序中使用API了。</p><p><b> 圖4-2我的應用</b></p><p> 開始配置應用,我們需要配置我們應用的安全碼(安全碼的組成規(guī)則為:Android簽名證書的shal值+“;”+packagename(即:數(shù)
72、字簽名+分號+包名))安全碼的獲取方式如下:使用Eclipse直接查看:windows->preference->android->build.圖4-3</p><p> 圖4-3獲取自己的shal密碼</p><p> 4.2 百度地圖SDK簡介</p><p> 百度地圖Android SDK是一套基于安卓 2.1(v
73、1.3.5及以前版本支持安卓 1.5以上系統(tǒng))及以上版本設備的應用程序接口,您可以通過該接口實現(xiàn)豐富的LBS功能</p><p> (1)地圖展示:包括2D圖、衛(wèi)星圖、3D圖地圖展示。 </p><p> ?。?)地圖操作:提供平移、縮放、雙指手勢操作、底圖旋轉(zhuǎn)等地圖相關(guān)操作。</p><p> (3)地圖搜索:提供根據(jù)關(guān)鍵字進行范圍檢索、城
74、市檢索和周邊檢索。且支持LBS云檢索用戶自有數(shù)據(jù)。 </p><p> ?。?)線路規(guī)劃:提供公交、駕車和步行三種類型,多種方案(不含地鐵、時間優(yōu)先、最少換乘、最少步行)的線路規(guī)劃。 </p><p> (5)位置標注:提供一個或多個POI位置標注,且支持用戶自定義圖標。 (6)實時路況:提供城市實時交通路況信息圖。 </p><
75、;p> ?。?)定位:采用GPS、WIFI、基站、IP混合定位模式,請使用安卓定位SDK獲取定位信息,使用地圖SDK定位圖層進行位置展示。 </p><p> 百度地圖Android SDK從2.0.0版本開始采用的是矢量版的地圖,開發(fā)者如果需要使用柵格版的地圖數(shù)據(jù),請使用1.3.5及之前的版本。</p><p> 4.3 百度地圖庫文件的工程配置流程<
76、/p><p> 第一步:在工程里新建libs文件夾,將開發(fā)包里的baidumapapi_vX_X_X.jar拷貝到libs根目錄下,將libBaiduMapSDK_vX_X_X.so拷貝到libs\armeabi目錄下(官網(wǎng)demo里已有這兩個文件,如果要集成到自己的工程里,就需要自己添加),拷貝完成后的工程目錄如圖4-4所示。</p><p> 注:liblocSDK3.so和locSD
77、K_3.1.jar為百度定位SDK所使用資源,開發(fā)者可根據(jù)實際需求自行添加</p><p><b> 圖4-4工程配置</b></p><p> 第二步:在工程屬性->Java Build Path->Libraries中選擇“Add External JARs”,選定baidumapapi_vX_X_X.jar,確定后返回。</p>&
78、lt;p> 通過以上兩步操作后,您就可以正常使用百度地圖SDK為您提供的全部功能了。</p><p> 4.4 百度地圖初始化的代碼配置流程</p><p> 百度地圖SDK為開發(fā)者提供了便捷的顯示百度地圖數(shù)據(jù)的接口,通過以下幾步操作,即可在您的應用中使用百度地圖數(shù)據(jù):</p><p> 第一步:創(chuàng)建并配置工程(具體方法參見工程配置部分的介紹);<
79、;/p><p> 第二步:在Manifest中添加使用權(quán)限、Android版本支持和對應的開發(fā)密鑰;</p><p><b> 常用使用權(quán)限如下:</b></p><p> <!--使用網(wǎng)絡功能所需權(quán)限 --></p><p> <uses-permission android: name=&qu
80、ot;android.permission.ACCESS_NETWORK_STATE"></p><p> </uses-permission></p><p> <uses-permission android: name="android.permission.INTERNET"></p><p>
81、 </uses-permission></p><p> <uses-permission android: name="android.permission.ACCESS_WIFI_STATE"></p><p> </uses-permission></p><p> <uses-permis
82、sion android: name="android.permission.CHANGE_WIFI_STATE"></p><p> </uses-permission></p><p> <!-- SDK離線地圖和cache功能需要讀寫外部存儲器 --></p><p> <uses-permissi
83、on android: name="android.permission.WRITE_EXTERNAL_STORAGE"></p><p> </uses-permission></p><p> <uses-permission android: name="android.permission.WRITE_SETTINGS&qu
84、ot;></p><p> </uses-permission></p><p> <!-- 獲取設置信息和詳情頁直接撥打電話需要以下權(quán)限 --></p><p> <uses-permission android: name="android.permission.READ_PHONE_STATE"&
85、gt;</p><p> </uses-permission></p><p> <uses-permission android: name="android.permission.CALL_PHONE"></p><p> </uses-permission></p><p>
86、 <!-- 使用定位功能所需權(quán)限,demo已集成百度定位SDK,不使用定位功能可去掉以下6項 --></p><p> <uses-permission android: name="android.permission.ACCESS_FINE_LOCATION"></p><p> </uses-permission><
87、/p><p> <permission android: name="android.permission.BAIDU_LOCATION_SERVICE"></p><p> </permission></p><p> <uses-permission android: name="android.pe
88、rmission.BAIDU_LOCATION_SERVICE"></p><p> </uses-permission></p><p> <uses-permission android: name="android.permission.ACCESS_COARSE_LOCATION"></p><p&
89、gt; </uses-permission></p><p> <uses-permission android: name="android.permission.ACCESS_MOCK_LOCATION"></p><p> </uses-permission></p><p> <uses-
90、permission android: name="android.permission.ACCESS_GPS"/> </p><p> 配置Activity:</p><p> <activity android: name=".MapDemo"</p><p> android: screenOri
91、entation="sensor"</p><p> android: configChanges="orientation|keyboardHidden"></p><p> </activity> </p><p> 添加屏幕及版本支持: </p><p> &
92、lt;supports-screens android: largeScreens="true"</p><p> android: normalScreens="true"</p><p> android: smallScreens="true"</p><p> android: resizea
93、ble="true"</p><p> android: anyDensity="true"/></p><p> <uses-sdk android: minSdkVersion="7"></uses-sdk> </p><p> 添加對應的開發(fā)密鑰: </
94、p><p> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="開發(fā)密鑰"></p><p> </meta-data> </p><p> 第三步:在布局xml文件中添加地圖控件,布局文件保存為activity_mai
95、n.xml:</p><p> <?xml version="1.0" encoding="utf-8"?></p><p> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"</p><p&g
96、t; android:orientation="vertical"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="fill_parent"></p><p> <TextView a
97、ndroid:layout_width="fill_parent"</p><p> android:layout_height="wrap_content"</p><p> android:text="hello world" /></p><p> <com.baidu.mapapi
98、.map.MapView android:id="@+id/bmapsView"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="fill_parent"</p><p> android:clic
99、kable="true" /></p><p> </LinearLayout></p><p> 第四步:創(chuàng)建地圖Activity,并import相關(guān)類:</p><p> import android.app.Activity;</p><p> import android.content.
100、res.Configuration;</p><p> import android.os.Bundle;</p><p> import android.view.Menu;</p><p> import android.widget.FrameLayout;</p><p> import android.widget.Toas
101、t;</p><p> import com.baidu.mapapi.BMapManager;</p><p> import com.baidu.mapapi.map.MKMapViewListener;</p><p> import com.baidu.mapapi.map.MapController;</p><p> im
102、port com.baidu.mapapi.map.MapPoi;</p><p> import com.baidu.mapapi.map.MapView;</p><p> import com.baidu.platform.comapi.basestruct.GeoPoint;</p><p> public class MyMapActivity ex
103、tends Activity{</p><p><b> @Override</b></p><p> public void onCreate(Bundle savedInstanceState){</p><p><b> }</b></p><p><b> }</b&
104、gt;</p><p> 第五步:初始化地圖Activity、使用Key:</p><p> 完成以上步驟后,運行程序,即可在應用中顯示地圖。</p><p> 5 ZXing條形碼識別和豆瓣讀書API</p><p> 該系統(tǒng)的圖書掃描功能是基于ZXing技術(shù)和豆瓣讀書API開發(fā)的,通過掃描圖書條形碼查詢得到圖書的介紹,封面圖,作者
105、,出版社,出版時間,內(nèi)容簡介等。</p><p> 5.1 ZXing的簡介:</p><p> ZXing是一個開放源碼的,用Java實現(xiàn)的多種格式的1D/2D條碼圖像處理庫,它包含了聯(lián)系到其他語言的端口。Zxing可以實現(xiàn)使用手機的內(nèi)置的攝像頭完成條形碼的掃描及解碼。該項目可實現(xiàn)的條形碼編碼和解碼。Zxing庫的主要部分支持以下幾個功能:核心代碼的使用、適用于J2SE客戶端的版本、
106、適用于Android客戶端的版本(即BarcodeScanner)、Android的集成(通過Intent支持和BarcodeScanner的集成)等</p><p><b> 5.1.1一維碼</b></p><p> 條碼是由一組規(guī)則排列的條、空以及對應的字符組成的標記,“條”指對光線反射率較低的部分。</p><p> 圖5-1條形
107、碼解析圖</p><p><b> 5.1.2 二維碼</b></p><p> 二維碼 (dimensional barcode) ,又稱二維條碼,是在一維條碼的基礎(chǔ)上擴展出的一種具有可讀性的條碼。設備掃描二維條碼,通過識別條碼的長度和寬度中所記載的二進制數(shù)據(jù),可獲取其中所包含的信息。相比一維條碼,二維碼記載更復雜的數(shù)據(jù),比如圖片、
108、網(wǎng)絡鏈接等。</p><p> 圖5-2彩色二維圖 圖5-3黑白二維圖</p><p> 5.2 ZXing調(diào)用過程</p><p><b> 安裝應用:</b></p><p> 在官網(wǎng)上找到APK對應的Google play 的地址,下載APK進行安裝。<
109、;/p><p> 從官網(wǎng)下載兩個java接口文件:</p><p> IntentIntegrator.java和IntentResult.java.</p><p> 在當前的Activity 中使用Intent,啟動ZXing:</p><p> IntentIntegrator integrator = new IntentInte
110、grator(MainActivity.this);</p><p> integrator.initiateScan();</p><p> 在第3步中同一Activity中重寫onActivityResult()獲取返回結(jié)果:</p><p> IntentResult result = IntentIntegrator.parseActivityResu
111、lt(requestCode, resultCode, data);</p><p> if ((result == null) || (result.getContents() == null)) {</p><p> Log.v(Utils.TAG, "User cancel scan by pressing back hardkey.");</p>
112、<p><b> return;</b></p><p><b> }</b></p><p><b> 5.3 豆瓣讀書</b></p><p> 豆瓣讀書為豆瓣網(wǎng)的一個子欄目。豆瓣讀書自2005年上線,已成為國內(nèi)信息最全、用戶數(shù)量最大且最為活躍的讀書網(wǎng)站。豆瓣讀書專注于為用戶
113、提供全面且精細化的讀書服務,同時不斷探索新的產(chǎn)品模式。到2012年豆瓣讀書每個月有超過800萬的來訪用戶,過億的訪問次數(shù)。</p><p> 豆瓣讀書API提供多種方式獲去圖書信息,例如,通過書名搜索,通過ISBN查詢,通過標簽查詢等,在該項目中用到的是“通過ISBN查詢”來獲取。</p><p> 5.3.1 豆瓣圖書API調(diào)用流程</p><p> 拼接出
114、圖書對應的URL:</p><p> 通過ZXing 掃描就可以得到圖書的ISBN,然后根據(jù)豆瓣圖書API提供的拼接方法得出一本書對于的URL:http://api.douban.com/v2/book/isbn/+ISBN。</p><p><b> 圖書信息下載:</b></p><p> 通過http中的個體請求進行數(shù)據(jù)下載,如果響
115、應狀態(tài)碼為200,就意味著請求成功,下載所的數(shù)據(jù)為圖書信息文件,文件格式為JSON。如果響應狀態(tài)碼為其他,就意味著請求失敗,下載所得的數(shù)據(jù)為錯誤的信息。</p><p> 解析下載所得的JSON文件:</p><p> JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd E
116、dition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。所得JSON文件中包含的標簽有:title,image,author ,publisher,prbdate,isbn,summary;我們只需把各個標簽的值解析出來,就能等到圖書信息。</p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安卓校園小助手
- 畢業(yè)設計(論文)+基于安卓的校園小助手的設計與實現(xiàn)終稿
- 畢業(yè)論文范文——基于安卓平臺的手機助手設計與實現(xiàn)
- 畢業(yè)論文范文——基于安卓平臺的手機助手設計與實現(xiàn)
- 基于安卓android的mp3播放器的設計與實現(xiàn)-軟件工程畢業(yè)論文
- 畢業(yè)論文---基于安卓平臺的校園通軟件設計
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的魅力城鄉(xiāng)旅游助手軟件的設計與實現(xiàn)
- 基于安卓平臺的校園通軟件設計—畢業(yè)論文.doc
- 軟件工程畢業(yè)論文-校園推廣人員招聘網(wǎng)的設計與實現(xiàn)
- 軟件工程畢業(yè)論文-社交網(wǎng)站的設計與實現(xiàn)
- 軟件工程畢業(yè)論文-黨務cms系統(tǒng)設計與實現(xiàn)
- 軟件工程畢業(yè)論文eka教學平臺的設計與實現(xiàn)
- 軟件工程畢業(yè)論文-庫存管理系統(tǒng)的設計與實現(xiàn)
- 軟件工程畢業(yè)論文-實時路況系統(tǒng)的設計與實現(xiàn)
- 軟件工程畢業(yè)論文-酒店餐飲管理的設計與實現(xiàn)
- 軟件工程畢業(yè)論文-預約掛號系統(tǒng)的設計與實現(xiàn)
- 軟件工程畢業(yè)論文-android手機衛(wèi)士的設計與實現(xiàn)
- 軟件工程畢業(yè)論文-駕校管理系統(tǒng)的設計與實現(xiàn)
- 軟件工程網(wǎng)上購物系統(tǒng)的設計與實現(xiàn)畢業(yè)論文
- 軟件工程畢業(yè)論文-工程監(jiān)理管理系統(tǒng)的設計與實現(xiàn)
評論
0/150
提交評論