標籤:小程式 而在 form 繼承 href 資料 isa 擷取 開發
——嵌入式軟體開發
名字 |
功能模組 |
程式碼數 |
備忘 |
謝燦輝 |
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天氣預報設計