真人一对一直播,chinese极品人妻videos,青草社区,亚洲影院丰满少妇中文字幕无码

0
首頁(yè) 公文范文 安卓開(kāi)發(fā)論文

安卓開(kāi)發(fā)論文

發(fā)布時(shí)間:2022-06-20 09:26:33

開(kāi)篇:寫(xiě)作不僅是一種記錄,更是一種創(chuàng)造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的1篇安卓開(kāi)發(fā)論文,希望這些內(nèi)容能成為您創(chuàng)作過(guò)程中的良師益友,陪伴您不斷探索和進(jìn)步。

安卓開(kāi)發(fā)論文

安卓開(kāi)發(fā)論文:安卓系統(tǒng)的手機(jī)定位軟件開(kāi)發(fā)與設(shè)計(jì)

摘要:如今,手機(jī)的智能化及人性化已經(jīng)成為手機(jī)發(fā)展變革的必然趨勢(shì),無(wú)線通信技術(shù)、GPS定位技術(shù)的手機(jī)定位軟件應(yīng)用也愈發(fā)成熟,為用戶(hù)提供了無(wú)盡的便利服。文章就基于安卓系統(tǒng)的位置信息服務(wù)探討了目前手機(jī)定位軟件在導(dǎo)游系統(tǒng)終端中的技術(shù)設(shè)計(jì)與開(kāi)發(fā),希望為用戶(hù)出行提供集旅游、購(gòu)物、社交三位一體的綜合性信息平臺(tái)。

關(guān)鍵詞:安卓系統(tǒng);LBS;手機(jī)定位軟件;智能導(dǎo)游;位置信息服務(wù)

位置信息服務(wù)即Location Based Service,簡(jiǎn)稱(chēng)LBS。通過(guò)由運(yùn)營(yíng)商所提供的無(wú)線通訊網(wǎng)絡(luò)或GPS等外部定位方式來(lái)獲取移動(dòng)終端用戶(hù)的具體地理坐標(biāo)信息,并在GIS等地理信息系統(tǒng)平臺(tái)的支持下,為用戶(hù)提供智能終端定位、智能導(dǎo)游等增值服務(wù)。具體來(lái)說(shuō),地圖定位、自動(dòng)觸發(fā)景點(diǎn)多媒體信息、游覽軌跡信息和周邊服務(wù)設(shè)施信息都應(yīng)該是LBS所涉及的服務(wù)范圍。利用信息化技術(shù)將游客、旅游實(shí)體、旅游實(shí)體管理者這3方聯(lián)系到了一起,并達(dá)成了交互的目的。也正是基于此系統(tǒng),游客可以在出行期間得到更好的信息化服務(wù)。

1.安卓系統(tǒng)下LBS智能終端導(dǎo)游系統(tǒng)的關(guān)鍵技術(shù)闡述

位置信息服務(wù)LBS主要是基于3方技術(shù)來(lái)共同完成的,它們是來(lái)自于移動(dòng)終端的定位軟件技術(shù)、網(wǎng)絡(luò)通信技術(shù)以及安卓系統(tǒng)。以下就一一闡述這3方下的具體關(guān)鍵技術(shù)特點(diǎn)。

1.1定位軟件技術(shù)

定位軟件技術(shù)是LBS智能導(dǎo)游系統(tǒng)應(yīng)用中的關(guān)鍵優(yōu)秀,一般起到功能作用的是Skyhook Wi-Fi定位系統(tǒng)和蜂窩基站定位系統(tǒng),包括外部全球定位系統(tǒng)GPS。這幾項(xiàng)技術(shù)都通過(guò)天線向外部發(fā)送信號(hào),并尋求距離自己最近的復(fù)數(shù)基站,通過(guò)它們的信號(hào)轉(zhuǎn)遞進(jìn)行信號(hào)定位。而Skyhook Wi-Fi則運(yùn)用到了固定熱點(diǎn)技術(shù),它能直接與手機(jī)或其它智能移動(dòng)終端的MAC地址相互綁定,實(shí)現(xiàn)對(duì)系統(tǒng)無(wú)線信號(hào)的接入,從而獲取用戶(hù)想要的地理定位信息。

另外,利用智能手機(jī)內(nèi)部的微機(jī)電三軸加速傳感器也能夠?qū)崿F(xiàn)對(duì)智能導(dǎo)游系統(tǒng)功能的應(yīng)用。其功能實(shí)現(xiàn)原理是手機(jī)在空間坐標(biāo)系中同時(shí)向3個(gè)方向軸上輸出加速度分量,并通過(guò)這3個(gè)方向的加速度積分計(jì)算來(lái)推導(dǎo)出空間三維速度和位置,為用戶(hù)提供準(zhǔn)確的服務(wù)。

1.2網(wǎng)絡(luò)通信技術(shù)

網(wǎng)絡(luò)通信技術(shù)包含許多種,比如套接字通信,HTTP協(xié)議,增強(qiáng)現(xiàn)實(shí)技術(shù)等等。首先說(shuō)套接字通信(socket),是網(wǎng)絡(luò)通信技術(shù)的基礎(chǔ),能夠支持TCP/IP協(xié)議獲取最基本的網(wǎng)絡(luò)通信包,從而實(shí)現(xiàn)對(duì)客戶(hù)端服務(wù)器的連接,進(jìn)一步獲取本地IP,本地DNS,遠(yuǎn)距離IP及DNS。另外,安卓系統(tǒng)中的SDK、CFNetwork framewrok也能為基礎(chǔ)網(wǎng)絡(luò)通信接口提供網(wǎng)絡(luò)通信服務(wù),實(shí)現(xiàn)遠(yuǎn)程位置查詢(xún)。

而HTTP協(xié)議則提供了簡(jiǎn)潔快捷的應(yīng)用層技術(shù),基于信息傳輸主體內(nèi)容的實(shí)體、通信層與應(yīng)用層之間的通信連接、HTTP所傳輸?shù)南?nèi)容、客戶(hù)端向服務(wù)器發(fā)送的內(nèi)容請(qǐng)求、接受客戶(hù)請(qǐng)求時(shí)HTTP月艮務(wù)器端的響應(yīng)以及由URI表示網(wǎng)絡(luò)服務(wù)中的資源來(lái)為L(zhǎng)BS提供更好的網(wǎng)絡(luò)技術(shù)支持。

1.3安卓系統(tǒng)

安卓系統(tǒng)出現(xiàn)相對(duì)較晚,主要采用了軟件堆層的主題架構(gòu),并細(xì)分為3大部分,底層Linux內(nèi)核、中間層函數(shù)庫(kù)Library及虛擬機(jī),還有上層具體app應(yīng)用軟件,它們都是由C語(yǔ)言、c++、JAVA等計(jì)算機(jī)語(yǔ)言所編寫(xiě)的程序。

針對(duì)LBS來(lái)說(shuō),安卓系統(tǒng)中的Linux和Application Framework則更加關(guān)鍵。Linux主要為安卓系統(tǒng)提供優(yōu)秀系統(tǒng)服務(wù),是連接智能手機(jī)軟硬件系統(tǒng)的抽象層,并將二者細(xì)化分層。所提供的服務(wù)也是統(tǒng)一的,能夠屏蔽一些不相關(guān)層的信息,使各個(gè)信息層之間處于不關(guān)聯(lián)狀態(tài)。而Application Framework則是利用安卓系統(tǒng)中的開(kāi)發(fā)應(yīng)用程序來(lái)簡(jiǎn)化手機(jī)系統(tǒng)結(jié)構(gòu),并將LBS中所需要應(yīng)用的視圖、音頻等組件集合起來(lái),允許用戶(hù)使用各個(gè)應(yīng)用程序來(lái)訪問(wèn)其它數(shù)據(jù),這在智能導(dǎo)游系統(tǒng)中是十分重要的,即通過(guò)對(duì)系統(tǒng)資源的共享應(yīng)用來(lái)實(shí)現(xiàn)手機(jī)定位。

2.基于LBS的安卓智能手機(jī)導(dǎo)游系統(tǒng)軟件設(shè)計(jì)

整體而言,基于LBS的安卓智能手機(jī)導(dǎo)游系統(tǒng)軟件應(yīng)該包括優(yōu)化了的封裝位置定位服務(wù)、高品質(zhì)的網(wǎng)絡(luò)通信服務(wù)、實(shí)時(shí)的數(shù)據(jù)緩存服務(wù)以及其它一部分交互展示功能。正是這些關(guān)鍵技術(shù)的加入才豐富和提升了手機(jī)定位軟件的應(yīng)用性能和運(yùn)行效率。

2.1基于LBS的相關(guān)定位控件設(shè)計(jì)

2.1.1控件設(shè)計(jì)

BPLocation是LBS中一個(gè)較為重要的位置服務(wù)控件,它能夠創(chuàng)建uIAccelerometerDelegate與CLLocationManagerDelegate接口,通過(guò)它們實(shí)現(xiàn)對(duì)GPS位置信息的獲取。同時(shí)它也能計(jì)算GPS漂移數(shù)據(jù)量,實(shí)現(xiàn)對(duì)用戶(hù)運(yùn)動(dòng)軌跡函數(shù)的推算、區(qū)域檢測(cè)等等。近似于BPLocation類(lèi)的相關(guān)函數(shù)種類(lèi)眾多,文中簡(jiǎn)單介紹3種:instance是典型的BPLocationManger類(lèi),它屬于靜態(tài)函數(shù),能夠根據(jù)系統(tǒng)應(yīng)用來(lái)實(shí)現(xiàn)XCBPLocationManger變量的獲得;LocationManager則通過(guò)設(shè)置DesiredAccuracy來(lái)獲取用戶(hù)的位置方向與具體信息數(shù)據(jù);還有accelerometer,它是基于UIAcceIerometer抽象類(lèi)的控件,它就是利用到了微機(jī)電的三軸加速傳感器,可以在用戶(hù)手機(jī)LBS軟件客戶(hù)端的x,y,z三個(gè)軸上實(shí)施加速度,進(jìn)而計(jì)算用戶(hù)手機(jī)設(shè)備智能導(dǎo)游系統(tǒng)的運(yùn)行速度,起到糾正手機(jī)內(nèi)部GPS定位誤差的作用。

2.1.2設(shè)計(jì)應(yīng)用

在具體應(yīng)用中,LBS的相關(guān)控件會(huì)根據(jù)手機(jī)的位置實(shí)施運(yùn)動(dòng)軌跡的定位,可以實(shí)時(shí)記錄用戶(hù)的運(yùn)行軌跡,一旦出現(xiàn)任何漂移,也能將這些偏差自動(dòng)濾掉,這就是過(guò)濾偏移。過(guò)濾偏移共有2種方式:利用GPS歷史記錄確定偏移是否存在;再者就是利用計(jì)算機(jī)的運(yùn)行速度和加速度來(lái)確定定位是否存在偏移,這種方法更加合理,而且精確度也有保證。

