Android天氣預報設計
——嵌入式軟件開發
名字 | 功能模塊 | 代碼行數 | 備註 |
謝燦輝 | Widget | 200 | 桌面小程序 |
李楊敏 | GPS定位,百度地圖API | 100-150 | 獲取當前所在城市 |
丁小芳 | 城市選擇Activity,天氣API獲取天氣 | 100-200 | 包括數據庫交互 |
本軟件是一個天氣類應用軟件,帶有widget,啟動軟件後可以定位所在城市或手動設置後實現天氣查詢,PM2.5查詢,7天氣溫曲線,我們可從圖片和文字中顯現最近一周天氣預報和相關溫馨提示等。
這些數據的提供都通過後臺服務獲取,而後臺服務會在一定時間間隔通過API獲取並存儲在數據庫當中。
從以上可看出這個軟件的主要功能有:
①啟動APP Widget應用程序;
②設置界面,設置所要顯示天氣預報的城市;
③詳細界面,通過圖片文字顯示當前一周的天氣預報、溫馨提示及氣溫曲線變化;
④顯示界面,通過圖片文字顯示時間、溫度等;
④分享界面
系統設計
- 模塊
1.天氣預報的顯示
為了用戶的體驗更加便捷,我們將軟件作為一個小插件定在了手機主面上,調用的數據使用在桌面上顯示。而在用戶界面上使用了(AppWidget)框架結構,提供直觀的交互操作。
天氣Widget開發步驟:
①設計Widget的布局
Res/layout/widget.xml res/drawable/widget_background.xml
創建Wiget的第一個步驟就是設計並實現Wiget的組件布局,就是Widget和用戶交互的界面。Widget與Activity的布局設計和實現方法十分相似,都是在/res/layout目錄中建立XML的布局資源文件
②定義Widget的元數據
Widget元數據文件保存在/res/xml/weather_widget_4x2.xml
③實現Widget的添加、刪除、更新
實現Widget的添加、刪除、更新等過程,主要是通過AppWidgetProvider類來實現,這個類本身繼承BroadcastReceiver,用來接收與Widget相關的更新、刪除、生效等消息。當AppWidgetProvider接收到這些消息以後,會分別調用相應的事件處理函數。
事件
調用函數
說明
ACTION_APPWIDGET_UPDATE
OnUpdate()
Widget更新
ACTION_APPWIDGET_DELETED
OnDelete()
Widget刪除
ACTION_APPWIDGET_ENABLED
onEnabled()
Widget生效
ACTION_APPWIDGET_DISABLED
onDisabled()
Widget失效
④在AndroidManifest.xml文件中聲明Widget
/AndroidManifest.xml
要讓Widget生效還需在AndroidManifest.xml文件中進行聲明,主要在該文件中聲明AppWidgetProvider類
- 數據交互
1.利用API獲取天氣數據,數據獲取地址:http://sixweather.3gpk.net/SixWeather.aspx?city=%E5%B9%BF%E5%B7%9E
獲取天氣的關鍵代碼:
Com.yz.util/GetWeatherTask.java
向天氣接口發送HTTP GET 請求
服務器返回XML文檔,包含天氣內容
- 自定定位城市
代碼:請求定位權限
百度地圖API
- 用戶交互
設置城市(數據庫讀取過程)
Com.yz.app
Com.yz.db
- 系統管理
1. 頁面實現布局管理
根據需求分析可知,該應用程序應包含四個主要的用戶界面。顯示界面中,應包含城市、溫度和時間等信息;詳細界面中,又包含了三個界面,分別為天氣中心、溫馨提示和氣溫曲線,這其中包含了當前以及後六天的天氣預報,氣溫走勢等信息;設置界面,主要是為了用戶手動查詢所需城市天氣預報;分享界面提供了將天氣預報信息分享出去的功能。
圖片:
/res/layout/activit_weather_center.xml
分享途徑 /assets/platforms.xml
2. 後臺服務(喚醒設備時候更新)
- 數據庫設計與實現(手工指定地點情況)
City.db->獲取城市->天氣API獲取天氣->處理->顯示
六、程序模塊設計
從這功能需求我們將整個程序分為了四個功能模塊:
①程序啟動
②用戶界面
③後臺服務
④數據庫適配器
Android天氣預報設計