日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

基于Java实现的天气预报APP安卓项目MyWeather

發(fā)布時(shí)間:2023/12/9 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Java实现的天气预报APP安卓项目MyWeather 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

資源下載地址:https://download.csdn.net/download/sheziqiong/85609510
1 準(zhǔn)備著手于一個(gè)天氣應(yīng)用的開發(fā),這個(gè)是一個(gè)比較重要的項(xiàng)目嘗試,目的是將之前整理過的東西再好好串接起來。首先先找到一個(gè)合適的 API 接口,通過資料查詢,有一個(gè)蠻好的推薦——和風(fēng)天氣。

2 現(xiàn)在緩緩腦子,等等將書本里的這個(gè)項(xiàng)目實(shí)戰(zhàn)一下,將一些功能實(shí)現(xiàn)。在開始之前先好好理理思路,不著急。

第一階段

1,今天先測試一下和風(fēng)天氣的 sdk 的測試看看是這么一回事,再寫課本里面的開發(fā)。首先導(dǎo)入相應(yīng)的包,然后看他提供的開發(fā)文檔,看看有什么需要修改的。

這個(gè)是北京的天氣情況。對(duì)比我獲取的信息,基本一致,這說明我使用該接口比較順利。

2,以上的成功連接給了我一個(gè)很好的啟發(fā)思考,我最終的修改方案可以基于以上的接口實(shí)現(xiàn)。不過現(xiàn)在還在打基礎(chǔ),先跟著課本中的知識(shí)要點(diǎn)進(jìn)行開發(fā)吧。

3,正式進(jìn)入開發(fā):思路捋一捋。這次開發(fā)需要用到的知識(shí)點(diǎn)有 UI,數(shù)據(jù)存儲(chǔ),服務(wù),網(wǎng)絡(luò)請(qǐng)求等等。

4,gitee 倉庫分布式管理;老規(guī)矩先創(chuàng)建一個(gè)倉庫保證修改的過程的一些細(xì)節(jié)上的修改。回顧之前 gitee 的一系列操作。http://www.biyezuopin.vip

5 回歸書本進(jìn)行思考學(xué)習(xí),將思路捋清楚。

6 在項(xiàng)目開始前,需要的所有工具都應(yīng)該備齊,尤其是第三方的使用。

7 根據(jù)課本的節(jié)奏是第一個(gè)階段是通過 litepal 進(jìn)行高效地搭建數(shù)據(jù)。

項(xiàng)目中居然沒有這個(gè)對(duì)象?!是我的依賴沒有搭建好嗎?找找原因先,初步認(rèn)定是沒有導(dǎo)入好依賴。

修改 gradle 后就可以了。

8 我的項(xiàng)目命名和課本的有一點(diǎn)區(qū)別,我的是“myweather”而課本的是“coolWeather”。這個(gè)沒有什么特別的。只是命名而已。在這里強(qiáng)調(diào)一下是為了避免蒙圈。這一步的操作回顧課本第 6 章的學(xué)習(xí)。

最終第一階段完成,設(shè)計(jì)好數(shù)據(jù)庫。上傳到 Git 上以保存!

第二階段

9 根據(jù)課本要求第二階段主要是從他提供的服務(wù)器那里獲取 JSON 數(shù)據(jù)然后解析存儲(chǔ)到數(shù)據(jù)庫中。這一部分著重回顧了第九章網(wǎng)絡(luò)。在這一章主要是學(xué)會(huì)使用 okhttp 這個(gè)開源第三方工具。

10 在數(shù)據(jù)傳送回來后還得進(jìn)行解析,所以就用到了 gson 解析。這里就需要?jiǎng)?chuàng)建工具類進(jìn)行工作。

11 前期準(zhǔn)備已經(jīng)差不多;現(xiàn)在需要的是進(jìn)行前端界面的設(shè)計(jì)——本來我是想天馬行空的自己搞定的。但是先還是按照他的節(jié)奏走,看看效果啥的。http://www.biyezuopin.vip

12 布局就跟他的走吧,要不問題出現(xiàn)了都不知道這么整。好像我沒有接觸過如下的東西。

13 進(jìn)入 UI 設(shè)計(jì)后,最最關(guān)鍵的 ListView 和 RecycleView 記得回顧一下啊!

14 已經(jīng)完成第二階段的,待測試,測試的時(shí)候遇到如下的問題:基本的想法就是沒有創(chuàng)建表格,結(jié)果打開該項(xiàng)目的 db 文件,結(jié)果的確如此!看來要好好回顧一下構(gòu)建數(shù)據(jù)庫的方法。這一步要回看之前的章節(jié)。今天又整到快十一點(diǎn)了,緩緩先。

1 接著解決昨天沒有解決的問題,數(shù)據(jù)庫中沒有這個(gè)表?我回顧一下課本中的第一階段的過程,好像沒有什么問題,而且它說只要調(diào)用這個(gè)方法就會(huì)新建這個(gè)表。現(xiàn)在我換成真機(jī)進(jìn)行 run,結(jié)果還是這樣??!

