课程设计报告
课程名称: 移动平台开发
设计题目:天气预报
院系:计算机科学与工程学院
专业:计算机科学与技术
班级:
学号:
姓名:
指导教师:孙霞
设计地点:N6-113
开课时间:2016 至2017 学年第1 学期
目录
1.引言 0
1.1.题目描述 0
1.2.设计意义 0
2.开发环境 0
2.1.硬件环境 0
2.2.软件环境 0
3.相关技术及知识点 (1)
3.1.Activity (1)
3.2.Service (1)
3.3.网络通信 (2)
4.需求分析 (2)
4.1.系统功能需求分析 (2)
4.2.系统流程图 (3)
4.3.系统界面需求分析 (3)
4.4.系统性能需求分析 (3)
5.设计与实现 (4)
5.1.界面布局 (4)
5.2.省市二级联动 (5)
5.3.获取天气数据 (8)
5.4.播放背景音乐 (12)
6.个人总结 (13)
参考资料 (14)
1.引言
1.1.题目描述
本次实验是开发一款基于Android平台的天气预报应用,将网络系统的功能扩展到智能手机终端上,让手机能够通过移动网络访问Web网站并处理各种各样的业务,可以让智能手机用户能够随时随地查询互联网所提供的天气信息。
1.2.设计意义
可以让广大Android手机用户能够在第一时间获取最新的天气预报信息,以便提前预防,方便出行。同时,把气象灾害造成的损失降到最低,也可以提高公共服务质量,更好的发挥气象事业对经济社会发展的现实性作用,有巨大的实用价值。虽然该技术在Android平台已经比较成熟,但是通过该软件的开发仍然能帮助我更好的认识Android系统的工作原理。
2.开发环境
2.1.硬件环境
戴尔灵越笔记本电脑
2.2.软件环境
Android的上层应用程序是用Java语言开发的,一般情况下是基于Dalvik虚拟机的,所以Google公司推荐使用主流的Java集成开发环境Eclipse。而用Java语言进行开发,需要用到SUN 公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,需要使用Google提供的Android SDK。同时,要在Eclipse 上安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级或下载的工具。
简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。
(1) Java SDK
(2) Eclipse
(3) Android SDK
(4) ADT
3.相关技术及知识点
3.1.Activity
应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。
Activity之间通过Intent进行通信。在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。
典型的动作类型有:M AIN(activity的门户)、VIEW、PICK、EDIT 等。而动作对应的数据则以URI 的形式进行表示。例如:要查看一个人的,你需要创建一个动作类型为VIEW 的intent,以及一个表示这个人的URI。
与之有关系的一个类叫IntentFilter。相对于intent 是一个有效的做某事的请求,一个intentfilter 则用于描述一个activity(或者IntentReceiver)能够操作哪些intent。一个activity 如果要显示一个人的时,需要声明一个IntentFilter,这个IntentFilter 要知道怎么去处理VIEW 动作和表示一个人的URI。IntentFilter 需要在l 中定义。通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity 将会调用startActivity(Intent myIntent)方法。然后,系统会在所
有安装的应用程序中定义的IntentFilter 中查,到最匹配myIntent 的Intent 对应的activity。新的activity 接收到myIntent 的通知后,开始运行。当startActivity 方法被调用将触发解析myIntent 的动作,这个机制提供了两个关键好处:
A、Activities 能够重复利用从其它组件中以Intent 的形式产生的一个请求;
B、Activities 可以在任何时候被一个具有相同IntentFilter 的新的Activity 取代。
3.2.Service
一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。
比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity 会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service 一直执行,直到这个service 运行结束。另外,我们还可以通过使用Context.bindService()方法,连接到一个service 上(如果这个service 还没有运行将启动它)。当连接到一个service 之后,我们还可以service 提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。
Service使用步骤如下:
(1)继承service类;
(2)l配置清单文件中<application>节点里对服务进行配置
<service name=".SMSService"/>。
服务不能自己运行,需要通过Contex.startService()或Contex.bindService()启动服务
通过startService()方法启动的服务于调用者没有关系,即使调用者关闭了,服务仍然运行想停止服务要调用Context.stopService(),此时系统会调用onDestory(),使用此方法启动时,服务首次
启动系统先调用服务的onCreate()-->onStart(),如果服务已经启动再次调用只会触发onStart()方法。
使用bindService()启动的服务与调用者绑定,只要调用者关闭服务就终止,使用此方法启动时,服务首次启动系统先调用服务的onCreate()-->onBind(),如果服务已经启动再次调用不会再触发这2个方法,调用者退出时系统会调用服务的onUnbind()-->onDestory(),想主动解除绑定可使用Contex.unbindService(),系统依次调用onUnbind()-->onDestory()。
3.3.网络通信安卓下载app
JSON数据解析:
(1)JavaScript Object Notation是一种轻量级的数据交换格式;
(2)Android API中直接支持对JSON数据的处理;
(3)常用类JSONObject、JSONArray、JSONStringer和JSONTokener等;
(4)数据在名称/值对中、数据由逗号分隔、花括号保存对象、方括号保存数组。
HttpURLConnection:
提供了基于HTTP的网络访问方法,主要的操作步骤为:
(1)利用URL地址实例化URL类;
(2)由URL类创建HttpURLConnection对象;
(3)以GET/POST方式向服务器发送请求;
(4)接收服务器响应。
4.需求分析
4.1.系统功能需求分析
(1)能够由用户设置省份城市;
(2)根据用户设置的城市,点击刷新按钮获取当地当天的日期、天气信息以及未来六天的天气情况。
(3)以淡入淡出的方式显示主页面;
(4)打开软件时可以自动播放音乐,用户可以在Menu菜单里选择关闭音乐;
(5)Menu菜单里可以查看开发者信息。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。