【摘要】為了方便非計(jì)算機(jī)專業(yè)的人士也能快速地進(jìn)行Android移動應(yīng)用程序開發(fā),谷歌公司研發(fā)了App Inventor,這是一種拼圖式的應(yīng)用開發(fā)工具。介紹App Inventor 2的在線、離線使用方式,組件設(shè)計(jì)器和塊編輯器的用法,并通過一個100以內(nèi)四則運(yùn)算的益智游戲?qū)嵗龑﹂_發(fā)過程進(jìn)行了說明。
【關(guān)鍵詞】App Inventor 2;安卓手機(jī);應(yīng)用開發(fā)
Abstract:In order to facilitate non-computer professional who can quickly make Android mobile application development,Google has developed the App Inventor,which is a puzzle-like application development tools base on Open Blocks. This article introduces online,offline use of App Inventor 2,the use of the component designer and the block editor,then describs the development process of an arithmetic game for instances.
Key words:App Inventor 2;Android Mobile Phone;Application Development
引言
在科技迅猛發(fā)展的今天,智能手機(jī)已超越個人電腦,成為人們不可或缺的信息處理設(shè)備。在智能手機(jī)系統(tǒng)中,主要有Google的Android,Apple的iOS和Microsoft的Windows Phone三大操作系統(tǒng),而Android占84.5%,已然成為移動智能設(shè)備的霸主。開發(fā)Android平臺上的手機(jī)益智游戲,對于利用智能終端開展移動學(xué)習(xí)具有重要的意義。典型的Android應(yīng)用程序開發(fā)需要在Java環(huán)境下來進(jìn)行,通常包括Java Development Kit、Android SDK、Eclipse,這些軟件的下載、安裝、設(shè)置都很復(fù)雜,而學(xué)習(xí)和掌握J(rèn)ava語言及其在Android平臺上的開發(fā)手段,對于非計(jì)算機(jī)專業(yè)的人來說就更為困難了。因此,谷歌公司于2010年啟動的App Inventor項(xiàng)目,正是為了解決這一難題。與傳統(tǒng)文本行源代碼編程方式不同,App Inventor采用圖形化、搭積木的方式來完成程序的設(shè)計(jì)。其設(shè)計(jì)思想基于建構(gòu)主義的學(xué)習(xí)理論,認(rèn)為圖塊式的編程可以激發(fā)學(xué)習(xí)者的創(chuàng)造思維。這一編程方式源自于麻省理工學(xué)院的Scratch(http://scratch.mit.edu/),程序邏輯清晰、結(jié)構(gòu)一目了然,對于各行各業(yè)的開發(fā)者來說,易于上手和掌握。2011年11月谷歌公司公開了項(xiàng)目的源代碼,關(guān)閉了自己的網(wǎng)站,將整個App Inventor項(xiàng)目移交給麻省理工學(xué)院,由后者繼續(xù)研究、運(yùn)營和管理。2013年12月App Inventor 2發(fā)布。
1.App Inventor 2的使用
基于谷歌云服務(wù)的理念,App Inventor只需要主流瀏覽器就可以使用,對于App Inventor 2來說,要求谷歌的Chrome版本在4.0以上,蘋果的Safari在5.0以上,微軟的IE在7.0以上。開發(fā)者可以采用在線開發(fā)和離線開發(fā)兩種使用方式。
1.1 在線開發(fā)
用戶使用主流瀏覽器訪問http://ai2.appinventor.mit.edu/,使用Gmail帳號進(jìn)行登錄后,便可進(jìn)行項(xiàng)目的開發(fā)和管理。如果網(wǎng)絡(luò)不能正常連接,那么可以使用離線的方式。
1.2 離線開發(fā)
App Inventor2項(xiàng)目是開源的,并且可以從MIT的網(wǎng)站上下載到本地,用戶可以建立自己的App Inventor2服務(wù)網(wǎng)站。當(dāng)然整個系統(tǒng)的下載、安裝和設(shè)置都有一定的復(fù)雜度,幸好有熱心的愛好者已經(jīng)將所有的內(nèi)容打包,并上傳到了百度網(wǎng)盤(http://pan.baidu.com/share/link?shareid=201955381amp;uk=3825515214),我們可以直接下載。解壓后直接運(yùn)行“啟動AIServer.cmd”即可。App Inventor是基于Java開發(fā)的,雖然下載的壓縮包中包含了jre目錄,但是筆者在實(shí)際使用中發(fā)現(xiàn)系統(tǒng)運(yùn)行的速度很慢,因此,用戶最好還是自己下載、安裝一下Java運(yùn)行環(huán)境(不要用最新的,7.0即可)。啟動App Inventor服務(wù)以后,在瀏覽器中訪問127.0.0.1:8888就可以進(jìn)行離線開發(fā)了。
2.App Inventor 2的開發(fā)界面
進(jìn)入App Inventor 2所見的開發(fā)界面如圖1所示,主要由“Designer”(組件設(shè)計(jì)器)和“Blocks”(塊編輯器)兩大部分組成。
圖1 App Inventor2開發(fā)界面
點(diǎn)擊“Designer”,由左到右呈現(xiàn)的是“Palette”、“Viewer”、“Components”、“Media”、“Property”,如圖2所示。與VB、Delphi等可視化開發(fā)語言相類似,在“Palette”中是可以使用的組件,如用戶界面、布局、傳感器、社交工具等;用戶根據(jù)需要將組件拖動到“Viewer”中,這是在手機(jī)屏幕上可看到或用到的內(nèi)容;選擇“Viewer”或“Components”中的組件,可以在“Property”中修改其屬性;應(yīng)用所需的圖像、音視頻文件可以通過“Media”上傳和管理。
圖2 組件設(shè)計(jì)器界面
點(diǎn)擊“Blocks”,進(jìn)入程序塊的開發(fā)。塊編輯器界面呈現(xiàn)如圖2所示,分別為“Blocks”、“Viewer”。選擇“Blocks”中的組件,在“Viewer”中即出現(xiàn)該組件可以使用的事件塊,將需要使用的事件塊拖到右邊的窗格中,卡口吻合的塊可以組合為更大程序塊,需要刪除的塊可以拖到垃圾桶中,錯誤和警告在“Viewer”中直接顯示。這樣如同構(gòu)建拼圖一般就可以完成程序的開發(fā)工作。
圖3 塊編輯器界面
3.益智游戲開發(fā)實(shí)例
我們以一個益智游戲的開發(fā)來看看App Inventor是如何使用的。該益智游戲面向初學(xué)算術(shù)的學(xué)童,其功能是隨機(jī)生成結(jié)果100以內(nèi)的四則運(yùn)算,學(xué)習(xí)者答題后,如結(jié)果正確,則出現(xiàn)笑臉與掌聲,否則為哭臉和哭聲。在“Designer”(組件設(shè)計(jì)器)界面下設(shè)計(jì)屏幕如圖4所示:
圖4 游戲屏幕布局
其中的主要組件如表1所示:
表1 主要組件列表
類型 所屬分組 名稱 作用
Label User Interface X 運(yùn)算操作數(shù)1
Label Y 運(yùn)算操作數(shù)1
TextBox Z 學(xué)習(xí)者輸入答題結(jié)果
Button Button1 提交按鈕
Sound Media Sound1 根據(jù)評分而播放的聲音
Image Image1 根據(jù)評分而顯示的圖像
在“Blocks”(塊編輯器)中,程序塊由以下主要部分構(gòu)成:
3.1 初始化
當(dāng)程序啟動時,初始化全局變量并隨機(jī)選擇加、減、乘、除中的一種運(yùn)算,并對該種運(yùn)算隨機(jī)出題。限于篇幅,這里省略了加法和乘法的處理。
3.2 答題結(jié)果評分
3.3 詢問學(xué)習(xí)者是否進(jìn)行下一題
在主界面菜單點(diǎn)擊“Build”-“APP(save .apk to my computer)”,生成應(yīng)用安裝包,即可在手機(jī)中安裝運(yùn)行。
4.結(jié)語
作為谷歌公司的產(chǎn)品,App Inventor具有鮮明的谷歌特點(diǎn):開源、云服務(wù)。隨著Android智能手機(jī)的普及,移動學(xué)習(xí)的熱潮正在興起,基于圖塊式編程的App Inventor無疑是廣大教師、學(xué)生快速編寫Android應(yīng)用的利器。當(dāng)然,使用App Inventor進(jìn)行程序設(shè)計(jì)還是需要開發(fā)者具有一定的計(jì)算機(jī)編程基礎(chǔ),App Inventor中的組件也不夠豐富,不能滿足各方面的應(yīng)用所需,編寫的程序運(yùn)行效率還比較低。但是App Inventor大大降低了移動應(yīng)用開發(fā)的門檻,相信假以時日,其后續(xù)版本將更易于使用,功能將更加強(qiáng)大、更能滿足用戶的需要。
參考文獻(xiàn)
[1]張居彥.移動App設(shè)計(jì)工具Inventor[J].電子世界.2013 (15):170-171.
[2]申健唯,吳麗.安卓手機(jī)游戲的快速開發(fā)[J].數(shù)字技術(shù)與應(yīng)用.2014(1):127-128.
[3]郭守超,周睿,鄧常梅,狄長艷,周慶國.基于AppInventor和計(jì)算思維的信息技術(shù)課堂教學(xué)研究[J].中國電化教育.2014(3):91-96.