區(qū)域檢測(cè)也可以通過(guò)手機(jī)安卓系統(tǒng)檢測(cè)游客在所規(guī)定區(qū)域范圍內(nèi)的運(yùn)動(dòng)軌跡,這是智能導(dǎo)游系統(tǒng)所慣用的技術(shù)。當(dāng)游客離開(kāi)規(guī)定區(qū)域時(shí),系統(tǒng)會(huì)發(fā)送消息通知用戶(hù),告知用戶(hù)的運(yùn)行軌跡,比如一些用戶(hù)在跑步時(shí)會(huì)用到的計(jì)步軟件,它的檢測(cè)原理主要以規(guī)定區(qū)域中心點(diǎn)作為主要檢測(cè)中心,當(dāng)用戶(hù)運(yùn)動(dòng)時(shí),系統(tǒng)會(huì)為其與區(qū)域中心點(diǎn)做比較,所比較出的結(jié)果就是用戶(hù)以中心點(diǎn)為軸心的運(yùn)動(dòng)軌跡。

2.2基于網(wǎng)絡(luò)通信系統(tǒng)的相關(guān)模塊設(shè)計(jì)

就網(wǎng)絡(luò)通信系統(tǒng)模塊設(shè)計(jì)而言,主要將研究重心放在BPFormDataRequest和BPRequestQueue的設(shè)計(jì)上。BPFormDataRequest是BPHTTPRequest的子類(lèi),在擴(kuò)展手機(jī)智能導(dǎo)游系統(tǒng)對(duì)POST的支持時(shí),就要實(shí)現(xiàn)基于POST的所有位置數(shù)據(jù)請(qǐng)求參數(shù)設(shè)置和相關(guān)文件上傳,這樣才能發(fā)揮BPFromDataRequest的實(shí)際作用,明確數(shù)據(jù)24#的路徑和網(wǎng)絡(luò)通信模塊的所有通信接口。

相對(duì)而言,BPRequestOueue則銜承于NSOperationOueue模塊,它能夠管理并實(shí)現(xiàn)BPHTTPRequest的實(shí)時(shí)復(fù)數(shù)請(qǐng)求,同時(shí)也允許其對(duì)象在網(wǎng)絡(luò)環(huán)境中發(fā)送任何位置信息請(qǐng)求,它與普通的傳輸信息模塊是不同的,它對(duì)位置信息的確定性更強(qiáng),而且嚴(yán)重依賴(lài)于圖像來(lái)定位如圖l所示。

如果客戶(hù)通過(guò)手機(jī)端創(chuàng)建BPHTTPRequest模塊,并發(fā)送信息請(qǐng)求,所發(fā)送的信息將以隊(duì)列形式等待響應(yīng)處理,此時(shí)LBS也會(huì)監(jiān)測(cè)定位信息的傳送狀態(tài)。當(dāng)請(qǐng)求處理完畢,服務(wù)器端將會(huì)收到所返回的結(jié)果并做記錄,同時(shí)釋放用戶(hù)所要求的請(qǐng)求資源。

2.3基于UI視頻圖像交互展示技術(shù)的系統(tǒng)設(shè)計(jì)

手機(jī)智能導(dǎo)游軟件要實(shí)現(xiàn)對(duì)視頻圖像的交互展示,就必須基于展示模塊來(lái)設(shè)計(jì)UI。本文所介紹的是對(duì)定位軟件系統(tǒng)中原始UIImageYiew的擴(kuò)展,即BPImageView的應(yīng)用,能夠?qū)崿F(xiàn)地圖類(lèi)型數(shù)據(jù)的可視化分析,為智能導(dǎo)游系統(tǒng)提供更多的位置空間數(shù)據(jù)和可視化功能,以地圖和影像的形式展示出來(lái)。為了實(shí)現(xiàn)地圖、影像等數(shù)據(jù)的可視化,需要通過(guò)ARView模塊中的動(dòng)態(tài)加載及流技術(shù)對(duì)地理位置信息進(jìn)行強(qiáng)化。所以本文主要介紹了基于UI視頻圖像交互展示技術(shù)的系統(tǒng)設(shè)計(jì),希望幫助手機(jī)實(shí)現(xiàn)對(duì)地理數(shù)據(jù)可視化信息獲取的功能強(qiáng)化。

2.3.1基于BPImageView模塊的網(wǎng)絡(luò)圖片加載設(shè)計(jì)

因?yàn)锽PImageView是UIImageView的子類(lèi),所以應(yīng)該實(shí)現(xiàn)其父類(lèi)UIImageView對(duì)所有圖片顯示類(lèi)以及圖片存儲(chǔ)數(shù)據(jù)的合理運(yùn)用。這里采用的方法是利用BPImageView來(lái)接收setImageURL消息,然后引用基于BPImageLoader的可視化信息強(qiáng)化輸出方法。此方法可以達(dá)到查看網(wǎng)絡(luò)中緩存數(shù)據(jù)存在性的目的。如果數(shù)據(jù)存在,就說(shuō)明它們可以直接以圖片的形式載入。如果數(shù)據(jù)不存在,則表示要再次通過(guò)BPImageLoader類(lèi)進(jìn)行l(wèi)oadlmage For URL數(shù)據(jù)的調(diào)用,重新加載圖片。

2.3.2 ARView視圖功能UI強(qiáng)化的設(shè)計(jì)

首先要說(shuō),ARView是具備2部分視圖的,它們是興趣點(diǎn)POI視圖和實(shí)施傳輸視頻流如圖2所示。

2個(gè)POI點(diǎn)視圖處于疊加狀態(tài),這就可以確定POI的興趣點(diǎn),如果以視圖表示POI,就可以了解到用戶(hù)對(duì)該P(yáng)OI點(diǎn)視圖的興趣度。這里采用一個(gè)叫做placesOfTnterestCoordinates的數(shù)組,通過(guò)四維向量來(lái)表示數(shù)組中用戶(hù)所記錄的興趣點(diǎn)坐標(biāo),這樣就可以利用系統(tǒng)來(lái)記錄用戶(hù)的位置信息,為用戶(hù)導(dǎo)航。

3.結(jié)語(yǔ)

基于安卓系統(tǒng)的手機(jī)定位軟件的開(kāi)發(fā)與設(shè)計(jì)應(yīng)該是全方位的,LBS位置信息服務(wù)的多角度設(shè)計(jì)理念也恰好迎合了這一點(diǎn)發(fā)展需求,讓手機(jī)智能系統(tǒng)更加人性化、系統(tǒng)化和精確化,特別是可視化與智能定位的巧妙設(shè)計(jì)應(yīng)用也體現(xiàn)了它對(duì)于目前無(wú)線通訊服務(wù)的重要性。而且這種位置信息服務(wù)技術(shù)也切實(shí)地運(yùn)用到了諸如旅游這樣的人類(lèi)大型產(chǎn)業(yè)中,為社會(huì)發(fā)展贏取了一定的效率和效益。所以說(shuō),LBS技術(shù)是一種具有巨大潛能的,前景無(wú)限美好的現(xiàn)代化技術(shù),也希望它可以應(yīng)用到除旅游外的其它各個(gè)領(lǐng)域,發(fā)揮它的科技智慧,為人類(lèi)造福。

安卓開(kāi)發(fā)論文:基于安卓平臺(tái)的旅游社交軟件的設(shè)計(jì)與開(kāi)發(fā)

摘要:自從安卓手機(jī)操作系統(tǒng)以來(lái),它便以開(kāi)放性、不受束縛、豐富的硬件、方便開(kāi)發(fā)等優(yōu)勢(shì)風(fēng)靡全世界,我們利用安卓手機(jī)平臺(tái),開(kāi)發(fā)了一款旅游社交平臺(tái)軟件,該軟件采用安卓Sdk4.0進(jìn)行開(kāi)發(fā),采用了C/S模式,可以節(jié)省網(wǎng)絡(luò)資源,簡(jiǎn)單,易用,服務(wù)器端采用Java Web開(kāi)發(fā),數(shù)據(jù)庫(kù)采用了免費(fèi)的Mysql。它可以給用戶(hù)提供你最想要的旅游欄目,讓你置身于朋友的海洋之中,從此出行旅游更加方便。

關(guān)鍵詞:Android平臺(tái)應(yīng)用開(kāi)發(fā);旅游社交平臺(tái)

Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。大學(xué)生從高中升入大學(xué),猶如一下子從“地獄”進(jìn)入了“天堂”,有著大量的課余時(shí)間,但是往往他們無(wú)法合理利用,大多蝸居在宿舍里打游戲,費(fèi)心勞神,因此開(kāi)發(fā)一款基于安卓平臺(tái)的旅游社交軟件,幫助大學(xué)生走出教室,走出宿舍,到自然中,去鍛煉,去陶冶情操,最大程度的滿(mǎn)足他們旅游交友的需求。

1 基于安卓平臺(tái)旅游社交軟件的需求分析

這個(gè)平臺(tái)主要包括3個(gè)子系統(tǒng),它們分別是:1)發(fā)起活動(dòng)子系統(tǒng);2)參加活動(dòng)子系統(tǒng);3)后臺(tái)管理子系統(tǒng);4)活動(dòng)分享子系統(tǒng)。如圖1所示。

在活動(dòng)發(fā)起子系統(tǒng)中包括以下幾個(gè)功能:1)活動(dòng)申請(qǐng);2)活動(dòng)信息管理;3)活動(dòng)資料查詢(xún);4)活動(dòng)上報(bào)申請(qǐng)。

在參加活動(dòng)子系統(tǒng)中包括以下幾個(gè)功能:1)活動(dòng)參加;2)活動(dòng)資料查詢(xún);3)參加活動(dòng)申請(qǐng)。

在后臺(tái)管理子系統(tǒng)中包括以下幾個(gè)功能:1)用戶(hù)管理;2)公告管理;3)權(quán)限管理;4)分類(lèi)管理;5)系統(tǒng)維護(hù)。

在活動(dòng)分享子系統(tǒng)中包括以下幾個(gè)功能:1)活動(dòng)評(píng)價(jià)分享;2)活動(dòng)圖片分享。

2 旅游社交平臺(tái)的總體設(shè)計(jì)

2.1 軟件總體設(shè)計(jì)

根據(jù)我們定義的需求分析,我們給出了旅游社交平臺(tái)軟件總體設(shè)計(jì),客戶(hù)端運(yùn)行在安卓手機(jī)上,服務(wù)器端運(yùn)行在Tomcat上,數(shù)據(jù)庫(kù)采用Mysql數(shù)據(jù)庫(kù),開(kāi)發(fā)語(yǔ)言采用了最流行的Java語(yǔ)言進(jìn)行開(kāi)發(fā),以下是整個(gè)軟件的整體架構(gòu)圖,Android前臺(tái)界面負(fù)責(zé)數(shù)據(jù)的采集和展示,Android端HTTP組件負(fù)責(zé)將前臺(tái)界面采集到的數(shù)據(jù)封裝成HTTP協(xié)議發(fā)到Servlet上,Servlet負(fù)責(zé)接收HTTP協(xié)議的數(shù)據(jù),然后解析,調(diào)用相應(yīng)的業(yè)務(wù)方法,Server端業(yè)務(wù)層負(fù)責(zé)從數(shù)據(jù)庫(kù)中采取數(shù)據(jù)交給Servlet,Servlet把封裝的json數(shù)據(jù)再發(fā)到HTTP組件,HTTP組件解析數(shù)據(jù),再發(fā)往前端進(jìn)行展示,如圖2所示。

