劉偉鋒 張連波
摘要:隨著計(jì)算機(jī)及Internet技術(shù)的飛速發(fā)展,便攜式智能設(shè)備的應(yīng)用變得普遍,而Android系統(tǒng)由于其開源性,更是得到了廣大開發(fā)者的青睞。針對(duì)多設(shè)備的協(xié)同交互問(wèn)題,設(shè)計(jì)了無(wú)線局域網(wǎng)內(nèi)多Android設(shè)備協(xié)同交互系統(tǒng)。首先分析了交互系統(tǒng)功能及其涉及的Android開發(fā)技術(shù),接著進(jìn)行了人機(jī)交互設(shè)計(jì),最終實(shí)現(xiàn)了Android設(shè)備間的圖片、視頻及控制命令的無(wú)線傳輸,從而完成不同Android設(shè)備之間的協(xié)同控制與交互功能。實(shí)際應(yīng)用表明,該實(shí)驗(yàn)系統(tǒng)能夠完成多設(shè)備的協(xié)同交互與控制,增強(qiáng)教學(xué)的趣味性和吸引力。
關(guān)鍵詞:多Android設(shè)備;協(xié)同交互;無(wú)線傳輸;系統(tǒng)設(shè)計(jì);智能設(shè)備
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)25-5890-05
Design of Cooperative Interaction Experimental System on Multiple Devices of Android
LIU Wei-feng,ZHANG Lian-bo
(College of Information and Control Engineering, China University of Petroleum(East China), Qingdao 266580, China)
Abstract: With the rapid development of computer and Internet technology, applications of portable smart devices become accessible to people. Due to its open-source merit, development on Android attracts more and more attention. Considering the cooperative interaction of multiple devices, a system under the same wireless local area network is designed on multiple Android devices. Firstly, systemic functions and related Android technologies are analyzed. Then the human computer interfaces are designed. Finally, the functions of cooperative control and interaction on multiple Android devices are implemented through wireless transmission of pictures, videos and control commands between different devices. The conducted experiment demonstrates that the designed experimental system can implement cooperative interaction and enhance teaching interesting and attractive
Key words: Multiple Android devices; cooperative interaction; wireless transmission; system design; smart device
隨著計(jì)算機(jī)嵌入式系統(tǒng)以及Internet的迅速發(fā)展,便攜式智能設(shè)備例如手機(jī)、平板電腦等已變得普遍,基于智能設(shè)備的操作系統(tǒng)開發(fā)也受到了廣泛的關(guān)注。近年來(lái)常見(jiàn)的操作系統(tǒng)有Android、iOS、Symbian、Windows Phone和BlackBerry等。其中Android系統(tǒng)基于Linux內(nèi)核,以Java為編程語(yǔ)言,完全開放開源,從第一版Cupcake發(fā)布到最新的KitKat(Android 4.4),Android操作系統(tǒng)不斷完善,越加成熟。Android設(shè)備集成了眾多的傳感器,結(jié)合Android操作系統(tǒng)不斷完善對(duì)各種設(shè)備和傳感器的支持,使得Android設(shè)備的功能越來(lái)越豐富,也方便了眾多的Android開發(fā)人員開發(fā)越來(lái)越強(qiáng)大的功能,特別是Android的開源特性賦予了其高度可定制的優(yōu)點(diǎn),吸引了大批的國(guó)內(nèi)外開發(fā)者,開發(fā)了數(shù)以億計(jì)的Android應(yīng)用[1-5]。
目前大多數(shù)的Android應(yīng)用開發(fā)都基于單一設(shè)備,而便攜式智能設(shè)備的廣泛使用對(duì)多設(shè)備之間協(xié)同交互的需求越來(lái)越迫切。基于此,設(shè)計(jì)了一種無(wú)線局域網(wǎng)內(nèi)多Android設(shè)備協(xié)同交互實(shí)驗(yàn)系統(tǒng)。首先分析了交互系統(tǒng)功能及其涉及的Android開發(fā)技術(shù),接著進(jìn)行了人機(jī)交互界面以及相關(guān)功能設(shè)計(jì),最終通過(guò)多Android設(shè)備間的圖片、視頻及控制命令的無(wú)線傳輸,完成不同Android設(shè)備之間的協(xié)同控制與交互。將智能系統(tǒng)應(yīng)用開發(fā)引入到大學(xué)生實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)中,能夠增強(qiáng)實(shí)驗(yàn)趣味性,激發(fā)學(xué)生的學(xué)習(xí)興趣,進(jìn)而培養(yǎng)學(xué)生的動(dòng)手能力、創(chuàng)新能力。
1 Android系統(tǒng)應(yīng)用開發(fā)簡(jiǎn)介
從開發(fā)的角度來(lái)看,Android是一個(gè)軟件集,它包括一個(gè)操作系統(tǒng)、中間件和相關(guān)應(yīng)用程序。Android SDK提供了在Android平臺(tái)上使用Java語(yǔ)言進(jìn)行應(yīng)用開發(fā)必需的工具和API接口[1,3]。
Android依賴Linux內(nèi)核提供核心服務(wù),包括安全機(jī)制、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)、硬件驅(qū)動(dòng)等?;贚inux內(nèi)核,Android提供了多個(gè)程序庫(kù)和運(yùn)行時(shí)環(huán)境,利用Android提供的程序庫(kù)可以方便進(jìn)行多媒體(圖片、視頻)操作,Web控制,數(shù)據(jù)庫(kù)讀取以及圖形顯示等。而運(yùn)行時(shí)環(huán)境運(yùn)行在Dalvik Java 虛擬機(jī)上,主要提供Java功能。除了基于Linux的系統(tǒng)核心以及各種程序庫(kù)和運(yùn)行時(shí)環(huán)境,Android還提供了應(yīng)用框架以及部分核心應(yīng)用,應(yīng)用框架允許開發(fā)者使用Java編寫應(yīng)用程序,并能夠充分的訪問(wèn)所有核心應(yīng)用的API,簡(jiǎn)化組件的重用。部分核心應(yīng)用包括智能設(shè)備常見(jiàn)的核心應(yīng)用,比如聯(lián)系人、電子郵件、日歷、電話等。
綜上Android的系統(tǒng)構(gòu)架如圖1所示,可見(jiàn)Android為開發(fā)者提供了包括硬件驅(qū)動(dòng)、網(wǎng)絡(luò)連接、數(shù)據(jù)庫(kù)、多媒體操作、人機(jī)交互以及開發(fā)工具集,可以方便的進(jìn)行應(yīng)用開發(fā)。
2 實(shí)驗(yàn)系統(tǒng)功能設(shè)計(jì)
本實(shí)驗(yàn)系統(tǒng)基于Android操作系統(tǒng),以圖片和視頻為對(duì)象,完成多個(gè)Android設(shè)備間的圖片或視頻的傳輸,不同設(shè)備間對(duì)同一圖片或視頻進(jìn)行協(xié)同控制等。結(jié)合Android操作系統(tǒng)的人機(jī)界面,功能設(shè)計(jì)如下。
1) 上線檢測(cè)功能:系統(tǒng)啟動(dòng)時(shí),向局域網(wǎng)內(nèi)廣播本系統(tǒng)的地址,系統(tǒng)運(yùn)行時(shí),檢測(cè)其他設(shè)備的上線及地址信息等并進(jìn)行圖形化顯示。
2) 圖片或視頻傳輸:在待機(jī)界面,打開某一操作對(duì)象(例如圖片或視頻文件),按住改操作對(duì)象,向界面顯示的另一設(shè)備圖標(biāo)滑動(dòng),則將對(duì)象發(fā)送到相應(yīng)的Android設(shè)備。
3) 圖片或視頻遠(yuǎn)程控制:當(dāng)多臺(tái)設(shè)備打開同一操作對(duì)象時(shí),控制一臺(tái)設(shè)備,對(duì)其他設(shè)備的對(duì)象進(jìn)行操作(例如圖片的縮放、視頻的播放控制等)。
4) 圖片或視頻的協(xié)同控制:多臺(tái)設(shè)備可以對(duì)同一對(duì)象進(jìn)行操作,比如多臺(tái)設(shè)備協(xié)同顯示較大尺寸的圖像,或同步播放相同的視頻。
實(shí)際中,為了保障實(shí)驗(yàn)的可行性,設(shè)計(jì)了基本的實(shí)驗(yàn)操作流程供學(xué)生參考,具體如下:
1) 連接WiFi,保證不同Android設(shè)備位于同一無(wú)線局域網(wǎng),并將設(shè)計(jì)程序安裝到設(shè)備中;
2) 打開設(shè)備中的的應(yīng)用,在屏幕右上角顯示本機(jī)IP地址,當(dāng)其他設(shè)備應(yīng)用打開后,同時(shí)顯示其他設(shè)備的IP地址;
3) 點(diǎn)擊菜單鍵(或其他操作)加載圖片(或視頻);
4) 按住圖片,將其向屏幕中其他某一設(shè)備進(jìn)行滑動(dòng),將圖片發(fā)送至相應(yīng)設(shè)備,并在接收設(shè)備中進(jìn)行接收和圖片顯示(滑動(dòng)操作可以有慣性移動(dòng)效果);
5) 當(dāng)不同設(shè)備打開同一圖片時(shí),雙擊其中一設(shè)備圖片,其他設(shè)備中圖片會(huì)放大,再次雙擊,圖片縮?。?/p>
6) 當(dāng)不同設(shè)備打開同一圖片時(shí),雙指按住其中一設(shè)備圖片進(jìn)行伸縮,各設(shè)備中的圖片隨之縮放;
7) 兩臺(tái)設(shè)備同時(shí)顯示一張圖片,在一設(shè)備中滑動(dòng)圖片控制不同設(shè)備的顯示比例;
8) 當(dāng)不同設(shè)備打開同一視頻時(shí),通過(guò)調(diào)整其中一設(shè)備的播放進(jìn)度,其他設(shè)備中視頻播放進(jìn)度進(jìn)行同步。
3 實(shí)驗(yàn)系統(tǒng)實(shí)現(xiàn)方案分析
Android系統(tǒng)開發(fā)環(huán)境配置主要包括:1) JDK安裝;2) Android開發(fā)工具安裝與配置;3) 創(chuàng)建Android虛擬機(jī)(AVD)[5] 。
3.1 JDK安裝與配置
由于Android系統(tǒng)開發(fā)使用Java語(yǔ)言,因此首先需要安裝Java開發(fā)環(huán)境JDK,將JDK安裝到相應(yīng)位置,并進(jìn)行環(huán)境變量設(shè)置。
右鍵點(diǎn)擊“我的電腦”并依次選擇“屬性→高級(jí)→環(huán)境變量→系統(tǒng)變量”中添加以下環(huán)境變量:
JAVA_HOME: D:\Program Files\Java\jdk1.6.0_18(安裝JDK的目錄);
CLASSPATH: .; %JAVA_HOME%\lib\tools.jar; %JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\bin;
增加Path: %JAVA_HOME%\bin;
安裝完成之后,可以再檢查JDK是否安裝成功。打開cmd窗口,輸入java —version 查看JDK的版本信息。出現(xiàn)類似圖2的畫面表示JDK安裝成功。
3.3 創(chuàng)建Android虛擬機(jī)(AVD)
為使Android應(yīng)用程序可以在模擬器上運(yùn)行,必須創(chuàng)建Android 虛擬機(jī)(AVD)。在Eclipse中。選擇Windows > Android SDK Manager,下載相應(yīng)版本的開發(fā)包(每發(fā)布一個(gè)新的Android版本就會(huì)有一個(gè)新的包)安裝之后就可以創(chuàng)建相應(yīng)版本的Android虛擬機(jī)了。
在Eclipse中。選擇Windows > Android Virtual Manager,選擇一個(gè)設(shè)備(Device)(如圖4) 就可建立相應(yīng)的Android虛擬機(jī)。設(shè)置好相關(guān)參數(shù)并啟動(dòng),就完成了Android系統(tǒng)的開發(fā)環(huán)境配置,可以模擬相應(yīng)的Android系統(tǒng)版本并進(jìn)行應(yīng)用開發(fā)了,圖5為模擬的Android 2.3.3版本的啟動(dòng)界面。
3.4 系統(tǒng)功能實(shí)現(xiàn)方案
設(shè)同一無(wú)線局域網(wǎng)內(nèi)有2臺(tái)Android設(shè)備A和B,本系統(tǒng)需要完成的核心功能包括:1) A、B設(shè)備之間的數(shù)據(jù)(圖片或視頻)發(fā)送與接收;2) 通過(guò)一臺(tái)設(shè)備A控制另一臺(tái)設(shè)備B的圖片(或視頻)的顯示與播放;3) A、B設(shè)備協(xié)同工作,共同顯示一張圖片或同步播放同一視頻。
協(xié)同交互系統(tǒng)的關(guān)鍵是不同設(shè)備之間的控制命令及數(shù)據(jù)的發(fā)送與接收。利用無(wú)線網(wǎng)絡(luò)傳輸技術(shù)可以使用TCP Socket和UDP Socket實(shí)現(xiàn)圖片傳輸和操控命令的收發(fā),兩種Socket通信模型如圖6所示。
協(xié)同交互系統(tǒng)的另一關(guān)鍵是命令傳輸與控制方式, Android操作系統(tǒng)支持觸屏功能,通過(guò)不同的手勢(shì)動(dòng)作進(jìn)行不同的對(duì)象控制,通過(guò)Android SDK提供了大量的函數(shù)庫(kù)(例如Activity類、SimpleOnGestureListener類等),能夠完成滑動(dòng)、點(diǎn)擊、雙指縮放等手勢(shì)動(dòng)作的識(shí)別。
最后,針對(duì)不同的控制對(duì)象,其需要的操作函數(shù)也不相同,例如對(duì)于圖片以及視頻的顯示與播放需要利用Imageview控件以及videoview的相關(guān)函數(shù),對(duì)于多任務(wù)的操作需要利用多線程編程技術(shù)等。
綜上,以圖片或視頻為控制對(duì)象的多Android設(shè)備的協(xié)同交互系統(tǒng)涉及TCP Socket,UDP Socket,Handle消息傳遞,多線程技術(shù),手勢(shì)識(shí)別,Imageview、VideoView等多種技術(shù)的綜合使用。具體地,1) 使用UDP Socket實(shí)現(xiàn)了設(shè)備的上線通知檢測(cè);2) 使用TCP Socket技術(shù)實(shí)現(xiàn)了數(shù)據(jù)以及操控命令的收發(fā);3) 使用Handle消息傳遞機(jī)制實(shí)現(xiàn)了對(duì)消息的類間傳遞和處理;4) 使用多線程編程技術(shù)實(shí)現(xiàn)了跨UI線程的網(wǎng)絡(luò)傳輸;5) 使用多點(diǎn)手勢(shì)識(shí)別實(shí)現(xiàn)了圖片的雙擊縮放,兩指自由縮放,滑動(dòng)發(fā)送等涉及UI界面上圖片操作的實(shí)現(xiàn);6) 使用Imageview、VideoView等圖片視頻相關(guān)操作技術(shù)實(shí)現(xiàn)了圖片的顯示及縮放、視頻的播放及進(jìn)度調(diào)整等功能。
圖9為系統(tǒng)開發(fā)效果示例,其中圖9(1) 是通過(guò)滑動(dòng)一設(shè)備圖片將其發(fā)送至另一設(shè)備中,圖9(2) 是通過(guò)兩指自由縮放操作另一設(shè)備圖片顯示,圖9(3) 是兩臺(tái)設(shè)備協(xié)同顯示同一張圖片以及不同設(shè)備的視頻協(xié)同操作功能。
4 實(shí)驗(yàn)系統(tǒng)應(yīng)用效果
培養(yǎng)大學(xué)生的創(chuàng)新精神,實(shí)驗(yàn)教學(xué)不能僅僅驗(yàn)證理論知識(shí),更需要讓學(xué)生參與到實(shí)驗(yàn)設(shè)計(jì)中,在實(shí)驗(yàn)設(shè)計(jì)過(guò)程中提高實(shí)踐能
力[6-9]。所開發(fā)的系統(tǒng)首次應(yīng)用于中國(guó)石油大學(xué)(華東)大學(xué)生創(chuàng)新實(shí)驗(yàn)設(shè)計(jì)中即受到廣大學(xué)生的歡迎,通過(guò)該系統(tǒng)設(shè)計(jì)實(shí)驗(yàn),使學(xué)生掌握了Android系統(tǒng)開發(fā)流程及系統(tǒng)設(shè)計(jì)方法,Android系統(tǒng)靈活的人機(jī)交互方式,比傳統(tǒng)的鼠標(biāo)鍵盤操作更能激發(fā)學(xué)生的學(xué)習(xí)興趣及創(chuàng)新思維,在該系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)的啟發(fā)下,很多同學(xué)提出了便攜式導(dǎo)航軟件系統(tǒng),智能聽(tīng)診器,智能導(dǎo)盲手杖,智能汽車安全預(yù)警系統(tǒng)等眾多新的想法與設(shè)計(jì)思路,真正培養(yǎng)了學(xué)生的動(dòng)手能力及創(chuàng)新能力。
5 結(jié)束語(yǔ)
《國(guó)家中長(zhǎng)期教育改革和發(fā)展規(guī)劃綱要(2010-2020年)》[10] 要求“優(yōu)化知識(shí)結(jié)構(gòu),豐富社會(huì)實(shí)踐,強(qiáng)化能力培養(yǎng)。著力提高學(xué)生的學(xué)習(xí)能力、實(shí)踐能力、創(chuàng)新能力”。中國(guó)石油大學(xué)(華東)亦全面實(shí)施了本科“質(zhì)量工程”建設(shè),以培養(yǎng)學(xué)生能力為目標(biāo),提出了“三三三”本科培養(yǎng)體系[11-12]。本系統(tǒng)是中國(guó)石油大學(xué)(華東)電子信息類教學(xué)實(shí)驗(yàn)?zāi)J礁母锏囊粋€(gè)嘗試,將流行的Android系統(tǒng)開發(fā)引入到大學(xué)生創(chuàng)新實(shí)驗(yàn)設(shè)計(jì)中,使學(xué)生了解了學(xué)科發(fā)展前沿,開過(guò)了學(xué)生的專業(yè)視野,增加了學(xué)生的學(xué)習(xí)興趣,鍛煉了學(xué)生的動(dòng)手能力,激發(fā)了學(xué)生的創(chuàng)新思維,收到了良好的實(shí)驗(yàn)效果。
參考文獻(xiàn):
[1] 克曼特內(nèi)呢,麥克萊恩,哈希米.精通Android 3[M].楊越,譯.北京:人民郵電出版社,2011.
[2] 梅爾.Android 2高級(jí)編程[M].王超,譯.北京:清華大學(xué)出版社,2010.
[3] 李剛.瘋狂Android講義[M]. 2版.北京:電子工業(yè)出版社,2013.
[4] 郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[5] 陳強(qiáng).Android實(shí)例開發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2012.
[6] 鄭春龍,邵紅艷,鐘振余.等.創(chuàng)新性開放實(shí)驗(yàn)項(xiàng)目建設(shè)的探索與實(shí)踐[J] .實(shí)驗(yàn)技術(shù)與管理,2009,26(10) :15-17,20.
[7] 張建功.新形勢(shì)下高校實(shí)驗(yàn)室管理工作探析[J].實(shí)驗(yàn)技術(shù)與管理,2006,23(9) :112-115.
[8] 陽(yáng)太林.以學(xué)生創(chuàng)新能力的培養(yǎng)為中心改革高校實(shí)驗(yàn)教學(xué)[J].實(shí)驗(yàn)技術(shù)與管理,2005,22(10): 34-38,41.
[9] 張友琴,王萍,朱昌平,等.以大學(xué)生創(chuàng)新性實(shí)驗(yàn)計(jì)劃為契機(jī)培養(yǎng)創(chuàng)新型人才[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(7) :167-170,212.
[10] 教育部. 國(guó)家中長(zhǎng)期教育改革和發(fā)展規(guī)劃綱要(2010-2020單行本)[M]. 北京:人民出版社,2010.
[11] 劉華東. 培養(yǎng)高素質(zhì)人才是高校的第一要?jiǎng)?wù)[J].中國(guó)高教研究,2012(7) :69-71.
[12] 劉華東.高水平研究型大學(xué)視角下的本科教育[J].中國(guó)石油大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2013,29(5):154-160.