譚乃抗
(東莞理工學校,廣東 東莞 523000)
引言
在開發(fā)物聯(lián)網(wǎng)系統(tǒng)人機界面的眾多方式中,安卓(Android)程序是當前的最好選擇。本校的物聯(lián)網(wǎng)課程也選中安卓程序開發(fā),作為物聯(lián)網(wǎng)課程的內(nèi)容,教學生如何開發(fā)物聯(lián)網(wǎng)的人機界面。在往年,我們選擇的安卓開發(fā)環(huán)境是在Eclipse下結(jié)合ADT插件,用Java語言來編寫安卓程序。對于中職生來說,Java語言過于復(fù)雜與嚴謹,實現(xiàn)很小的功能都需要做一大堆的工作。因為Java語言是面向?qū)ο蟮木幊陶Z言,所以教師在教學過程中必須要向?qū)W生灌輸面向?qū)ο蟮乃枷耄瑖乐赜绊懡虒W的進度,還加大了學生理解程序代碼的難度。全英文的開發(fā)界面以及難懂的系統(tǒng)關(guān)鍵詞,讓學生們望而生畏,也讓他們產(chǎn)生了厭學的情緒,多數(shù)學生的學習效果不佳。從今年起,我們改用較易上手的App Inventor開發(fā)環(huán)境,來讓學生學習安卓編程。
1App Inventor簡介
App Inventor是用來開發(fā)安卓系統(tǒng)(Android)應(yīng)用程序的開發(fā)環(huán)境,在其內(nèi)部提供了一些可以調(diào)用安卓系統(tǒng)硬件的傳感器組件,能直接使用設(shè)備的這些功能,如計時器、加速度傳感器、方向傳感器、位置傳感器等,還能利用音視頻的組件來輕松實現(xiàn)多媒體的交互,使用繪圖動畫組件做角色動畫。采用了相當直觀的圖形化“塊語言”,使編程人員可以更多地將注意力放在自己的想法或創(chuàng)意上,令初學者不再困擾于一些低級錯誤。所以App Inventor很適合那些有自己創(chuàng)意想法,卻害怕編程太抽象語法太繁雜的學生進行學習。App Inventor不只是一個原型開發(fā)工具或界面設(shè)計器,它也可以用來創(chuàng)建各種完整的應(yīng)用。它所使用的塊語言提供了所有基礎(chǔ)的編程指令,如循環(huán)語句及條件語句等,只不過是以“塊”的方式來呈現(xiàn)而已。
2App Inventor的簡單易用風格非常適合中職學生用于物聯(lián)網(wǎng)開發(fā)
2.1App Inventor開發(fā)環(huán)境的搭建
App Inventor本身是不需要安裝就能在線使用的開發(fā)環(huán)境,可惜在我國的網(wǎng)絡(luò)政策下,多數(shù)人無法直接訪問該服務(wù)器??上驳氖菄鴥?nèi)有相應(yīng)的服務(wù)器可以使用,廣州市教育信息中心為廣大的愛好者搭建了服務(wù)器,網(wǎng)址為http://app.gzjkw.net,可以直接使用QQ帳號登錄進行開發(fā)。雖然網(wǎng)上的服務(wù)器不必安裝就可以直接使用,但畢竟需要一直保持在線,因而導(dǎo)致很多人喜歡用不必依賴網(wǎng)絡(luò)的開發(fā)環(huán)境,于是出現(xiàn)各種離線版。不斷更新的離線版變得越來越完善與方便,通過國內(nèi)愛好者的漢化與整合優(yōu)化,基于官方新版的App Inventor 2,推出離線漢化版中最好用的2017桌面版。使用者僅僅下載解壓,就可以直接運行桌面版來進行APP的開發(fā),不需要安裝App Inventor服務(wù)器、Java環(huán)境、瀏覽器等。
通過簡單的步驟,就能安裝好App Inventor開發(fā)環(huán)境,這對于計算機知識積累較少的電子專業(yè)學生來說,是莫大的福音。
2.2App Inventor的開發(fā)過程
在App Inventor開發(fā)環(huán)境中新建了一個工程后,就可以進入正式的開發(fā)界面完善這個程序了。開發(fā)的過程主要在設(shè)計視圖與編程視圖中進行,兩個視圖的切換,可在主界面的右上角點擊“設(shè)計”或“編程”按鈕實現(xiàn)。第一步是在設(shè)計視圖下,利用界面設(shè)計器來設(shè)計安卓程序的界面。App Inventor在組件面板當中提供了功能豐富的組件,可以拖放各種的可視化組件來設(shè)計界面,也可以拖放非可視化的組件來增加安卓程序的功能。組件是應(yīng)用的組成元素,就像一個菜譜中的配料。有些組件功能單一,例如標簽,它僅用于在屏幕上顯示文字;再例如按鈕,點擊按鈕將引發(fā)一個活動;有些組件功能復(fù)雜,例如畫布組件,它可以容納靜態(tài)圖片或動畫,又如加速度傳感器組件,它具有運動感知能力,可以偵測到設(shè)備的移動或搖晃;另一些組件可以編寫并發(fā)送短信,播放音樂、視頻,或者從網(wǎng)絡(luò)上抓取信息等等。
圖1App Inventor的組件面板
第二步是編程視圖下,利用圖形化的塊語言進行程序功能的開發(fā)。塊語言的編程過程就像是搭建積木一樣簡單而且有趣,如圖2所示,是一個99乘法表練習APP的完整塊語言程序。
圖299乘法表練習的塊語言程序
第三步是利用安卓系統(tǒng)進行調(diào)試。如果學生有安卓系統(tǒng)的硬件(如安卓手機),在手機中安裝好“AI伴侶”后,掃描App Inventor生成的二維碼,就可以快捷地進行硬件的正式調(diào)試。如果學生沒有安卓系統(tǒng)的硬件,可以直接在App Inventor中打包成*.apk文件,在模擬器中進行調(diào)試。
3App Inventor的強大功能非常適合應(yīng)用于物聯(lián)網(wǎng)系統(tǒng)
在物聯(lián)網(wǎng)統(tǒng)的人機界面中,大多數(shù)只是用文字或圖片來顯示系統(tǒng)狀態(tài),用簡單的按鈕來輸入指令。這些在App Inventor中都很容易實現(xiàn),而且交互效果很強大。App Inventor提供了按鈕、圖片、標簽、音視頻播放器等組件,能達到很好的多媒體交互效果,可以更生動地傳遞作者的意念,而不僅僅是枯燥無味的文字。比如第一節(jié)的App Inventor課,僅使用開發(fā)系統(tǒng)提供的畫布與精靈,結(jié)合簡單的塊語言就實現(xiàn)了一個指南針的功能。
在設(shè)計視圖中,傳感器面板中提供了多種適合用在物聯(lián)網(wǎng)中的傳感器。如“加速度傳感器”可以用于檢測運動狀態(tài)以及晃動;“計時器”可用于定時運行子程序,實現(xiàn)數(shù)據(jù)定時采集控制或定時數(shù)據(jù)處理;“方向傳感器”可以檢測方向或傾角;“位置傳感器”可以實現(xiàn)設(shè)備的定位等等。這些功能的集中實現(xiàn),還能一定程度地簡化物聯(lián)網(wǎng)系統(tǒng)的硬件組成,減小系統(tǒng)的復(fù)雜程度。
圖3傳感器面板
設(shè)計視圖中的通信連接面板中有“Web客戶端”組件和兩個負責藍牙連接的組件。“Web客戶端”可以讓開發(fā)者輕松地實現(xiàn)對某個IP進行http協(xié)議數(shù)據(jù)的傳送,執(zhí)行post文本請求或get文本請求即可。利用這個功能,開發(fā)出來的安卓程序可以很輕松地與硬件進行網(wǎng)絡(luò)數(shù)據(jù)的傳送,實現(xiàn)物聯(lián)網(wǎng)系統(tǒng)的網(wǎng)絡(luò)層的功能。
圖4通信連接面板
App Inventor下的藍牙連接功能也很完善與易于使用。在物聯(lián)網(wǎng)系統(tǒng)中使用藍牙轉(zhuǎn)串口模塊,就可以與安卓系統(tǒng)進行配對和連接。App Inventor開發(fā)的安卓程序使用SPP協(xié)議將數(shù)據(jù)發(fā)送到藍牙轉(zhuǎn)串口模塊(如HC-05模塊)后,會從模塊以串口數(shù)據(jù)的格式輸出,然后再傳送到單片機或其它物聯(lián)網(wǎng)模塊。在App Inventor中,通過簡單的拖放代碼塊,就能實現(xiàn)藍牙的配對與收發(fā)數(shù)據(jù)。藍牙功能的實現(xiàn),可以讓用戶體驗穩(wěn)定的無線連接,讓人機交互變得更人性化與方便。
App Inventor自身的塊語言編程,有變量、循環(huán)、邏輯與數(shù)學運算等功能,可以對物聯(lián)網(wǎng)數(shù)據(jù)進行強大的運算與處理,除了能與人機交互之外,還能使用數(shù)據(jù)庫進行存儲和管理。
結(jié)語
App Inventor之所以易用,是因為它采用了可視化操作界面,以及可拖拽的塊語言。這樣一來,學生在學習安卓編程時就不必去記憶繁雜的系統(tǒng)關(guān)鍵詞,也不必去輸入全英文的指令。在使用塊語言時,不匹配的代碼塊是無法連接的,讓學生少了很多犯低級錯誤的機會。App Inventor的學習成本遠比其它的語言要低,而且它的成果你能安裝到手機隨身帶著隨時使用,體現(xiàn)它的價值。這一點很容易讓中職學生對App Inventor產(chǎn)生濃厚的興趣,期望能學好它。在物聯(lián)網(wǎng)課程中采用App Inventor進行安卓開發(fā)后,學生的學習興趣明顯提升了很多。通過學習,同學們學會了很多的App Inventor功能,并成功地創(chuàng)建了一些自己喜歡的應(yīng)用,甚至有學生自己編一些安卓小游戲來玩。由此說明,App Inventor是一個很適合中職學生學習的安卓開發(fā)環(huán)境,也適合用于物聯(lián)網(wǎng)系統(tǒng)人機界面的開發(fā)。
參考文獻:
[1]夏繼媛. App Inventor在高職Android移動應(yīng)用開發(fā)類課程中的教學研究與實踐[J].新課程·下旬,2014(10):23-26.
[2]金從軍. APP INVENTOR編程實例及指南[M]. 北京:清華大學出版社,2016:23-34,40-45.
[3]申圣兵,聶立文. 基于Android的手機學習平臺的開發(fā)與應(yīng)用[J]. 移動信息,2016(06):06-07 .