Android 天气APP(一)开发准备(1)

这个项目初始版本分9篇博客文章写完,请陆续阅读实现。项目的源码我放在最后一篇博客的最后了,最后一篇文章也只是暂时的,会一直按想法来更新下去,代码和博客都会有更新,敬请期待。

由于内容实在太多,故按章节来写,如果你想真的了解,请一篇一篇的看完,并且自己实现,当然源码我是会贴出来的,你也可以先去下载运行后再做打算。

前言

===============================================================

正所谓天有不测风云,所以有一个好的天气是很重要的,在古代,人们看天气都是查时节看天色,在夏商时代,人们已经开始从事农业生产,靠天吃饭的需求,让天气预报成为刚需。不过,当时没有气象科学,人们光靠抬头看天和占卜来观测和预报天气。当然,预报准确率就不得而知了。

在我国最早的诗歌总集《诗经》中,记录了古人们的看天经验。

《诗经》中《邶风·北风》:“北风其凉,雨雪其雱。……北风其喈,雨雪其霏。……”雱,雨雪盛大;喈,风疾。霏,雨雪纷飞。意思是说寒冷北风吹到、风大,带来的雨雪也大。这不是历史上对冷空气的最早描述么?

经验是古人进行天气预报的主要依据。远在汉代,就已经有利用琴弦感应湿度的原理预测晴雨的事例了。元末明初娄元礼在《田家五行》一书中也说:如果质量很好的干洁弦线忽然自动变松宽了,那是因为琴床潮湿的缘故;出现这种现象,预示着天将阴雨。他还谈到,琴瑟的弦线所产生的音调如果调不好,也预兆有阴雨天气,这也是合乎科学道理的。(PS:上面这段文字很明显,是我从网上找的,然后Ctrl C + Ctrl V 爱看您就看,不看就往下走。),而现代人靠科技的力量,今天我们就是靠代码来看天气了,进入正题。

一、开发准备

===================================================================

1.数据和思维逻辑


天气APP最重要的就是数据,首先是你的定位数据,怎么获取,通过手机自动的GPS定位来获取详细的位置,然后通过这个位置来访问天气API接口,然后接口返回数据,你将返回的数据解析出来获得想要的内容在页面上进行渲染,同时,也要进行其他城市的天气数据查询,这时候你就需要拿到全国省市县的数据,选择之后得一个城市,再进行一次天气查询,至此我们的APP就完成了,当然还有优化的空间,这个我们在开发过程中慢慢来写出来。

2.百度开发者账号申请与应用创建


正所谓工欲善其事必先利其器,巧妇难为无米之炊,古话就说了,做任何事之前做好准备工作,否则开发起来就比较头疼,不要想到什么就做什么,要按照之前指定的思路来一步一步的实现,过程是很繁琐和枯燥的,但是最终写完运行成功之后,是很有成就感的,程序员需要成就感这种东西,这能让你一直保持思维活跃和自信。

百度地图开放平台

在这里插入图片描述进去之后可以通过QQ、微博、微信,快捷登录这样可以省略注册这一步,节省时间。我是用的QQ登录的。登录成功之后 进入控制台→应用管理→我的应用→创建应用

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这里需要三个数据,调试版的秘钥,发布版的秘钥,和你的应用包名;

这里我们一个一个来说明怎么获取,

① 获取应用包名

首先要创建一个项目才行,

File → New → New Project

在这里插入图片描述

默认是选择Empty Activity(空的活动),这里不用改动,点击Next进入下一步

在这里插入图片描述

认真的看一下下图,根据自己的信息来填写资料,没有问题就Finish创建项目。

在这里插入图片描述

项目创建完成之后打开AndroidManifest.xml文件复制包名,到百度开放平台注册粘贴上,

在这里插入图片描述

这时,先在手机上运行一下,当你看到这个画面的时候:

在这里插入图片描述

就说明你目前的测试环境没有问题,测试版本也没有问题,因为通过USB安装就是属于调试版本,然后就可以获取开发版SHA1

② 获取开发版SHA1

鼠标点击右侧边栏的GradleappTasksandroid→ 双击signingReport

在这里插入图片描述

当你的AS版本为最新版时,你会发现这里好像有点不一样了,找不到signingReport了,这是AS更新之后默认这个功能关掉了,需要去手动打开它。在设置里面

在这里插入图片描述

如下图这里默认勾选上了,现在把这根勾选上的去掉,

在这里插入图片描述

然后Sync,或者点击这个小图标。

在这里插入图片描述

然后你的项目的右侧边栏就会出现这个熟悉的task了。

我们来看一下详细的日志

在这里插入图片描述

这个地方别找错啊,否则会出现你意想不到的错误,要想后面不出问题,前面的路就要铺平,不要粗心大意。这里每个人生成的秘钥都是唯一的,所以别复制我的上去,用自己生成发布版SHA1,复制到刚才的创建应用的网页上。

