荐基于android平台的天气查询系统的设计与开发安卓天气预报毕业论文[精选整理]内容摘要:
ivity 是最基本的 Android 应用程序组件。 大多数应用由多个屏幕组成,一个Activity 通常则是一个单独的屏幕。 每一个 Activity 都被实现为一个独立的类,并且从 Activity 基类中继承而来。 Activity 类将会显示由视图控件组成的用户接口,并对事件做出响应。 Android 使用 Intent 这个特 殊类,实现在屏幕与屏幕之间移动。 通过解析各种 Intent,从一个屏幕导航到另一个屏幕是很简单的。 当向前导航时,Activity 将会调用 STartActivity( Intent myIntent)方法,然后,系统会在所有安装的中原工学院信息商务学院毕业设计(论文) 5 应用程序中所定义的 IntentFilter 中查找,找到最匹配 myIntent 的和 Intent 对应的 Activity 接收到 myIntent 的通知后,开始运行。 当 startActivity 方法被调用时将触发解析 myIntent 的动作。 这个机制具有两点优势: 一是能够重复利用从其他组件中以 Intent 形式产生的一个请求;二是 Activity 可以在任何时候被一个具有相同 IntentFilter 的新 Activity 取代。 Activity 的生命周期 在 Android 开发中, Activity 是非常重要的。 Activity 主要负责创建和显示窗口,也可以把一个 Activity 理解成一个显示的屏幕;在 Android 的应用中不是仅有一个Activity,而是由很多个 Activity 存在。 因其重要性,开发 Android 务必熟悉 Activity生命周期。 onCreateView: Activity 初次创建时被调用,一般在这里创建 view,初始化布局信息,将数据绑定到 list 以及设置监听器等。 如果 Activity 首次创建,本方法将会调用 onStart( );如果是停止后重新显示,则将调用 onRestart( )。 onStart:当 Activity 对用户即将课件的时候被调用 onResume( )。 onRestart:当 Activity 停止后重新显示的时候被调用,然后调用 onStart( )。 onPause:当系统要启动一个其他的 Activity 时调用(其他的 Activity 显示之前),这个方法使用来停止动画和其他占用 CPU 资源的事情,所以这这里应该保存那些持久数据,这些数据可以在 onResume( )方法中读出。 onStop:当另一个 Activity 恢复并遮盖住当前 Activity,导致其对用户不再可见时调用,一个新的 Activity 启动,其他 Activity 重新回到前景与用户交互时会重新调用 onResume( ),如果 Activity 将退出则调用哦你 D 额 story( )。 onDestory:在当前 Activity 被销毁之前所调用的最后一个方法,当进程 终止前调用。 (2) Intent Receiver Intent Receiver 是实现的应用能够对一个外部的事件作出响应。 Intent Receiver 在 中 注 册 , 也 可 以 在 代 码 中 使 用( )进行注册。 当一个 IntentReceiver 被触发时,应用不必对请求调用 Intent Receiver,系统会在需要的时候启动应用。 各种应用还可以通过使用( )将它们自己的 Intent Receiver 广播给其他应用程序。 (3) Service Service 是一段长生命周期的、没有用户界面的程序。 例如媒体播放器这个Activity 会使用 ( )来启动一个 Service,从而可以在后台播放音乐。 同时,系统也将保持这个 Service 一直执行,直到 Service 运行结束。 系统可通过使田凯:基 于 Android 平台的天气查询系统的设计与开发 6 用 ( )方法,连接到一个 Service 上(如果这个 Service 还没有运行将启动它)。 当连接到一个 Service 之后,还可以利用 Service 提供的接口与它通信。 就媒体播放器来说,还可以进行暂停、重播等操作。 (4) Content Provider Content Provider 是 Android 应用程序能够将它们的数据保存到文件、 SQL 数据库,甚至是任何有效的设备中。 Content Provider 实现了应用数据与其他的应用程序的共享。 Content Provider 类实现一组标准的方法,能够让其他应用程序保存或读取此 ContentProvider 处理的各种类型数据。 在 Android 中,默认使用 SQLite 作为系统数据库,但使用 方法略有不同。 Android 中每一个应用程序都运行在各自的进程中,当访问其他应用程序的数据时,需要在不同的虚拟机之间传递数据,这样操作起来会有些困难(正常情况下,不能读取其他应用程序的数据库文件)。 ContentProvider 正是解决不同的应用包共享数据的工具。 用户界面 Android 系统的界面空间分为定制控件。 定制空间是用户独立开发的空间,或者通过继承并修改系统空间后所产生的新空间,能够提供特殊的功能和显示需求。 系统控件是 Android 系统中已经封装好的界面控件,而在代码中动态修改需要更 新状态的界面元素。 当然,用户也可以将所有的界面元素,无论在程序运行后是否需要修改其内容,都放在代码中进行定义和声明。 很明显这不是一种良好的界面设计模式,会给后期界面修改带来不必要的麻烦,是应用程序开发过程中最常见的功能控件。 系统控件更有利于进行快速开发,同事能够使 Android 应用程序的界面保持一定的一致性。 常见的系统控件包括 TextView、 EditView、 Button、 ImageButton、 CheckButton、Spinner、 ListView 和 Tablehost。 界面布局( layout)是用 户界面结构的描述,定义界面中所有的元素、结构和相互关系。 一般生命 Android 程序的界面布局有两种方法,第一种是使用 XML 文件描述界面的布局,另一种是在程序运行时动态添加或修改界面布局。 Android 系统在生命界面布局上提供了很好的灵活性,用户既可以独立使用任何一种声明布局的方式,也可以同时使用两种方式。 一般情况下,使用 XML 文件来描述用户界的基本元素,而在代码中动态修改需要更新状态的界面元素。 当然,用户也可以将所有的界面元素,无论在程序运行后是否需要修改其内容,都放在代码中进行定义和声明。 很明显这不是一 种良好的界面设计模式,会给后期界面修改带来不必要的麻烦,而且界面较多时,程序代码也会显示凌乱不堪。 中原工学院信息商务学院毕业设计(论文) 7 使用 XML 文件声明界面布局,能够更多地将程序的表现层和控制层分离,在修改界面时将不再需要更改程序的源代码。 界面布局的种类 : (1) 线性布局 :线性布局 (LinearLayout)是一种重要的界面布局 ,也是经常使用的界面布局。 在线性布局中,所有子元素都在垂直或水平方向按照顺序在界面上排序。 (2) 框架布局 : 框架布局( FrameLayout)是最简单的界面布局,用来存放一个元素的空白控件,且子元素的位置不能 够制定的,只能够放置在空白空间的左上角。 (3) 表格布局:( TableLayout)也是一种常用的界面布局,它将屏幕划分为表格,通过制定行和列可以将界面元素添加到表格中。 (4) 相对布局:( RelativeLayout)是一种非常灵活的布局方式,能够通过指定界面元素与其他元素的相对位置关系,确定界面中所有元素的布局为止。 (5) 绝对布局:( AbsoluteLayout)能通过指定界面元素的坐标文职,来确定用户界面的整体布局。 Fragment Fragment 的主要目的在大屏幕设备上实现灵活 的、动态的界面设计。 例如,在Android 的平板电脑上,因为屏幕有更多的空间来配置更多的组件,并且这些组件之间还会产生一定的数据交互。 Fragment 支持这种设计理论,开发人员不需要管理复杂的试图结构变化,而且把这些动态的管理交给 Fragment 和回退堆栈( back stack)完成,在进行界面设计时,只需要将界面布局按照功能和取于划分为不同的模块,每个模块设计成一个Fragment 即可。 Fragment 具有和 Activity 类似的生命周期,但是比 Activity 支持更多的事件回调函数。 Fragment 生命周期中回调函数。 网络编程之使用 HttpClient 进行 Get 方式通信 基于 Android 操作系统的天气实况预报系统设计的核心是通过调用通信协议SOAP( Simple Object AccessProtocol)的接口,从 Web Service 提供商中提取天气预报的数据信息。 采用 HttpPost 来与后台交互,然后对数据进行解析,从中找到需要的数据。 如下图所示为提供 webservice 服务的网站网络拓扑图 田凯:基 于 Android 平台的天气查询系统的设计与开发 8 图 21 网络拓扑图 在 Android 开发中, Android SDK 附带了 Apache 的 HttpClient,它是一个完善的客户端。 它提供了对 HTTP 协议的全面支持,可以使用 HttpClient 的对象来执行 HTTP GET 和 HTTP POST 调用。 HTTP 工作原理: (1) 客户端 (一般是指浏览器,这里是指自己写的程序 )与服务器建立连接 (2) 建立连接后,客户端向服务器发送请求 (3) 服务器接收到请求后,向客户端发送响应信息 (4) 客户端与服务器断开连接 HttpClient 的一般使用步骤: (1) 使用 DefaultHttpClient 类实例化 HttpClient 对象 (2) 创建 HttpGet 或 HttpPost 对象,将要请求的 URL 通过构造方法传入 HttpGet或 HttpPost 对象。 (3) 调用 execute 方法发送 HTTP GET 或 HTTP POST 请求,并返回 HttpResponse对象。 (4) 通过 HttpResponse 接口的 getEntity 方法返回响应信息,并进行相应的处理。 最后记得要在 文件添加网络权限 usespermission android:name= / 聚合数据全国 天气预报 数据接口使用 HttpClient 进行 Get 方式通信,通过HttpClient 建立网络连接,使用 HttpGet 方法读取数据,并且通过 HttpResponse 获取Entity 返回值。 中原工学院信息商务学院毕业设计(论文) 9 第 3 章 开发环境 配置 Android 开发框架 下图是 Android 的体系架构图,自上而下分别为应用层、应用框架、类库和 Alvik运行时环境以及 Linux 内核。 图 Android 的体系架构图 一般来说,我们想从事 Android 开发,可以从应用 开发作为切入点,逐渐熟悉其整个体系,并慢慢往其底层渗透,从而能做到软硬兼备, Android 系统开发班的课程设置就充分考虑到了这一点,既涉到应用开发的透彻掌握,又帮助大家在系统开发层面上做好充分的准备。 而从学习的路线图上来说,先熟悉 Java SE 编程,能比较熟练的使用 Java 语言进行编程,熟悉 Java 语言语法特点,熟悉 Java IO、 Java 线程、网络编程、 XML 处理等。 另外,因为很多的 Android 应用在运行时都需要去访问网站服务器,因此,熟悉一种网络编程语言也是必要的。 无论是从开发班的课程设置就充分考 虑到了这一点,既涉到应用开发的透彻掌握,又帮助大家在系统开发层面上做好充分的准备。 而从学习的路线图上来学习的方便性还是市场占有情况来说使用 JSP/Servlet 都是不二的选择,另外,在这个阶段也顺便学习一下 SQL 语法和熟悉一种 SQL 数据库,以方便后续 Android 开发中进行SQLite 数据库开发。 学习完这些课程后,就可以开始进行 Android 的应用开发的学习,例如 Android 中的 UI 组件、基本组件、数据存储、传感器、图形图像处理、多媒体处理、游戏开发等。 Android 包含一套 C/C++库, Android 系统的各式组件都在使用。 这些功能通过田凯:基 于 Android 平台的天气查询系统的设计与开发 10 Android 应用框架暴露给开发人员。 Android 的核心类库提供 Java 类库所提供的绝大部分功能。 每个 Android 应用都运行在自己的进程上,享有 Dalvik 虚拟机为它分配的专有实例。 为了支持多个虚拟机在同一个设备上高效运行, Dalvik 被改写过。 Dalvik 虚拟机执行的是 Dalvik 格式的可执行文件 (.dex)该格式经过优化,以降低内存耗用到最低。 Java 编译器将 Java 源文件为 class 文件 ,class 文件又被内置的 dx工具转化为 dex 格式文件 ,这种文件在 Dal。荐基于android平台的天气查询系统的设计与开发安卓天气预报毕业论文[精选整理]
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。