关键词不能为空

当前您在: 主页 > 英语 >

安卓天气预报查询app实验报告

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-06 02:10
tags:

-

2021年2月6日发(作者:gourmet)



















课程名称


:









移动平台开发











设计题目:











天气预报


















系:





计算机科学与工程学院












业:







计算机科学与技术












级:



























号:

























名:

























指导教师:




























设计地点:













N6-113












开课时间:



2016




2017


学年第



1


学期











目录



1.



引言


.................................................. .................................................. .................................................. 1



1.1.



题目描述


....................... .................................................. .................................................. ........... 1



1.2.



设计意义


....................... .................................................. .................................................. ........... 1



2.



开发环境


....................... .................................................. .................................................. ................... 1



2.1.



硬件环境


....................... .................................................. .................................................. ........... 1



2.2.



软件环境


....................... .................................................. .................................................. ........... 1



3.



相关技术及知识点


.................... .................................................. .................................................. ....... 2



3.1.



Activity


................... .................................................. .................................................. ............... 2



3.2.



Service


.................... .................................................. .................................................. ................ 2



3.3.



网络通信


....................... .................................................. .................................................. ........... 3



4.



需求分析


....................... .................................................. .................................................. ................... 3



4.1.



系统功能需求分析



.


.............................................. .................................................. ...................... 3



4.2.



系统流程图


...................... .................................................. .................................................. ........ 4



4.3.



系统界面需求分析



.


.............................................. .................................................. ...................... 4



4.4.



系统性能需求分析



.


.............................................. .................................................. ...................... 4



5.



设计与实现


...................... .................................................. .................................................. ................ 5



5.1.



界面布局


....................... .................................................. .................................................. ........... 5



5.2.



省市二级联动


............................................. .................................................. ................................ 6



5.3.



获取天气数据


............................................. .................................................. ................................ 9



5.4.



播放背景音乐


............................................. .................................................. .............................. 13



6.



个人总结


....................... .................................................. .................................................. ................. 14



参考资料


....................... .................................................. .................................................. ......................... 15





1.



引言



1.1.



题目描述



本次实验是开发一款基于< /p>


Android


平台的天气预报应用,


将 网络系统的功能扩展到智能手机终


端上,让手机能够通过移动网络访问

< br>Web


网站并处理各种各样的业务,可以让智能手机用户能够

随时随地查询互联网所提供的天气信息。



1.2.



设计意义



可以让广大


Android


手机用户能够在第一时间获取最新的天气预报信息,

< p>
以便提前预防,


方便


出行。同时,把气象灾害造成 的损失降到最低,也可以提高公共服务质量,更好的发挥气象事业对


经济社会发展的现实 性作用,有巨大的实用价值。


虽然该技术在


Android


平台已经比较成熟,


但是


通过该软件的开发 仍然能帮助我更好的认识


Android


系统的工作原理。



2.



开发环境



2.1.



硬件环境



戴尔灵越笔记本电脑



2.2.



软件环境



Android

< p>
的上层应用程序是用


Java


语言开发的,一般情 况下是基于


Dalvik


虚拟机的,所以


Google


公司推荐使用主流的


Java

< br>集成开发环境


Eclipse


。而用

Java


语言进行开发,需要用到


SUN

< br>公司提供的


Java


SDK(


其中包括


JRE



Java


Runtime


Environment)

< br>。此外,


Android


的应用程


序开发和


Java


开发有较大区别的,需要使用


Google


提供的


Android


SDK


。同时,要在


Eclipse


上安装


ADT


,为


Andro id


开发提供开发工具的升级或者变更,是


Eclipse


下开发工具的升级或下载


的工具。




简言之,需要以下软件,才能搭建


A ndroid


开发环境,从而进行


Android


应用程序的开发。




(1)


Java


SDK



(2)


Eclipse



(3)


Android


SDK



(4)


ADT



1



3.



相关技术及知识点



3.1.



Activity


应用程序中,一个


Activity


通常就是 一个单独的屏幕,它上面可以显示一些控件也可以监听


并处理用户的事件做出响应。



Activity


之间通过


Intent


进行通信。在


Intent


的描述结构中,有两个最重要的部分:动作


和动作对应的数据。



典型的动作类型有:


M AIN



activity


的门户)、

VIEW



PICK


< p>
EDIT


等。而动作对应的数据


则以


URI < /p>


的形式进行表示。例如:要查看一个人的联系方式,


你需要创建一 个动作类型为


VIEW



inten t


,以及一个表示这个人的


URI


。< /p>



与之有关系的一个类叫


IntentF ilter


。相对于


intent


是一个有效的做某事的请求,一个


intentfilter


则用于描述一个


activity


(或 者


IntentReceiver


)能够操作哪些


intent


。一个


activity

< p>
如果要显示一个人的联系方式时,需要声明一个


IntentFilter


,这个


IntentFilter



知道怎么去处理


VIEW


动作和表示一个人的


URI


< br>IntentFilter


需要在


< br>中


定义。


通过解析各种


inte nt



从一个屏幕导航到另一个屏幕是很简单的。


当向前导航时,


activity


将会调用


startActivity(Intent myI ntent)


方法。然后,系统会在所有安装的应用程序中定义的


IntentFilter


中查找,


找到最匹配


myIntent



Intent


对应的


activity



新的


a ctivity


接收到


myIntent


的通知后,开始运行。当


startActivity


方法被调用将触发解析


myIntent

的动作,这


个机制提供了两个关键好处:



A



Activities


能够重复利用从其它组件中以


Intent


的形式产生的一个请求;



B



Activities


可以在任何时候被一个具有相同


IntentFilter


的新的


Activity


取代。



3.2.



Service


一个


Service


是一段长生命周 期的,没有用户界面的程序,可以用来开发如监控类程序。



比 较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。


在一个媒体播放器的 应


用中,应该会有多个


activity


,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并


没有对应的


activity


,因为使用者当然会认为在导航到其它屏幕时音乐应该 还在播放的。在这个


例子中,媒体播放器这个


activity


会使用


ervice()


来启动一个< /p>


service


,从而可


以在后台保持音 乐的播放。同时,系统也将保持这个


service


一直执行,直到这个


service


运行


结束。另外,我们还可以通过使用


rvice()


方法,连接到一个


service


上(如果这



service


还没有运行将启动它)。当连接到一个


service


之后,我们还可以


service


提 供的接


口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作 。



2



Service


使用步骤如下


:








1


)继承


service


类;









2




配置清单文件中



节点里对服务进行配置





服务不能自己运行


,


需要通过


ervice()



rvice()


启动服务



通过


startService()


方 法启动的服务于调用者没有关系


,


即使调用者关闭了

< p>
,


服务仍然运行想停止


服务要调用


rvice(),


此时系统会调用


onDestory (),


使用此方法启动时


,


服务首次< /p>


启动系统先调用服务的


onCreate()-->onStar t(),


如果服务已经启动再次调用只会触发


onStart( )


方法。



使用


bindService()


启动的服务与调用者绑定


,


只要调用者关闭服务就终止


,


使用此方法启 动时


,


服务首次启动系统先调用服务的


onCreate()-->onBind(),


如果服务已经启动再次调用不会再触发



2


个方法


,


调用者退出时系统会调用服务的


onUnbind()-->o nDestory(),


想主动解除绑定可使用


Service (),


系统依次调用


onUnbind()-->onDest ory()




3.3.



网络通信



JSON


数据解析:




1



JavaScript Object Notation


是一种轻量级的数据交换格式;


< p>


2



Android API


中直接支持对


JSON


数据的处 理;




3


) 常用类


JSONObject



JSO NArray



JSONStringer


JSONTokener


等;




4


)数据在名称

/


值对中、数据由逗号分隔、花括号保存对象、方括号保存数组。

< br>


HttpURLConnection




提供了基于


HTTP


的网 络访问方法,主要的操作步骤为:




1


)利用


URL


地址实例化

< p>
URL


类;




2


)由


URL


类创建< /p>


HttpURLConnection


对象;



3


)以


GET/POST


方式向服务器发送请求;




4


)接收服务器响应。



4.



需求分析



4.1.



系统功能需求分析




1




能够由用户设置省份城市;




2




根据用户设置的城市,点击刷新按钮获取当地当天的日期、天气信息以及未来六天的天气


情况。




3




以淡入淡出的方式显示主页面;