2.2數(shù)據(jù)庫(kù)設(shè)計(jì)

2.2.1 數(shù)據(jù)庫(kù)中所需的各種表

2.2.2 數(shù)據(jù)庫(kù)概念模型和物理模型的設(shè)計(jì)

設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),我們可以采用sybase公司的powerDesigner來(lái)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),使用powerDsigner工具設(shè)計(jì)時(shí),首先設(shè)計(jì)數(shù)據(jù)庫(kù)概念模型圖,它的功能和數(shù)據(jù)庫(kù)E-R圖十分類(lèi)似,好處在于,可以使用powerDesigner工具輕松的轉(zhuǎn)成數(shù)據(jù)庫(kù)物理模型,然后再借助powerDesigner工具可以很輕松的生成SQL語(yǔ)句,從而大大方便開(kāi)發(fā)。

2.3 詳細(xì)設(shè)計(jì)

2.3.1 服務(wù)器端數(shù)據(jù)庫(kù)工具類(lèi)設(shè)計(jì)

為了更好的和數(shù)據(jù)庫(kù)交互,減少開(kāi)發(fā)工作量,我們對(duì)數(shù)據(jù)庫(kù)操作冗余的代碼做了一定的封裝。這樣就沒(méi)必要頻繁的寫(xiě)JDBC代碼了,從而提高了程序內(nèi)聚度。

2.3.2 各個(gè)業(yè)務(wù)Service的接口設(shè)計(jì)

接口在項(xiàng)目中就是一個(gè)業(yè)務(wù)邏輯,面向接口編程就是先把客戶(hù)的業(yè)務(wù)提取出來(lái),作為接口。業(yè)務(wù)具體實(shí)現(xiàn)通過(guò)該接口的實(shí)現(xiàn)類(lèi)來(lái)完成。當(dāng)客戶(hù)需求變化時(shí),只需編寫(xiě)該業(yè)務(wù)邏輯的新的實(shí)現(xiàn)類(lèi),通過(guò)更改配置文件(例如Spring框架)中該接口的實(shí)現(xiàn)類(lèi)就可以完成需求,不需要改寫(xiě)現(xiàn)有代碼,減少對(duì)系統(tǒng)的影響。 采用基于接口編程的項(xiàng)目,業(yè)務(wù)邏輯清晰,代碼易懂,方便擴(kuò)展,可維護(hù)性強(qiáng)。即使更換一批人員,新來(lái)的人依然可以快速上手。對(duì)于團(tuán)隊(duì)來(lái)說(shuō),意義更大。

2.3.3 各個(gè)服務(wù)接口的實(shí)現(xiàn)

在設(shè)計(jì)好接口之后,我們就可以編寫(xiě)程序來(lái)實(shí)現(xiàn)各個(gè)接口了。在這個(gè)過(guò)程中我們也體會(huì)到了協(xié)同工作的效率。我們幾個(gè)開(kāi)發(fā)人員就可以并行的進(jìn)行開(kāi)發(fā),然后再把代碼提交到Svn代碼管理工具上,從而很大程度上提高了工作效率。

2.3.4 各個(gè)服務(wù)所對(duì)應(yīng)的Servlet的編寫(xiě)

Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。這個(gè)過(guò)程為:1)客戶(hù)端發(fā)送請(qǐng)求至服務(wù)器端;2)服務(wù)器將請(qǐng)求信息發(fā)送至Servlet;3)Servlet生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶(hù)端的請(qǐng)求;4)服務(wù)器將響應(yīng)返回給客戶(hù)端,如圖3所示。

一個(gè)servlet就是Java編程語(yǔ)言中的一個(gè)類(lèi),它被用來(lái)擴(kuò)展服務(wù)器的性能,服務(wù)器上駐留著可以通過(guò)“請(qǐng)求-響應(yīng)”編程模型來(lái)訪問(wèn)的應(yīng)用程序。雖然servlet可以對(duì)任何類(lèi)型的請(qǐng)求產(chǎn)生響應(yīng),但通常只用來(lái)擴(kuò)展Web服務(wù)器的應(yīng)用程序。

2.3.5 GoGoGo數(shù)據(jù)編碼問(wèn)題的解決

我們把安卓數(shù)據(jù)客戶(hù)端所獲取的數(shù)據(jù)通過(guò)HTTP協(xié)議傳送到服務(wù)器端,由Servlet來(lái)獲取數(shù)據(jù),由于Tomcat默認(rèn)編碼是ISO8859-1,因此在后臺(tái)獲取中文數(shù)據(jù)時(shí)會(huì)遇到亂碼。解決辦法是:1)要重寫(xiě)HttpServletRequestWrapper下面的getParameter()方法,在這個(gè)方法對(duì)獲取到的數(shù)據(jù),重新用UTF-8編碼。

2)在Filter中對(duì)每個(gè)請(qǐng)求過(guò)濾,調(diào)用HttpServletRequsetWrapper重寫(xiě)的getParameter()方法,再把請(qǐng)求傳說(shuō)出去,就完成了過(guò)濾請(qǐng)求,如圖4所示。

2.3.6 前臺(tái)和后臺(tái)數(shù)據(jù)交互的問(wèn)題

Android前臺(tái)發(fā)送數(shù)據(jù)給服務(wù)器后臺(tái)應(yīng)用程序(Servlet),Servlet處理后,要給前臺(tái)返回?cái)?shù)據(jù),數(shù)據(jù)格式如何選擇將是一個(gè)非常重要的問(wèn)題,因?yàn)镴SON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。易于閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成。所以我們采用了json作為前后臺(tái)數(shù)據(jù)交換的數(shù)據(jù)格式。

2.3.7 前臺(tái)向后臺(tái)如何傳送數(shù)據(jù)問(wèn)題

我們編寫(xiě)了一個(gè)HTTP數(shù)據(jù)傳送工具,負(fù)責(zé)Android前臺(tái)和Server后臺(tái)的數(shù)據(jù)傳送。因?yàn)槭荋TTP協(xié)議是基于TCP協(xié)議的,所在Android前臺(tái)和Server建立連接需要進(jìn)行3次握手,連接建立成功后,才進(jìn)行傳送數(shù)據(jù)。當(dāng)釋放連接時(shí),需要進(jìn)行4次握手才能釋放連接,如圖5所示。

2.3.8 數(shù)據(jù)加密問(wèn)題

一個(gè)優(yōu)秀的軟件,在確保功能實(shí)現(xiàn)的同時(shí),另外一個(gè)不得不考慮的問(wèn)題便是如何保障用戶(hù)數(shù)據(jù)的安全,對(duì)于用戶(hù)重要的數(shù)據(jù),我們非常有必要對(duì)其進(jìn)行加密后再保存,現(xiàn)在比較流行的信息摘要算法有MD5和SHA1,對(duì)于這兩種算法,主流的編程語(yǔ)言都有對(duì)其實(shí)現(xiàn),因此用起來(lái)方便又安全。

2.4 旅游社交平臺(tái)測(cè)試

軟件測(cè)試是軟件開(kāi)發(fā)環(huán)節(jié)中非常重要的一環(huán),軟件測(cè)試是幫助識(shí)別開(kāi)發(fā)完成的計(jì)算機(jī)軟件的正確度、完全度和質(zhì)量的軟件過(guò)程;是SQA的重要子域。它主要包括單元測(cè)試,集成測(cè)試,系統(tǒng)測(cè)試,還有驗(yàn)收測(cè)試幾個(gè)大項(xiàng)。

2.4.1 單元測(cè)試

在單元測(cè)試環(huán)節(jié)中,Android端采用了Android自帶的單元測(cè)試工具AndroidTestCase,服務(wù)器端我們采用了Junit4測(cè)試工具,對(duì)每一個(gè)業(yè)務(wù)方法進(jìn)行了測(cè)試,確保正確后才進(jìn)行下一步開(kāi)發(fā)。

2.4.2 集成測(cè)試

在單元測(cè)試通過(guò)的基礎(chǔ)上,我們將所有模塊按照設(shè)計(jì)要求組成子系統(tǒng),進(jìn)行集成測(cè)試,從而發(fā)現(xiàn)在單元測(cè)試中沒(méi)有發(fā)現(xiàn)的Bug,盡早的修改,降低項(xiàng)目風(fēng)險(xiǎn),主要使用的測(cè)試工具是Selenium.

2.4.3 系統(tǒng)測(cè)試

在集成測(cè)試完成的基礎(chǔ)上,我們完整的對(duì)旅游社交平臺(tái)進(jìn)行了系統(tǒng)測(cè)試,測(cè)試我們的功能是否達(dá)到了當(dāng)初的設(shè)計(jì)要求,測(cè)試其容錯(cuò)能力和恢復(fù)能力。

2.4.4 測(cè)試結(jié)論

系統(tǒng)功能的測(cè)試結(jié)果顯示,基于安卓平臺(tái)旅游社交平臺(tái)能夠正常使用。各功能都可支持,滿(mǎn)足了預(yù)期設(shè)計(jì)。

3 結(jié)束語(yǔ)

經(jīng)過(guò)我們的努力,我們終于完成了一個(gè)簡(jiǎn)易社交平臺(tái)的設(shè)計(jì)和開(kāi)發(fā),基本上滿(mǎn)足了當(dāng)初的設(shè)計(jì)要求,能夠方便大學(xué)生的郊游和交友的需求,總之項(xiàng)目還是比較成功的,但是也存在著一些不足,比如在軟件架構(gòu)設(shè)計(jì)上肯定達(dá)不到很高的水準(zhǔn),總之我們會(huì)繼續(xù)努力,爭(zhēng)取使其更加完美。

安卓開(kāi)發(fā)論文:基于安卓智能系統(tǒng)的地形圖數(shù)據(jù)采集系統(tǒng)開(kāi)發(fā)

[摘要]本文主要介紹基于安卓智能移動(dòng)系統(tǒng)的大比例尺地圖數(shù)據(jù)采集系統(tǒng),對(duì)系統(tǒng)的功能、特點(diǎn)、結(jié)構(gòu)等進(jìn)行論述。

[關(guān)鍵詞]安卓 數(shù)據(jù)采集 數(shù)字化測(cè)圖

1引言

