郝祥康,鮑軍委,葉鏈旭,梁瀟,劉浩
(南京航空航天大學理學院,江蘇南京,211106)
基于Android平臺的物理實驗開放教學管理系統設計和實現
郝祥康,鮑軍委,葉鏈旭,梁瀟,劉浩
(南京航空航天大學理學院,江蘇南京,211106)
隨著移動互聯網的快速發展,大學生群體對隨身攜帶的手機等移動終端表現出高依賴性。為滿足大學物理實驗教學和學生學習需求,基于Android平臺,設計開發一款交互界面友好、查詢功能完善、數據處理準確、可實時與教學管理網站交互的物理實驗開放教學管理系統。
Android;移動互聯應用;實驗數據處理
隨著移動互聯網的發展,手機已經成為絕大部分大學生不可或缺的隨身物品。對于此種現狀,除了倡導學生減少手機的娛樂、社交等使用量之外,還應當對學生進行因勢利導,引導學生將時間固定、地點固定的學習進行多維的延伸,逐漸將手機等移動設備投入于學習和相關的使用上。
大學物理實驗課是高等學校理工類專業對學生進行科學實驗基本訓練的必修課程,在人才培養中具有其它課程不可替代的重要作用[1]。為方便實驗教學和學生學習,設計與開發一套基于移動平臺的物理實驗開放教學管理系統,可以與基于電腦平臺的實驗教學管理系統結合,使學生可以方便地在移動終端查詢已預約實驗、實驗成績,及時收到各種實驗教學相關信息,并可以處理數據等。由于Android發展日益成熟完善,在移動市場占據了很大的份額的同時,依然擁有著廣闊的前景[2]。本系統基于Android平臺開發。
1.1 環境條件
系統的最終搭載對象為使用Android操作系統的各種手機終端,選擇傳統的Eclipse作為開發環境。Eclipse是基于Java的、開放源代碼的可擴展開發平臺,它能較容易地創建、集成和使用軟件工具[3],使開發更輕松便捷。
1.2 功能分析
軟件主要有兩大主功能:數據處理、信息查詢,一項輔助功能:時間提醒。
1.2.1 數據處理
承擔教學任務的教師與全體參與實驗的學生是本系統的服務對象,故需做到以下幾點。
(1)數據準確。實驗數據處理過程的每一步數據類型、輸入精度與實驗數據吻合。能按要求自動保留有效數字位數,使輸出數據結果精度和有效性符合實驗要求。
(2)數據計算符合大學物理實驗規則。計算過程符合有效數字的運算規則,有效數字符合物理實驗保留原則。
(3)功能友好。用戶輸入數據過程中若輸入了錯誤的數據類型參數或者漏輸數據,系統將自動提示用戶輸入錯誤或漏輸數據,可清空重置并重新輸入正確的數據。
1.2.2 信息查詢
信息查詢功能面向的用戶是學生。該功能主要針對學生對實驗信息獲取較為麻煩的問題而設計,以方便學生快速查詢實驗信息。故要求有以下兩個方面。
(1)安全性。設置身份識別模塊,每位學生獲取實驗信息時為單方面獲取,要保證每位學生的物理實驗數據信息存儲的安全性,防止他人刪改。
(2)準確性。學生在查詢實驗信息過程中,要求本系統與電腦平臺網站上的數據同步,保證學生所獲取信息準確。
1.2.3 時間提醒
時間提醒功能為輔助功能,有一定可替代性。其主要針對學生可能忘記的已預約實驗進行提醒,保證學生和教學體系的良好溝通。要求有以下兩點。
(1)即時性。保證已預約實驗消息在實驗前一定的時間內完成消息推送,且用戶可自主設定鬧鐘,擁有一定自主性。
(2)準確性。所推送消息必須準確有效。
2.1 系統主要功能
根據系統需求分析,本系統包含四個子模塊:前置身份識別驗證模塊、數據處理模塊、信息查詢模塊、設置模塊。
2.1.1 各模塊基本事件流
前置身份識別驗證模塊:①用戶點擊本軟件圖標開啟Activity。②用戶進入登錄界面。③用戶點擊EditText控件(輸入框)輸入學號和密碼。④選擇是否記住學號和密碼(默認選中)。⑤點擊“登錄”按鈕,根據輸入判斷是否有此用戶,從數據庫查找并對比。⑥跳轉至功能主菜單界面。
數據處理模塊:①從功能主菜單中選擇“數據處理”選項卡。②選擇實驗項目。③進入該實驗項目數據處理界面。④輸入實驗中記錄的數據。⑤點擊“計算”按鈕,系統開始處理數據。⑥輸出數據處理結果。⑦返回功能菜單。
信息查詢模塊:①從功能主菜單中選擇“信息查詢”選項卡。②選擇要查詢的實驗欄(已預約實驗、實驗成績等)。③向服務器發送標識資源訪問請求(網絡已打開)。④獲取資源并解析數據。⑤顯示所查詢信息。⑥返回功能菜單。
設置模塊:①點擊設置圖標。②進入設置界面。③瀏覽設置內容。④點擊選擇各選項進行相應設置。⑤點擊“退出登錄”按鈕,返回登錄界面。
2.1.2 各模塊其他時間流
前置身份識別驗證模塊:①點擊“登錄”按鈕前可選擇是否記住用戶名和密碼。②若輸入錯誤或切換其他用戶,可點擊“重置”按鈕,清空輸入。
數據處理模塊:①若數據輸入錯誤,可選擇EditText控件(輸入框)刪除并更正。②重復輸入或計算多組數據,可點擊“重置”按鈕同時清空多個EditText,以便重新輸入。
設置模塊:①點擊“時間提醒”可設置鬧鐘進行提醒。②點擊“切換賬號”可跳轉回登錄界面重新輸入用戶信息。③點擊返回圖標返回上一個Activity。
2.1.3 各模塊異常事件流
前置身份識別驗證模塊:①提示用戶身份信息錯誤,系統自動清空輸入,重新輸入用戶名或密碼。②用戶輸入空信息或無效內容,提示用戶身份信息為空或無效,請重新輸入。
數據處理模塊:①若數據輸入為空或無效,提示用戶重新輸入有效數據。②系統自動計算實驗誤差,誤差過大,提示用戶重做實驗,記錄新的實驗數據再次重新輸入。
2.2 系統結構
2.2.1 主功能模塊
系統兩大主功能模塊為數據處理模塊和信息查詢模塊。
2.2.2 系統數據流圖
采用數據流圖Data Flow Diagram(DFD)能夠層次化地劃分系統結構,表示出系統的數據流向。如圖1所示。

