Android天氣預報設計

——嵌入式軟件開發

?

名字

功能模塊

代碼行數

備注

謝燦輝

Widget

200

桌面小程序

李楊敏

GPS定位,百度地圖API

100-150

獲取當前所在城市

丁小芳

城市選擇Activity,天氣API獲取天氣

100-200

包括數據庫交互

?

本軟件是一個天氣類應用軟件,帶有widget,啟動軟件后可以定位所在城市或手動設置后實現天氣查詢,PM2.5查詢,7天氣溫曲線,我們可從圖片和文字中顯現最近一周天氣預報和相關溫馨提示等。

?

這些數據的提供都通過后臺服務獲取,而后臺服務會在一定時間間隔通過API獲取并存儲在數據庫當中。

從以上可看出這個軟件的主要功能有:

①啟動APP Widget應用程序;

②設置界面,設置所要顯示天氣預報的城市;

③詳細界面,通過圖片文字顯示當前一周的天氣預報、溫馨提示及氣溫曲線變化;

④顯示界面,通過圖片文字顯示時間、溫度等;

④分享界面

?

系統設計

?

  1. 模塊

    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

    ?

  2. 數據交互

    1.利用API獲取天氣數據,數據獲取地址:http://sixweather.3gpk.net/SixWeather.aspx?city=%E5%B9%BF%E5%B7%9E

    ?

    獲取天氣的關鍵代碼:

    Com.yz.util/GetWeatherTask.java

    向天氣接口發送HTTP GET 請求

    服務器返回XML文檔,包含天氣內容

    ?

  3. 自定定位城市

    ?

    代碼:請求定位權限

    百度地圖API

  4. 用戶交互

    設置城市(數據庫讀取過程)

    Com.yz.app

    Com.yz.db

  5. 系統管理

    1. 頁面實現布局管理

    根據需求分析可知,該應用程序應包含四個主要的用戶界面。顯示界面中,應包含城市、溫度和時間等信息;詳細界面中,又包含了三個界面,分別為天氣中心、溫馨提示和氣溫曲線,這其中包含了當前以及后六天的天氣預報,氣溫走勢等信息;設置界面,主要是為了用戶手動查詢所需城市天氣預報;分享界面提供了將天氣預報信息分享出去的功能。

    圖片:

    /res/layout/activit_weather_center.xml

    ?

    分享途徑 /assets/platforms.xml

    ?

    2. 后臺服務(喚醒設備時候更新)

  6. 數據庫設計與實現(手工指定地點情況)

    City.db->獲取城市->天氣API獲取天氣->處理->顯示

    ?

    六、程序模塊設計

    從這功能需求我們將整個程序分為了四個功能模塊:

    ①程序啟動

    ②用戶界面

    ③后臺服務

    ④數據庫適配器

轉載于:https://www.cnblogs.com/pdoge/p/7691927.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370892.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370892.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370892.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux vi后不保存退出,linux下退出VI的方法:不保存退出

當編輯完文件,準備退出Vi返回到shell時,可以使用以下幾種方法之一。在命令模式中,連按兩次大寫字母Z,若當前編輯的文件曾被修改過,則Vi保存該文件后退出,返回到shell;若當前編輯的文件沒被修改過…

算法筆記_164:算法提高 最小方差生成樹(Java)

目錄 1 問題描述 2 解決方案 1 問題描述 問題描述給定帶權無向圖,求出一顆方差最小的生成樹。輸入格式輸入多組測試數據。第一行為N,M,依次是點數和邊數。接下來M行,每行三個整數U,V,W,代表連接U,V的邊,和權值W。保證圖…

番石榴分配器vs StringUtils

因此,我最近寫了一篇有關舊的,可靠的Apache Commons StringUtils的文章 ,該文章引起了一些評論,其中之一是Google Guava提供了更好的連接和拆分字符串的機制。 我必須承認,這是我尚未探索的番石榴的一個角落。 因此&am…

layui數據表格(一:基礎篇,數據展示、分頁組件、表格內嵌表單和圖片)

表格展示神器之一:layui表格 前言:在寫后臺管理系統中使用最多的就是表格數據展示了,使用表格組件能提高大量的開發效率,目前主流的數據表格組件有bootstrap table、layui table、easyUI table等.... 博主個人比較傾向于layui&am…

算法設計與分析_算法設計與分析(第2版)第2章分治策略回顧

YI時間|外刊|MM-DFW|機器學習系列點擊上方藍字,關注給你寫干貨的松子茶分治策略是通用算法設計技術之一,很多有效的算法是它的特殊實現,顧名思義就是分而治之。一個問題能夠用分治法求解的要素是問題能夠按照某種方式分…

2017-2018-1 Java演繹法 第三周 作業

團隊任務:團隊展示與選題團隊展示 隊員學號及姓名 學號  姓名  主要負責工作  20162315  馬軍  日常統計,項目部分代碼  20162316  劉誠昊  項目部分代碼,代碼質量測試  20162317  袁逸灝  組長 項目 主要 代碼  201…

linux開機啟動roscore,樹莓派ubuntuMate系統中開機自啟動ROS的launch文件

0x00 為何需要開機自啟動launch文件在ROS開發后期階段由于功能已經趨于穩定,因此就需要系統在一上電啟動后就自動把ROS下的各節點程序加載運行,這樣就省去了我們還得手動輸入roslaunch命令來加載bringup的launch文件的操作。經過我的實際測試目前有兩種方…

Oracle ADF移動世界! 你好!