現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,尤其是計(jì)算機(jī)技術(shù)的廣泛采用,使測(cè)繪技術(shù)發(fā)生了革命性的變化,從模擬階段轉(zhuǎn)向數(shù)字階段,數(shù)字化測(cè)圖已成為當(dāng)今大比例尺地形圖測(cè)繪的主要方式。數(shù)字測(cè)圖野外測(cè)量自動(dòng)記錄,自動(dòng)解算處理,自動(dòng)成圖,并能提供可處理的數(shù)字地形圖。目前,數(shù)字化測(cè)圖軟件、硬件已經(jīng)得到的長(zhǎng)足的發(fā)展,但野外現(xiàn)在草圖的作業(yè)方式效率依然較為低下;雖然現(xiàn)在已有電子平板、掌上平板等野外數(shù)據(jù)采集軟硬件設(shè)備,但是由于成本過(guò)高,電池續(xù)航能力不足等因素,而未能大面積推廣。為了使得野外數(shù)據(jù)采集更加高效,借助現(xiàn)代科技,利用安裝了安卓智能移動(dòng)系統(tǒng)的設(shè)備(手機(jī)、平板電腦)體積小、便于攜帶,觸控方便、成本低的的特點(diǎn),開(kāi)發(fā)一套基于安卓系統(tǒng)的大比例尺地形圖測(cè)繪系統(tǒng),對(duì)提高生產(chǎn)效率將起到積極的作用。

Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。安卓系統(tǒng)平臺(tái)具有以下特點(diǎn):①開(kāi)放性:允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來(lái),可以使其擁有更多的開(kāi)發(fā)者;②豐富的硬件選擇:這一點(diǎn)還是與Android平臺(tái)的開(kāi)放性相關(guān),由于Android的開(kāi)放性,它擁有千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會(huì)影響到數(shù)據(jù)同步、甚至軟件的兼容;③方便開(kāi)發(fā):Android平臺(tái)提供給第三方開(kāi)發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會(huì)受到各種條條框框的阻擾,因此會(huì)有新穎別致的軟件會(huì)誕生;④Google應(yīng)用:Android平臺(tái)能無(wú)縫結(jié)合優(yōu)秀的Google服務(wù),如地圖。本文針對(duì)用戶(hù)對(duì)大比例尺地形圖測(cè)繪簡(jiǎn)易性和高效性的需求,介紹了基于安卓智能系統(tǒng)的大比例尺測(cè)圖系統(tǒng)的整體結(jié)構(gòu)和基本功能。

2系統(tǒng)設(shè)計(jì)

2.1系統(tǒng)優(yōu)點(diǎn)

基于安卓開(kāi)發(fā)的地形圖測(cè)繪系統(tǒng)與便攜式計(jì)算機(jī)、平板電腦、工業(yè)級(jí)的PAD設(shè)備相比較具有以下優(yōu)點(diǎn):①體積小、重量輕、適合于野外工作的優(yōu)點(diǎn);②與便攜式計(jì)算機(jī)、工業(yè)級(jí)的PAD設(shè)備相比,價(jià)格便宜、成本低;③能耗較低,續(xù)航能力強(qiáng),擁有與之配套的便攜式電源;④可觸屏繪制圖形,反應(yīng)速度快,工作效率高。

基于安卓開(kāi)發(fā)的地形圖測(cè)繪系統(tǒng)與測(cè)繪外業(yè)工作的適宜性特點(diǎn):①超大屏幕:7英寸(1024×600 像素)或10英寸的屏幕,完全可以滿(mǎn)足地形圖測(cè)繪外業(yè)工作的需求;②CPU:雙核或四核,完全可以勝任地形圖測(cè)繪的野外數(shù)據(jù)采集任務(wù);③攝像:可以現(xiàn)場(chǎng)錄制測(cè)繪現(xiàn)場(chǎng)的視頻,減少外業(yè)巡查,提高效率;④拍照:定點(diǎn)記錄現(xiàn)場(chǎng)觀測(cè)的信息,為內(nèi)業(yè)數(shù)據(jù)處理提供現(xiàn)場(chǎng)影像資料;⑤錄音:記錄外業(yè)調(diào)查的語(yǔ)音信息;⑥GPS:提供導(dǎo)航定位功能,記錄一定精度范圍內(nèi)定位信息,輔助踏勘工作;⑦WIFI:可以方便的接入網(wǎng)絡(luò)營(yíng)運(yùn)商提供的互聯(lián)網(wǎng)服務(wù),傳輸非涉密數(shù)據(jù);在局域網(wǎng)內(nèi)快速的與網(wǎng)絡(luò)工作站交換數(shù)據(jù),上傳數(shù)據(jù)到局域網(wǎng)服務(wù)器;⑧藍(lán)牙:驅(qū)動(dòng)控制測(cè)量?jī)x器、與測(cè)量設(shè)備交換數(shù)據(jù)、備份或恢復(fù)數(shù)據(jù);⑨USB:驅(qū)動(dòng)控制測(cè)量?jī)x器、與測(cè)量設(shè)備交換數(shù)據(jù)、備份或恢復(fù)數(shù)據(jù);⑩SD 存儲(chǔ)卡:大容量SD卡可用作軟件安裝和數(shù)據(jù)存儲(chǔ)。

2.2系統(tǒng)的數(shù)據(jù)流程

根據(jù)測(cè)圖系統(tǒng)中數(shù)據(jù)采集的特點(diǎn),系統(tǒng)的數(shù)據(jù)流程,如圖1所示。

2.3系統(tǒng)結(jié)構(gòu)

本地形圖數(shù)據(jù)采集系統(tǒng)是以智能平板電腦(或智能手機(jī))為載體,在安卓平臺(tái)下使用Java 作為編程語(yǔ)言來(lái)開(kāi)發(fā)的野外數(shù)據(jù)采集平臺(tái),集數(shù)據(jù)、圖形、屬性采集、編輯于一體的外業(yè)數(shù)據(jù)采集系統(tǒng)。該數(shù)據(jù)采集系統(tǒng)具有可視化、可觸控、面向?qū)ο蟮牟僮鹘缑妗⑼暾牡貓D符號(hào)和先進(jìn)的編輯功能,可以同步采集數(shù)據(jù)、圖形和地物屬性,也可以在野外只采集數(shù)據(jù)或者圖形,再進(jìn)行圖形的編輯和屬性的匹配。用戶(hù)可根據(jù)自己的需要和習(xí)慣選擇方便自己的作圖方式,利用圖形編輯系統(tǒng)和屬性管理系統(tǒng),對(duì)于已作的圖形可以進(jìn)行再編輯和屬性的更改。使成圖效率成倍提高,系統(tǒng)結(jié)構(gòu)示意圖,如圖2所示。

3系統(tǒng)功能

系統(tǒng)主要包括圖根控制、碎部測(cè)量、圖形編輯、圖形(數(shù)據(jù))查看、距離量算、坐標(biāo)量測(cè)等基本功能模塊。

3.1圖根控制

(1)控制點(diǎn)管理:該功能主要實(shí)現(xiàn)對(duì)測(cè)區(qū)內(nèi)測(cè)量控制點(diǎn)的管理,包括把控制上傳到全站儀等采集設(shè)備、對(duì)控制點(diǎn)進(jìn)行添加、刪除、修改、查詢(xún)等,并實(shí)現(xiàn)在地形圖中自動(dòng)繪制控制點(diǎn)符號(hào)。

(2)圖根導(dǎo)線測(cè)量及平差:包括圖根導(dǎo)線的基本設(shè)置,如方向、斜距、天頂距測(cè)回?cái)?shù)、限差等。測(cè)量結(jié)束后利用簡(jiǎn)易平差原理,開(kāi)發(fā)導(dǎo)線簡(jiǎn)易平差功能進(jìn)行導(dǎo)線平差計(jì)算,可處理符合導(dǎo)線、閉合導(dǎo)線、支導(dǎo)線、無(wú)定向?qū)Ь€。平差結(jié)果及原始觀測(cè)數(shù)據(jù)自動(dòng)生成報(bào)表輸出。對(duì)于導(dǎo)線中的一個(gè)粗差可以自動(dòng)探測(cè)。

(3)自由設(shè)站:支持全站儀自由設(shè)站法的測(cè)量方式,包括已知點(diǎn)的觀測(cè)、錯(cuò)誤檢查、坐標(biāo)計(jì)算及存儲(chǔ)等功能。

(4)尋點(diǎn)功能:利用設(shè)備的GPS定位功能,通過(guò)求解測(cè)區(qū)的坐標(biāo)轉(zhuǎn)換參數(shù),可以速度找到測(cè)區(qū)的控制點(diǎn)大致點(diǎn)位,設(shè)站定向更迅速。

3.2碎部測(cè)量

碎部測(cè)量是數(shù)據(jù)采集的一個(gè)主要功能,程序中提供了兩種基本的測(cè)量方式:極坐標(biāo)法測(cè)量、直角坐標(biāo)法測(cè)量。極坐標(biāo)測(cè)量中通過(guò)填寫(xiě)圖塊代碼,連接點(diǎn),連接線型,可實(shí)現(xiàn)對(duì)應(yīng)的圖形連接和屬性編碼。也可通過(guò)觸摸屏幕進(jìn)行逐點(diǎn)連接,或按各點(diǎn)測(cè)量的順序依次自動(dòng)連接。在碎部測(cè)量中,碎部點(diǎn)坐標(biāo)可以通過(guò)儀器設(shè)備采集得到,也可以根據(jù)現(xiàn)有的圖形關(guān)系計(jì)算得到。

3.3碎部點(diǎn)坐標(biāo)測(cè)算及連碼處理

碎部點(diǎn)坐標(biāo)測(cè)算是利用已有的基本碎部點(diǎn)通過(guò)一定的幾何關(guān)系計(jì)算出未知點(diǎn),并將點(diǎn)顯示在屏幕上。系統(tǒng)中提供的方法包括:直角折點(diǎn)、直線相交、邊長(zhǎng)交會(huì)、矩形2點(diǎn)、矩形第4點(diǎn)、方向直線交會(huì)、垂線直線交會(huì)、內(nèi)插點(diǎn)、對(duì)稱(chēng)點(diǎn)、垂足點(diǎn)、直線定點(diǎn)、方向線支距、直角偏距等。

系統(tǒng)開(kāi)發(fā)提供一種更為簡(jiǎn)單的連碼處理方式。它既提高了作業(yè)速度,又減輕了作業(yè)人員的勞動(dòng)強(qiáng)度,它在生成測(cè)算點(diǎn)坐標(biāo)的同時(shí),也生成了相應(yīng)的圖塊。主要可提供的方法包括:一點(diǎn)矩形、兩點(diǎn)矩形、3 點(diǎn)矩形、直角折線、方向伸縮、直角隔點(diǎn)、過(guò)點(diǎn)平行線、距離平行線等。

圖形編輯包括對(duì)圖形的瀏覽、對(duì)圖塊和點(diǎn)的編輯等功能:①圖形的瀏覽,包括圖形的移動(dòng)、放大(開(kāi)窗放大) 、縮小、全圖;②圖塊的編輯,包括對(duì)圖塊的刪除、復(fù)制、粘貼、圖塊屬性的修改。同時(shí)也可通過(guò)屬性代碼進(jìn)行圖塊的添加;③點(diǎn)的編輯,包括點(diǎn)的屬性修改、點(diǎn)的刪除、點(diǎn)的添加等;④圖層控制,系統(tǒng)的數(shù)據(jù)按地物特點(diǎn)分層放置,可以通過(guò)圖層控制功能來(lái)開(kāi)關(guān)顯示相應(yīng)圖層,以提高圖形顯示速度,便于用戶(hù)的各種編輯處理。

3.5數(shù)據(jù)轉(zhuǎn)換

系統(tǒng)開(kāi)發(fā)需提供數(shù)據(jù)轉(zhuǎn)換接口,實(shí)現(xiàn)將外業(yè)采集的圖形數(shù)據(jù)生成各種數(shù)字化成圖軟件或圖形處理軟件的交換數(shù)據(jù)文件格式,系統(tǒng)支持DWG(CAD),DXF,SVF(威遠(yuǎn)圖) ,CAS(南方) ,EBP/ EBF(瑞得)、SHP(ARCGIS)等數(shù)據(jù)文件格式。