圖1 DFD圖
3.1 UI設計
一個友好的UI設計能很好地提升用戶體驗。本軟件利用Eclipse進行開發,它為添加UI組件(例如視圖、菜單)定義了擴展點。UI 框架包括UI 控件庫和基于 Tab的UI模板兩個部分,其具有提升用戶交互編程效率的作用。
在工程的res/layout/目錄下創建布局文件,從UI控件庫中選擇Button、EditText、CheckBox以及ImageButton等控件以TableLayout(表格布局)、RelativeLayout(相對布局)等布局方式進行布局,構件平臺可通過這些基礎描述自動生成各種UI元素[4]。同時收集并加工素材,設計圖標,完成身份驗證界面、實驗選擇界面、數據處理界面和設置界面的設計,布局同時需注意各控件id的設置。利用選項卡進行功能主菜單界面的設計,創建FuncAcitvity繼承TabActivity,通過調用getTabHost()方法得到tabhost對象,并加載入自己的布局文件即可實現。選項卡部分代碼如下:
public class FuncActivity extends TabActivity {
private SharedPreferences mSpSettings=null;
private static final String PREFS_NAME=”NamePwd”;
protected void onCreate(Bundle savedInstanceState) {
super onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
TabHost tabHost= getTabHost();
//設置使用TabHost布局
LayoutInflater from(this) inflate(R layout func,tabHost.getTabContentView(),true);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_ TITLE,R.layout.mycustomtitle);
tabHost.addTab(tabHost.newTabSpec(“tab1”).setIndicator(view1).setContent(R.id.tab01));}}
//添加第一個標簽頁
3.2 模塊功能的實現和程序測試調優
人機交互的前提是模塊功能的有效性與完整性。模塊功能的實現需注意是否導入了支持類(例如:import android. widget.*)以及各Activity間的繼承關系,各Activity編譯完成后,在AndroidManifest.xml文件中聲明該Activity。保存用戶名和密碼以Preference存儲方式進行存儲。
數據處理功能為選擇實驗后該實驗數據處理代碼執行的結果,首先為按鈕控件設置監聽器,用OnClick()方法實現,其次由于多數據輸入,應注意各id對應數據關系,最后還要仔細確認數據類型以及有效數字的保留,確保數據處理結果準確有效并根據實際情況不斷優化算法以貼合實驗。
信息查詢功能為選擇查詢項目后的代碼執行結果,主要包括HTTP請求發起和結果解析兩個部分。通過POST請求方式向服務器發送請求,從而接收URI所標識確定訪問路徑指向的資源,得到服務器返回的JSON數據。分析其JSON數據格式:
List<ContentValues>jsonList=new ArrayList<ContentValues>();
@Override
public void readJSONObject(JSONObject jsonObject) throws Exception {
if(Log.LOGV) Log.d(TAG, “前:”+jsonObject. toString());
jsonObject = (JSONObject) jsonObject.get(“resp”);
if(Log.LOGV) Log.d(TAG, “后:”+jsonObject. toString());
if(Log.LOGV) Log.d(TAG,“——JSON數據——”);
readJsonResult(jsonObject);
readJsonPage(jsonObject);
}
解析JSON數據,最終將信息數據顯示在移動終端。部分代碼如下:
JSONObject demoJson = new JSONObject(jsonString);
J S O N A r r a y n u m b e r L i s t = d e m o J s o n. getJSONArray(“score”);
for(int i=0; i<numberList.length(); i++){
System out println(numberList getJSONObject(i) getString(“name”));
}
設置功能包含四個功能選項,其中時間提醒選項為用戶自主設置鬧鐘進行提醒,可通過向系統發送Intent請求,以AlarmClock.ACTION_SET_ALARM操作調用鬧鐘進行響應來實現,消息推送利用Push長連接方式,應用AlarmManager類進行實現[5]。意見建議選項只以Textview控件顯示反饋接收信息。切換賬戶以及退出登錄選項都以自定義的Finishactivities()方法進行實現,通過ArrayList()構造一個元素列表,添加所有Activity到列表中并finish,來實現該方法,最終跳轉至登錄界面。
3.3 軟件整體性能測試
在虛擬機中首次完整測試后,在不同品牌不同型號的Android操作系統手機終端進行測試。滿足以下要求則說明軟件測試通過:登錄界面要求身份識別驗證與用戶信息數據吻合方可通過,其他非法信息均不可通過。數據處理功能上首先要求輸入理論數據得到的數據結果與理論值嚴格吻合,其次,要求處理所得實驗結果符合物理實驗要求。信息查詢功能要求與電腦平臺網站數據同步且準確穩定。最終用戶可安全退出本系統。
本系統設計開發在實驗教師指導下完成,功能符合物理實驗要求,經推廣可作為大學物理實驗教學輔導工具使用。由于大學物理實驗課是高等院校理工科類專業學生的必修基礎課程,受眾群體較為廣大。由此也可窺見本類系統應用在高校教育教學領域的廣泛需求,諸如體育、網絡學習等方面。借此也可引導學生建立對移動設備的良性依賴,提高學生學習積極性,促進學生身心健康。
[1] 李香蓮.大學物理實驗[M]. 北京:高等教育出版社,2015.
[2] 譚國堅.基于Android的移動互聯網應用的關鍵技術研究[D].華南理工大學,2014.
[3] 劉洪星,謝玉山. Eclipse開發平臺及其應用[J]. 武漢理工大學學報(信息與管理工程版),2005,27(02):89-92.
[4] 黃凱.基于Eclipse體系的構件開發管理平臺的設計實現[J].科學技術與工程,2005,5(14):994-997+1005.
[5] 倪紅軍.基于Android平臺的消息推送研究與實現[J]. 實驗室研究與探索,2014,33(05):96-100.
Design and Implementation of Physics Experiment Management System Based on Android Platform
Hao Xiangkang, Bao Junwei,Ye Lianxu, Liang Xiao, Liu Hao
(College of Science, Nanjing University of Aeronautics and Astronautics, Nanjing Jiangsu, 211106)
Mobile devices, such as mobile phones and pads, have become more inextricable among the youth, due to the rapid development of mobile internet. To meet the teaching needs of college physics experiment and the learning needs of student, an physics experiment management system is indispensable to be designed based on Android platform, which has friendly interface, perfect query function, accurate data processing, and able to interactive with teaching management site real-time ,
Android; mobile internet applications; data processing system
郝祥康(1996- ),男,貴州畢節人,本科,應用物理學專業。
鮑軍委(1978- ),男,山東菏澤人,講師,研究方向為物理實驗教學、無線信道建模。
南京航空航天大學2015年教學改革項目(編號:08201505JG08);南京航空航天大學2016年度創新訓練計劃項目(編號:2016CX00814)。