摘 要:該設(shè)計(jì)主要利用了Android系統(tǒng)的方向傳感器進(jìn)行開發(fā)與設(shè)計(jì),通過(guò)方向傳感器獲取當(dāng)前的磁場(chǎng)方向,并得到數(shù)據(jù),通過(guò)友好的UI設(shè)計(jì)展現(xiàn)給用戶。增加了動(dòng)態(tài)背景的刷新,和背景音樂(lè)的播放功能,以及菜單選項(xiàng),從而實(shí)現(xiàn)軟件的個(gè)性化操作。
關(guān)鍵詞:指南針;Android;操作系統(tǒng);方向傳感器;智能手機(jī)
1 前言
隨著人們生活水平的不斷提高,外出旅游、探親訪友成為生活不可或缺的部分。然而外出迷失方向常常困擾人們。
本文利用智能手機(jī)內(nèi)置的方向傳感器Sensor.TYPE_ORIENTATION,設(shè)計(jì)與實(shí)現(xiàn)一款簡(jiǎn)易指南針軟件,使用方便。
2 Android系統(tǒng)特性與分析
2.1 Android平臺(tái)特性
Android是一個(gè)包括操作系統(tǒng)、中間件、用戶界面和關(guān)鍵應(yīng)用軟件的移動(dòng)設(shè)備軟件堆。換言之,Android是基于Java并運(yùn)行在Linux內(nèi)核上的輕量級(jí)操作系統(tǒng),其功能全面,包括一系列Google公司在其上內(nèi)置的應(yīng)用軟件,如電話、短信等基本應(yīng)用功能[1]。
隨著科技的發(fā)展,移動(dòng)電話(Mobile Phone)正朝著智能化的方向發(fā)展,逐步成為多種工具的功能載體,而Android就是這樣一個(gè)智能手機(jī)的平臺(tái)、一個(gè)多種工具的功能載體。
2.2 Android系統(tǒng)架構(gòu)
android 是由5部分組成,分別是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications[2]。
2.3 Android 四大組件
在開發(fā)應(yīng)用時(shí)都是通過(guò)框架來(lái)與Android底層進(jìn)行交互,接觸最多的就是應(yīng)用框架層了。在Android SDK中內(nèi)置了一些對(duì)象,其中最重要的組件要屬Activities、Intents、Services以及Content Providers四個(gè)組件[3]。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 設(shè)計(jì)流程圖
軟件設(shè)計(jì)流程圖,首先啟動(dòng)軟件,進(jìn)入APP界面。然后軟件將會(huì)判斷是否該設(shè)備是否存在方向傳感器或電磁羅盤傳感器,如果不存在系統(tǒng)將會(huì)給出友好提示,存在將會(huì)通過(guò)設(shè)備傳感器去獲取當(dāng)前的數(shù)據(jù),也就是方向數(shù)據(jù),然后將會(huì)把這些數(shù)據(jù)通過(guò)程序處理好后,友好的顯示給用戶,主要顯示分為三部分:動(dòng)態(tài)羅盤圖像實(shí)時(shí)旋轉(zhuǎn),實(shí)時(shí)更新圖片數(shù)字顯示度數(shù),實(shí)時(shí)更新方向通過(guò)方向圖片顯示。其次還有菜單的設(shè)計(jì),背景圖片,攝像頭的調(diào)用等方面的功能實(shí)現(xiàn)。
3.2 方向傳感器
創(chuàng)建一個(gè)傳感器管理器和一個(gè)傳感器監(jiān)聽器,管理器用來(lái)管理傳感器以及創(chuàng)建各種各樣的傳感器,監(jiān)聽器用來(lái)監(jiān)視傳感器的變化并且進(jìn)行相應(yīng)的操作
private SensorManager sensorManager;
private MySensorEventListener mySensorEventListener;
mySensorEventListener= new MySensorEventListener();
3.3 CompassView 指南針動(dòng)畫view
自定義一個(gè)View繼承ImageView,增加一個(gè)通用的旋轉(zhuǎn)圖片資源的方法 ,并且重寫onDraw(Canvas canvas)方法,實(shí)現(xiàn)指針的旋轉(zhuǎn)都將會(huì)在該方法中實(shí)現(xiàn)。
3.4 背景音樂(lè)music主要實(shí)現(xiàn)步驟
(1)通過(guò)Context.getAssets()方法獲得AssetManager對(duì)
(2)通過(guò)AssetManager對(duì)象的openFd(String name)方法打開指定的原生資源文件夾,返回一個(gè)AssetFileDescriptor對(duì)象
(3)通過(guò)AssetFileDescriptor的getFileDescriptor()得到一個(gè)FileDescriptor對(duì)象
(4)通過(guò)public void setDataSource (FileDescriptor fd, long offset, long length)來(lái)創(chuàng)建MediaPlayer對(duì)象
(5)調(diào)用MediaPlayer.prepare()方法準(zhǔn)備音頻
(6)調(diào)用MediaPlayer的start()、pause()、stop()等方法控制
3.5 menu菜單的實(shí)現(xiàn)
菜單的主要作用就是關(guān)于指南針軟件的背景圖片,背景音樂(lè),攝像頭背景,及其產(chǎn)品的關(guān)于和幫助的一些快捷操作。
3.5.1 menu.xml菜單配置文件。首先在工程項(xiàng)目res目錄下創(chuàng)建menu文件夾,然后在在menu目錄中創(chuàng)建menu.xml文件,然后在menu根標(biāo)簽中創(chuàng)建item子標(biāo)簽,在item中配置菜單顯示相應(yīng)的文本信息和圖片,并且為每個(gè)選項(xiàng)個(gè)配置一個(gè)id方便java代碼中的獲取
3.5.2 menu菜單java代碼部分。首先要在activity的主程序中重寫onCreateOptionsMenu方法,該方法是菜單鍵操作的入口,然后在方法中把前面配置好的menu.xml文件通過(guò)MenuInflater加載解析進(jìn)來(lái)。
3.6 攝像頭背景
調(diào)用攝像頭作為的實(shí)時(shí)背景可以增強(qiáng)用戶的體驗(yàn),而實(shí)現(xiàn)調(diào)用攝像頭首先必須開啟手機(jī)攝像頭權(quán)限:
4 軟件測(cè)試
軟件測(cè)試,鑒定軟件的正確性、完整性、安全性和質(zhì)量的過(guò)程。換句話說(shuō),軟件測(cè)試是一種實(shí)際輸出與預(yù)期輸出間的審核或者比較過(guò)程。
開發(fā)運(yùn)行環(huán)境需求:
操作系統(tǒng):Windows 7旗艦版
支持Android版本:Android 2.2以上
開發(fā)工具:eclipse+adt+Android手機(jī)一部(必須在Android2.2以上的真機(jī))
5 小結(jié)
該設(shè)計(jì)主要利用了基于Android智能端的方向傳感器進(jìn)行開發(fā)與設(shè)計(jì),運(yùn)用Android系統(tǒng)方向傳感器,實(shí)現(xiàn)方位獲取,利用Android的強(qiáng)大UI支持環(huán)境,搭建出客戶友好型界面供用戶體驗(yàn)并使用。增加背景音樂(lè)是通過(guò)對(duì)智能控制端多媒體調(diào)用實(shí)現(xiàn),通過(guò)對(duì)智能控制端攝像頭的調(diào)用,實(shí)現(xiàn)攝像頭背景功能,展現(xiàn)出對(duì)實(shí)際場(chǎng)景動(dòng)態(tài)背景的刷新。添加菜單選項(xiàng)實(shí)現(xiàn)軟件的個(gè)性化操作。
參考文獻(xiàn)
[1]杜吉志.Android系統(tǒng)內(nèi)存管理研究及優(yōu)化[J].軟件,2012,24(5):69-80.
[2]馬越.Android的架構(gòu)與應(yīng)用[D].北京:中國(guó)地質(zhì)大學(xué),2008:330-357.
[3]姚昱旻.Android的架構(gòu)與應(yīng)用開發(fā)研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008,23(6):99-111.
作者簡(jiǎn)介:潘言全(1963-),男,碩士,副教授,主要從事機(jī)電等方面的科研與教學(xué)。