4系統(tǒng)的特點(diǎn)

(1)根據(jù)測(cè)量人員的作業(yè)習(xí)慣和要求進(jìn)行開(kāi)發(fā),提供了更友好、操作更方便的用戶(hù)界面。

(2)在數(shù)據(jù)存儲(chǔ)過(guò)程中,采用面向?qū)ο蟮母拍顏?lái)管理地物(圖塊) ,這樣就能很方便地對(duì)數(shù)據(jù)進(jìn)行增刪改,包括圖形及屬性數(shù)據(jù)。

(3)系統(tǒng)開(kāi)發(fā)必須具有對(duì)所采集的數(shù)據(jù)均進(jìn)行了數(shù)據(jù)的完整性和圖形與屬性的一致性的檢查的功能,以便滿(mǎn)足各種專(zhuān)題地理信息系統(tǒng)對(duì)外業(yè)數(shù)據(jù)采集和數(shù)據(jù)建庫(kù)的需求。

(4)除支持全站儀等作為數(shù)據(jù)采集設(shè)備外,還支持通過(guò)GPS-RTK直接采集地形數(shù)據(jù)。

5結(jié)束語(yǔ)

目前,數(shù)字測(cè)圖技術(shù)已經(jīng)取代傳統(tǒng)的手工測(cè)圖方式,數(shù)字地圖產(chǎn)品也成為最主要的地圖產(chǎn)品。我國(guó)已有商品化的大比例尺地面數(shù)字測(cè)圖系統(tǒng),但尚存在某些問(wèn)題,其中最主要而突出的問(wèn)題是外業(yè)采集數(shù)據(jù)手工繪制草圖較為繁瑣,作業(yè)速度慢,內(nèi)業(yè)成圖時(shí)需對(duì)照草圖手工繪制圖形,工作效率低下;已有的掌上測(cè)圖系統(tǒng)多采用非智能平臺(tái)開(kāi)發(fā),數(shù)據(jù)傳輸不便,成本高,設(shè)備功耗大,無(wú)法長(zhǎng)時(shí)間使用,無(wú)法大范圍推廣使用。

基于安卓智能移動(dòng)系統(tǒng)的外業(yè)數(shù)據(jù)采集系統(tǒng),充分利用了平板電腦體積小、重量輕,運(yùn)行速度快,便于攜帶,低能耗,工作時(shí)間長(zhǎng)等優(yōu)點(diǎn),在最佳的測(cè)量條件下進(jìn)行最多的測(cè)量作業(yè),減少測(cè)量環(huán)境對(duì)測(cè)量數(shù)據(jù)精度的影響;同時(shí)可視化界面的操作系統(tǒng),具有良好的圖形顯示、圖形編輯和交互操作的特性,實(shí)現(xiàn)即測(cè)即顯,大大減輕內(nèi)業(yè)工作量,提高了工作效率。

安卓開(kāi)發(fā)論文:基于安卓平臺(tái)的中國(guó)象棋游戲的開(kāi)發(fā)

摘 要:目前,隨著科技的不斷發(fā)展,通信技術(shù)得到了長(zhǎng)足的進(jìn)步,如Pad,手機(jī)等數(shù)字產(chǎn)品成為人們?nèi)粘I钪斜夭豢缮俚闹匾M成部分,現(xiàn)在的手機(jī)等移動(dòng)通信設(shè)備不僅具有通信這項(xiàng)單一的功能,還逐漸演變成一個(gè)可以移動(dòng)的微機(jī)系統(tǒng),為人們提供豐富的信息和服務(wù)。安卓操作系統(tǒng)作為一個(gè)應(yīng)用廣泛的智能平臺(tái),在該系統(tǒng)下開(kāi)發(fā)的應(yīng)用軟件不斷增多,本文詳細(xì)的研究和分析了在安卓平臺(tái)下開(kāi)發(fā)中國(guó)象棋游戲的相關(guān)技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了中國(guó)象棋游戲的開(kāi)發(fā)。

關(guān)鍵詞:中國(guó)象棋游戲;Android;智能手機(jī)

隨著數(shù)字化電子技術(shù)的飛速發(fā)展,聯(lián)機(jī)游戲已經(jīng)成為人們?nèi)粘I钪幸豁?xiàng)重要的娛樂(lè)方式,而象棋是一種非常受人們喜愛(ài)的智力游戲,隨著手機(jī)平臺(tái)的不斷升級(jí),安卓手機(jī)系統(tǒng)已經(jīng)占據(jù)了全世界59%的市場(chǎng)份額,在2007年,谷歌公司在Linux系統(tǒng)下開(kāi)發(fā)了一款操作系統(tǒng),它由中間件,用戶(hù)界面,應(yīng)用軟件和操作系統(tǒng)幾部分組裝,這是一款專(zhuān)門(mén)為移動(dòng)終端量身制作的移動(dòng)平臺(tái),安卓平臺(tái)是一個(gè)完全開(kāi)源的平臺(tái),擁有完整的體系架構(gòu)。安卓平臺(tái)由Linux Kernel即Linux內(nèi)核,Android Runtime,Libraries(庫(kù))以及Applications(應(yīng)用程序),Application Framework(應(yīng)用框架)等五部分成,所以,一款在安卓平臺(tái)上的象棋游戲具有非常大的市場(chǎng)潛力,本文所設(shè)計(jì)的中國(guó)象棋游戲,正是在手機(jī)安卓平臺(tái)上設(shè)計(jì)開(kāi)發(fā)的廣泛的,擁有非常大的實(shí)用性。

一、基于安卓系統(tǒng)的中國(guó)象棋游戲的設(shè)計(jì)

(一)系統(tǒng)的總體設(shè)計(jì)

本文設(shè)計(jì)的象棋游戲系統(tǒng)是一款由手機(jī)作為客戶(hù)端到PC服務(wù)器的網(wǎng)絡(luò)游戲,它的系統(tǒng)框架由服務(wù)器和移動(dòng)終端組成。其中PC服務(wù)器主要用于同步轉(zhuǎn)發(fā)手機(jī)客戶(hù)端的數(shù)據(jù),由此客戶(hù)端之間就可以通過(guò)服務(wù)器來(lái)實(shí)現(xiàn)通信,而手機(jī)客戶(hù)端的作用是游戲的操作,界面的顯示并與服務(wù)器之間通信。

(二)系統(tǒng)的模塊設(shè)計(jì)

在游戲的開(kāi)發(fā)設(shè)計(jì)中,主要運(yùn)用了人工智能技術(shù),網(wǎng)絡(luò)通信信息管理技術(shù)等,游戲有聯(lián)機(jī)的人人對(duì)戰(zhàn)以及人機(jī)對(duì)戰(zhàn)模式,為了實(shí)現(xiàn)手機(jī)客戶(hù)端與PC服務(wù)器之間的通信以及人機(jī)對(duì)戰(zhàn)功能,在設(shè)計(jì)中將游戲的開(kāi)發(fā)分為五個(gè)部分,并分別從靜態(tài)模型設(shè)計(jì)和動(dòng)態(tài)模型設(shè)計(jì)來(lái)闡述系統(tǒng)的設(shè)計(jì),這五個(gè)模塊分別為:(1)棋房間、棋桌模塊:主要用于實(shí)現(xiàn)客戶(hù)端分流與人人對(duì)戰(zhàn);(2)棋盤(pán)、旗子模塊:包括游戲中棋盤(pán)的布局以及棋子的走法,系統(tǒng)的規(guī)則判斷;(3)人工智能模塊:具有人機(jī)對(duì)戰(zhàn)的功能;(4)網(wǎng)絡(luò)通信模塊:主要用于客戶(hù)端與服務(wù)器的通信,數(shù)據(jù)的發(fā)送;(5)資源存儲(chǔ)模塊:主要用于存儲(chǔ)游戲中用到的聲音資源,圖片資源等。

(1)中國(guó)象棋游戲靜態(tài)模型的設(shè)計(jì)。在游戲中,用Bitmaploader作為圖片資源模塊的靜態(tài)類(lèi),聲音資源用CNChesssoundmanager靜態(tài)類(lèi),并將游戲中涉及到的棋子、棋盤(pán)等圖片資源和聲音資源采用獨(dú)立的模塊,這樣不僅方便資源的維護(hù),還可以實(shí)現(xiàn)資源的復(fù)用。

在游戲中,棋子和棋盤(pán)是游戲中非常重要的一部分,對(duì)使用者具有直接的影響,在設(shè)計(jì)中,棋子用CNChess作為基類(lèi),棋子的房間類(lèi)為CNChessroom,棋桌類(lèi)為CNChesstable,并在設(shè)計(jì)中直接使用棋盤(pán)類(lèi)接口,并不通過(guò)內(nèi)部處理,這樣就大大降低了模塊間的耦合程度。

網(wǎng)絡(luò)模塊作為聯(lián)機(jī)對(duì)戰(zhàn)的重要模塊,采用CNChessclientsockerserver,Networkmanager類(lèi)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)連接和傳輸網(wǎng)絡(luò)信息。

人工智能模塊可以實(shí)現(xiàn)人與計(jì)算機(jī)博弈,在游戲中運(yùn)用了人工智能技術(shù),使計(jì)算機(jī)具有一定棋力,在游戲中用Humanvscomputer作為計(jì)算機(jī)的博弈類(lèi)。

服務(wù)器端模塊用來(lái)實(shí)現(xiàn)讓客戶(hù)端的用戶(hù)在同一個(gè)平臺(tái)下進(jìn)行游戲?qū)?zhàn),這里用到的類(lèi)有CNChesslistensocket,用來(lái)監(jiān)聽(tīng)客戶(hù)端的連接,CNChessclientsocket用于各客戶(hù)端的通信。

(2)中國(guó)象棋游戲的動(dòng)態(tài)模型設(shè)計(jì)。系統(tǒng)的游戲模式分為聯(lián)機(jī)對(duì)戰(zhàn)和人機(jī)對(duì)戰(zhàn)模式。人人對(duì)戰(zhàn)模式是讓兩個(gè)玩家通過(guò)服務(wù)器通信之后進(jìn)行對(duì)戰(zhàn),玩家選擇聯(lián)機(jī)模式以后,會(huì)打開(kāi)一個(gè)網(wǎng)絡(luò)端口,這個(gè)網(wǎng)絡(luò)端口可以連接其他手機(jī)客戶(hù),然后通過(guò)服務(wù)器建立網(wǎng)絡(luò)連接之后,進(jìn)行雙方對(duì)戰(zhàn)。并用Encryptpassword和Encryptpacket這兩個(gè)模塊來(lái)進(jìn)行通信時(shí)的數(shù)據(jù)安全處理,其中Encryptpassword用于對(duì)用戶(hù)登錄密碼進(jìn)行加密,Encryptpacket用于對(duì)游戲中的數(shù)據(jù)包進(jìn)行加密,這樣就對(duì)通信過(guò)程中數(shù)據(jù)的安全進(jìn)行了保護(hù)。

