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