段芙蓉 易小波
摘要:基于云平臺的安卓白板演示系統(tǒng)包括云平臺的服務(wù)端和安卓客戶端兩個部分,是一個便于遠程溝通與演示的輔助工具,其中,客戶端是基于Android Studio平臺利用Java語言開發(fā)實現(xiàn)的,實現(xiàn)了文本輸入、自由書寫、簡單圖形繪制、圖元顏色選擇、重點標(biāo)記、擦除等繪制功能以及與服務(wù)端通信的功能。服務(wù)端是利用C++的Socket技術(shù)實現(xiàn)與客戶端的通信并且對客戶端的權(quán)限進行管理,從而實現(xiàn)同一網(wǎng)絡(luò)中電腦終端與安卓智能設(shè)備的通訊互聯(lián)和白板演示的功能。
關(guān)鍵詞:電子白板;安卓;套接字
中圖分類號:TP311? ? ? ? 文獻標(biāo)識碼:A? ? ? ? 文章編號:1009-3044(2018)31-0065-02
近年來,隨著計算機技術(shù)的飛速發(fā)展,智能電子產(chǎn)品越發(fā)普及,人們對便利的多媒體交互方式有了更多的新需求。傳統(tǒng)利用QQ等即時通信(IM)軟件雖然具備了白板演示的功能,但是畢竟是一個通用的工具,無法滿足某些專業(yè)交流領(lǐng)域的需求。本文以阿里云服務(wù)器和多臺安卓設(shè)備進行白板操作為例,來模擬多方遠程通信的白板演示功能,在圖形繪制方面實現(xiàn)了QQ電子白板的各種圖形元素的繪制功能,并將這些繪制信息序列化JSON字符串,發(fā)送給公網(wǎng)上的服務(wù)器,服務(wù)器則實現(xiàn)繪制信息的同步轉(zhuǎn)發(fā),從而實現(xiàn)了每個客戶端的同步顯示。
系統(tǒng)功能包括:
1)文本輸入、自由書寫、簡單圖形框繪制、繪制工具的顏色選擇、重點標(biāo)記、擦除等圖元和文本的繪制功能;
2)文件保存和讀取等功能,實現(xiàn)離線書寫板書內(nèi)容,保存在手機SD卡上,隨時讀取顯示等存儲功能;
3)安卓智能設(shè)備之間、智能設(shè)備與電腦之間的套接字通信以及多線程處理等功能;
4)開發(fā)了遠程代理下C++服務(wù)端,解決了多人交互過程中權(quán)限管理問題。
1 安卓端圖形繪制模塊的設(shè)計
客戶端是基于Android Studio平臺利用Java語言開發(fā)實現(xiàn)的,繪制功能包括文本、自由畫筆、直線、矩形和橢圓等圖元的繪制,以及圖元顏色更換、文字大小,圖元邊框粗細等設(shè)置功能。依據(jù)面向?qū)ο蟮乃枷朐O(shè)計純虛基類LGISDraw集成了各個圖元的共有屬性,然后利用多態(tài)的思想派生出5個子類:LGISText(文本)、LGISPLine(自由畫筆)、LGISLine(直線)、LGISRect(矩形)、 LGisCircle(橢圓),實現(xiàn)各個子類獨特的功能和屬性。類圖結(jié)構(gòu)如下圖4所示:
安卓客戶端的用戶每次繪制都定義為以上圖元類的一個對象,首先將繪制的對象進行JSON序列化處理,然后利用通信模塊把對應(yīng)的字符串傳輸?shù)椒?wù)端,服務(wù)端將該字符串轉(zhuǎn)發(fā)到每個客戶端,最后,其他客戶端將接收到的JSON字符串反序列化重建對象,實現(xiàn)圖元的同步繪制,由此實現(xiàn)同步演示的功能。
2通信功能模塊的實現(xiàn)
本系統(tǒng)把Android控制端稱為客戶端,PC演示端稱為服務(wù)器,為了提高服務(wù)器的效率服務(wù)器采用封裝的C++WSASocket類來實現(xiàn)通信。雖然兩者實現(xiàn)Socket通信的開發(fā)平臺不同,但是底層的通信協(xié)議允許,藍牙通信的實現(xiàn)機制也是相同的。客戶端和服務(wù)器通信類的設(shè)計分別如下圖2和圖3所示:
3 系統(tǒng)實現(xiàn)
客戶端啟動后,最開始進入的是使用模式選擇界面,其中離線模式是為了方便用戶預(yù)先編輯和保存好演示內(nèi)容,以便在演示時隨時調(diào)入。遠程代理模式和WIFI會議模式需要手動輸入服務(wù)器的IP和地址與服務(wù)端進行連接。
客戶端與服務(wù)器連接成功后就進入了用戶編輯界面,為了方便用戶的編輯,系統(tǒng)提供了一些常見的圖元編輯工具,如:直線、文本、矩形、圓形以及自由書寫圖元等。系統(tǒng)也提供了設(shè)置圖元顏色和線條粗細的功能??蛻舳司庉嫿缑嫒鐖D4所示:
用戶手動輸入服務(wù)器的IP地址與端口號,點擊登錄按鈕手動與服務(wù)器建立連接如下圖5所示。
兩個客戶端連接上同一個服務(wù)器之后雙方編輯的內(nèi)容JSON序列化后通過通信模塊傳輸?shù)竭h程服務(wù)器,服務(wù)器將收發(fā)到的JSON轉(zhuǎn)發(fā)給另外一個客戶端,另外一個客戶端收到JSON數(shù)據(jù)之后反序列化轉(zhuǎn)化成圖元模塊繪制在自己的白板上:
4結(jié)束語
本文完成了基于 Android平臺的電子白板系統(tǒng)的開發(fā),其中包括客戶端和服務(wù)器端兩部分,根據(jù)不同的應(yīng)用場景分別完成了會議模式和遠程代理模式的功能實現(xiàn)。系統(tǒng)實現(xiàn)完成后并且進行了相應(yīng)的功能測試與性能測試,測試結(jié)果表明,該系統(tǒng)的具有較強的實用性和穩(wěn)定性,具有很廣泛的應(yīng)用價值。 同時本系統(tǒng)也能夠為廣大的 Android 平臺程序開發(fā)者實現(xiàn)網(wǎng)絡(luò)以及圖形化操作提供了參考。
參考文獻:
[1] 姚昱旻,劉衛(wèi)國.Android 的架構(gòu)與應(yīng)用開發(fā)研究[J].計算機系統(tǒng)應(yīng)用,2008(11):110-112,24.
[2] 王培海.基于 Android 的移動云存儲系統(tǒng)設(shè)計與實現(xiàn)[J].電視技術(shù),2011,35(15):94.
[3] 楊豐盛.Android 應(yīng)用開發(fā)揭秘[M].北京:機械工業(yè)出版社,2010.
[4] 李俊華.XMPP環(huán)境下的網(wǎng)絡(luò)交互式電子白板研究與開發(fā)[J].閩江學(xué)院學(xué)報,2010,31(5):50-52.
[5] 孫東.電子白板在遠程教育應(yīng)用中的關(guān)鍵技術(shù)研究及實現(xiàn)[D].北京:解放軍信息工程大學(xué),2008.
[6] 董冠濤.紅外線感應(yīng)電子白板的設(shè)計與實現(xiàn)[碩士學(xué)位論].長春:吉林大學(xué),2009.
[7] Satoru Fujii,Jun Iwata, Kouji Yoshida.Development? of? a? Remote Communication System for Computer Novices and Their Instructors[J].Lecture Notes in Computer Science,2009.
[8] Valerie Quashie.How interactive is the interactive whiteboard[J].Mathematies Teaching,2009.