消费电子中的消费电子中的Android智能手机天气预报系统设计及实现智能手机天气预报系统设计及实现
摘要:在分析讨论Android 应用系统设计原理的基础上,提出了Android 智能手机天气实况预报系统用户界面以
及获取并解析城市列表数据的设计方法,给出了在用户界面上呈现列表数据的设计过程,实现了一个简单的
Android 智能手机城市天气实况预报系统。系统在模拟器上通过调试并正常运行。 0 引言 为了让智能
手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端,让
手机能通过移动网和互联网访问Web 网站并处理各项业务。Android 系统是Google 公司开发的一个开源手机操
作系统,它包括了操作系统、用户界面和应用程序,即智能手机工作所需的
摘要:在分析讨论Android 应用系统设计原理的基础上,提出了Android 智能手机天气实况预报系统用户界面以及获取并
解析城市列表数据的设计方法,给出了在用户界面上呈现列表数据的设计过程,实现了一个简单的Android 智能手机城市天气
实况预报系统。系统在模拟器上通过调试并正常运行。
0 引言引言
为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端,让
手机能通过移动网和互联网访问Web 网站并处理各项业务。Android 系统是Google 公司开发的一个开源手机操作系统,它包
括了操作系统、用户界面和应用程序,即智能手机工作所需的全部软件。Android 的最大特点是它的开放性体系架构,不仅具
有非常好的开发、调试环境,而且还具有各种可扩展的设施,包括丰富的图形组件、多媒体支持功能和强大的浏览器,而且已
有许多比较成熟的应用案例。
本文提出了智能手机天气实况预报系统的一种设计实现方法,供开发者参考。
1 Android应用程序设计原理应用程序设计原理
一个Android 应用程序,通常由Activity、Intent Receiver、Service、Content Provider 四种功能组件构成。但是,并不是
每一个Android 应用程序都需要用到这四种功能组件,而是只需上述四种功能组件的某些组合。
1.1 Activity
Activity 是最基本的Android 应用程序组件。大多数应用由多个屏幕组成,一个Activity 通常则是一个单独的屏幕。每一个
Activity 都被实现为一个独立的类,并且从Activity 基类中继承而来。Activity 类将会显示由视图控件组成的用户接口,并对事
件做出响应。Android 使用Intent 这个特殊类,实现在屏幕与屏幕之间移动。通过解析各种Intent,从一个屏幕导航到另一个屏
幕是很简单的。当向前导航时,Activity 将会调用startActivity(Intent myIntent)方法,然后,系统会在所有安装的应用程序
中所定义的IntentFilter 中查找,找到最匹配myIntent的和Intent 对应的Activity.新的Activity 接收到myIntent 的通知后,开始运
行。当startActivity 方法被调用时将触发解析myIntent 的动作。这个机制具有两点优势:一是能够重复利用从其他组件中以
Intent 形式产生的一个请求;二是Activity 可以在任何时候被一个具有相同IntentFilter 的新Activity 取代。
1.2 Intent Receiver
通过Intent Receiver 实现的应用能够对一个外部的事件作出响应。Intent Receiver 在AndroidManifest.xml 中注册,也可
以在代码中使用Context.registerReceiver()进行注册。当一个IntentReceiver 被触发时,应用不必对请求调用Intent
Receiver,系统会在需要的时候启动应用。各种应用还可以通过使用Context.
broadcastIntent()将它们自己的Intent Receiver广播给其他应用程序。
1.3 Service
Service 是一段长生命周期的、没有用户界面的程序。例如媒体播放器这个Activity 会使用Context.startService()来启动
一个Service,从而可以在后台播放音乐。同时,系统也将保持这个Service 一直执行,直到Service 运行结束。系统可通过使用
Context.bindService()方法,连接到一个Service 上(如果这个Service 还没有运行将启动它)。当连接到一个Service 之
后,还可以利用Service 提供的接口与它通信。就媒体播放器来说,还可以进行暂停、重播等操作。
1.4 Content Provider
Android 应用程序能够将它们的数据保存到文件、SQL 数据库,甚至是任何有效的设备中。Content Provider 实现了应用
数据与其他的应用程序的共享。Content Provider 类实现一组标准的方法,能够让其他应用程序保存或读取此ContentProvider
处理的各种类型数据。在Android 中,默认使用SQLite 作为系统数据库,但使用方法略有不同。Android 中每一个应用程序都
运行在各自的进程中,当访问其他应用程序的数据时,需要在不同的虚拟机之间传递数据,这样操作起来会有些困难(正常情
况下,不能读取其他应用程序的数据库文件)。ContentProvider 正是解决不同的应用包共享数据的工具。
2 天气实况预报系统的具体实现天气实况预报系统的具体实现
基于Android 平台的智能手机访问服务器的主要技术是数据交互方法。基于Android 操作系统的天气实况预报系统设计的
核心是通过调用通信协议SOAP(Simple Object AccessProtocol)的接口,从Web Service 提供商中提取天气预报的数据信
息,为客户端服务。其基本功能是当用户运行天气预报系统程序时,在手机屏幕上显示出中国的城市名称,用户单击任意一个
城市名,可获得该城市的天气实况预报信息。用户也可以输入城市名称,点击查询获得天气预报信息。CitiesWeather-
Forecast 工程目录结构及其源代码文件如图1所示。