人機(jī)對(duì)戰(zhàn)模式即將中國(guó)象棋和人工智能結(jié)合起來(lái),使計(jì)算機(jī)擁有下棋能力,這樣玩家就可以與計(jì)算機(jī)直接對(duì)戰(zhàn),人機(jī)對(duì)戰(zhàn)模式使用的是Humanvscomputer類(lèi),玩家只需要選擇計(jì)算機(jī)的棋力水平的等級(jí)和執(zhí)棋方就可以與計(jì)算機(jī)對(duì)戰(zhàn)。

通過(guò)這兩種方式,玩家既可以使用網(wǎng)絡(luò)方式與其他玩家在線下棋,也可以在沒(méi)有網(wǎng)絡(luò)的條件下進(jìn)行人機(jī)對(duì)戰(zhàn),達(dá)到了隨時(shí)隨地游戲的目的。

三、結(jié)束語(yǔ)

本文通過(guò)對(duì)安卓操作系統(tǒng)的研究,設(shè)計(jì)開(kāi)發(fā)了一款安卓操作系統(tǒng)下的中國(guó)象棋手機(jī)游戲,這款游戲不僅可以實(shí)現(xiàn)人機(jī)對(duì)戰(zhàn),還可以聯(lián)網(wǎng)實(shí)現(xiàn)人人對(duì)戰(zhàn),具有很大的市場(chǎng)潛力,本文詳細(xì)的闡述了游戲的系統(tǒng)框架和游戲的實(shí)現(xiàn)方式。象棋的計(jì)算方式非常復(fù)雜,至今任然存在一些研究盲點(diǎn),有待進(jìn)一步提高,所以這款游戲具有很大的提升潛力。

[作者簡(jiǎn)介]陳明利(1990.05-),男,貴州六盤(pán)水人,頂峰互動(dòng)產(chǎn)品經(jīng)理,具有豐富的移動(dòng)游戲應(yīng)用設(shè)計(jì)及研發(fā)經(jīng)驗(yàn),對(duì)移動(dòng)互聯(lián)網(wǎng)、手游等具有豐富的積累及獨(dú)到的見(jiàn)解,精通Android、iOS等游戲應(yīng)用開(kāi)發(fā)。

安卓開(kāi)發(fā)論文:安卓手機(jī)數(shù)據(jù)結(jié)構(gòu)演示軟件開(kāi)發(fā)技術(shù)

摘要:針對(duì)數(shù)據(jù)結(jié)構(gòu)相對(duì)抽象的特點(diǎn),結(jié)合實(shí)際情況,通過(guò)利用文字、圖像、動(dòng)畫(huà)等形式描述數(shù)據(jù)結(jié)構(gòu)的算法特點(diǎn),在安卓手機(jī)平臺(tái)上開(kāi)發(fā)數(shù)據(jù)結(jié)構(gòu)演示軟件。整個(gè)演示軟件使用下拉列表控制方式,每個(gè)列表項(xiàng)包括若干選項(xiàng)。每個(gè)列表項(xiàng)對(duì)應(yīng)一個(gè)選擇或一個(gè)子列表。系統(tǒng)一直處于選擇菜列表或執(zhí)行某一被選列表項(xiàng)狀態(tài),直到退出演示軟件。該數(shù)據(jù)結(jié)構(gòu)演示軟件包含了線形表、堆棧、樹(shù)、圖等基本數(shù)據(jù)結(jié)構(gòu)的概念以及實(shí)例分析的展示。

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);演示軟件;安卓手機(jī)平臺(tái);安卓布局;安卓控件

數(shù)據(jù)結(jié)構(gòu)課程是計(jì)算機(jī)軟件的理論和技術(shù)的重要基礎(chǔ),不僅是計(jì)算機(jī)各專(zhuān)業(yè)的優(yōu)秀課程而且是其他理工科專(zhuān)業(yè)的主要選修課。算法演示屬于軟件可視化研究的一個(gè)分支,它將算法的運(yùn)行過(guò)程及行為通過(guò)圖形、動(dòng)畫(huà)、聲音等方式進(jìn)行展示,以輔助算法學(xué)習(xí)者理解[1]。當(dāng)前,隨著多媒體技術(shù)的發(fā)展,數(shù)據(jù)結(jié)構(gòu)的演示軟件大多是基于個(gè)人計(jì)算機(jī)環(huán)境下供學(xué)習(xí)者參考學(xué)習(xí),即為計(jì)算機(jī)輔助教學(xué)[2]軟件,這種方式雖然能夠較好地動(dòng)態(tài)、形象地將數(shù)據(jù)結(jié)構(gòu)算法思想等展示給使用者,但有其不足之處。作為使用者必須有一臺(tái)個(gè)人計(jì)算機(jī)才能安裝使用,不能隨身攜帶供隨時(shí)參考。隨著安卓智能手機(jī)的普及,基于安卓手機(jī)平臺(tái)開(kāi)發(fā)數(shù)據(jù)結(jié)構(gòu)演示軟件不僅能夠擺脫個(gè)人計(jì)算機(jī)的環(huán)境限制,還可以隨身攜帶,隨時(shí)隨地可供參閱,所以開(kāi)發(fā)安卓手機(jī)數(shù)據(jù)結(jié)構(gòu)演示軟件還是非常有實(shí)用價(jià)值的。

1 安卓手機(jī)平臺(tái)簡(jiǎn)介

1.1 Android布局管理

所謂Android布局就是組件在Activity中的呈現(xiàn)方式,即組件大小、間距和對(duì)齊方式等屬性的具體表現(xiàn)。Android平臺(tái)提供了以下,兩種創(chuàng)建布局的方式:

在XML配置文件中聲明:這種表現(xiàn)方式是將需要呈現(xiàn)在Activity中的各個(gè)組件在配置文件中進(jìn)行定義聲明,在Activity程序中通過(guò)setContentView(R.layout.main)方法實(shí)現(xiàn)將各組件呈現(xiàn)在Activity中,在Activity程序代碼中通過(guò)findViewById方法獲得組件實(shí)例。

在Activity具體實(shí)現(xiàn)程序中通過(guò)“純代碼”的形式直接實(shí)例化,將要用到的Android組件添加到所要呈現(xiàn)的Activity布局中。

總的來(lái)說(shuō),第一種布局創(chuàng)建方式更好,相對(duì)來(lái)說(shuō)更加直觀、簡(jiǎn)單。本軟件開(kāi)發(fā)過(guò)程均是用的第一種創(chuàng)建方式。要使用xml布局文件,大多數(shù)是通過(guò)使用Android編程提供的oncreate方法并使用setContentView來(lái)完成加載所要用到的xml布局文件。在編寫(xiě)代碼過(guò)程中,findViewById方法要在setContentView方法加載后再調(diào)用,否則會(huì)出現(xiàn)加載錯(cuò)誤,也就是說(shuō)先加載后使用相關(guān)定義的組件。另外需要注意的是,所有定義的布局文件必須放在res/layout目錄下才能被調(diào)用。

布局(ayout)是各個(gè)控件在屏幕上的位置關(guān)系,為了滿(mǎn)足各種界面呈現(xiàn)方式的需要,Android提供五種布局方式:①FrameLayout(框架布局)又稱(chēng)為幀布局、②LinearLayout(線性布局)、③AbsoluteLayout(絕對(duì)布局)、④RelativeLayout(相對(duì)布局)、⑤TableLayout(表單布局)。在Android中布局通常有以下幾種不同的情況:

①FrameLayout(框架布局):組件從屏幕的左上角坐標(biāo)布局文件;

②LinearLayout(線性布局):按照垂直或者水平方向布局文件;

③AbsoluteLayout(絕對(duì)布局):按照絕對(duì)坐標(biāo)來(lái)布局組件;

④RelativeLayout(相對(duì)布局):讓子視圖的位置參考其他視圖位置;

⑤TableLayout(表單布局):按照行列方式布局組件[3]。

在Android中View類(lèi)是一個(gè)最基本的UI類(lèi),它包括了Button(按鈕)、List(列表)、TextView(文本框)、RadioButton(多選按鈕)、Checkbox(選擇框)等都屬于View類(lèi)。

注:在項(xiàng)目工程里面的每一個(gè)Activity類(lèi)都必須在“項(xiàng)目工程名”/res目錄下的AndroidManifest.xml文件添加類(lèi)的名稱(chēng),格式為:。

1.2 Android平臺(tái)基本事件監(jiān)聽(tīng)與處理

Android的事件處理方式有兩種處理機(jī)制:基于監(jiān)聽(tīng)的事件處理和基于回調(diào)的事件處理。本應(yīng)用程序使用的是前者基于監(jiān)聽(tīng)的事件處理,當(dāng)用戶(hù)觸碰按鈕、某個(gè)列表項(xiàng)等相關(guān)應(yīng)用程序組件時(shí),該事件就會(huì)觸發(fā)事件監(jiān)聽(tīng)器,相應(yīng)的事件監(jiān)聽(tīng)器結(jié)合自己對(duì)應(yīng)的事件處理器即認(rèn)為編寫(xiě)的事件處理實(shí)例方法來(lái)做出相應(yīng)的動(dòng)作。

在Android系統(tǒng)編程中,在處理UI中的各種元素的時(shí)候,兩個(gè)程序中的關(guān)鍵環(huán)節(jié)為:

取得布局文件(XML)中的控件句柄:使用findViewById()獲取控件句柄;

設(shè)置具體的控件行為:使用setOnXXXListener()設(shè)置事件的處理函數(shù)。

這里使用findViewById()聯(lián)系布局文件中控件和句柄,并通過(guò)OnClickListener()等定制句柄的行為即開(kāi)發(fā)者所需要該控件被觸發(fā)后完成的具體動(dòng)作。

基于事件監(jiān)聽(tīng)的處理針對(duì)不同的事件,Android為不同組件提供了不同的接口。常用到的View類(lèi)下的幾個(gè)內(nèi)部接口有:View.OnClickListener、OnFocusChangeListener、OnTouchListener、OnKeyListener、OnLongClickListener等。SetOnXXXListener()等函數(shù)是android.view.View類(lèi)的函數(shù),這些函數(shù)用于事件處理,它們由程序?qū)崿F(xiàn),通過(guò)設(shè)置這些內(nèi)容也就設(shè)置了控件的行為。這些函數(shù)的參數(shù)都是所對(duì)應(yīng)的android.view.View類(lèi)中的方法。

1.3 屏幕間的跳轉(zhuǎn)和事件的傳遞