4




打开软件时可以自动播放音乐,用户可以在


Menu


菜单里选择关闭音乐;




5




Menu


菜单里可以查看开发者信息。



3



4.2.



系统流程图



















打开软件







界面启动






网络连接









进入主界面






播放音乐






选择城市





刷新天气







结束




















4-1


系统流程图





4.3.



系统界面需求分析



目前国内软件开发 者在设计过程中很注重软件的开发技术及其具有的业务功能,


而忽略了用户


对软件界面的需求,影响软件的易用性、友好性。


界面设计要简约、美观,不 能太复杂,让用户操


作起来太繁琐,


影响用户的使用体验,


要在交互性与应用性上让用户感到舒适,


让用户

准确、


高效、


轻松、愉快地完成天气的查询


,所以软件的友好性、易用性对软件系统至关重要。



4.4.



系统性能需求分析



软件在完成功能需 求之后,


还要进一步的优化,


不能占用手机太多的内存资源,< /p>


在交互性上使


用户获得最佳感受,让使用不同手机设备的用户都能 有良好地体验。






4



5.



设计与实现



5.1.



界面布局



在页面的布局上,因为界面 设计的比较简单,


所以只使用了基础的横向布局和纵向布局,


横 向


布局与纵向布局交替使用,完成了天气预报的界面设计。














5-1


界面布局


































5-2


软件主界面



5






























5-3


启动界面




5-4


天气信息界面























5-5


刷新界面




5-6


作者信息界面




5.2.



省市二级联动



将老师给的中国省市的 编号手动输入到



文件中,再定义省份和城市编号两个数


6



组,再定义


Ar rayAdapter


,在两个下拉框上分别放上监听器,将省份与城市进行绑定,将所 选择


的城市的城市编号存放到一个数组之中,以便之后进行天气信息的获取。

< p>


关键代码:



private



int


[]


cities


= { .


beijing


, .


tianjin


,


.


hebei


,.


shanxi1

, .


neimenggu


, .


liaoning


,


.


jilin


, .

< br>heilongjiang


,.


shanghai


,.


jiangsu


,


.


zhejiang


, .


anhui


, .


fujian


,.


jiangxi


,


.


shandong


, .


henan


, .


hubei


,.


hunan


,


.


guangdong


, .


guangxi


, .


hainan


,.


chongqing


,


.


sichuan


, .


guizhou


,.


yunnan

< br>, .


xizang


,


.


shanxi3


, .


gansu


,.


qinghai

, .


ningxia


,


.


xinjiang


, .

< p>
taiwan


,.


xianggang

< p>
};



private



int


[]


citycode


= { .


bei_jing


, .


tian_jin


,


.


he_bei


, .


shan_xi1


, .


nei_meng_gu


,


.


liao_ning


, .


ji_lin


, .


hei_long_jiang


,


.


shang_hai


, .


jiang_su


, .


zhe_jiang


,


.


an_hui


, .


fu_jian


, .


jiang_xi


,


.


shan_dong


, .


he_nan


, .


hu_bei


, .


hu_nan


,


.


guang_dong


, .


guang_xi


, .


hai_nan


,


.


chong_qing


, .


si_chuan


, .


gui_zhou


,


.


yun_nan


, .


xi_zang


, .


shan_xi3


, .


gan_su


,


.


qing_hai


, .

< p>
ning_xia


,.


xin_jiang


,.


tai_wan


,


.


xiang_gang


};





img 1


.setOnClickListener(


new


OnClickListener() {






@Override






public



void


onClick(View v) {






//


TODO


Auto- generated method stub







r builder =


new


r(








WeatherActivity.


this


);






le(


< /p>


请选择所属城市



);






View v1 =


LayoutInflater.


from


(WeatherActivity.


this


).inflate(








.


activity_cities


,


null


);






sp1


= (Spinner) ewById(.


spinner1


);






sp2


= (Spinner) ewById(.


spinner2


);






sp1


.setOnItemSelectedListener(


new



OnItemSelectedListener() {








@Override








public



void


onItemSelected(AdapterView parent,


7


-


-


-


-


-


-


-


-



本文更新与2021-02-06 02:10,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/604782.html

安卓天气预报查询app实验报告的相关文章