您好,ADF Mobile,世界! 您可能已經知道... ADF Mobile在這里! 以下是一些鏈接,這些鏈接會讓您有賓至如歸的感覺。 ADF Mobile主頁: http://www.oracle.com/technetwork/developer-tools/adf/overview/ad…

Bootstrap里的文件分別代表什么意思及其引用方法

關于Bootstrap打包的文件分別代表什么意思&#xff0c;官網也沒有給出一個明確的解釋&#xff0c;在網上查了一些資料&#xff0c;總價歸納了如下&#xff1a; bootstrap/ <!--主目錄--> ├── css/ <!--CSS樣式文件--> │ ├── bootstrap.css <!…

css 小知識點:inline/inline-block/line-height

inline: 此元素會被顯示為內聯元素&#xff0c;元素前后沒有換行符。因此&#xff1a;無法設置寬度和高度&#xff5e; inline-block: 行內塊元素。元素前后沒有換行符&#xff08;CSS2.1 新增的值&#xff09; 用通俗的話講&#xff0c;就是不獨占一行的塊級元素。然后擁有…

Linux外域遞送郵件,求助:外域郵件發送不了 (頁 1) - iRedMail 技術支持 - iRedMail 開源郵件服務解決方案...

必填信息。沒有填寫將不予回復 - iRedMail 版本號&#xff1a; v0.9.5-1- 使用哪個數據庫存儲用戶帳號(OpenLDAP&#xff0c;MySQL&#xff0c;PostgreSQL)&#xff1a; v0.6.1 (MySQL)- 使用的 Linux/BSD 發行版名稱及版本號&#xff1a;CentOS 6.5- 與您的問題相關的日志…

協同過濾算法_機器學習 | 簡介推薦場景中的協同過濾算法,以及SVD的使用

本文始發于個人公眾號&#xff1a;TechFlow&#xff0c;原創不易&#xff0c;求個關注今天是機器學習專題的第29篇文章&#xff0c;我們來聊聊SVD在上古時期的推薦場景當中的應用。推薦的背后邏輯有沒有思考過一個問題&#xff0c;當我們在淘寶或者是某東這類電商網站購物的時候…

JavaOne 2012:觀察與印象

當我坐在舊金山國際機場等待登上飛機返回家中時&#xff0c;我一次又一次令人滿意但累人的JavaOne&#xff08;2012&#xff09;體驗&#xff0c;我正在開始寫這篇特別的博客文章。 自上周日的主題演講以來&#xff0c;在會議上瘋狂地撰寫了約30篇博客文章之后&#xff0c;很難…

less學習三---父選擇器

引用父選擇器需要用到“&”符號 &#xff06;運算符表示嵌套規則的父選擇器&#xff0c;并且在修改類或偽類選擇器的應用中非常普遍 ul{li{&:nth-child(2) a {color: red;&:hover {color: yellow;}}} }//編譯為 ul li:nth-child(2) a {color: red; } ul li:nth-ch…

SaltStack匹配target-第六篇

練習內容 Salt遠程執行中目標選擇常用的模式 1.通配符匹配 2.正則表達式匹配 3.List支持 4.Grains匹配 5.IP地址匹配 6.混合匹配 7.Node groups 遠程執行格式 target就是我們要選擇的minion salt <target> <function> [arguments] 一&#xff0c;通配符匹配&#x…

heartbeat+drbd+mysql

配置heartbeat接管drbd服務 配置heartbeat接管drbd服務&#xff08;延續之前heartbeat及drbd博文內容&#xff09;1、兩端確認都建立好 /data目錄2、關閉drbd服務,關閉heartbeat服務&#xff0c;自啟動全部關閉3、兩端配置haresourcesdata-1-1 IPaddr::192.168.0.191/24/eth0 d…

在linux下dns綁定域名,在Linux系統中,使用Bind搭建DNS域名解析服務

DNS域名解析服務(DomainNameSystem)是用于解析域名與IP地址對應關系的服務作用為維護著一個地址數據庫&#xff0c;記錄著各種主機域名與IP地址的對應關系&#xff0c;以便為客戶提供正向或反向的地址查詢服務&#xff0c;即正向解析與反向解析。正向解析&#xff1a;將制定的域…

用imspost制作catia后處理_新產品開發需要做原型驗證,怎么樣成型制作才省錢?...

有一天一個朋友拿著一個公仔機器人的項目過來找我&#xff0c;說做200套外殼&#xff0c;問我如何省成本用最少的錢做好產品。類似一下圖片的機器人一樣。組裝起來高200mm左右&#xff0c;內外配件總共是62個。我當時看到產品小估算重量也很輕&#xff0c;就跟他說用3D打印有快…

如何把大段文字轉為帶html標簽的文字

開發網頁的時候&#xff0c;有時候會遇到大段的隱私聲明&#xff0c;用戶協議等等&#xff0c;我們呀要復制粘貼展示出來&#xff0c;必須加大量的p標簽&#xff0c;h1,h2&#xff0c;空格符&#xff0c;br標簽&#xff0c;這對我們來說無疑是淚崩的&#xff0c;有個很好的辦法…

使用MongoDB進行事件流

MongoDB是一個非常出色的“ NoSQL”數據庫&#xff0c;具有廣泛的應用程序。 在SoftwareMill開發的一個項目中&#xff0c;我們將其用作復制的事件存儲&#xff0c;然后將事件從事件流傳輸到其他組件。 介紹 基本思想非常簡單&#xff08;另請參閱Martin Fowler關于Event Sou…