2 感覺自己好像知道問題所在了:litepal 中的 mapping 寫錯(cuò)了,寫成了 mapper,服了自己!現(xiàn)在解決這個(gè)數(shù)據(jù)庫問題!

3 但是又遇到一個(gè)新的問題:沒有成功獲取網(wǎng)絡(luò)中的數(shù)據(jù)!不過這個(gè)人給的網(wǎng)址域名,網(wǎng)絡(luò)請(qǐng)求總是很慢的。我在 pc 端都有時(shí)候打不開!暫時(shí)放放,不管!

4 還是先解決 3 中的問題,要不后期不好進(jìn)行,因?yàn)橐獙?shí)現(xiàn)點(diǎn)擊其中 listView 中的 item 實(shí)現(xiàn)跳轉(zhuǎn)。不解決的話,后期怎么做呢?

5 終于解決了這個(gè)問題!原來是因?yàn)榘沧扛潞蟛恢С植话踩B接,所以想要設(shè)置一些一些屬性:

然后我就可以獲取省市縣的數(shù)據(jù)了。

6 我遇到一個(gè)細(xì)節(jié)的問題:數(shù)據(jù)庫里的東西應(yīng)該是字符串類型,不是整型。

修改一下就好了,沒什么的。

第三階段

7 在第三階段就是進(jìn)行天查詢并且將天氣信息顯示出來。我們知道進(jìn)行數(shù)據(jù)傳送的有效工具就是 JSON。我們主要還是對(duì)反饋過來的數(shù)據(jù)進(jìn)行解析。在這里我認(rèn)為可以構(gòu)建分支。主線就是按照課本的進(jìn)行開發(fā),支線的話就是進(jìn)行可以用我的和風(fēng)天氣的 API 進(jìn)行數(shù)據(jù)解析。支線的話,是后面再做的,可以先放放。

嘗試一下關(guān)于 Git 分支的,果然分支搞定了!還行!不過得切換到原來的分支。

好了下一步進(jìn)行天氣信息的獲取。

8 首先第一步對(duì)于 Gson 實(shí)體類的編寫!這一個(gè)很重要。這個(gè)對(duì) JSON 進(jìn)行解析的重要一步!

9 準(zhǔn)備布局 XML 設(shè)計(jì),我覺得這一步?jīng)]必要太浪費(fèi)時(shí)間,UI 設(shè)計(jì)是打輔助的。主要還是功能要實(shí)現(xiàn)才是王道!

10 現(xiàn)在使用了 SharedPreferences 進(jìn)行數(shù)據(jù)存儲(chǔ)——天氣狀況,在整個(gè)項(xiàng)目完成后要好好回顧一下這些內(nèi)容!

11 現(xiàn)在先簡單地將 weather 的東西整理好先!主要是將組件和待實(shí)現(xiàn)的方法寫上后面再補(bǔ)齊。

1 今天是建黨一百周年的日子,祝黨生日快樂。

2 接著完善天氣界面的代碼,主要是將待實(shí)現(xiàn)的方法將它補(bǔ)齊!

3 已經(jīng)補(bǔ)齊好待實(shí)現(xiàn)的方法,不過還沒進(jìn)行測試。等等還得考英語,考完再回來接著整!

4 搞定學(xué)校的英語考試。現(xiàn)在接著敲代碼。天氣的頁面設(shè)計(jì)好了,但是得跳轉(zhuǎn)到主頁面先!那么就得修改省市縣界面的一些代碼達(dá)到跳轉(zhuǎn)目的!

5 完成相應(yīng)的代碼編寫,還沒有測試。先 Git 上去先。

6 測試的時(shí)候采用真機(jī)進(jìn)行測試,不過還是有一個(gè)問題就是定點(diǎn)。不知道是天氣太熱還是怎么樣,有點(diǎn)小累緩緩先。再接著 debug。

1 加快開發(fā)步伐!今天上午的時(shí)間已經(jīng)浪費(fèi)了,睡到快 11 點(diǎn)才醒!

2 現(xiàn)在的任務(wù)是 debug,看看網(wǎng)絡(luò)獲取天氣情況的效果!檢驗(yàn)一下接口是否有問題:

接口可以正常工作!那么就在 debug 中斷點(diǎn)查找是否有問題!

已經(jīng)獲取好縣級(jí)的縣級(jí)數(shù)據(jù)。準(zhǔn)備跳轉(zhuǎn)到天氣的界面,但是遇到于以下的問題美譽(yù)在 XML 文件里面進(jìn)行注冊(cè)該 activity,導(dǎo)致它找不到 activity。

注冊(cè)后在進(jìn)行測試 debug 一下。

終于 debug 到了天氣的界面,先查看一下效果先!但是不知道我是弄了什么結(jié)果整到另外的線程,導(dǎo)致我不得已終止 debug。

3 下午去上《軟件測試》最后一節(jié)課,但是沒有太大的收獲!老師就是念 ppt,浪費(fèi)了時(shí)間。時(shí)間緊張,加快步伐。

4 接著 debug,看看功能能用不!JSON 數(shù)據(jù)可以傳輸!

