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