總的來(lái)說(shuō),開(kāi)發(fā)一個(gè)Android應(yīng)用程序的過(guò)程可以看作是開(kāi)發(fā)一系列Activity類(lèi)的組合過(guò)程。對(duì)任意一個(gè)Android應(yīng)用程序而言,每一個(gè)屏幕顯示的設(shè)計(jì)與實(shí)現(xiàn)其實(shí)就是開(kāi)發(fā)一個(gè)android.app.Activity類(lèi),在需求分析的基礎(chǔ)上建立一系列的任務(wù)類(lèi)即完成整個(gè)軟件所需要的屏幕顯示內(nèi)容。在所有的類(lèi)當(dāng)中,選取一個(gè)主類(lèi)作為整個(gè)Android軟件的初始界面即整個(gè)軟件程序的入口,這一點(diǎn)有點(diǎn)類(lèi)似于C語(yǔ)言編程里面的main()函數(shù)。一旦進(jìn)入了初始界面,接下來(lái)就是根據(jù)該類(lèi)中設(shè)置相關(guān)操作以及用戶(hù)的具體需求觸發(fā)操作進(jìn)行不同界面之間的跳轉(zhuǎn),這里的跳轉(zhuǎn)也就是整個(gè)軟件里面不同Activity類(lèi)之間的相互切換。

上述中不同Activity之間的相互切換是靠Intent驅(qū)動(dòng)的,通過(guò)在界面上設(shè)置事件的監(jiān)聽(tīng)實(shí)現(xiàn)。一個(gè)Intent(android.content.Intent)對(duì)象是Android操作系統(tǒng)用于滿(mǎn)足任務(wù)需求以及向系統(tǒng)發(fā)送廣播Intent事件所使用的異步消息機(jī)制,它同適當(dāng)?shù)腁ctivity或Service(如果需要的話則運(yùn)行它)協(xié)同工作[4]。

正如前面所講述的:一個(gè)Android應(yīng)用程序一般會(huì)包括多個(gè)Avtivity,但是只有一個(gè)Activity作為程序的入口――但該Android應(yīng)用程序運(yùn)行時(shí)將會(huì)自動(dòng)啟動(dòng)并執(zhí)行該Activity,至于應(yīng)用中的其他Activity,一般是通過(guò)入口Activity啟動(dòng),或者由入口啟動(dòng)的Activity啟動(dòng)[5]。Activity通過(guò)兩種方式啟動(dòng)其他Activity:

當(dāng)切換到一個(gè)新的屏幕后,先前的屏幕將會(huì)被暫停,并被保存在歷史堆棧中,也可從現(xiàn)在的屏幕返回到歷史堆棧中的前一個(gè)屏幕。當(dāng)前屏幕如果不再使用時(shí),可以從歷史堆棧中將它刪除。默認(rèn)情況下,Android將會(huì)保留從一開(kāi)始的主屏幕到每一個(gè)應(yīng)用過(guò)程中的運(yùn)行屏幕。

2 軟件的設(shè)計(jì)與實(shí)現(xiàn)

2.1 總體設(shè)計(jì)圖如圖2[6-7]

2.2 系統(tǒng)主要功能介紹

2.2.1 單鏈表

功能主要是鏈表的相關(guān)概念簡(jiǎn)介,增、刪、存儲(chǔ)等基本操作的介紹以及實(shí)例的演示。

2.2.2 棧和隊(duì)列

功能包括棧和隊(duì)列的定義,順序存數(shù)和鏈?zhǔn)酱鎯?chǔ)的優(yōu)秀代碼實(shí)現(xiàn)、實(shí)例入棧(隊(duì)列)、出棧(隊(duì)列)的動(dòng)態(tài)演示。

2.2.3 二叉樹(shù)

功能主要包含了二叉樹(shù)的基本定義以及相關(guān)重要性質(zhì)、各個(gè)相關(guān)操作的優(yōu)秀代碼二叉樹(shù)的遍歷、最優(yōu)二叉樹(shù)的生成過(guò)程、哈夫曼樹(shù)等的實(shí)例演示。

2.2.4 圖

功能主要包括圖的基本概念、圖的兩種遍歷的含義及優(yōu)秀思想、實(shí)例的動(dòng)態(tài)演示。

2.2.5 排序

功能主要是排序算法的介紹、主要排序算法的優(yōu)秀思想以及主要的代碼、相應(yīng)實(shí)例的動(dòng)態(tài)演示。

2.2.6 查找

功能主要是各種查找算法的基本思想以及應(yīng)用的背景介紹、相應(yīng)實(shí)例的演示。

2.2.7 串

功能主要是相關(guān)概念的介紹、匹配模式定理、實(shí)例的演示。

2.3 系統(tǒng)整體特點(diǎn)

系統(tǒng)是在Windows XP環(huán)境下開(kāi)發(fā)的,運(yùn)用Eclipse軟件和Android模擬器編程實(shí)現(xiàn)和測(cè)試可行。系統(tǒng)總體上采用層次菜單結(jié)構(gòu)呈現(xiàn),通過(guò)點(diǎn)擊按鈕或者觸摸屏幕實(shí)現(xiàn)界面跳轉(zhuǎn)進(jìn)入到子菜單,逐層具體實(shí)現(xiàn)各個(gè)模塊的設(shè)計(jì)。系統(tǒng)開(kāi)始界面是目錄形式,每一個(gè)標(biāo)題為一列表名稱(chēng),點(diǎn)擊出現(xiàn)下拉列表,選擇要查詢(xún)的具體模塊,進(jìn)入后,進(jìn)行查詢(xún)。每一個(gè)模塊大致實(shí)現(xiàn)了:該模塊內(nèi)容介紹、原理分析、實(shí)例展示等三個(gè)主要部分。

2.4 系統(tǒng)實(shí)現(xiàn)說(shuō)明

2.4.1 主界面的設(shè)計(jì)實(shí)現(xiàn)

主界面利用Listview組件,列表顯示需要三個(gè)元素:

① ListVeiw:用來(lái)展示列表的View。

②適配器:用來(lái)把數(shù)據(jù)映射到ListView上的中介。

③數(shù)據(jù):具體的將被映射的字符串,圖片,或者基本組件。

2.4.2 Button組件的應(yīng)用

1)使用Button控件

Android SDK包含兩個(gè)在你的布局中可以使用的簡(jiǎn)單按鈕控件:Button(android.widget.Button)和ImageButton(android.widget.ImageButton)。這些控件的功能很相似因此我們幾乎可以一并地的討論它們。這兩個(gè)控件不相同的地方基本上就是外觀上;Button控件有一個(gè)文本標(biāo)簽,而ImageButton使用一個(gè)可繪制的圖像資源來(lái)代替。Button使用的一個(gè)很好的例子應(yīng)該是一個(gè)簡(jiǎn)單的帶有“保存”文本標(biāo)簽的按鈕。ImageButton使用的一個(gè)很好的例子可能是音樂(lè)播放器按鈕的集合,包括播放P, 暫停 以及停止。本次實(shí)現(xiàn)用前一種Button控件,這里是一個(gè)示例屏幕(圖五),包括兩個(gè)Button控件(上一步和下一步)。

2)向布局添加Button控件

Button控件通常都被作為活動(dòng)的布局資源文件一部分。比如,要添加一個(gè)Button控件到與你程序相關(guān)的main.xml布局資源中,你必須編輯布局文件。你可使用Eclipse的布局資源設(shè)計(jì)器,或者直接編輯XML。像按鈕這樣的控件也可以通過(guò)程序動(dòng)態(tài)地創(chuàng)建并在運(yùn)行時(shí)添加到你的屏幕上。簡(jiǎn)單地通過(guò)它的類(lèi)來(lái)創(chuàng)建合適的控件并將它添加到你的活動(dòng)中的布局。要添加一個(gè)Button控件到布局資源文件,打開(kāi)/res/layout/main.xml布局文件,它是你的Android項(xiàng)目的一部分。點(diǎn)擊你想要為其添加Button控件的LinearLayout (或者父級(jí)布局控件,比如RelativeLayout或FrameLayout)。在Eclipse中,你可以點(diǎn)擊Outline標(biāo)簽中的父級(jí)布局,然后使用綠色加號(hào)按鈕添加一個(gè)新的控件。選擇你要添加的控件――在這個(gè)例子中是Button控件。

3)處理點(diǎn)擊

實(shí)現(xiàn)點(diǎn)擊事件處理的方法是使用setOnClickListener()方法向你的按鈕控件注冊(cè)一個(gè)新的View.OnClickListener。要使用這個(gè)方法,你必須更新你的活動(dòng)類(lèi)以注冊(cè)控件點(diǎn)擊事件。通常情況下通過(guò)你的活動(dòng)的onCreate()方法來(lái)實(shí)現(xiàn)。使用findViewById()方法找到控件然后使用它的setOnClickListener()方法來(lái)定義當(dāng)它被點(diǎn)擊時(shí)的行為。你將需要自己去實(shí)現(xiàn)界面的onClick()方法。

2.4.3 TextView顯示文本控件

1)TextView常用屬性

setText()設(shè)置文本內(nèi)容,同xml中的android:text

setTextSize()設(shè)置文本字體大小,同xml中的android:textSize

setTextColor()設(shè)置文本顏色,同xml中的android:textColor

setBackgroundColor()設(shè)置背景顏色,同xml中的android:background

2)單擊TextView實(shí)現(xiàn)活動(dòng)跳轉(zhuǎn)

①?gòu)南鄳?yīng)的布局管理資源獲得相應(yīng)TextView組件的Id;

②在需要跳轉(zhuǎn)的活動(dòng)里面寫(xiě)點(diǎn)擊事件,主要用到了TextView的字符串setSpan()函數(shù)和setText(spannableString)以及setMovementMethod()函數(shù);

③在需要跳轉(zhuǎn)的活動(dòng)里面聲明需要觸發(fā)的Intent意圖即跳轉(zhuǎn)活動(dòng)到目的活動(dòng),具體實(shí)例可參考圖四到圖五的實(shí)現(xiàn)效果。

2.5 總體框架的實(shí)現(xiàn)效果

2.5.1 菜單列表

考慮到Android手機(jī)的實(shí)際應(yīng)用背景,主界面采用菜單列表式的方式呈現(xiàn)。主界面的部分截圖如圖3所示。

2.5.2 下拉列表項(xiàng)

每個(gè)菜單列表名稱(chēng)是一個(gè)下拉列表項(xiàng),當(dāng)點(diǎn)擊該名稱(chēng)時(shí)會(huì)出現(xiàn)相應(yīng)列表項(xiàng)里面的內(nèi)容。以第七章圖為例,點(diǎn)擊后列表展開(kāi)如圖4所示。

2.5.3 界面切換

觸摸每一個(gè)列表項(xiàng)里的選擇項(xiàng),會(huì)跳轉(zhuǎn)到相應(yīng)的活動(dòng)界面。以點(diǎn)擊第一圖的深度優(yōu)先遍歷為例,會(huì)出現(xiàn)圖5所示界面。

單擊上一步或下一步,會(huì)出現(xiàn)相應(yīng)以鄰接表存儲(chǔ)圖的遍歷步驟演示,點(diǎn)擊上面的“點(diǎn)擊查看優(yōu)秀思想”會(huì)出現(xiàn)相應(yīng)演示模塊的原理或者概念性文字說(shuō)明。

3 結(jié)論