5 天氣信息搞定后,現(xiàn)在的目標(biāo)就是通過 glide 進(jìn)行圖片設(shè)計(jì)。Glide 就是一個(gè)開源的項(xiàng)目,不知道,我再 gradle 里有沒有添加進(jìn)來。有,那就直接用就好了,我記得這個(gè)開源的圖片加載工具很厲害!

6,下面正式使用 glide 進(jìn)行圖片的獲取,根據(jù)課本的要求是用必應(yīng)里的每日一圖,來獲取相應(yīng)的圖片!主要的思路修改視圖,獲取網(wǎng)上的圖片,將圖片放置到視圖中,當(dāng)然還有一點(diǎn)(緩存!)要不就會(huì)老下載調(diào)用很繁瑣的!

7,還算順利,不過這個(gè)界面上面還是使用課本推薦 Design Support 設(shè)計(jì)可能會(huì)好看點(diǎn)!不過在考慮是否使用,但是課本推薦了更加簡單的方法,干脆就用簡單的來實(shí)現(xiàn)算了!

8,界面也已經(jīng)變得比較好看了 ~ 但是最重要的還是一系列功能實(shí)現(xiàn)!

第四階段:

9,在這個(gè)階段,實(shí)現(xiàn)切換城市以及實(shí)時(shí)獲取最新的天氣!首先是手動(dòng)更新天氣,手動(dòng)更新就要對(duì)緩存里的數(shù)據(jù)進(jìn)行更新!

10,通過 swipeRefersh 進(jìn)行更新修改!修改界面的東西,然后在對(duì)該組件進(jìn)行代碼編輯來實(shí)現(xiàn)手動(dòng)更新天氣狀況!

11,手動(dòng)更新天氣成功!下面實(shí)現(xiàn)手動(dòng)切換城市的功能!

12,學(xué)到一招新的通過 instanceof 關(guān)鍵詞進(jìn)行實(shí)例匹配看看該對(duì)象是否是某個(gè)類的實(shí)例。

13,不過測試的時(shí)候老遇到 timeout 的問題,準(zhǔn)備修改一下 okhttp 的一些東西

現(xiàn)在出現(xiàn)了一些細(xì)節(jié)上的 bug。修改了 client 這個(gè)對(duì)象!增加連接的時(shí)間!

1 今天接著進(jìn)行測試,不過遇到這個(gè)問題,點(diǎn)擊省市縣的最后一步給出這個(gè)錯(cuò)誤!

準(zhǔn)備看看這個(gè)是怎么回事?根據(jù)網(wǎng)絡(luò)的信息修改,是在 application 中添加一些東西。

添加了也沒有什么明顯的效果,好像這并不影響實(shí)際的開發(fā)!

2 現(xiàn)在加入第四階段后選擇好省市縣并不跳轉(zhuǎn)到天氣界面!好好審查一下問題所在,還有接口很不穩(wěn)定經(jīng)常一卡一卡說訪問超時(shí)!

3 接口連接慢是慢了點(diǎn),不過還是能用的!最終獲取完數(shù)據(jù)沒有跳轉(zhuǎn)到天氣界面!Debug 的時(shí)候也按照我的想法進(jìn)入相應(yīng)的函數(shù)方法!但是沒有跳到 weather 界面!這!很迷糊!找不到真相所以 Git 回去到第三階段的情況再回去一步步測試一下:

5 個(gè)人認(rèn)為界面展示的問題,以為我用的 support 的高級(jí)版本替代之前的 v 版本。多多少少會(huì)有一些不同,這回要比較仔細(xì)認(rèn)真地進(jìn)入第四階段的天氣更新(已驗(yàn)證)以及切換城市。從手動(dòng)更新天氣這里入手,之前的那些代碼就直接 copy 就好了!節(jié)省時(shí)間解決問題!

真的是笨蛋了我,我還真的以為天氣怎么回事,廣州這種天氣會(huì)能有 9 攝氏度???原來數(shù)據(jù)是假的!只是用來學(xué)習(xí)罷了!

6 接著修改其中代碼:

7 修改了這些代碼,其實(shí)也就是重新寫了一遍,要是能跑是最好的!很好!可以更換城市更新天氣!

8 現(xiàn)在考察“服務(wù)”這四大組件之一的知識(shí)點(diǎn)!后臺(tái)自動(dòng)更新天氣 ~

9 更新掉 logo 畢竟界面也要好看才行!

10 最后一個(gè)重要的地方:發(fā)布帶有簽名的 apk!參考鏈接:

https://blog.csdn.net/qq_39400113/article/details/108073848

11 修改版本號(hào)!以及生成簽名。

android.applicationVariants.all {variant ->variant.outputs.all{ //此處指定生成的apk文件名outputFileName = "mqtt.apk"} }

里面的密碼啥的,我設(shè)置為“123456”簡單一點(diǎn)!

放到這個(gè)位置!

資源下載地址:https://download.csdn.net/download/sheziqiong/85609510

總結(jié)

以上是生活随笔為你收集整理的基于Java实现的天气预报APP安卓项目MyWeather的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。