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