本文的演示軟件針對(duì)數(shù)據(jù)結(jié)構(gòu)主要的算法給與了簡(jiǎn)要說(shuō)明與實(shí)例演示,內(nèi)容還不夠具體、詳細(xì),每一部分具體的實(shí)現(xiàn)過(guò)程有待于細(xì)致推敲、修改完善,特別是對(duì)算法優(yōu)秀代碼的解析說(shuō)明功能,做到盡可能的滿(mǎn)足用戶(hù)的需要。如何將抽象的數(shù)據(jù)結(jié)構(gòu)算法思想形象生動(dòng)的在Android平臺(tái)展示,來(lái)幫助需求者的學(xué)習(xí)是一個(gè)值得研究的問(wèn)題,希望本文的引入,給數(shù)據(jù)結(jié)構(gòu)算法演示軟件的多媒體實(shí)現(xiàn)帶來(lái)一些新的思路。

安卓開(kāi)發(fā)論文:基于安卓系統(tǒng)手機(jī)WiFi的家用智能遙控器開(kāi)發(fā)

【摘要】主要介紹基于安卓系統(tǒng)手機(jī)WiFi的家用智能遙控器客戶(hù)端的開(kāi)發(fā)。通過(guò)在安卓手機(jī)上開(kāi)發(fā)遙控器界面,并載入多個(gè)不同品牌不同型號(hào)設(shè)備的遙控器指令數(shù)據(jù)包,借助WiFi轉(zhuǎn)紅外模塊譯碼成與家電相匹配的紅外信號(hào),使實(shí)物遙控設(shè)備數(shù)據(jù)化,實(shí)現(xiàn)“一個(gè)家庭只需一個(gè)遙控器”的目標(biāo),為人們提供一個(gè)智能舒適、環(huán)保節(jié)能的居家環(huán)境。

【關(guān)鍵詞】安卓系統(tǒng);WiFi;紅外遙控

一、引言

由于紅外遙控器價(jià)格低廉、技術(shù)成熟等優(yōu)點(diǎn),許多智能家電設(shè)備仍普遍采用紅外遙控器進(jìn)行控制,包括電視、空調(diào)、DVD機(jī)、電視機(jī)頂盒等等。然而,隨著家庭中智能家電設(shè)備的增多,紅外遙控器數(shù)量也在增加,一個(gè)家庭使用的遙控器數(shù)量少則數(shù)個(gè),多則十幾個(gè),這會(huì)帶來(lái)三大問(wèn)題:

(1)數(shù)量眾多的遙控器給使用者帶來(lái)使用和管理上的不便;

(2)紅外遙控器使用的一次性堿性電池,廢棄后給環(huán)境帶來(lái)極大的危害;

(3)遙控器意外損壞后,很難找到匹配的遙控器。

基于安卓手機(jī)WiFi的家用智能遙控器,可同時(shí)控制多個(gè)不同品牌不同型號(hào)的家用電器,取代傳統(tǒng)的實(shí)物遙控器,實(shí)現(xiàn)“一個(gè)家庭只需一個(gè)遙控器即可控制所有紅外遙控的家電設(shè)備”的目標(biāo),極大減少遙控器數(shù)量和一次性電池的使用量,為人們創(chuàng)造便捷舒適、環(huán)保節(jié)能的居家環(huán)境。

二、系統(tǒng)的結(jié)構(gòu)

整個(gè)系統(tǒng)主要包括客戶(hù)端軟件、WiFi轉(zhuǎn)紅外模塊,如圖1所示。客戶(hù)端軟件通過(guò)WiFi,將已編碼的數(shù)據(jù)通過(guò)WiFi傳送至WiFi轉(zhuǎn)紅外模塊,然后WiFi轉(zhuǎn)紅外模塊根據(jù)編碼規(guī)則,傳遞指令至內(nèi)部紅外發(fā)射模塊,實(shí)現(xiàn)紅外數(shù)據(jù)的發(fā)送。

(一)家用智能遙控器客戶(hù)端的構(gòu)成

1.鍵碼數(shù)據(jù)包的采集與設(shè)計(jì)

(1)鍵碼數(shù)據(jù)包的采集

紅外遙控器的編碼格式通常有NEC。

NEC格式的特征:使用38kHz載波頻率,引導(dǎo)碼間隔是9ms+4.5ms,使用16位客戶(hù)代碼,使用8位數(shù)據(jù)代碼和8位取反的數(shù)據(jù)代碼。

隨著家庭電器種類(lèi)、型號(hào)的不斷增多,相對(duì)應(yīng)的遙控器也隨之增加,為了便于管理、存取與更新家電遙控器的紅外代碼,需要為繁多冗雜的代碼建立一個(gè)數(shù)據(jù)包。

(2)遙控器按鍵數(shù)據(jù)包的設(shè)計(jì)

由于紅外協(xié)議各不相同,并且又相互不兼容,所以直接發(fā)送紅外數(shù)據(jù)會(huì)導(dǎo)致WiFI轉(zhuǎn)紅外模塊處理十分繁瑣。因此,收集多種紅外協(xié)議數(shù)據(jù),按照自定義編碼規(guī)則,將多種協(xié)議編碼化,并保存于后臺(tái)數(shù)據(jù)庫(kù)。

為了實(shí)現(xiàn)按鍵界面與遙控器數(shù)據(jù)包的匹配,定義數(shù)據(jù)包格式如下:

文件起始標(biāo)志位4位。

鍵碼屬性128位:設(shè)備的信息,訪問(wèn)中文字庫(kù)編碼、ASCII碼。

載波頻率4位:35-42kHz;分辨率0.5kHz,以適應(yīng)不同載波的遙控器。

鍵碼編碼:對(duì)遙控器界面軟件的所有按鍵進(jìn)行編碼,鍵碼位數(shù)根據(jù)實(shí)際紅外協(xié)議確定。

2.遙控器界面軟件的設(shè)計(jì)

(1)數(shù)據(jù)庫(kù)設(shè)計(jì)

安卓操作系統(tǒng)采用標(biāo)準(zhǔn)SQLite數(shù)據(jù)庫(kù),提供管理數(shù)據(jù)庫(kù)相關(guān)的API。利用SQLiteOpen Helper類(lèi)中的onCreate()Call Back方法以及onUpdate()Call Back方法創(chuàng)建與打開(kāi)各種遙控器紅外代碼表Table,存進(jìn)數(shù)據(jù)庫(kù)中,方便數(shù)據(jù)的及時(shí)更新。

(2)按鍵與數(shù)據(jù)包匹配

在手機(jī)界面中,每個(gè)按鍵都與其相對(duì)應(yīng)的紅外代碼相匹配,即按鍵功能與數(shù)據(jù)庫(kù)中各種遙控器數(shù)據(jù)相連接。通過(guò)調(diào)用getReadable Database()方法當(dāng)用戶(hù)按下按鍵時(shí),軟件會(huì)查找數(shù)據(jù)包,將與該按鍵相連的數(shù)據(jù)包數(shù)據(jù),即相對(duì)應(yīng)的控制家電的紅外代碼以WiFi的形式發(fā)送至WiFi轉(zhuǎn)紅外模塊。

(二)WiFi轉(zhuǎn)紅外模塊

本模塊負(fù)責(zé)數(shù)據(jù)接收、紅外發(fā)射。包含WiFi數(shù)據(jù)接收與傳送、串口數(shù)據(jù)解析、紅外電平發(fā)射。采用WiFi芯片USR-WIFI232,提供WiFi信號(hào)及獲得客戶(hù)端所發(fā)送數(shù)據(jù),再將數(shù)據(jù)通過(guò)串口傳送至中控CPU。

本模塊內(nèi)部采用單片機(jī)作為中控CPU,處理編碼化數(shù)據(jù)與紅外協(xié)議的轉(zhuǎn)化。由于單片機(jī)價(jià)格低廉,資源足夠,功能滿(mǎn)足中控CPU的需求,因此,采用單片機(jī)作為中控CPU。在單片機(jī)程序中設(shè)置多個(gè)紅外協(xié)議入口點(diǎn),當(dāng)編碼化的數(shù)據(jù)傳送至單片機(jī)后,按照自定義的編碼規(guī)則,尋找對(duì)應(yīng)的紅外協(xié)議入口,從而發(fā)射對(duì)應(yīng)的紅外電平。

中控CPU功能硬件電路由單片機(jī)最小系統(tǒng)及紅外發(fā)射電路成。在中控CPU程序中,包含定時(shí)器功能、串口數(shù)據(jù)讀取功能、紅外電平控制功能。中控CPU的程序流程圖如圖3。定時(shí)器功能主要是用于產(chǎn)生載波,并與紅外信號(hào)疊加,從而提高紅外信號(hào)在空氣中傳播的抗干擾能力。串口數(shù)據(jù)讀取,將WiFi芯片傳遞的數(shù)據(jù)加以分析,按照自定義的編碼規(guī)則,進(jìn)入不同的紅外協(xié)議功能函數(shù)。紅外電平控制功能,實(shí)現(xiàn)具體的紅外協(xié)議函數(shù),通過(guò)串

口讀取功能提供的數(shù)據(jù),發(fā)射出匹配的紅外信號(hào)。

三、實(shí)驗(yàn)測(cè)試

本次試驗(yàn)采用專(zhuān)用的紅外測(cè)試儀器,可以監(jiān)測(cè)到紅外信號(hào)并將其波形顯示出來(lái)。采用安裝客戶(hù)端的安卓手機(jī)及WiFi轉(zhuǎn)紅外模塊,對(duì)比于實(shí)物遙控器。將實(shí)物遙控器、WiFi轉(zhuǎn)紅外模塊都對(duì)準(zhǔn)紅外測(cè)試儀器。按下實(shí)物遙控器的某個(gè)按鍵之后,觀察紅外測(cè)試儀器顯示的波形,如圖3所示;接著按下安卓手機(jī)上對(duì)應(yīng)的遙控器按鍵后,觀察紅外測(cè)試儀器上的波形,如圖4所示。

由圖3、圖4可以看得出,安裝客戶(hù)端的安卓手機(jī)及WiFi轉(zhuǎn)紅外模塊可以實(shí)現(xiàn)實(shí)物遙控器的功能。

四、結(jié)束語(yǔ)

本項(xiàng)目設(shè)計(jì)的運(yùn)行在安卓手機(jī)上的新型遙控器,實(shí)測(cè)數(shù)據(jù)證明,其實(shí)現(xiàn)的功能與原配的實(shí)物遙控器性能一致,完全可以取代現(xiàn)有的各種實(shí)物遙控器,實(shí)現(xiàn)實(shí)物遙控設(shè)備數(shù)據(jù)化,降低成本。由于它基于安卓手機(jī)平臺(tái),具有成本低、擴(kuò)展好、“一機(jī)多控”、環(huán)保、智能等優(yōu)點(diǎn),作品成熟后,具有較高的市場(chǎng)應(yīng)有價(jià)值。

優(yōu)秀范文
主站蜘蛛池模板: 新泰市| 桦川县| 曲靖市| 天峻县| 博白县| 邢台市| 江阴市| 乡城县| 巨鹿县| 桂阳县| 江北区| 普兰县| 灵武市| 岳池县| 黎平县| 习水县| 秦安县| 台南县| 浮山县| 农安县| 灌南县| 建瓯市| 上虞市| 永康市| 健康| 天祝| 石嘴山市| 故城县| 河北省| 贡山| 安西县| 山阳县| 北流市| 湖南省| 高密市| 五河县| 莫力| 大英县| 安远县| 扎兰屯市| 游戏|