吳 汛,孫 立,劉 祥,徐文螢
(南京航空航天大學(xué) 理學(xué)院,江蘇 南京 211100)
基于iOS環(huán)境下的實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
吳 汛,孫 立,劉 祥,徐文螢
(南京航空航天大學(xué) 理學(xué)院,江蘇 南京 211100)
基于以智能手機(jī)為載體的移動(dòng)互聯(lián)網(wǎng)迅速發(fā)展的現(xiàn)狀與物理實(shí)驗(yàn)數(shù)據(jù)處理對(duì)復(fù)雜性與時(shí)效性的要求,采用iOS系統(tǒng)專用編程工具Xcode所提供的 Objective-C編程環(huán)境,開(kāi)發(fā)了一套實(shí)驗(yàn)數(shù)據(jù)計(jì)算分析的處理平臺(tái)。其適應(yīng)于大學(xué)物理實(shí)驗(yàn)的數(shù)據(jù)處理要求,可運(yùn)行于iOS6.0以上的各型號(hào)iPhone與iPad上。通過(guò)在蘋果應(yīng)用商店中的正式發(fā)布后,其在大學(xué)物理實(shí)驗(yàn)教學(xué)中的使用中,實(shí)現(xiàn)了對(duì)實(shí)驗(yàn)數(shù)據(jù)便捷、快速的處理。據(jù)統(tǒng)計(jì),該系統(tǒng)的使用節(jié)約了學(xué)生65.7%的數(shù)據(jù)處理時(shí)間,同時(shí)減少了35.9%的機(jī)房維護(hù)成本,真正實(shí)現(xiàn)了實(shí)驗(yàn)數(shù)據(jù)處理的信息化。
iOS;數(shù)據(jù)處理;大學(xué)物理實(shí)驗(yàn);多平臺(tái)
應(yīng)用現(xiàn)代軟件科學(xué)技術(shù)改進(jìn)傳統(tǒng)實(shí)驗(yàn)教學(xué),將互聯(lián)網(wǎng)思維引入大學(xué)實(shí)驗(yàn)課堂,體現(xiàn)出大學(xué)實(shí)驗(yàn)課程創(chuàng)新發(fā)展的亮點(diǎn)之一。研制出操作簡(jiǎn)潔方便的實(shí)驗(yàn)數(shù)據(jù)處理工作平臺(tái),應(yīng)用于復(fù)雜繁瑣的實(shí)驗(yàn)數(shù)據(jù)處理中,同時(shí)能運(yùn)行于各種移動(dòng)設(shè)備與平臺(tái)之上;并且在數(shù)據(jù)處理上具備自身特點(diǎn),以適應(yīng)不同實(shí)驗(yàn)參數(shù)的測(cè)試需求。文中以大學(xué)物理實(shí)驗(yàn)的邁克爾遜、牛頓環(huán)與密立根油滴等經(jīng)典實(shí)驗(yàn)的數(shù)據(jù)處理軟件為實(shí)例來(lái)展開(kāi),具體描述整個(gè)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)中技術(shù)背景和研制方法。在全國(guó)高校大學(xué)物理實(shí)驗(yàn)教學(xué)領(lǐng)域中首開(kāi)先河,具有示范性的創(chuàng)新意義。
基于iPhone/iPad的應(yīng)用開(kāi)發(fā)已成為當(dāng)今移動(dòng)智能設(shè)備兩大主流應(yīng)用開(kāi)發(fā)之一,使用人數(shù)眾多;又由于支持iPhone/ iPad的操作系統(tǒng)iOS是當(dāng)今移動(dòng)智能設(shè)備運(yùn)行最穩(wěn)定的操作系統(tǒng)[1],故選擇以iOS作為目標(biāo)開(kāi)發(fā)平臺(tái)。
iOS編程工具Xcode作為系統(tǒng)開(kāi)發(fā)的環(huán)境,具有不可替代的優(yōu)勢(shì)。Objective-C是iPhone/iPad框架下面向?qū)ο蟮脑鷳B(tài)語(yǔ)言,它是標(biāo)準(zhǔn)C語(yǔ)言的一個(gè)超集,從而使得現(xiàn)存的C語(yǔ)言程序能夠輕松的移植到iPhone/iPad軟件框架下,并保留原有特性。同時(shí)Objective-C語(yǔ)法簡(jiǎn)潔,便于學(xué)習(xí),與其他的面向?qū)ο笳Z(yǔ)言(基于C語(yǔ)言)相比,能更好的實(shí)現(xiàn)對(duì)動(dòng)態(tài)機(jī)制支持。很多與運(yùn)行環(huán)境有關(guān)的對(duì)象本身的數(shù)據(jù)信息在編譯時(shí)被保留,因此Objective-C程序?qū)Σ煌\(yùn)行環(huán)境的兼容性也十分出眾[2]。
在軟件功能與結(jié)構(gòu)的設(shè)計(jì)上,定位為實(shí)用性應(yīng)用軟件[3],能夠讓用戶快速地執(zhí)行已定義好的任務(wù),具有最小化安裝,流程與布局簡(jiǎn)單,用戶界面元素標(biāo)準(zhǔn)等特點(diǎn)。
1.1 iOS簡(jiǎn)介
蘋果公司最早于2007年1月9日的Macworld大會(huì)上公布了這個(gè)系統(tǒng),最初是為使用iPhone使用而設(shè)計(jì),后來(lái)陸續(xù)搭載于iPad、iPod touch、Apple TV等蘋果產(chǎn)品。幾年之內(nèi),就因系統(tǒng)本身優(yōu)異的操作性與蘋果產(chǎn)品硬件的獨(dú)特設(shè)計(jì)而擁有全球市場(chǎng)第二的占有率。
1.2 iOS的系統(tǒng)結(jié)構(gòu)與技術(shù)優(yōu)勢(shì)
iOS的系統(tǒng)結(jié)構(gòu)分為以下4個(gè)層次:核心操作系統(tǒng)(the Core OS layer)、核心服務(wù)層(the CoreServices layer)、媒體層(the Media layer)、Cocoa觸摸框架層(the Cocoa Touch layer)。iOS系統(tǒng)界面的實(shí)現(xiàn)可以看作以上多個(gè)層的集合,底層為所有應(yīng)用程序提供基礎(chǔ)服務(wù),高層則可以實(shí)現(xiàn)更為多樣化的功能[4]。
總的來(lái)說(shuō),iOS相對(duì)市場(chǎng)上的其他主流操作系統(tǒng),有以下的技術(shù)優(yōu)勢(shì):
1)與硬件設(shè)計(jì)的整合度高。搭載iOS的終端產(chǎn)品都是蘋果公司的產(chǎn)品,設(shè)備硬件條件相對(duì)固定,為軟件提供了穩(wěn)定的運(yùn)行環(huán)境,且進(jìn)行了軟硬件結(jié)合的設(shè)計(jì)整合優(yōu)化,充分利用了系統(tǒng)的硬件資源。
2)舒適的用戶體驗(yàn)。蘋果公司在界面設(shè)計(jì)上投入了很多精力,iOS系統(tǒng)從外觀到易用性都經(jīng)過(guò)精心設(shè)計(jì),從而在用戶使用中獲得了廣泛好評(píng)。蘋果公司在信息獲取與系統(tǒng)操作性方面擁有多項(xiàng)專利,符合人們直觀反應(yīng)的滑動(dòng)退出等手勢(shì)操作,大大方便了用戶的日常使用。
3)較高的安全性。iOS系統(tǒng)是不開(kāi)源,完全封閉的系統(tǒng),其在應(yīng)用程序來(lái)源、數(shù)據(jù)加密和程序隔離等多個(gè)方面設(shè)置了一系列安全機(jī)制[5],普通用戶只能通過(guò)蘋果商店(App Store)獲得應(yīng)用程序,避免了在程序下載安裝過(guò)程中可能產(chǎn)生的安全風(fēng)險(xiǎn)。
4)較高的系統(tǒng)資源利用率。iOS系統(tǒng)憑借良好的軟件監(jiān)控,對(duì)系統(tǒng)資源極度節(jié)約。這也正是iOS系統(tǒng)設(shè)備能在硬件條件不及某些Android系統(tǒng)設(shè)備的情況下,反而擁有更高運(yùn)行流暢度的原因。iOS系統(tǒng)的UI(User Interface)渲染采用實(shí)時(shí)優(yōu)先級(jí),即正在屏幕上顯示的程序具有最高的優(yōu)先級(jí),其他的進(jìn)程都被阻塞,從而保證了用戶正在使用進(jìn)程的運(yùn)行流暢。而在Android系統(tǒng)中,系統(tǒng)后臺(tái)的程序始終在繼續(xù)運(yùn)行之中,長(zhǎng)期占用內(nèi)存等系統(tǒng)資源。相比之下,iOS系統(tǒng)運(yùn)行更為流暢,也更加省電。
在iOS系統(tǒng)下,軟件主要通過(guò)包含了各種可操作組件的視圖控制器ViewController與用戶實(shí)現(xiàn)交互。軟件主體由7個(gè)ViewController類的子類的對(duì)象與傳值類pass等其他必要組件所構(gòu)成。
圖1 程序結(jié)構(gòu)示意圖
如圖1所示,各主要組件名稱與功能分別為:
視圖控制器間通過(guò)用戶操作相互跳轉(zhuǎn),每個(gè)視圖控制器下有若干個(gè)視圖(View),可以實(shí)現(xiàn)多組數(shù)據(jù)的輸入與處理。
3.1 啟動(dòng)界面屏幕自適應(yīng)
在iOS應(yīng)用中,圖像視圖(UIImageView)控件用于在屏幕中顯示一個(gè)圖像。可以將圖像視圖加入到應(yīng)用程序中,并用于向用戶呈現(xiàn)信息[6]。程序需要運(yùn)行在各種屏幕大小的iOS設(shè)備上,需要針對(duì)不同大小的屏幕對(duì)啟動(dòng)界面進(jìn)行壓縮或拉伸。
故采用[UIScreen mainScreen].application-Frame函數(shù)獲取主屏幕大小,然后將主屏幕大小賦值給控制圖片大小的變量,在ViewController1.c中添加相應(yīng)代碼如下:
3.2 iPad/iPhone分類適配
由于iPad與iPhone屏幕大小相差懸殊,在iPad上的數(shù)據(jù)輸入與結(jié)果顯示界面若沿用iPhone上的設(shè)計(jì)會(huì)造成諸多使用上的不便。
因此,需要重新設(shè)計(jì)一套iPad端的界面,并在啟動(dòng)畫面結(jié)束后決定顯示的視圖類型。為實(shí)現(xiàn)此功能,在ViewController1中添加判斷語(yǔ)句:
以此實(shí)現(xiàn)對(duì)iPad的支持。
3.3 輸入數(shù)據(jù)合法性檢查
使用者在實(shí)驗(yàn)輸入數(shù)據(jù)時(shí),可能會(huì)出現(xiàn)種種錯(cuò)誤,從而可能導(dǎo)致錯(cuò)誤的計(jì)算結(jié)果。故必須在對(duì)數(shù)據(jù)處理前對(duì)數(shù)據(jù)合法性進(jìn)行檢查。作為實(shí)驗(yàn)的合法數(shù)據(jù)需要滿足:1)有整數(shù)與小數(shù)部分。2)除非整數(shù)部分為0,否則整數(shù)部分首位不能為0。3)為示例的3個(gè)實(shí)驗(yàn)中,數(shù)據(jù)都不為負(fù)數(shù)。用于實(shí)現(xiàn)功能的具體代碼較為復(fù)雜,此處不再贅述。
3.4 文本框輸入時(shí)防遮擋
在向文本框內(nèi)輸入文本時(shí)會(huì)彈出系統(tǒng)鍵盤,系統(tǒng)鍵盤有一定高度,有時(shí)會(huì)遮擋正在輸入的文本框,影響數(shù)據(jù)的輸入。故需在鍵盤遮擋文本框時(shí)將正在輸入的文本框向屏幕上方移動(dòng)適當(dāng)距離。同時(shí),不同型號(hào)的iOS設(shè)備擁有不同的高度,故上移距離需適應(yīng)于屏幕實(shí)際高度。具體實(shí)現(xiàn)方法如下:
3.5 同視圖控制器下的多視圖切換
在密立根油滴實(shí)驗(yàn)中,由于有多組數(shù)據(jù)需要分別計(jì)算與顯示,故采用在同一視圖控制器下多個(gè)子視圖[7]的方式進(jìn)行數(shù)據(jù)的輸入與結(jié)果的顯示。
設(shè)置視圖標(biāo)志變量,以標(biāo)志數(shù)據(jù)輸入/結(jié)果顯示頁(yè)面。以第二組數(shù)據(jù)為例,數(shù)據(jù)輸入界面如圖2所示:
點(diǎn)擊計(jì)算后第二組數(shù)據(jù)的視圖標(biāo)志變量被置為1,同時(shí)顯示計(jì)算結(jié)果。當(dāng)子視圖被切換至其他數(shù)據(jù)組(如第一組)后再切換回第二組時(shí),會(huì)檢測(cè)第二組數(shù)據(jù)的視圖標(biāo)志變量,若為1則顯示對(duì)應(yīng)的計(jì)算結(jié)果界面,如圖3所示:
而在此界面點(diǎn)擊“返回”則會(huì)將視圖標(biāo)志變量置0,展示如圖5的數(shù)據(jù)輸入界面。結(jié)合實(shí)驗(yàn)特點(diǎn),在三組數(shù)據(jù)都分組計(jì)算完成后,點(diǎn)擊“結(jié)論”進(jìn)入實(shí)驗(yàn)總結(jié)果顯示界面。
3.6 利用輸出口(Outlet)控制對(duì)象
輸出口(Outlet)描述了兩個(gè)對(duì)象之間的連接。當(dāng)你希望一個(gè)對(duì)象(例如視圖控制器)和它包含的對(duì)象(例如文本欄)進(jìn)行通訊時(shí),須將被包含的對(duì)象指定為Outlet。應(yīng)用程序運(yùn)行時(shí),會(huì)恢復(fù)在Xcode中創(chuàng)建的Outlet,從而使對(duì)象在運(yùn)行時(shí)可以互相通訊。
在指定了Outlet變量并與對(duì)象(如文本框等)連接后,即可通過(guò)對(duì)Outlet的操作實(shí)現(xiàn)對(duì)被連接對(duì)象屬性的讀取與修改,這也是本平臺(tái)中程序獲取獲取文本框中數(shù)據(jù)與在結(jié)果界面顯示結(jié)果的主要途徑。同時(shí),由于能通過(guò)其修改對(duì)象的各種屬性,故可通過(guò)此方法實(shí)現(xiàn)更為多樣化的功能。
以下以數(shù)據(jù)出現(xiàn)錯(cuò)誤后的密立根實(shí)驗(yàn)的結(jié)果顯示界面(圖4)為例進(jìn)行說(shuō)明。點(diǎn)擊“計(jì)算”后,其運(yùn)行結(jié)果如圖5所示。當(dāng)計(jì)算時(shí)發(fā)現(xiàn)對(duì)應(yīng)的數(shù)據(jù)出現(xiàn)錯(cuò)誤時(shí),修改結(jié)果界面“電壓U”標(biāo)簽的對(duì)應(yīng)文本為相應(yīng)錯(cuò)誤種類的提示文本,顏色為紅色,同組其他標(biāo)簽的隱藏(Hidden)屬性設(shè)置為Yes,即隱藏其他標(biāo)簽,分組展示警告信息,以提醒學(xué)生具體錯(cuò)誤原因。結(jié)果正確時(shí)則恢復(fù)默認(rèn)設(shè)置,正常顯示數(shù)據(jù)。
圖2 密立根油滴實(shí)驗(yàn)數(shù)據(jù)輸入界面
圖3 密立根油滴實(shí)驗(yàn)結(jié)果分組顯示界面
1)軟件投入到實(shí)驗(yàn)教學(xué)中后,得到了廣大師生的一致好評(píng)。方便了學(xué)生對(duì)于繁瑣數(shù)據(jù)的處理,學(xué)生在實(shí)驗(yàn)方面積極性與活躍性得到了一定程度的提高。同時(shí)也使得教師在教學(xué)方面得到了相當(dāng)大的幫助,提升了教學(xué)質(zhì)量。2)在本軟件通用于各種屏幕大小的iOS設(shè)備上(iOS6.0及以上),為廣大師生的使用提供了便利。3)在軟件核心算法方面,使用了最小二乘法[8]等較為可靠的方法處理實(shí)驗(yàn)數(shù)據(jù),提升了實(shí)驗(yàn)結(jié)論的可信度。
圖4 密立根油滴實(shí)驗(yàn)數(shù)據(jù)輸入界面(輸入錯(cuò)誤數(shù)據(jù))
圖5 密立根油滴實(shí)驗(yàn)結(jié)果分組顯示界面(有錯(cuò)誤提示)
[1]劉一道.iOS 7:iPhone/iPad應(yīng)用開(kāi)發(fā)技術(shù)詳解[M].北京:機(jī)械工業(yè)出版社,2013.
[2]Stephen G.Kochan.Objective-C程序設(shè)計(jì) [M].6版.北京:電子工業(yè)出版社,2012.
[3][美]Suzanne Ginsburg.iPhone應(yīng)用用戶體驗(yàn)設(shè)計(jì)實(shí)戰(zhàn)與實(shí)例[M].師蓉,譯.北京:機(jī)械工業(yè)出版社,2011.
[4]尹福斌,祁春利,李曉麗.iOS技術(shù)在教育行業(yè)中的應(yīng)用淺析[J].工業(yè)和信息化教育,2013(4):70-73.
[5]陳佳霖.iOS平臺(tái)應(yīng)用程序安全性研究[D].上海:上海交通大學(xué)信息與安全工程學(xué)院,2014.
[6]朱元波.iOS8案例開(kāi)發(fā)大全[M].北京:人民郵電出版社,2015.
[7][美]Christian Keur.iOS編程[M].4版.丁道駿,譯.湖北:華中科技大學(xué)出版社,2015.
[8]劉振學(xué).實(shí)驗(yàn)設(shè)計(jì)與數(shù)據(jù)處理[M].2版.北京:化學(xué)工業(yè)出版社,2015.
【相關(guān)參考文獻(xiàn)鏈接】
呂存璞,葉明,姚志遠(yuǎn).基于NiosⅡ的超聲電機(jī)驅(qū)動(dòng)控制電路[J].2014,22(2):88-90,94.
王彤,馬建倉(cāng),秦濤,等.基于DSP/BIOS多線程的小型組合導(dǎo)航系統(tǒng)設(shè)計(jì)[J].2014,22(13):81-83.
宋偉,張順盛,李正軍,趙占鋒.基于NiosⅡ的模塊化EI源控制系統(tǒng)[J].2015,23(4):8-10.
朱思鳴.基于IOS系統(tǒng)的影視制作學(xué)習(xí)系統(tǒng)頁(yè)面開(kāi)發(fā)[J].2015,23(18):74-76.
王瑜,閆沫.基于LabWindows CVI的扭矩扳手?jǐn)?shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].2014,22(1):51-53.
段宗濤,程豪,康軍.基于數(shù)據(jù)融合的多傳感器實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)[J].2014,22(7):43-46.
魏永星,于金花,常哲,等.海洋環(huán)境噪聲數(shù)據(jù)處理及時(shí)空特性研究[J].2014,22(14):28-30.
馬苗,朱巖.基于CCSDS標(biāo)準(zhǔn)的衛(wèi)星數(shù)據(jù)處理軟件設(shè)計(jì)[J].2015,23(1):16-20.
王楠,盧逸斌,王衛(wèi)楠,等.基于XTCE標(biāo)準(zhǔn)的通用型航天器系統(tǒng)數(shù)據(jù)處理方法研究[J].2015,23(9):119-122.
呂睿.計(jì)算機(jī)數(shù)據(jù)處理的運(yùn)算速度影響因素探討[J].2015,23(12):49-51.
徐文螢,吳汛,孫立.基于Qt環(huán)境下物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].2015,23(22):111-113.
傅琳潔,林凌,李剛.光譜儀在無(wú)創(chuàng)血液成分研究中的數(shù)據(jù)處理[J].2016,24(1):1-4.
沈琦,陳博.基于大數(shù)據(jù)處理的ETL框架的研究與設(shè)計(jì)[J].2016,24(2):25-27.
安恒煊,張學(xué)習(xí),李超,等.一種基于AdaBoost人臉檢測(cè)算法在Android平臺(tái)的實(shí)現(xiàn)[J].2014,22(8):126-130.
高丙坤,趙勇.基于Android系統(tǒng)的機(jī)頂盒及其搖控器的設(shè)計(jì)與實(shí)現(xiàn)[J].2014,22(15):153-154.
林向南,何嶺松.基于Android的智能輪椅設(shè)計(jì)與實(shí)現(xiàn)[J].2014,22(19):14-17.
李寧寧,王遠(yuǎn)飛,張冉.基于Android的校園應(yīng)用軟件開(kāi)發(fā)與實(shí)現(xiàn)[J].2014,22(20):111-114.
弋改珍,江蕭,袁嵐清.基于Android平臺(tái)課堂點(diǎn)名系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].2014,22(22):1-3.
李琪,秦會(huì)斌,楊永舒,等.基于Android平臺(tái)的智能家居系統(tǒng)設(shè)計(jì)[J].2014,22(24):52-54.
Physical data processing system design and implementation based on iOS environment
WU Xun,SUN Li,LIU Xiang,XU Wen-ying
(College of Science,Nanjing University of Aeronautics and Astronautics,Nanjing 211100,China)
Due to the rapidly development of Mobile Internet with smartphones as carriers and the complexity and effectiveness of data processing in physical experiments,a processing platform for the calculation and analysis of a series of experimental data has been developed under the Objective-C programming environment which is provided by Xcode,an iOS oriented programming tools.The platform meets the data processing requirements in college physical experiments,and can run on iPhone and iPad (iOS6.0 above).After has been released officially in App Store for download,the platform makes the data being processed conveniently and effectively by its using in the college physical experiments teaching.It is estimated that the stint of data processing has been shortened by 65.7%,and the maintenance cost for computer labs cut by 35.9%,which have helped achieve informatization in processing experimental data in real terms.
iOS;data processing;experiment of college physics;Multi-platform
TN99
A
1674-6236(2016)15-0067-04
2015-07-20 稿件編號(hào):201507141
吳 汛(1994—),男,浙江舟山人。研究方向:應(yīng)用物理。