毕业设计(论文)-基于Android平台的任意天气系统的设计与实现(24页).doc
-
资源ID:38776793
资源大小:200KB
全文页数:24页
- 资源格式: DOC
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
毕业设计(论文)-基于Android平台的任意天气系统的设计与实现(24页).doc
-毕业设计(论文)-基于Android平台的任意天气系统的设计与实现-第 19 页 网络教育学院本 科 生 毕 业 论 文(设 计)题 目:基于Android平台的任意天气系统的设计与实现 学习中心: 深圳学习中心 层 次: 专科起点本科 专 业: 网络工程 年 级: 15 年 秋 季 学 号: 学 生: 指导教师: 完成日期: 2017年 6 月 24日 内容摘要随着智能手机的不断发展,手机应用也如雨后春笋般的越来越多。据移动市场研究公司App Figures近期发布的一项报告显示截止2016年1月15日,安卓应用的总数达到了143万款远高于IOS系统。由此也反映出用户的一个困扰,有时需要打开非常多的应用来完成日常基本的生活所需,所以解决这一问题集成化大量应用在一个应用中就成为了目前的潮流,这也正是基于安卓的任意天气设计的初衷。本文首先分析了基于安卓的任意天气的研究背景及意义,并对基于安卓的任意天气开发的意义进行了分析。接着对开发任意天气中所涉及到的安卓架构、工作机制、理论基础进行了详细的阐述。随后从系统功能需求出发,并分析了设计安卓任意天气的可行性,最后对系统开发及运行环境进行了研究。然后从系统的总体结构出发并分析了数据库的设计,并对任意天气各模块的设计进行了研究。文章的最后是每个模块的实现过程,并有每个模块的运行测试,最终系统测试稳定可用。关键词:安卓;应用;任意天气;实现目 录内容摘要I1 绪论11.1 研究背景11.2开发意义11.3 研究方法及研究框架11.3.1 研究方法11.3.2 论文研究框架12 安卓相关技术22.1 安卓体系架构22.2 安卓的应用和工作机制32.3 系统开发应用的理论基础42.3.1 XML解析技术简介42.3.2 SharedPreferences 技术简介42.3.3 SQLite技术简介42.3.4 AIDL技术简介53 系统的需求分析63.1 系统功能需求63.2 系统可行性分析63.2.1 技术可行性63.2.2 用户操作可行性63.3 系统开发和运行环境74 系统总体设计84.1 系统总体结构设计84.2 系统数据库设计84.3 任意天气各模块设计94.3.1 主界面的设计94.3.2 天气预报的查询及显示94.3.3 通讯录中联系人的显示及添加104.3.4 快递详情的查询114.3.5 记事本的显示及添加124.3.6 计算器功能145 系统实现与测试155.1 系统主界面实现155.2 通讯录中联系人模块的实现165.3 快递详情查询模块的实现175.4 记事本模块的实现185.5 计算器模块的实现195.6 天气预报查询显示模块的实现206 结论与展望22参考文献231 绪论1.1 研究背景随着移动互联网和手机通信的快速发展,智能手机和平板电脑已经成为人们生活必不可少的工具。2016年国内手机市场呈现出加速发展的趋势,2G、3G的市场结构更稳定,智能手机出货量增加了一倍而4G的出现让手机市场更为火热。报告显示2016前6个月,国内手机市场的销售增长45%,3G手机销量增长70%。智能手机销量增长一倍以上。下半年国内手机销量将继续保持增长趋势。从去年第二季度全球平板电脑销量统计数据来看将近五千万的销售量比较2016年同期增长超过40%;Android平板电脑销量和出货量喜人的业绩,获得了超过60%的市场份额,此外iOS平板占据28%,Windows占5%。1.2 开发意义目前从手机用户使用手机的日常行为可以发现除了电话通信的使用,手机应用软件已成为的绝大多数手机用户生活获取信息等的生活助手。目前谷歌的Android应用市场非常活跃,手机应用软件市场孕育着无限的市场机会。而目前随着手机应用的越来越多,用户需要打开的应用也越来越多,这极大的增加了手机的负担并拖慢了手机的运行速度。所以设计并实现基于安卓的任意天气就具有很重要的意义。基于安卓的手机小助手,提供了很多简单功能的集成,方便用户的操作、提高了效率1。1.3 研究方法及研究框架1.3.1 研究方法(1)文献法:通过查找国内外相关文献,对国内外该领域目前的研究现状进行归纳总结,并提出自己的研究思路。(2)定性分析法:对获得的各种材料进行思维加工,分析归纳和抽象概括。(3)定量分析法:综合运用历史、观察法等科学方式,对现象进行有计划的、周密的和系统的了解,并对调查搜集到的大量资料以及数据进行分析、综合、比较、归纳和整理。(4)实证分析法。实证的分析研究任意天气的设计、实现过程。1.3.2 论文研究框架第一章首先对任意天气开发的背景及开发意义进行了分析。第二章从安卓的架构、工作机制相关技术等分析。第三章对系统功能需求出发,并分析了设计安卓任意天气的可行性,最后对系统开发及运行环境进行了研究。第四章系统的总体结构出发并分析了数据库的设计,并对任意天气各模块的设计进行了研究。第五章是每个模块的实现过程,并有每个模块的运行测试。2 安卓相关技术2.1 安卓体系架构Android是一个专门为移动设备打造的真正开放和完整的移动软件操作系统,它是由Linux结合Java组成的开源软件平台,Android虚拟机的核心源代码是开放的,所以内容的可移植性和内容的多样性2。对于开发人员来说,Android平台提供的应用软件开发的一个很好的框架,头发可以在这个平台的基础上,按照自己的想法和客户要求开发各种应用软件,也可以在这个平台上的一个新的组件开发,方便应用程序调用。基于Linux平台的系统底层,操作系统中间层,用户界面和应用软件组成的四层,它使用被称为一个软件叠层的方式进行建设。本软件叠层结构使层与层之间的分离,分工明确。这种劳动分工确保层与层之间的错误,当低层变化的时候上层应用无任何变化3。(1)应用程序在一系列的程序包一起发布的Android应用程序包的连接,包括电子邮件客户端,SMS短消息的程序、日历、联系人管理、浏览器、地图等。这些应用程序基于Java语言开发的5。(2)应用程序框架API框架的开发者有完全访问核心应用程序使用。为了简化组件的重用的应用架构设计;任何应用程序都可以发布它的功能块和任何其他应用程序可以使用其所发布的功能块(安全限制,但必须遵循的框架)。同时,重用机制的应用程序还允许用户更换组件方便。每个应用程序都是隐藏在服务和一系列的系统,包括;丰富的和可扩展的视图:可用于构建应用程序,它包括一个列表,栅格,文本框,按钮,甚至可以嵌入式Web浏览器4。内容提供器:允许应用程序在另一个应用程序访问数据,或者分享你自己的数据。资源管理器:提供非代码资源的访问,如本地字符串、图形、和布局文件。通知管理器:应用程序可以在状态栏中显示一个自定义消息。活动管理器:用来管理应用程序生命周期,提供了一个通用的导航回退功能。(3) 系统运行库1)程序库Android包含C / C + +库,该库可以在Android系统各部件的应用。他们提供的服务通过Android应用开发框架的。以下是一些核心库:系统C库从标准C BSD系统库(libc)继承,这是专为基于定制嵌入式Linux设备。媒体库:基于packetvideo开源的库,支持多种常用的音频,视频播放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。表面管理:管理的显示子系统,并提供了多个应用二维和三维层的无缝集成。libwebcore:新的Web浏览器引擎,为Android的浏览器和嵌入式Web视图支持。SGL:底层的2D图形引擎。3D库:OpenGL ES 1基于API;图书馆可以使用硬件加速的三维(如果可用)或高度优化的三维软件使用加速度。FreeType:位图(位图)和(矢量)矢量字体。SQLite:免费为所有应用程序,功能强大的轻量级关系数据库引擎。2)Android运行时库Android包含一个核心库,该库提供了大部分的功能性编程语言Java核心库。每个Android应用程序运行在自己的进程中,有一个单独的Dalvik虚拟机实例。Dalvik被设计成一个设备可以运行多个虚拟系统的同时有效地。Dalvik虚拟机。DEX)执行Dalvik可执行文件,对于小内存使用的格式进行了优化。同时,虚拟机是基于寄存器的,通过Java编译器的所有类,然后通过SDK dx工具。dex格式由虚拟机执行。一些的Dalvik虚拟机的功能依赖于Linux内核,如线程机制和底层内存管理机制6。(3)Linux内核Android的核心服务体系依赖于Linux 2.6内核,如安全,内存管理,进程管理,网络协议栈和驱动模型。的Linux内核也作为硬件和软件之间的抽象层。2.2 安卓的应用和工作机制每一个Android应用程序,主要是由活动,服务,内容提供商IntentReceiver,四部分组成,但并不意味着每一个Android应用程序的需求,这是由四个部分组成。使用应用程序清单文件时,需要配置xml函数。配置文件是每个Android应用的一个重要组成部分,定义应用程序组件和功能以及必要的条件来完成7。Android应用程序的结构和工作流程如图所示2-1:图2-1 Android的组件和工作机制2.3 系统开发应用的理论基础2.3.1 XML解析技术简介在Android开发中,经常需要对XML的操作,特别是在分析数据,需要将数据打包成XML格式的文件类型;而在参数传递给程序界面背景时,也需要数据封装成XML格式的文件,它便于传输和数据分析。在Android开发平台,有解析XML文件的三种方法。(1)DOM方式创建解析XML文档DOM解析方法,基于面向对象的自动内容生成树结构模型和XML文档的层次结构。该方法的主要特点是使用简单,无需关注其分析过程。但最大的缺点是需要占用大量的内存空间,特别是当XML文档比较大,整个文档的解析和加载过程会很慢很昂贵。因此,它通常不被用于嵌入式系统内存资源是有价值的8。(2)SAX方式解析XML文档使用DOM解析XML文档,并为人们的日常思维模式是比较多的,易于使用,但它直接向文件到内存,更多的内存消耗。另外分析XML(XML的简单API)-萨克斯。SAX解析速度和更少的内存的XML解析器,Android和其他移动设备非常适合9。这主要是基于事件驱动的,基于Android系统的事件处理机制是一个回调函数。这里的回调函数,可以这样理解:在SAX解析XML文档读取文件的使用,开始标签和结束标签会在读取回调事件,与其他节点将回调事件10。它不需要解析文件分析,工艺文件,SAX将确定XML语法作为当前读取字符的一部分,如果它会触发事件。2.3.2 SharedPreferences 技术简介SharedPreferences是Android平台上一个轻量级的存储类,它是以一种简单、透明的方式来保存用户对于通用字体、颜色,位置和其他一些用户个性化配置的改变。它主要用于存储系统的配置信息,如一般的应用程序将提供一个“集”或“偏好”这个接口;用户登录输入用户名、密码、保留时间在下次登录时输入信息。这些设置的偏好轻完成保存功能保存。SharedPreferences主要是以键值对来存储应用程序的配置信息,它只能存储基本数据类型。一个程序的配置文件仅可以在本应用程序中使用,或者说只能在同一个包内使用,不能在不同的包之间使用。实际上,SharedPreferences是釆用了 XML格式将数据存储到设备中,在 DDMS 中的 File Explorer 中的/data/data/<package name>/sharesjprefs下可查看所存储的信息11。2.3.3 SQLite技术简介Android操作系统内置的SQLite数据库,关系数据库,它是一个轻量级的嵌入式系统,已应用于iPhone,Android和其他移动电话系统。SQLite的便携性与Struts框架在Web应用程序相比,Web应用程序启动时加载,ActionServlet,和初始ActionServlet的应用,从struts-config.xml文件读出ActionServlet的配置信息,存储在各种配置对象,如映射存储在ActionMapping对象的动作信息12,如如图2-2所示。图 2-2 SQLite结构图SQLite由以下几个组件组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE)使调试、修改和扩展SQLite的内核变得更加方便。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个关系型数据库(RDBMS),但在进程内部,它却是完整的,有自包含的数据库引擎13。2.3.4 AIDL技术简介对于客户端和服务之间的通信,虽然可以通过IBinder,但需要共享业务。如果你想沟通的话,需要使用AIDL(接口定义语言)是。AIDL接口定义语言,是用来限制在两个进程间通信的规则,因为编译器生成的代码,Android的通讯设备的两个过程的实现(IPC)14。AIDL IPC机制和EJB,CORBA是非常相似的,进程之间的信息沟通,转换中的信息,然后发送给对方,对方收到AIDL消息随后被转换为相应的对象。作为双向转换的需要之间的通信过程,所以Android使用代理类实现的一个双向的信息传递的背后,Android编译器生成的代理类,对开发者来说是透明的15。3 系统的需求分析3.1 系统功能需求任意天气的开发是基于用户对于各类信息集成的需求进行开发的,目前由于手机中各类应用越来越多,用户在使用的过程中也不断提出了对于软件设计的新要求。比如功能的集成,一个软件如果能集成更多的功能,将会更方便人们的使用,并且可以减少安卓系统运行的后台,减少系统占用的资源并提高闲置手机内存,可以一定程度的提高手机的运行速度。基于安卓的任意天气既是在这样的背景下进行设计研究的16。任意天气需要实现的功能就是日常生活中所需要集成的一些简单但却非常实用的功能。比如天气预报的查询及显示,在任意天气中设置了常用地点之后就可以方便快捷的显示出来,比如读取手机通讯录可以在任意天气中快捷显示。随着目前网购的越来越发达,用户的快递也逐渐增多,而快递查询的集成也很大的解决了这一问题。再如记事本、计算器功能、日历查询等都是用户日常需要的功能,当这些功能实现并集成到一个应用的时候,将会减少用户很多打开应用的等待时间、也可以帮助用户进行记忆。比方说有生活琐事的时候就打开任意天气,并在其中找到自己所需。这也正是基于安卓的任意天气设计与实现的初衷。3.2 系统可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从用户操作,技术等方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。由于基于安卓的小助手的设计并不会耗费太大的财力所以分析经济可行性是非必要的,在对系统目标和环境精心分析的基础上,从技术可行性和用户操作可行性等两个方面对本系统进行可行性研究。3.2.1 技术可行性安卓架构是完全开放的,且架构比较简单实用,在网络上有很多安卓开发的课程培训教程,可以通过简单的学习应用上手。开发基于安卓的小助手在技术上是完全可行的。3.2.2 用户操作可行性对于这套小助手系统而言,在投入使用前,没必要对用户进行系统培训,界面采用了很简单很容易操作的方式,基本上任何人都能第一时间弄懂界面中的内容以及操作方法,可以说几乎任何人都可以使用和管理。所以本系统的操作是完全可行的。由上述分析可以看出,本系统的开发时机已经成熟,从多种角度考虑开发此系统都是可行的,并且也是十分必要的。3.3 系统开发和运行环境为了在PC主机上得到Android的开发环境,我们选择在Windows操作系统中进行对Android开发环境的搭建,具体步骤如下:先下载JDK,按照提示安装成功后。绿色版的Eclipse安装下载,无需安装,和安装Android的发展提供功能。在android developers Android SDK的安装androidsdkr07windows.zip下载,下载后任意路径完成减压。运行SDK manager.exe,出现如图界面下,点击在可用的软件包。并希望SDK文档或其他软件包安装的选择,在安装时选择安装,点击接受,接受,下载并安装所选套餐。下载完成后所有的androidsdkr07windows文件夹内容如下;ADT的安装。ADT是一个工具,它可以连接到SDK和Eclipse Eclipse SDK,帮助找到开放的Eclipse接口,进入菜单中的“帮助”>“installnewsoftware”,然后点击添加按钮,弹出对话框,要求输入的名称和位置,窗口,选择;选择面板左侧的侧Android,然后在右键单击并选择“浏览;SDK的路径,该机;D: yjsh Android androidsdkr07windows;点击应用和确定。配置完成。创建AVD。为了使Android应用程序可以在模拟器中运行,你必须创建一个AVD,步骤如下:在Eclipse中,Windows,Android SDK和AVD管理,对虚拟仪器的面板左侧的点击,然后右键点击新,在名称,目标API,SD卡任意大小,皮采,硬件维持当前的默认值,单击完成创建createavd AVD。4 系统总体设计4.1 系统总体结构设计基于安卓的任意天气需要实现的功能就是日常生活中所需要集成的一些简单的功能。根据前文的需求分析小助手需要集成的功能包括天气预报的查询及显示、在任意天气中设置了常用地点之后就可以方便快捷的显示出来、读取手机通讯录可以在任意天气中快捷显示、快递查询、记事本、计算器功能、日历查询等都是用户日常需要的功能。系统的总体设计如图4-1所示。图4-1任意天气总体设计架构4.2 系统数据库设计使用sqlite数据库,SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎,它具有小巧、方便操作等特点。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。SQLite由以下几个部分组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),是调试、修改和扩展SQLite的内核变得更加方便。所有SQL语句都被编译成易读的、可以在SQLite虚拟机中执行的程序集表4-1记事表、4-2通讯录表。表4-1 JSInfo 计事表Field Name字段名称Field Type字段类型Field Restrain字段约束Descriptiion注释IDIntPrimary key主键TitleNvarchar(100)无标题ContentNvarchar(500)无内容表4-2 FriendsInfo 通讯录表Field Name字段名称Field Type字段类型Field Restrain字段约束Descriptiion注释IDIntPrimary key主键NameNvarchar(10)无标题PhoneNumNvarchar(12)无内容4.3 任意天气各模块设计4.3.1 主界面的设计主界面主要设计为静态图各模块以镶嵌的形式存在,主界面的设计力求简洁。要让用户一打开界面就知道怎样操作、如何使用。所以主界面中各模块的设计需要参考目前比较主流的logo形式,从而让用户快捷的识别并使用,进而达到省时省力的目的。所以基于安卓的任意天气在设计主界面的时候也要尽量精简内容,每一个功能都恰到好处。4.3.2 天气预报的查询及显示在天气预报的查询及显示模块中,该功能通过设置常用地在软件打开后快捷的显示常用地的天气具体情况。天气预报查询及显示模块的图标采用很简单的文字显示,即直接显示常用地或系统默认地点,这样简单快捷的表达了天气查询的意思。打开该界面首先出现的是区域及地点的详细选择,并逐步细化到区域等。设定了区域之后,系统就会从网上下载相应地点的天气信息,并最终以文字、天气图标的形式显示在界面中。天气Process analysis业务流程分析天气查询模块主要分为以下几步图4-2所示。1.在界面上点击天气2.选中相应的省市3.对应省市的天气情况就会显示在主界面上图4-2 Flow Diagram流程图4.3.3 通讯录中联系人的显示及添加在通讯录中联系人的显示及添加模块中我们可以快捷的查询并联系手机中的常用联系人。通讯录中联系人的显示及添加的Logo标志设计为每个人都熟知的电话卡即sim卡的形式,该logo为通讯录最为经典的显示方式。醒目的红色也能让我们很好的识别并使用。打开通讯录中联系人的显示及添加模块可以读取手机中的联系人列表,并最终在手机小助手中显示出来,并且在这一模块将电话的类别分为了三类即快递服务、常用电话、银证表现等,这样也很大的方便了用户进行添加修改或更新的操作。该功能主要用来显示,添加,查询常用联系人图4-3、4-4所示。(1)Process analysis业务流程分析通讯录模块主要分为以下几步1.在界面上点击通讯录。2.选中添加可以添加一个联系人。3.在某个联系人上点击删除可以删除一个联系人。4.在文本框中输入人名可以进行模糊查询。(2)Flow Diagram流程图图4-3 添加联系人流程图图4-4 删除联系人流程图4.3.4 快递详情的查询快递详情的查询模块是对快递查询的集成,快递详情的查询模块需要做到的就是帮助用户快捷的查询快递信息。图标选择了古代中国的信鸽形式,非常的醒目且也能代表快递这一模块,同时也减轻了用户的记忆负担,方便下次的快捷操作。快递详情的查询模块打开需要首先显示的是选择快递公司,因为现在的快递公司越来越多,快递详情的查询模块的最终目的是为减轻用户的负担,所以首先对快递公司进行分类,并对各快递公司的快递单号规则进行研究,在快递单号输入一栏通过提示帮助用户正确的输入单号,所有的设计都是为了让用户更方便更快捷的使用任意天气中的功能。该功能主要用来查询快递的信息图4-5所示。(1)Process analysis业务流程分析快递详情查询模块主要分为以下几步。1.在界面上点击快递查询,2.选中一个系统提供的快递,3.在文本框中填入快递的单号4.如果快递单号存在就显示快递的详细信息(2)Flow Diagram流程图图4-5快递查询业务流程4.3.5 记事本的显示及添加记事本的显示及添加模块就是很简单的记事本模块,类似于txt记事本,这种记事本打开最为快捷且占用内存最少,所以选择它。记事本的背景就设置为最为简单的白色,没有任何多于的元素。在主界面上设置了记事本的logo,让用户记事更为方便。该功能主要用来记录删除一些临时的记事信息如图4-6、4-7、4-8所示。(1)Process analysis业务流程分析记事本模块主要分为以下几步。1.在界面上点击记事本。2.点击添加按钮添加一条记事。3.在某条记录后点删除按钮删除某条记事。4.点中某条记事进入该记事的详细页面(2)Flow Diagram流程图图4-6添加记事流程图图4-7修改记事流程图图4-8删除记事流程图4.3.6 计算器功能很多用户在生活中经常要使用到计算器功能模块,而任意天气中的计算器功能正是为了解决这一问题。方便用户免得再到系统应用中去翻查找计算器软件。计算器的logo 就是计算器的经典简化头像,让用户更容易识别。打开计算机功能就是计算器的功能键盘,让计算更为快捷。该功能主要用来实现一些简单的加减乘除算法图4-9所示。(1)Process analysis业务流程分析。计算器模块主要分为以下几步。1.在界面上点击计算器2.输入需要计算的数据3.点击等号显示最终的结果(2)Flow Diagram流程图。图4-9计算器模块5 系统实现与测试5.1 系统主界面实现系统主界面的设计如图5-1所示。图5-1系统主界面设计关键代码package com.fenghuo.life;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;public class PhoneActivity extends Activity implements OnClickListener private TextView tv_phone_express, tv_phone_number, tv_phone_bank;private ListView lv_detail;private String strarr_name_express, strarr_name_phone, strarr_name_bank;private String strarr_number_express, strarr_number_phone,strarr_number_bank;private void bind() img_phone = (ImageView) findViewById(R.id.img_phone);img_phone.setOnClickListener(this);tv_phone_express = (TextView) findViewById(R.id.tv_phone_express);tv_phone_number.setOnClickListener(this);tv_phone_bank.setOnClickListener(this);if (null != data) adapter_lvdetail = new MybaseAdapter_lvdetail(this, data);lv_detail.setAdapter(adapter_lvdetail);5.2 通讯录中联系人模块的实现在通讯录中联系人的显示及添加模块中我们可以快捷的查询并联系手机中的常用联系人。可以读取手机中的联系人列表,并最终在手机小助手中显示出来,并且在这一模块将电话的类别分为了三类:即快递服务、常用电话、银证保险等,这样也很大的方便了用户进行添加修改或更新的操作图5-2所示。图5-2 通讯录联系人模块package com.fenghuo.life;import android.content.Context;import android.graphics.Rect;import android.text.TextUtils;import android.util.AttributeSet;Overridepublic void onWindowFocusChanged(boolean focused) if (focused) super.onWindowFocusChanged(focused);Overridepublic boolean isFocused() return true;5.3 快递详情查询模块的实现快递详情的查询模块的最终目的是为减轻用户的负担,所以首先对快递公司进行分类,并对各快递公司的快递单号规则进行研究,在快递单号输入一栏通过提示帮助用户正确的输入单号,所有的设计都是为了让用户更方便更快捷的使用任意天气中的功能如图5-3所示。图5-3 快递查询模块关键代码使用webService是实现,package com.fenghuo.life.ems;import java.io.IOException;import org.json.JSONArray;JSONArray data = jsonObj.getJSONArray("data");StringBuffer buffer=new StringBuffer();for(int i=0;i<data.length();i+)buffer.append(data.getJSONObject(i).getString("time").replace(" ", " ").append(": ").append(data.getJSONObject(i).getString("context").replace(" ", " ").append("n");express.setOpt_message(buffer.toString();return express;5.4 记事本模块的实现记事本的显示及添加模块就是很简单的记事本模块,这种记事本打开最为快捷且占用内存最少,也能让用户记事更为方便,具体如下图5-4所示。图5-4 记事本模块关键代码public class MainActivity extends ListActivity private static final int INSERT_ID = Menu.FIRST; private static final int DELETE_ID = Menu.FIRST + 1; private static final int ACTIVITY_CREATE = 0; private static final int ACTIVITY_EDIT = 1; private DiaryDbAdapter diaryDb; private Cursor cursor; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); diaryDb =new DiaryDbAdapter(this); diaryDb.open(); private void showListView()cursor = diaryDb.getAllNotes();String from = new StringDiaryDbAdapter.KEY_TITLE,DiaryDbAdapter.KEY_BODY;int to = new intR.id.text1,R.id.created;ListAdapter cursorAdapter = new SimpleCursorAdapter(this,R.layout.diary_row,cursor,from,to);setListAdapter(cursorAdapter);5.5 计算器模块的实现很多用户在生活中经常要使用到计算器功能模块,而任意天气中的计算器功能正是为了解决这一问题。方便用户免得再到系统应用中去翻查找计算器软件。计算器的logo 就是计算器的经典简化头像,让用户更容易识别。打开计算机功能就是计算器的功能键盘,让计算更为快捷如图5-5所示。图5-5 计算器模块关键代码public void onClick(View v) switch (v.getId() /btnBackspace和CEcase R.id.btnBackspace:String myStr=tvResult.getText().toString();try tvResult.setText(myStr.substring(0, myStr.length()-1); catch (Exception e) tvResult.setText("");break;case R.id.btnCE:tvResult.setText(null);break;default:break;5.6 天气预报查询显示模块的实现在天气预报的查询及显示模块中,打开该界面首先出现的是区域及地点的详细选择,并逐步细化到区域等。设定了区域之后,系统就会从网上下载相应地点的天气信息,并最终以文字、天气图标的形式显示在界面中。由于天气预报功能又气象局提供,所以我们可以调用气象局提供的webService来获取对应省市的天气如图5-6、5-7、5-8所示,所获取的信息直接从网络上获取显示。图5-6 天气情况查询图5-7 天气地区选择点击标题上的北京可以对区域进行设定图5-8 省选择点击某个省可以对对应的市进行设定图5-9 市选择选中某个地区后界面上就会出现该地区的天气信息6 结论与展望本文首先分析了基于安卓的任意天气的研究背景及意义,并对基于安卓的任意天气开发的意义进行了分析。接着对开发任意天气中所涉及到的安卓架构、工作机制、理论基础进行了详细的阐述。随后从系统功能需求出发,并分析了设计安卓任意天气的可行性,最后对系统开发及运行环境进行了研究。然后从系统的总体结构出发并分析了数据库的设计,并对任意天气各模块的设计进行了研究。文章的最后是每个模块的实现过程,并有每个模块的运行测试,最终系统测试稳定可用。本文设计的核心思想是为了让用户快捷的识别并使用,进而达到省时省力的目的。所以基于安卓的任意天气在设计主界面的时候也要尽量精简内容,每一个功能都恰到好处。由于本人学识有限,参考的文献也不够多,论文中可能会有疏漏,在以后的学习生活中会持续研究此问题,并深化研究并提高对课题的认识。参考文献1 姚昱旻,刘卫国.Android的架构与应用开发研究J. 计算机系统应用. 2014,6(12):34-35.2 杨雄,赵远东.基于J2ME的无线移动商务安全应用研究J. 计算机应用与软件. 2014,4(09):99-101.3 倪天龙,张贤高,王培.数据库SQLite在嵌入