劉偉鋒 張連波
摘要:隨著計算機及Internet技術的飛速發(fā)展,便攜式智能設備的應用變得普遍,而Android系統(tǒng)由于其開源性,更是得到了廣大開發(fā)者的青睞。針對多設備的協(xié)同交互問題,設計了無線局域網(wǎng)內(nèi)多Android設備協(xié)同交互系統(tǒng)。首先分析了交互系統(tǒng)功能及其涉及的Android開發(fā)技術,接著進行了人機交互設計,最終實現(xiàn)了Android設備間的圖片、視頻及控制命令的無線傳輸,從而完成不同Android設備之間的協(xié)同控制與交互功能。實際應用表明,該實驗系統(tǒng)能夠完成多設備的協(xié)同交互與控制,增強教學的趣味性和吸引力。
關鍵詞:多Android設備;協(xié)同交互;無線傳輸;系統(tǒng)設計;智能設備
中圖分類號:TP311 文獻標識碼:A 文章編號: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
隨著計算機嵌入式系統(tǒng)以及Internet的迅速發(fā)展,便攜式智能設備例如手機、平板電腦等已變得普遍,基于智能設備的操作系統(tǒng)開發(fā)也受到了廣泛的關注。近年來常見的操作系統(tǒng)有Android、iOS、Symbian、Windows Phone和BlackBerry等。其中Android系統(tǒng)基于Linux內(nèi)核,以Java為編程語言,完全開放開源,從第一版Cupcake發(fā)布到最新的KitKat(Android 4.4),Android操作系統(tǒng)不斷完善,越加成熟。Android設備集成了眾多的傳感器,結合Android操作系統(tǒng)不斷完善對各種設備和傳感器的支持,使得Android設備的功能越來越豐富,也方便了眾多的Android開發(fā)人員開發(fā)越來越強大的功能,特別是Android的開源特性賦予了其高度可定制的優(yōu)點,吸引了大批的國內(nèi)外開發(fā)者,開發(fā)了數(shù)以億計的Android應用[1-5]。
目前大多數(shù)的Android應用開發(fā)都基于單一設備,而便攜式智能設備的廣泛使用對多設備之間協(xié)同交互的需求越來越迫切?;诖耍O計了一種無線局域網(wǎng)內(nèi)多Android設備協(xié)同交互實驗系統(tǒng)。首先分析了交互系統(tǒng)功能及其涉及的Android開發(fā)技術,接著進行了人機交互界面以及相關功能設計,最終通過多Android設備間的圖片、視頻及控制命令的無線傳輸,完成不同Android設備之間的協(xié)同控制與交互。將智能系統(tǒng)應用開發(fā)引入到大學生實驗系統(tǒng)設計中,能夠增強實驗趣味性,激發(fā)學生的學習興趣,進而培養(yǎng)學生的動手能力、創(chuàng)新能力。
1 Android系統(tǒng)應用開發(fā)簡介
從開發(fā)的角度來看,Android是一個軟件集,它包括一個操作系統(tǒng)、中間件和相關應用程序。Android SDK提供了在Android平臺上使用Java語言進行應用開發(fā)必需的工具和API接口[1,3]。
Android依賴Linux內(nèi)核提供核心服務,包括安全機制、內(nèi)存管理、進程管理、網(wǎng)絡、硬件驅(qū)動等?;贚inux內(nèi)核,Android提供了多個程序庫和運行時環(huán)境,利用Android提供的程序庫可以方便進行多媒體(圖片、視頻)操作,Web控制,數(shù)據(jù)庫讀取以及圖形顯示等。而運行時環(huán)境運行在Dalvik Java 虛擬機上,主要提供Java功能。除了基于Linux的系統(tǒng)核心以及各種程序庫和運行時環(huán)境,Android還提供了應用框架以及部分核心應用,應用框架允許開發(fā)者使用Java編寫應用程序,并能夠充分的訪問所有核心應用的API,簡化組件的重用。部分核心應用包括智能設備常見的核心應用,比如聯(lián)系人、電子郵件、日歷、電話等。
綜上Android的系統(tǒng)構架如圖1所示,可見Android為開發(fā)者提供了包括硬件驅(qū)動、網(wǎng)絡連接、數(shù)據(jù)庫、多媒體操作、人機交互以及開發(fā)工具集,可以方便的進行應用開發(fā)。
2 實驗系統(tǒng)功能設計
本實驗系統(tǒng)基于Android操作系統(tǒng),以圖片和視頻為對象,完成多個Android設備間的圖片或視頻的傳輸,不同設備間對同一圖片或視頻進行協(xié)同控制等。結合Android操作系統(tǒng)的人機界面,功能設計如下。
1) 上線檢測功能:系統(tǒng)啟動時,向局域網(wǎng)內(nèi)廣播本系統(tǒng)的地址,系統(tǒng)運行時,檢測其他設備的上線及地址信息等并進行圖形化顯示。
2) 圖片或視頻傳輸:在待機界面,打開某一操作對象(例如圖片或視頻文件),按住改操作對象,向界面顯示的另一設備圖標滑動,則將對象發(fā)送到相應的Android設備。
3) 圖片或視頻遠程控制:當多臺設備打開同一操作對象時,控制一臺設備,對其他設備的對象進行操作(例如圖片的縮放、視頻的播放控制等)。
4) 圖片或視頻的協(xié)同控制:多臺設備可以對同一對象進行操作,比如多臺設備協(xié)同顯示較大尺寸的圖像,或同步播放相同的視頻。
實際中,為了保障實驗的可行性,設計了基本的實驗操作流程供學生參考,具體如下:
1) 連接WiFi,保證不同Android設備位于同一無線局域網(wǎng),并將設計程序安裝到設備中;
2) 打開設備中的的應用,在屏幕右上角顯示本機IP地址,當其他設備應用打開后,同時顯示其他設備的IP地址;
3) 點擊菜單鍵(或其他操作)加載圖片(或視頻);
4) 按住圖片,將其向屏幕中其他某一設備進行滑動,將圖片發(fā)送至相應設備,并在接收設備中進行接收和圖片顯示(滑動操作可以有慣性移動效果);
5) 當不同設備打開同一圖片時,雙擊其中一設備圖片,其他設備中圖片會放大,再次雙擊,圖片縮小;
6) 當不同設備打開同一圖片時,雙指按住其中一設備圖片進行伸縮,各設備中的圖片隨之縮放;
7) 兩臺設備同時顯示一張圖片,在一設備中滑動圖片控制不同設備的顯示比例;
8) 當不同設備打開同一視頻時,通過調(diào)整其中一設備的播放進度,其他設備中視頻播放進度進行同步。
3 實驗系統(tǒng)實現(xiàn)方案分析
Android系統(tǒng)開發(fā)環(huán)境配置主要包括:1) JDK安裝;2) Android開發(fā)工具安裝與配置;3) 創(chuàng)建Android虛擬機(AVD)[5] 。
3.1 JDK安裝與配置
由于Android系統(tǒng)開發(fā)使用Java語言,因此首先需要安裝Java開發(fā)環(huán)境JDK,將JDK安裝到相應位置,并進行環(huán)境變量設置。
右鍵點擊“我的電腦”并依次選擇“屬性→高級→環(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虛擬機(AVD)
為使Android應用程序可以在模擬器上運行,必須創(chuàng)建Android 虛擬機(AVD)。在Eclipse中。選擇Windows > Android SDK Manager,下載相應版本的開發(fā)包(每發(fā)布一個新的Android版本就會有一個新的包)安裝之后就可以創(chuàng)建相應版本的Android虛擬機了。
在Eclipse中。選擇Windows > Android Virtual Manager,選擇一個設備(Device)(如圖4) 就可建立相應的Android虛擬機。設置好相關參數(shù)并啟動,就完成了Android系統(tǒng)的開發(fā)環(huán)境配置,可以模擬相應的Android系統(tǒng)版本并進行應用開發(fā)了,圖5為模擬的Android 2.3.3版本的啟動界面。
3.4 系統(tǒng)功能實現(xiàn)方案
設同一無線局域網(wǎng)內(nèi)有2臺Android設備A和B,本系統(tǒng)需要完成的核心功能包括:1) A、B設備之間的數(shù)據(jù)(圖片或視頻)發(fā)送與接收;2) 通過一臺設備A控制另一臺設備B的圖片(或視頻)的顯示與播放;3) A、B設備協(xié)同工作,共同顯示一張圖片或同步播放同一視頻。
協(xié)同交互系統(tǒng)的關鍵是不同設備之間的控制命令及數(shù)據(jù)的發(fā)送與接收。利用無線網(wǎng)絡傳輸技術可以使用TCP Socket和UDP Socket實現(xiàn)圖片傳輸和操控命令的收發(fā),兩種Socket通信模型如圖6所示。
協(xié)同交互系統(tǒng)的另一關鍵是命令傳輸與控制方式, Android操作系統(tǒng)支持觸屏功能,通過不同的手勢動作進行不同的對象控制,通過Android SDK提供了大量的函數(shù)庫(例如Activity類、SimpleOnGestureListener類等),能夠完成滑動、點擊、雙指縮放等手勢動作的識別。
最后,針對不同的控制對象,其需要的操作函數(shù)也不相同,例如對于圖片以及視頻的顯示與播放需要利用Imageview控件以及videoview的相關函數(shù),對于多任務的操作需要利用多線程編程技術等。
綜上,以圖片或視頻為控制對象的多Android設備的協(xié)同交互系統(tǒng)涉及TCP Socket,UDP Socket,Handle消息傳遞,多線程技術,手勢識別,Imageview、VideoView等多種技術的綜合使用。具體地,1) 使用UDP Socket實現(xiàn)了設備的上線通知檢測;2) 使用TCP Socket技術實現(xiàn)了數(shù)據(jù)以及操控命令的收發(fā);3) 使用Handle消息傳遞機制實現(xiàn)了對消息的類間傳遞和處理;4) 使用多線程編程技術實現(xiàn)了跨UI線程的網(wǎng)絡傳輸;5) 使用多點手勢識別實現(xiàn)了圖片的雙擊縮放,兩指自由縮放,滑動發(fā)送等涉及UI界面上圖片操作的實現(xiàn);6) 使用Imageview、VideoView等圖片視頻相關操作技術實現(xiàn)了圖片的顯示及縮放、視頻的播放及進度調(diào)整等功能。
圖9為系統(tǒng)開發(fā)效果示例,其中圖9(1) 是通過滑動一設備圖片將其發(fā)送至另一設備中,圖9(2) 是通過兩指自由縮放操作另一設備圖片顯示,圖9(3) 是兩臺設備協(xié)同顯示同一張圖片以及不同設備的視頻協(xié)同操作功能。
4 實驗系統(tǒng)應用效果
培養(yǎng)大學生的創(chuàng)新精神,實驗教學不能僅僅驗證理論知識,更需要讓學生參與到實驗設計中,在實驗設計過程中提高實踐能
力[6-9]。所開發(fā)的系統(tǒng)首次應用于中國石油大學(華東)大學生創(chuàng)新實驗設計中即受到廣大學生的歡迎,通過該系統(tǒng)設計實驗,使學生掌握了Android系統(tǒng)開發(fā)流程及系統(tǒng)設計方法,Android系統(tǒng)靈活的人機交互方式,比傳統(tǒng)的鼠標鍵盤操作更能激發(fā)學生的學習興趣及創(chuàng)新思維,在該系統(tǒng)設計實驗的啟發(fā)下,很多同學提出了便攜式導航軟件系統(tǒng),智能聽診器,智能導盲手杖,智能汽車安全預警系統(tǒng)等眾多新的想法與設計思路,真正培養(yǎng)了學生的動手能力及創(chuàng)新能力。
5 結束語
《國家中長期教育改革和發(fā)展規(guī)劃綱要(2010-2020年)》[10] 要求“優(yōu)化知識結構,豐富社會實踐,強化能力培養(yǎng)。著力提高學生的學習能力、實踐能力、創(chuàng)新能力”。中國石油大學(華東)亦全面實施了本科“質(zhì)量工程”建設,以培養(yǎng)學生能力為目標,提出了“三三三”本科培養(yǎng)體系[11-12]。本系統(tǒng)是中國石油大學(華東)電子信息類教學實驗模式改革的一個嘗試,將流行的Android系統(tǒng)開發(fā)引入到大學生創(chuàng)新實驗設計中,使學生了解了學科發(fā)展前沿,開過了學生的專業(yè)視野,增加了學生的學習興趣,鍛煉了學生的動手能力,激發(fā)了學生的創(chuàng)新思維,收到了良好的實驗效果。
參考文獻:
[1] 克曼特內(nèi)呢,麥克萊恩,哈希米.精通Android 3[M].楊越,譯.北京:人民郵電出版社,2011.
[2] 梅爾.Android 2高級編程[M].王超,譯.北京:清華大學出版社,2010.
[3] 李剛.瘋狂Android講義[M]. 2版.北京:電子工業(yè)出版社,2013.
[4] 郭宏志.Android應用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[5] 陳強.Android實例開發(fā)完全手冊[M].北京:人民郵電出版社,2012.
[6] 鄭春龍,邵紅艷,鐘振余.等.創(chuàng)新性開放實驗項目建設的探索與實踐[J] .實驗技術與管理,2009,26(10) :15-17,20.
[7] 張建功.新形勢下高校實驗室管理工作探析[J].實驗技術與管理,2006,23(9) :112-115.
[8] 陽太林.以學生創(chuàng)新能力的培養(yǎng)為中心改革高校實驗教學[J].實驗技術與管理,2005,22(10): 34-38,41.
[9] 張友琴,王萍,朱昌平,等.以大學生創(chuàng)新性實驗計劃為契機培養(yǎng)創(chuàng)新型人才[J].實驗技術與管理,2011,28(7) :167-170,212.
[10] 教育部. 國家中長期教育改革和發(fā)展規(guī)劃綱要(2010-2020單行本)[M]. 北京:人民出版社,2010.
[11] 劉華東. 培養(yǎng)高素質(zhì)人才是高校的第一要務[J].中國高教研究,2012(7) :69-71.
[12] 劉華東.高水平研究型大學視角下的本科教育[J].中國石油大學學報:社會科學版,2013,29(5):154-160.