陳利婷
摘要:Android目前是世界是最受歡迎的智能手機(jī)系統(tǒng)之一,2017年的市場(chǎng)占有率為85.9%,迫切需要一大批的開(kāi)發(fā)者,而App Inventor是一款基于瀏覽器的完全在線的Android開(kāi)發(fā)工具,采用搭積木的方式來(lái)編程,簡(jiǎn)單有趣,是青少年學(xué)習(xí)編程入門(mén)的優(yōu)秀軟件。
關(guān)鍵詞:App Inventor;中職;天氣預(yù)報(bào);Web服務(wù)API
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)11-0081-02
1 App Inventor在中職學(xué)校計(jì)算機(jī)專(zhuān)業(yè)教育中的實(shí)用性
說(shuō)到計(jì)算機(jī)專(zhuān)業(yè),很多人第一想到的就是編程,說(shuō)明編程在計(jì)算機(jī)專(zhuān)業(yè)的重要性。在中職學(xué)校,學(xué)生的外語(yǔ)水平普遍較低,決定了他們學(xué)習(xí)一門(mén)編程語(yǔ)言的不易性,很多同學(xué)都學(xué)得很辛苦,甚至厭學(xué)或棄學(xué)。而App Inventor的開(kāi)發(fā)入門(mén)較簡(jiǎn)單,學(xué)生不用編寫(xiě)代碼,調(diào)試結(jié)果能直接在智能手機(jī)或平板上演示,對(duì)活潑好動(dòng)的中職生具有非常的吸引力。如果在學(xué)習(xí)中引起學(xué)生對(duì)程序開(kāi)發(fā)的興趣,他們可以轉(zhuǎn)向功能更強(qiáng)的程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí),故App Inventor在中職計(jì)算機(jī)專(zhuān)業(yè)教育中具有很強(qiáng)的引導(dǎo)性、實(shí)用性。
2 JSON格式數(shù)據(jù)
JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫(xiě),數(shù)據(jù)體積小,也易于機(jī)器解析和網(wǎng)絡(luò)傳輸。JSON對(duì)象表示為鍵值對(duì),是一個(gè)“名稱(chēng)/值”的集合,每個(gè)名稱(chēng)后跟一個(gè)冒號(hào),花括號(hào)保存對(duì)象,數(shù)據(jù)由逗號(hào)分隔。下面是一個(gè)用JSON格式表示個(gè)人信息數(shù)據(jù)的示例:
{“name”:”張三”, //值為字符串
“age”:”20”, //值為數(shù)值
“address”:{“province”:”廣東”, ”city”:”汕頭”} //值為JSON對(duì)象
}
3 百度地圖Web服務(wù)API
百度地圖Web服務(wù)API為開(kāi)發(fā)者提供https/http接口,即開(kāi)發(fā)者通過(guò)https/http形式發(fā)起檢索請(qǐng)求,獲取返回xml或json格式的檢索數(shù)據(jù)。本系統(tǒng)采用百度地圖Web服務(wù)API中提供的逆地理編碼服務(wù),該服務(wù)將提供的坐標(biāo)點(diǎn)(經(jīng)緯度)轉(zhuǎn)換為對(duì)應(yīng)位置信息(如所在行政區(qū)劃)功能。在系統(tǒng)開(kāi)發(fā)之前,開(kāi)發(fā)者先在百度地圖API平臺(tái)中申請(qǐng)“Web服務(wù)API”接口,新建一個(gè)“瀏覽器端”的應(yīng)用來(lái)獲取開(kāi)發(fā)密鑰,每天可免費(fèi)使用6000次。本系統(tǒng)中使用的逆地理編碼接口地址為:
http://api.map.baidu.com/geocoder/v2/?location=緯度,經(jīng)度&output=json&coord_type=wgs84ll&ak=您的密鑰
其中參數(shù)output=json表示返回?cái)?shù)據(jù)為json格式,參數(shù)coord_type=wgs84ll表示坐標(biāo)的類(lèi)型為GPS經(jīng)緯度
4 京東萬(wàn)象平臺(tái)
京東萬(wàn)象平臺(tái)是大數(shù)據(jù)交易平臺(tái),數(shù)據(jù)需求方在京東萬(wàn)象平臺(tái)查找自己想要的數(shù)據(jù),通過(guò)調(diào)用數(shù)據(jù)服務(wù)方提供的數(shù)據(jù)接口獲得數(shù)據(jù),并經(jīng)過(guò)數(shù)據(jù)服務(wù)方的加工、處理、分析等,更深入地得到數(shù)據(jù)需求方所需的數(shù)據(jù)價(jià)值。本系統(tǒng)使用京東萬(wàn)象平臺(tái)免費(fèi)提供的和風(fēng)“中國(guó)和世界天氣預(yù)報(bào)”API接口,它能提供全球5萬(wàn)個(gè)城市的7天天氣預(yù)報(bào)、實(shí)況天氣、每3小時(shí)天氣等數(shù)據(jù)。和風(fēng)天氣采用JSON格式的數(shù)據(jù),格式相對(duì)簡(jiǎn)單,適合新手,每天有5000次的免費(fèi)請(qǐng)求,相對(duì)學(xué)習(xí)而言完全夠用。故新手需在京東萬(wàn)象平臺(tái)注冊(cè)一個(gè)帳號(hào)并申請(qǐng)一個(gè)APPKEY即可使用該數(shù)據(jù)接口并獲取數(shù)據(jù)。調(diào)用和風(fēng)天氣API的鏈接地址為:
https://way.jd.com/he/freeweather?city=城市名&appkey=您的密鑰
5 天氣預(yù)報(bào)系統(tǒng)的功能及技術(shù)可行性分析
1)天氣預(yù)報(bào)系統(tǒng)在App Inventor軟件中開(kāi)發(fā),主要實(shí)現(xiàn)的功能有:
① 定位在當(dāng)前城市,顯示所在城市實(shí)時(shí)天氣狀況;
② 顯示今天和未來(lái)2天所在城市的天氣預(yù)報(bào)信息;
③ 可以查詢(xún)?nèi)我獬鞘袑?shí)時(shí)、今天和未來(lái)2天的天氣信息;
④ 顯示相關(guān)的天氣狀況、氣溫、風(fēng)向、風(fēng)力等信息。
2)技術(shù)可行性分析
① 城市定位:
在App Inventor軟件中內(nèi)置的位置傳感器組件可以用GPS全球定位導(dǎo)航系統(tǒng)來(lái)獲取當(dāng)前設(shè)備所在的位置狀態(tài),也可通過(guò)無(wú)線網(wǎng)線或基站等方式進(jìn)行定位,定位后位置傳感器組件返回所在位置的經(jīng)緯度、海拔等相關(guān)信息。
② 調(diào)用API接口:
在App Inventor軟件內(nèi)置的通信連接Web客戶(hù)端組件,可以實(shí)現(xiàn)在不出現(xiàn)瀏覽器窗口的前提下對(duì)網(wǎng)頁(yè)進(jìn)行瀏覽,本系統(tǒng)可以根據(jù)定位城市或查詢(xún)的城市名,調(diào)用Web客戶(hù)端組件來(lái)設(shè)置API的鏈接地址,調(diào)用百度地圖和京東萬(wàn)象提供的API服務(wù),并獲取返回?cái)?shù)據(jù)。
③ 數(shù)據(jù)的解析:
解析的數(shù)據(jù)主要有百度地圖Web服務(wù)API中解析逆地理編碼返回的城市信息,解析和風(fēng)天氣返回的天氣狀況、氣溫等信息,因這些信息都是用JSON格式返回,Web瀏覽器組件中有解碼JSON文本的方法,并返回列表數(shù)據(jù),在列表中可以用查找“鍵值對(duì)”的方法返回所查找的數(shù)據(jù)的值。
6 界面布局和使用的組件
本系統(tǒng)的屏幕Screen布局設(shè)計(jì)如圖1、圖2所示,圖1是系統(tǒng)獲取GPS定們后顯示的界面,圖2是輸入城市名單擊“查詢(xún)”按鈕后顯示的界面。
1)屏幕上方顯示設(shè)備當(dāng)前所在城市的城市名或者查詢(xún)城市的城市名,接著顯示城市的實(shí)時(shí)天氣狀況,下面顯示今天和未來(lái)二天的天氣預(yù)報(bào)情況,最下方是查詢(xún)輸入框,輸入城市名后單擊按鈕可查詢(xún)天氣狀況。所使用的組件有水平布局、標(biāo)簽、文本輸入框、按鈕。
2)位置傳感器1個(gè):獲取設(shè)備的GPS定位。
3)計(jì)時(shí)器1個(gè):程序剛開(kāi)始時(shí),設(shè)備獲取GPS定位需要一定的時(shí)間,定時(shí)器可以循環(huán)查詢(xún)?cè)O(shè)備是否已成功GPS定位,成功定位后須將GPS定位的經(jīng)緯度信息傳遞給百度地圖逆地理編碼API查詢(xún)。
4)通信連接Web客戶(hù)端組件2個(gè):一個(gè)網(wǎng)址設(shè)置為百度地圖逆地理編碼API的接口地址,另一個(gè)網(wǎng)址設(shè)置為和風(fēng)天氣API的接口地址,之所以用2個(gè)組件,是因?yàn)楂@取的返回信息不同,對(duì)它們的解析也不同。
7 程序設(shè)計(jì)
1)獲取GPS定位:設(shè)置計(jì)時(shí)器的時(shí)間間隔為10秒,如果未獲取位置信息,則10秒查詢(xún)一次,如果位置傳感器獲取了GPS經(jīng)緯度,將它的值嵌入到Web客戶(hù)端1的網(wǎng)址中,調(diào)用百度地圖Web服務(wù)API中的逆地理編碼服務(wù)地址,返回城市信息,并將計(jì)時(shí)器停用。
2)當(dāng)百度地圖Web服務(wù)API中的數(shù)據(jù)返回時(shí),調(diào)用Web客戶(hù)端解析JSON文本,查看它的返回?cái)?shù)據(jù)狀態(tài)信息是否成功,如果成功繼續(xù)解析數(shù)據(jù)中包含的城市名信息,并將城市名嵌入到Web客戶(hù)端2的網(wǎng)址中,調(diào)用萬(wàn)象平臺(tái)和風(fēng)天氣數(shù)據(jù)服務(wù)的API地址。
3)當(dāng)和風(fēng)天氣數(shù)據(jù)服務(wù)的API返回?cái)?shù)據(jù)時(shí),解析JSON數(shù)據(jù),獲取相關(guān)關(guān)鍵字的值,并顯示在屏幕上。下圖是解析“城市名“標(biāo)簽的程序,其它標(biāo)簽的值可參考“城市名”標(biāo)簽的解析。
4)當(dāng)輸入城市名,點(diǎn)擊“查詢(xún)”按鈕時(shí),設(shè)置Web客戶(hù)端2的網(wǎng)址并向和風(fēng)天氣API發(fā)送數(shù)據(jù)請(qǐng)求服務(wù)。
從本系統(tǒng)上可以看出,App Inventor簡(jiǎn)單易學(xué)。2017年7月國(guó)務(wù)院印發(fā)《新一代人工智能發(fā)展規(guī)劃》,強(qiáng)調(diào)“在中小學(xué)階段設(shè)置人工智能相關(guān)課程,逐步推廣編程教育”,而本系統(tǒng)的程序設(shè)計(jì)既結(jié)合當(dāng)今的互聯(lián)網(wǎng)、大數(shù)據(jù)應(yīng)用,又融合移動(dòng)終端開(kāi)發(fā),非常能吸引青少年的學(xué)習(xí)興趣,可作為編程入門(mén)的課程在中職學(xué)校中大力開(kāi)展。
參考文獻(xiàn):
[1] 金叢軍.App Inventor開(kāi)發(fā)訓(xùn)練營(yíng)[M].北京:人民郵電出版社,2018.
[2] 劉載興,陳宏鏡.Android積木式編程開(kāi)發(fā)[M].北京:高等教育出版社,2016.
[3] 白乃遠(yuǎn),曾奕霖.App Inventor 2 Android應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2017.
【通聯(lián)編輯:唐一東】