一级a一级a爱片免费免会员2月|日本成人高清视频A片|国产国产国产国产国产国产国产亚洲|欧美黄片一级aaaaaa|三级片AAA网AAA|国产综合日韩无码xx|中文字幕免费无码|黄色网上看看国外超碰|人人操人人在线观看|无码123区第二区AV天堂

安卓開發(fā)論文

時間:2022-06-20 09:26:33

導(dǎo)語:在安卓開發(fā)論文的撰寫旅程中,學(xué)習(xí)并吸收他人佳作的精髓是一條寶貴的路徑,好期刊匯集了一篇優(yōu)秀范文,愿這些內(nèi)容能夠啟發(fā)您的創(chuàng)作靈感,引領(lǐng)您探索更多的創(chuàng)作可能。

安卓開發(fā)論文

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

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

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

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

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

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

1.1定位軟件技術(shù)

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

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

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

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

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

1.3安卓系統(tǒng)

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

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

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

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

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

2.1.1控件設(shè)計

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

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

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

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

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

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

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

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

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

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

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

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

2.3.2 ARView視圖功能UI強化的設(shè)計

首先要說,ARView是具備2部分視圖的,它們是興趣點POI視圖和實施傳輸視頻流如圖2所示。

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

3.結(jié)語

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

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

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

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

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

1 基于安卓平臺旅游社交軟件的需求分析

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

在活動發(fā)起子系統(tǒng)中包括以下幾個功能:1)活動申請;2)活動信息管理;3)活動資料查詢;4)活動上報申請。

在參加活動子系統(tǒng)中包括以下幾個功能:1)活動參加;2)活動資料查詢;3)參加活動申請。

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

在活動分享子系統(tǒng)中包括以下幾個功能:1)活動評價分享;2)活動圖片分享。

2 旅游社交平臺的總體設(shè)計

2.1 軟件總體設(shè)計

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

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

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

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

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

2.3 詳細設(shè)計

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

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

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

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

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

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

2.3.4 各個服務(wù)所對應(yīng)的Servlet的編寫

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

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

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

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

2)在Filter中對每個請求過濾,調(diào)用HttpServletRequsetWrapper重寫的getParameter()方法,再把請求傳說出去,就完成了過濾請求,如圖4所示。

2.3.6 前臺和后臺數(shù)據(jù)交互的問題

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

2.3.7 前臺向后臺如何傳送數(shù)據(jù)問題

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

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

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

2.4 旅游社交平臺測試

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

2.4.1 單元測試

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

2.4.2 集成測試

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

2.4.3 系統(tǒng)測試

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

2.4.4 測試結(jié)論

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

3 結(jié)束語

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

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

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

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

1引言

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

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

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

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

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

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

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

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

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

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

3系統(tǒng)功能

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

3.1圖根控制

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

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

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

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

3.2碎部測量

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

3.3碎部點坐標(biāo)測算及連碼處理

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

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

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

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

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

4系統(tǒng)的特點

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

(2)在數(shù)據(jù)存儲過程中,采用面向?qū)ο蟮母拍顏砉芾淼匚铮▓D塊) ,這樣就能很方便地對數(shù)據(jù)進行增刪改,包括圖形及屬性數(shù)據(jù)。

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

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

5結(jié)束語

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

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

安卓開發(fā)論文:基于安卓平臺的中國象棋游戲的開發(fā)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

三、結(jié)束語

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

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

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

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

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

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

1 安卓手機平臺簡介

1.1 Android布局管理

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

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

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

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

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

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

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

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

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

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

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

注:在項目工程里面的每一個Activity類都必須在“項目工程名”/res目錄下的AndroidManifest.xml文件添加類的名稱,格式為:。

1.2 Android平臺基本事件監(jiān)聽與處理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2.1 單鏈表

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

2.2.2 棧和隊列

功能包括棧和隊列的定義,順序存數(shù)和鏈?zhǔn)酱鎯Φ暮诵拇a實現(xiàn)、實例入棧(隊列)、出棧(隊列)的動態(tài)演示。

2.2.3 二叉樹

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

2.2.4 圖

功能主要包括圖的基本概念、圖的兩種遍歷的含義及核心思想、實例的動態(tài)演示。

2.2.5 排序

功能主要是排序算法的介紹、主要排序算法的核心思想以及主要的代碼、相應(yīng)實例的動態(tài)演示。

2.2.6 查找

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

2.2.7 串

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

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

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

2.4 系統(tǒng)實現(xiàn)說明

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

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

① ListVeiw:用來展示列表的View。

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

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

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

1)使用Button控件

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

2)向布局添加Button控件

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

3)處理點擊

實現(xiàn)點擊事件處理的方法是使用setOnClickListener()方法向你的按鈕控件注冊一個新的View.OnClickListener。要使用這個方法,你必須更新你的活動類以注冊控件點擊事件。通常情況下通過你的活動的onCreate()方法來實現(xiàn)。使用findViewById()方法找到控件然后使用它的setOnClickListener()方法來定義當(dāng)它被點擊時的行為。你將需要自己去實現(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實現(xiàn)活動跳轉(zhuǎn)

①從相應(yīng)的布局管理資源獲得相應(yīng)TextView組件的Id;

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

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

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

2.5.1 菜單列表

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

2.5.2 下拉列表項

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

2.5.3 界面切換

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

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

3 結(jié)論

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

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

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

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

一、引言

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

三、實驗測試

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

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

四、結(jié)束語

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

相關(guān)期刊