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