③ 获取发布版SHA1

Build → Generate Signed Bundle or APK

在这里插入图片描述

然后选择APK , Next下一步

在这里插入图片描述

这里是没有秘钥的,需要创建一个新的秘钥,点击 Create New…

在这里插入图片描述

先创建项目的jks文件

在这里插入图片描述

在这里插入图片描述

命名我就是用的GoodWeather,则生成jks文件就是GoodWeather.jks,然后点OK,

在这里插入图片描述

对于Demo来说你可以把密码设置的一样,这样会减少你的错误发生,你设置的密码最好是有记忆点,否则到时候忘记了再找回就比较麻烦了(PS:我是经历过这个环节),然后点击OK,会出现一个这样的提示

在这里插入图片描述

这个弹窗的意思就是告诉你,你这样创建秘钥已经不符合现在的标准了,但是你依然可以这样创建,我印象中AS2.X版本的时候这样创建是没有问题,点击OK进入下一步。

在这里插入图片描述

在这里插入图片描述

上面还有一个地方要改一下就是APK生成的位置,我不希望它生成在项目里面的默认文件夹,因为找起来不方便,还有一个原因就是clean Project的时候会删除掉你的APK,不管是调试版还是发布版,点击那个小文件夹进行路径修改

在这里插入图片描述

可以看到,我放的位置和我刚才生成jks是同一级,然后创建了一个GoodWeather的文件夹用来存放发布版的APK文件。

在这里插入图片描述

点击Finish

在这里插入图片描述

等进度条跑完就创建完成了。

在这里插入图片描述

这个时候你的APK就创建成功了,你可以打开文件夹看一下这个APK

在这里插入图片描述

这个就是你生成的APK所在地址。以你自己前面设置的路径为准。接下来进入Terminal工具输入如下图所示的命令和jks存放路径

在这里插入图片描述

//如果你前面的步骤和我一模一样的话,这里你就可以复制粘贴,不一样的话就修改jks的路径就可以了

keytool -list -v -keystore E:\APK\GoodWeather.jks

输入这行命令之后回车会让你输入密码,就是之前创建秘钥的的那个密码,输入的过程中你是看不见密码的,光标也不会移动,不过不用担心,输入无误后回车就可以了

在这里插入图片描述

将发布版的SHA1复制过去,完成你的应用的创建

在这里插入图片描述

提交

3.应用配置


① 下载百度定位SDK

在这里插入图片描述

点击 开发文档 选择 Androidd定位SDK

在这里插入图片描述

在这里插入图片描述

点击下载SDK包

在这里插入图片描述

选择基础定位,然后向下滑动,下载开发包

在这里插入图片描述

下载完之后,解压出来你会看到这样一些文件

在这里插入图片描述

② 配置百度定位SDK

然后我们来看一下开发指南

在这里插入图片描述

现在将解压出来的文件复制到你的项目里面的libs文件夹下

在这里插入图片描述

配置项目的build.gradle文件,在android{}闭包中设置sourceSets,

sourceSets{

main{

jniLibs.srcDir ‘libs’

jni.srcDirs = [] //disable automatic ndk-build

}

}

不明白上面的配置就参考下图这样设置(PS:我觉得我的博客详细的都有点啰嗦了)

在这里插入图片描述

在这里插入图片描述

这里有一点要注意一下,就是不管是工程的配置文件build.gradle,还是项目的build.gradle,里面出现改动就需要Sync Now 同步你改动的配置,否则你的改动就是无效,点一下即可,然后就会在下方进度条,完毕之后你的配置就生效了,

在这里插入图片描述

这个jar可以展开就说明你的配置生效了,有一些读者说按照操作来还是没有展开,因此我在这里再介绍一种方式,鼠标右键点击这个jar包,点击Add As Library…

在这里插入图片描述

点击OK,然后就会添加进去。

在这里插入图片描述

接下来就要用这个创建应用时生成的AK了,

在你的AndroidManifest.xml(配置文件)中放入

<meta-data

android:name=“com.baidu.lbsapi.API_KEY”

android:value=“AK” >

这个AK就是之前提到过的,

在这里插入图片描述

在这里插入图片描述

接下来就是添加服务和权限了,

使用定位SDK,需在AndroidManifest.xml文件中Application标签中声明service组件,每个App拥有自己单独的定位service,代码如下:

<service

android:name=“com.baidu.location.f”

android:enabled=“true”

android:process=“:remote” />

除添加service组件外,使用定位SDK还需添加如下权限:

分享读者

作者2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。

被人面试过,也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!

我们整理了一份阿里P7级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深入学习提升。

主要包括腾讯,以及字节跳动,阿里,华为,小米,等一线互联网公司主流架构技术。

腾讯T3架构师学习专题资料

如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!

我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!

我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值