賈樹文 楊婷婷
摘 要:隨著智能手機(jī)的快速普及,智能手機(jī)操作系統(tǒng)市場風(fēng)生水起。為了方便在校學(xué)生可以隨時(shí)隨地查看課程,一種高效的辦法就是將課程表做成應(yīng)用程序拓展到用戶的終端設(shè)備上,并且提供一些輔助功能。因此,智能手機(jī)應(yīng)用軟件及其需要的服務(wù)將有廣闊的開發(fā)前景。
關(guān)鍵詞:Android;智能手機(jī)平臺(tái);課程表;開源
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1673-8454(2014)06-0082-03
一、引言
在智能手機(jī)系統(tǒng)群雄紛爭的時(shí)候,2008年Google推出了一款名為Android的開源智能手機(jī)操作系統(tǒng),它采用Linux內(nèi)核,開放手機(jī)聯(lián)盟(OHA)成員可以任意使用和修改SDK包,系統(tǒng)開源性使其具有良好的拓展性。這款軟件包括了操作系統(tǒng)、用戶界面和應(yīng)用程序,即智能手機(jī)工作所需要的全部軟件。Android的最大特點(diǎn)是其開放性的體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗(yàn),包括豐富的圖像組件、多媒體支持功能及其強(qiáng)大的瀏覽器。因此,對于軟件從業(yè)人員來說,Android平臺(tái)具有無限的吸引力。
本文在分析討論Android手機(jī)軟件開發(fā)技術(shù)原理的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了能為用戶提供更好的基于Android平臺(tái)的課程表。
二、系統(tǒng)需求分析
本應(yīng)用是一款簡單的Android課程表,首先課表支持查看課程的功能,因?yàn)閿?shù)據(jù)比較小,采用了XML存儲(chǔ)模式。其次,課表具有修改課程的功能,便于課程改變的應(yīng)對,以及清空課表,為循環(huán)使用提供方便。在Title項(xiàng)設(shè)計(jì)了點(diǎn)擊查詢當(dāng)日天氣的功能。由此可以得到功能圖1,程序流程圖2。
三、系統(tǒng)功能模塊概述
系統(tǒng)分為4個(gè)功能:
1.顯示主界面
主界面顯示各個(gè)按鈕,以及動(dòng)態(tài)顯示本周的課程,主界面將Title隱藏了起來,取而代之的是自己設(shè)計(jì)的Title,將他們整合起來。另外,主界面要負(fù)責(zé)將XML數(shù)據(jù)調(diào)入內(nèi)存中。
2.修改課程功能
修改課程功能,通過用戶點(diǎn)擊課程后,彈出一個(gè)Dilog,用戶可以在Dilog中修改本課程的上課時(shí)間、代課老師、課程名稱以及備注信息。然后將其重新回寫到XML文件中,方便下次啟動(dòng)時(shí),課程被永久修改。
3.清空課表功能
清空課表功能,當(dāng)用戶點(diǎn)擊了清空課表,將清除所有科目的上課信息屬性,課表將被置空。用戶可以重新編輯課表。
4.天氣查詢功能
天氣查詢功能放置在Title項(xiàng)中,節(jié)省主界面的空間,Title和主界面搭配在一起,設(shè)置按鈕監(jiān)聽,當(dāng)Title按鈕被點(diǎn)擊時(shí),從網(wǎng)上獲取今日的天氣情況,并顯示在Title欄中。
四、實(shí)現(xiàn)技術(shù)及工具
Android提供了免費(fèi)且跨平臺(tái)的整合開發(fā)環(huán)境。采用JAVA語言結(jié)合Android編程的規(guī)則來編寫程序。開發(fā)Android應(yīng)用,需要以下硬件及軟件支持:
1.操作系統(tǒng)。Windows XP ,Mac OS X(一個(gè)基于UNIX核心的系統(tǒng))和Linux三種方式,本文使用了Windows XP的操作系統(tǒng)來開發(fā)。
2.JDK 5 或者 5以上版本。JDK是JAVA的開發(fā)環(huán)境,必須有了JAVA的開發(fā)環(huán)境才能開發(fā)JAVA程序。這里采用了JDK 7這個(gè)版本。
3.Eclipse IDE ,一個(gè)多用途的開發(fā)工具平臺(tái)。Eclipse功能十分強(qiáng)大,可搭載其他擴(kuò)成套件來開發(fā)其他項(xiàng)目,如網(wǎng)站開發(fā)、ERP開發(fā)等。Eclipse版本采用了3.7.0版本。
4.ADT, 一款基于Eclipse的擴(kuò)充套件。
5.Android SDK,Android程序開發(fā)套件,包含了Android手機(jī)的模擬器,有了它你就可以在虛擬機(jī)中查看調(diào)試程序,方便很多。
五、應(yīng)用程序設(shè)計(jì)
1.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)
數(shù)據(jù)采用了面向?qū)ο蟮乃枷肴ゴ鎯?chǔ)數(shù)據(jù),因?yàn)閿?shù)據(jù)量比較小,采用了XML文件來存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)以day標(biāo)簽為每一個(gè)數(shù)據(jù)對象,每一個(gè)day標(biāo)簽有多個(gè)屬性,用來記錄數(shù)據(jù)。數(shù)據(jù)的屬性有Teacher、startTime、endTime、index、weekday、valuetext、classname。當(dāng)程序啟動(dòng)時(shí),把屬性封裝成對象,完成操作。
2.主視圖設(shè)計(jì)
Android代碼的編寫,首先編寫主界面的布局文件,每一個(gè)Activity文件會(huì)對應(yīng)一個(gè)Layout的布局文件,由于在Android中表格布局無法分列,布局起來十分困難,而線性布局也可以做成表格,所以,最終選擇了用線性布局來布局主視圖。布局分為兩大塊,在一個(gè)總線性布局中首先套用了兩個(gè)小的線性布局,如圖3所示。
左側(cè)的小線性布局放置不同的星期按鈕,通過點(diǎn)擊按鈕來修改右邊布局中對應(yīng)星期的課程。右邊的布局中,套用一個(gè)表格布局來約束各空間的比例,分出來每一行來存放和顯示不同的課程、時(shí)間信息。再配以背景的美化,預(yù)期效果與最終效果對比如圖4所示。
至此,主視圖的設(shè)計(jì)完成,再在Activity中配置相應(yīng)按鈕的動(dòng)作即可。在主視圖創(chuàng)建時(shí),程序讀取xml數(shù)據(jù)載入視圖中對應(yīng)的控件,點(diǎn)擊左側(cè)的按鈕會(huì)改變右側(cè)控件的屬性,從而查看每天的課程。
3.修改功能設(shè)計(jì)
修改功能設(shè)計(jì)時(shí),需要另起一個(gè)Activity,與之對應(yīng)需要另外建立一個(gè)Layout的布局文件,這里采用了Dilog的窗口。Activity的相互啟動(dòng),需要用到Intent(意圖)模式,意圖中可以存放需要傳遞的參數(shù)。當(dāng)點(diǎn)擊要修改的課程時(shí),程序會(huì)觸發(fā)動(dòng)作,來生成一個(gè)Dilog完成修改操作。根據(jù)要修改的屬性,Dilog也采用了線性布局,其中包含開始時(shí)間、結(jié)束時(shí)間、課程名稱、教師姓名,以及這節(jié)課需要的一些備注信息等屬性。除了兩個(gè)時(shí)間以外,其他的屬性均使用了文本編輯條,而開始時(shí)間和結(jié)束時(shí)間,為了得到更好的用戶體驗(yàn)采用了Android提供的Timepicker控件,它是一個(gè)時(shí)間選擇的控件。當(dāng)控件的時(shí)間發(fā)生改變,它會(huì)調(diào)用相應(yīng)的OnTimeChangedListener()函數(shù),在這里可以接收得到時(shí)間參數(shù),并做相應(yīng)的處理。endprint
4.天氣查詢功能設(shè)計(jì)
天氣查詢功能,為了節(jié)約主界面的空間,將其放在自定義的Title中。自定義的Title含有3個(gè)控件,一個(gè)用于顯示接收的天氣信息,一個(gè)是Spinner控件,用于選擇需要查詢的城市,以及一個(gè)確定按鈕。需要注意的是,Title無法和主界面的線程跑在一起,必須要新起一個(gè)線程來處理數(shù)據(jù),也就是說,整個(gè)應(yīng)用啟動(dòng)的時(shí)候,有2個(gè)線程同時(shí)在跑,一個(gè)是主界面的線程,一個(gè)是Title線程用來監(jiān)聽是否觸發(fā)了Title的操作。應(yīng)用程序的界面是由2個(gè)界面構(gòu)成。而線程之間傳數(shù)據(jù),也必須用一定的格式來傳,Title線程的數(shù)據(jù),在主線程中無法直接調(diào)用,必須用特定的方式獲取。Spinner空間類似于一個(gè)listview控件,不同的是,它將彈出一個(gè)Dilog用來選取對應(yīng)的Item。
整個(gè)Title的顯示效果如圖5所示。
圖6是點(diǎn)擊查詢天氣按鈕后顯示的效果。
數(shù)據(jù)取自www.webxml.com.cn網(wǎng)站,這個(gè)網(wǎng)站免費(fèi)提供一些信息查詢的功能,返回的方式都以XML文件的格式返回,接收到返回文件后,只需自己解析讀取所需內(nèi)容即可。
六、應(yīng)用程序測試
1.視圖功能測試
測試環(huán)境首先在搭建環(huán)境中的虛擬機(jī)進(jìn)行測試,所用虛擬機(jī)版本為API 15,即Android 4.0.3的版本,屏幕尺寸為QVGA。測試主視圖整體顯示效果正常;點(diǎn)擊不同星期,顯示不同課程,顯示正常;點(diǎn)擊Title可以切換不同的城市查詢天氣,顯示正常。
2.改課及清空課表功能測試
修改課程功能測試,顯示效果正常;測試清空課表功能,課表已被清空成功,功能測試正常。
3.實(shí)體機(jī)測試
實(shí)體機(jī)測試選用了兩部不同品牌的手機(jī),分別為摩托羅拉ME525,操作系統(tǒng)為Android 4.0,屏幕尺寸3.7英寸,像素為854 x480;和聯(lián)想A790e,操作系統(tǒng)為Android 2.3.0,屏幕尺寸4英寸,像素800 x 480。經(jīng)過多次實(shí)體機(jī)測試,顯示功能正常,修改清空功能正常,查詢天氣功能正常,無發(fā)現(xiàn)BUG點(diǎn)。具體如圖7所示。
七、結(jié)束語
隨著更多大規(guī)模的公司加入Android市場,應(yīng)用程序會(huì)越來越多,涉及方方面面,這樣勢必會(huì)造成應(yīng)用程序的逐漸飽和。在這種情況下,應(yīng)用程序會(huì)更多的將目光放在用戶體驗(yàn)上,一款應(yīng)用程序的大面積普及,勢必建立在良好的用戶體驗(yàn)上。
簡潔、易懂、方便操作將會(huì)提升應(yīng)用程序的普及率。本文介紹的Android移動(dòng)課程表還有許多可擴(kuò)展功能,它可以和學(xué)校教務(wù)處結(jié)合在一起,從而拓展出更多的實(shí)用功能,例如查看喜愛教師的課程,從而可以自由的安排上課時(shí)間,查詢同學(xué)上課安排等等一系列更加生活化的功能。
通過上述Android應(yīng)用程序的編寫,可以切身了解Android開發(fā)的各種結(jié)構(gòu)步驟和Android的系統(tǒng)架構(gòu)模式,從而對Android的軟件開發(fā)得出如下收獲:
Android應(yīng)用程序開發(fā)十分方便易學(xué),在開源的基礎(chǔ)上,設(shè)計(jì)者有了天馬行空的設(shè)計(jì)方式,不會(huì)拘泥于固定模式的開發(fā),有助于語言的進(jìn)步。Android提供的豐富的API使得開發(fā)者開發(fā)應(yīng)用程序不用再考慮下層業(yè)務(wù),開發(fā)起來高效快捷。
Android 應(yīng)用程序的開發(fā)對于有編程經(jīng)驗(yàn)的人來說十分易懂,從而帶動(dòng)了開發(fā)市場的活躍。加之其跨平臺(tái)的兼容性,開發(fā)的便捷性,大大降低了程序?qū)﹂_發(fā)人員人數(shù)的依賴性,能夠節(jié)省大量的成本。
而且,Android開發(fā)的應(yīng)用安裝在獨(dú)立設(shè)備之上,降低了像Web這樣的多設(shè)備連接處理時(shí)產(chǎn)生錯(cuò)誤的可能性,避免了許多不必要的麻煩。多設(shè)備連接更多的會(huì)出現(xiàn)預(yù)測不到的意外情況,而獨(dú)立設(shè)備方便攜帶,不會(huì)產(chǎn)生多設(shè)備連接時(shí)的信號(hào)沖突。搭配更新周期短的硬件設(shè)備,Android應(yīng)用將會(huì)占據(jù)市場的核心地位。
參考文獻(xiàn):
[1]趙朋飛.智能手機(jī)操作系統(tǒng)Google Android分析[J].科技視界,2011(8).
[2]劉平.Android手機(jī)訪問服務(wù)器的一種數(shù)據(jù)交互方法[J].電子設(shè)計(jì)工程,2010(9):96-102.
[3]李佐彬等.Android開發(fā)入門與實(shí)戰(zhàn)體驗(yàn)(附光盤1張)[M].北京:機(jī)械工業(yè)出版社,2010.
[4]韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解[M].北京:電子工業(yè)出版社,2011.
(編輯:魯利瑞)endprint