版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、职场大变样社区():下载毕业设计成品全套资料,全部50元以下毕业设计(论文)任务书 第1页毕业设计(论文)题目:基于android的天气预报软件的设计与实现毕业设计(论文)要求及原始数据(资料):1了解基于位置的服务和访问网络数据接口的实现和使用;2掌握和使用android系统内置的一个轻量级的SQLite数据库;3掌握android网络编程技术、消息的传输;4掌握各种UI元素,以便在应用程序中进行xml布局;5使用开发工具:Android SDK、Eclipse集成环境、ADT;6深入分析此天气预报系统中使用的关键技术和编写语言;7实现对天气预报软件的测试,排除错误并改正;8训练检索文献资料
2、和利用文献资料的能力;9训练撰写技术文档与学位论文的能力。 第2页毕业设计(论文)主要内容:1设计并实现天气预报的系统功能和组成模块;2熟悉并使用天气预报软件中所使用的开发环境和开发工具;3了解四大组件、网络编程、定位服务等与天气预报软件相关的技术;4利用天气预报软件中使用的各种UI元素,编写xml文档对界面进行布局;5熟练掌握java语言和四大组件的使用,编写实现业务逻辑;6对得到数据使用相关技术进行解析;7使用SQLite数据库对数据进行存储;8设计并实现对天气预报软件的各个模块和功能进行检查和测试。学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包
3、括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 第3页主要参考文献(资料):熊传玉,徐尤华.Android系统下基于JSON的天气预报应用的实现J.微型电脑应用,2016(1):8-10.闫娜,闫蕾.基于Android的个性化天气预报系统的设计与软件实现J.计算机光盘软件与应用,2012(7):155-156.李瑞宣,王山东,徐志远,等.基于Android平台定位系统设计和实现J.信息技术,2013(12):187-190.高贤强.基于Android系统的AppWidgetProvider分析J.电子技术与软件工程,2014(6):264-265.尹京花,王华军.基于And
4、roid开发的数据存储J.数字通信,2012,39(6):79-81.林培杰,朱安南,程树英.Android数据库SQLite性能优化J.计算机系统应用,2014,23(4):193-196.公磊,周聪.基于Android的移动终端应用程序开发与研究J.计算机与现代化,2008(8):85-89.Lim S H,Lee S,Ahn W H.Applications IO profiling and analysis for smart devicesJ.Journal of Systems Architecture,2013,59(9):740-747.Weng Y H,Sun F S,Gri
5、gsby J D.GeoTools:An android phone application in geologyJ.Computers & Geosciences,2012,44(13):24-30.Huo-Lei M A,Tang H F.Research of SQLite Database in Android SystemJ.Computer Knowledge & Technology,2013.专业班级学生要求设计(论文)工作起止日期指导教师签字日期教研室主任审查签字日期系主任批准签字日期基于android的天气预报软件的设计与实现摘 要从古至今,天气预报一直是工农业生产、人们生
6、活服务中必不可少的重要信息。随着移动互联的快速发展、移动设备的数量与日剧增,通过广播、电视等方式发布天气预报已经不能适应现在的信息化社会。本课题研究开发的是一款手机天气查询软件,实现高效获取最新发布的天气信息以及灾害预警信息,成为人们最及时、快捷的工具和平台,辅助人们对生活、工作和出行的安排。本课题是基于android系统的天气预报软件。该软件主要采用android的四大组件,基于位置的服务,android的网络编程技术,JSON文件的解析,SQLite数据库、SharedPreferences文件存储数据,Handler机制以及异步加载技术实现线程间通信,Notification和AppWi
7、dget等技术来完成本课题。本课题主要实现了六大功能:定位功能、查看天气功能、城市管理功能、扩展功能、设置功能、AppWidget功能。定位功能用来定位到当前位置;查看天气功能可以通过用户左右滑动切换城市,获取城市的实时天气状况、三小时天气预报、未来一周的天气预报等其他天气信息;城市管理功能实现添加城市和删除城市;扩展功能实现分享天气或者空气质量指数到其他客户端软件,也可以播报天气;设置功能是对通知栏、语音播报人的设置以及软件信息的查看;AppWidget功能是对桌面小组件的添加/删除,切换城市,刷新数据的实现。 关键字:android系统;网络;天气预报;定位Design and Imple
8、mentation of Weather Forecast Software based on AndroidAbstractSince ancient times, the weather forecast has been one of the most important factors in the industrial and agricultural production and peoples lives. With the rapid development of mobile Internet, and the growing number of mobile devices
9、, weather forecast through radio, television, etc. cannot meet the current informational society. This research developed a mobile weather query software, which enables efficient information dissemination without blind spots, real-time access disaster warning information, and become one of the most
10、timely and efficient tools and platforms to help people with living, working and traveling arrangement.This paper is based on the android system of weather forecasting software. The complication of this software uses four main components of Android, location based services, Android network programmi
11、ng technology, parsing JSON document, SQLite Database and SharedPreferences for storing data, Handler mechanism and AsyncTask technology to realize communication between threads, Notification and AppWidget technology.This topic mainly implements six functions: positioning, weather checking, city man
12、agement, extensions, setting and AppWidget. Positioning can automatically locate the current city; Weather checking function can help user to get real-time weather conditions, three hours weather forecast, next weeks weather forecast of the city,etc.by sliding and switching to the city; City managem
13、ent can add and delete cities; Expansion is to share the weather or air quality index to other client software, and to broadcast weather; Setting function is the set of notification bar and voice broadcast human ,and the viewing of software information; AppWidget function can add or delete the deskt
14、op widget, switch city, refresh data.Key words: Android system; Internet; weather forecast; location目 录 TOC o 1-3 h z u HYPERLINK l _Toc453155992 1 绪论 PAGEREF _Toc453155992 h 1 HYPERLINK l _Toc453155993 1.1 研究背景与意义 PAGEREF _Toc453155993 h 1 HYPERLINK l _Toc453155994 1.2 研究内容 PAGEREF _Toc453155994 h
15、1 HYPERLINK l _Toc453155995 1.3 论文组织结构 PAGEREF _Toc453155995 h 1 HYPERLINK l _Toc453155996 2 系统环境及相关技术知识 PAGEREF _Toc453155996 h 3 HYPERLINK l _Toc453155997 2.1 开发环境 PAGEREF _Toc453155997 h 3 HYPERLINK l _Toc453155998 2.2 运行环境 PAGEREF _Toc453155998 h 3 HYPERLINK l _Toc453155999 2.3 相关技术知识 PAGEREF _T
16、oc453155999 h 3 HYPERLINK l _Toc453156000 3 项目可行性分析 PAGEREF _Toc453156000 h 9 HYPERLINK l _Toc453156001 3.1 编写目的 PAGEREF _Toc453156001 h 9 HYPERLINK l _Toc453156002 3.2 可行性研究的前提 PAGEREF _Toc453156002 h 9 HYPERLINK l _Toc453156003 3.2.1 要求 PAGEREF _Toc453156003 h 9 HYPERLINK l _Toc453156004 3.2.2 目标
17、PAGEREF _Toc453156004 h 10 HYPERLINK l _Toc453156005 3.2.3 条件、假定和限制 PAGEREF _Toc453156005 h 10 HYPERLINK l _Toc453156006 3.2.4 可行性研究的方法 PAGEREF _Toc453156006 h 10 HYPERLINK l _Toc453156007 3.2.5 评价尺度 PAGEREF _Toc453156007 h 10 HYPERLINK l _Toc453156008 3.3 现有系统的分析 PAGEREF _Toc453156008 h 10 HYPERLIN
18、K l _Toc453156009 3.4 所建议的系统 PAGEREF _Toc453156009 h 11 HYPERLINK l _Toc453156010 3.4.1 说明 PAGEREF _Toc453156010 h 11 HYPERLINK l _Toc453156011 3.4.2 影响 PAGEREF _Toc453156011 h 11 HYPERLINK l _Toc453156012 3.4.3 局限性 PAGEREF _Toc453156012 h 11 HYPERLINK l _Toc453156013 3.5 各方面的可行性分析 PAGEREF _Toc45315
19、6013 h 12 HYPERLINK l _Toc453156014 3.5.1 技术方面的可行性 PAGEREF _Toc453156014 h 12 HYPERLINK l _Toc453156015 3.5.2 经济方面的可行性 PAGEREF _Toc453156015 h 12 HYPERLINK l _Toc453156016 3.5.3 使用方面的可行性 PAGEREF _Toc453156016 h 12 HYPERLINK l _Toc453156017 4 项目需求分析 PAGEREF _Toc453156017 h 13 HYPERLINK l _Toc45315601
20、8 4.1 对功能需求的规定 PAGEREF _Toc453156018 h 13 HYPERLINK l _Toc453156019 4.1.1 功能需求概述 PAGEREF _Toc453156019 h 13 HYPERLINK l _Toc453156020 4.1.2 功能需求详述 PAGEREF _Toc453156020 h 13 HYPERLINK l _Toc453156021 4.2 对数据需求的规定 PAGEREF _Toc453156021 h 14 HYPERLINK l _Toc453156022 4.2.1 定位模块数据流图 PAGEREF _Toc4531560
21、22 h 14 HYPERLINK l _Toc453156023 4.2.2 天气模块数据流图 PAGEREF _Toc453156023 h 14 HYPERLINK l _Toc453156024 4.2.3 城市管理模块数据流图 PAGEREF _Toc453156024 h 15 HYPERLINK l _Toc453156025 4.2.4 扩展模块数据流图 PAGEREF _Toc453156025 h 15 HYPERLINK l _Toc453156026 4.2.5 设置模块数据流图 PAGEREF _Toc453156026 h 15 HYPERLINK l _Toc45
22、3156027 4.2.6 AppWidget模块数据流图 PAGEREF _Toc453156027 h 16 HYPERLINK l _Toc453156028 4.3 对性能需求的规定 PAGEREF _Toc453156028 h 16 HYPERLINK l _Toc453156029 4.3.1 精度 PAGEREF _Toc453156029 h 16 HYPERLINK l _Toc453156030 4.3.2 时间特性要求 PAGEREF _Toc453156030 h 17 HYPERLINK l _Toc453156031 4.3.3 灵活性 PAGEREF _Toc4
23、53156031 h 17 HYPERLINK l _Toc453156032 5 项目概要设计 PAGEREF _Toc453156032 h 18 HYPERLINK l _Toc453156033 5.1 基本设计概念和处理流程 PAGEREF _Toc453156033 h 18 HYPERLINK l _Toc453156034 5.1.1 基本设计概念 PAGEREF _Toc453156034 h 18 HYPERLINK l _Toc453156035 5.1.2 处理流图 PAGEREF _Toc453156035 h 19 HYPERLINK l _Toc453156036
24、 5.2 功能模块结构设计 PAGEREF _Toc453156036 h 25 HYPERLINK l _Toc453156037 5.3 接口设计 PAGEREF _Toc453156037 h 27 HYPERLINK l _Toc453156038 5.3.1 用户接口 PAGEREF _Toc453156038 h 27 HYPERLINK l _Toc453156039 5.3.2 外部接口 PAGEREF _Toc453156039 h 28 HYPERLINK l _Toc453156040 5.3.3 内部接口 PAGEREF _Toc453156040 h 28 HYPER
25、LINK l _Toc453156041 5.4 系统数据结构设计 PAGEREF _Toc453156041 h 28 HYPERLINK l _Toc453156042 5.4.1 系统数据存储选型 PAGEREF _Toc453156042 h 28 HYPERLINK l _Toc453156043 5.4.2 SQLite数据库表设计 PAGEREF _Toc453156043 h 28 HYPERLINK l _Toc453156044 5.4.3 SharedPreferences存储设计 PAGEREF _Toc453156044 h 31 HYPERLINK l _Toc45
26、3156045 5.4.4 文件I/O存储之外部存储 PAGEREF _Toc453156045 h 32 HYPERLINK l _Toc453156046 6 项目详细设计 PAGEREF _Toc453156046 h 33 HYPERLINK l _Toc453156047 6.1 定位模块的设计 PAGEREF _Toc453156047 h 33 HYPERLINK l _Toc453156048 6.1.1 程序描述 PAGEREF _Toc453156048 h 33 HYPERLINK l _Toc453156049 6.1.2 输入项 PAGEREF _Toc4531560
27、49 h 33 HYPERLINK l _Toc453156050 6.1.3 输出项 PAGEREF _Toc453156050 h 33 HYPERLINK l _Toc453156051 6.1.4 流程逻辑 PAGEREF _Toc453156051 h 33 HYPERLINK l _Toc453156052 6.1.5 接口 PAGEREF _Toc453156052 h 34 HYPERLINK l _Toc453156053 6.1.6 存储分配 PAGEREF _Toc453156053 h 34 HYPERLINK l _Toc453156054 6.1.7 核心代码 PA
28、GEREF _Toc453156054 h 35 HYPERLINK l _Toc453156055 6.2 天气模块的设计 PAGEREF _Toc453156055 h 36 HYPERLINK l _Toc453156056 6.2.1 程序描述 PAGEREF _Toc453156056 h 36 HYPERLINK l _Toc453156057 6.2.2 输入项 PAGEREF _Toc453156057 h 37 HYPERLINK l _Toc453156058 6.2.3 输出项 PAGEREF _Toc453156058 h 37 HYPERLINK l _Toc4531
29、56059 6.2.4 流程逻辑 PAGEREF _Toc453156059 h 37 HYPERLINK l _Toc453156060 6.2.5 接口 PAGEREF _Toc453156060 h 38 HYPERLINK l _Toc453156061 6.2.6 存储分配 PAGEREF _Toc453156061 h 38 HYPERLINK l _Toc453156062 6.2.7 核心代码 PAGEREF _Toc453156062 h 39 HYPERLINK l _Toc453156063 6.3 城市管理模块的设计 PAGEREF _Toc453156063 h 40
30、 HYPERLINK l _Toc453156064 6.3.1 程序描述 PAGEREF _Toc453156064 h 40 HYPERLINK l _Toc453156065 6.3.2 输入项 PAGEREF _Toc453156065 h 40 HYPERLINK l _Toc453156066 6.3.3 输出项 PAGEREF _Toc453156066 h 40 HYPERLINK l _Toc453156067 6.3.4 流程逻辑 PAGEREF _Toc453156067 h 41 HYPERLINK l _Toc453156068 6.3.5 接口 PAGEREF _T
31、oc453156068 h 41 HYPERLINK l _Toc453156069 6.3.6 存储分配 PAGEREF _Toc453156069 h 41 HYPERLINK l _Toc453156070 6.3.7 核心代码 PAGEREF _Toc453156070 h 42 HYPERLINK l _Toc453156071 6.4 扩展模块的设计 PAGEREF _Toc453156071 h 43 HYPERLINK l _Toc453156072 6.4.1 程序描述 PAGEREF _Toc453156072 h 43 HYPERLINK l _Toc453156073
32、6.4.2 输入项 PAGEREF _Toc453156073 h 43 HYPERLINK l _Toc453156074 6.4.3 输出项 PAGEREF _Toc453156074 h 43 HYPERLINK l _Toc453156075 6.4.4 流程逻辑 PAGEREF _Toc453156075 h 43 HYPERLINK l _Toc453156076 6.4.5 接口 PAGEREF _Toc453156076 h 44 HYPERLINK l _Toc453156077 6.4.6 存储分配 PAGEREF _Toc453156077 h 44 HYPERLINK
33、l _Toc453156078 6.4.7 核心代码 PAGEREF _Toc453156078 h 44 HYPERLINK l _Toc453156079 6.5 设置模块的设计 PAGEREF _Toc453156079 h 46 HYPERLINK l _Toc453156080 6.5.1 程序描述 PAGEREF _Toc453156080 h 46 HYPERLINK l _Toc453156081 6.5.2 输入项 PAGEREF _Toc453156081 h 47 HYPERLINK l _Toc453156082 6.5.3 输出项 PAGEREF _Toc453156
34、082 h 47 HYPERLINK l _Toc453156083 6.5.4 流程逻辑 PAGEREF _Toc453156083 h 47 HYPERLINK l _Toc453156084 6.5.5 接口 PAGEREF _Toc453156084 h 48 HYPERLINK l _Toc453156085 6.5.6 存储分配 PAGEREF _Toc453156085 h 48 HYPERLINK l _Toc453156086 6.5.7 核心代码 PAGEREF _Toc453156086 h 49 HYPERLINK l _Toc453156087 6.6 AppWidg
35、et模块的设计 PAGEREF _Toc453156087 h 49 HYPERLINK l _Toc453156088 6.6.1 程序描述 PAGEREF _Toc453156088 h 49 HYPERLINK l _Toc453156089 6.6.2 输入项 PAGEREF _Toc453156089 h 49 HYPERLINK l _Toc453156090 6.6.3 输出项 PAGEREF _Toc453156090 h 50 HYPERLINK l _Toc453156091 6.6.4 流程逻辑 PAGEREF _Toc453156091 h 50 HYPERLINK l
36、 _Toc453156092 6.6.5 接口 PAGEREF _Toc453156092 h 50 HYPERLINK l _Toc453156093 6.6.6 存储分配 PAGEREF _Toc453156093 h 50 HYPERLINK l _Toc453156094 6.6.7 核心代码 PAGEREF _Toc453156094 h 51 HYPERLINK l _Toc453156095 7 项目系统测试 PAGEREF _Toc453156095 h 52 HYPERLINK l _Toc453156096 7.1 定位模块测试 PAGEREF _Toc453156096
37、h 52 HYPERLINK l _Toc453156097 7.1.1 测试内容 PAGEREF _Toc453156097 h 52 HYPERLINK l _Toc453156098 7.1.2 测试设计说明 PAGEREF _Toc453156098 h 52 HYPERLINK l _Toc453156099 7.1.3 测试结果及发现 PAGEREF _Toc453156099 h 53 HYPERLINK l _Toc453156100 7.2 天气模块测试 PAGEREF _Toc453156100 h 53 HYPERLINK l _Toc453156101 7.2.1 测试
38、内容 PAGEREF _Toc453156101 h 53 HYPERLINK l _Toc453156102 7.2.2 测试设计说明 PAGEREF _Toc453156102 h 54 HYPERLINK l _Toc453156103 7.2.3 测试结果及发现 PAGEREF _Toc453156103 h 55 HYPERLINK l _Toc453156104 7.3 城市管理模块测试 PAGEREF _Toc453156104 h 56 HYPERLINK l _Toc453156105 7.3.1 测试内容 PAGEREF _Toc453156105 h 56 HYPERLI
39、NK l _Toc453156106 7.3.2 测试设计说明 PAGEREF _Toc453156106 h 56 HYPERLINK l _Toc453156107 7.3.3 测试结果及发现 PAGEREF _Toc453156107 h 57 HYPERLINK l _Toc453156108 7.4 扩展模块测试 PAGEREF _Toc453156108 h 58 HYPERLINK l _Toc453156109 7.4.1 测试内容 PAGEREF _Toc453156109 h 58 HYPERLINK l _Toc453156110 7.4.2 测试设计说明 PAGEREF
40、 _Toc453156110 h 58 HYPERLINK l _Toc453156111 7.4.3 测试结果及发现 PAGEREF _Toc453156111 h 59 HYPERLINK l _Toc453156112 7.5 设置模块测试 PAGEREF _Toc453156112 h 60 HYPERLINK l _Toc453156113 7.5.1 测试内容 PAGEREF _Toc453156113 h 60 HYPERLINK l _Toc453156114 7.5.2 测试设计说明 PAGEREF _Toc453156114 h 60 HYPERLINK l _Toc453
41、156115 7.5.3 测试结果及发现 PAGEREF _Toc453156115 h 61 HYPERLINK l _Toc453156116 7.6 AppWidget模块测试 PAGEREF _Toc453156116 h 63 HYPERLINK l _Toc453156117 7.6.1 测试说明 PAGEREF _Toc453156117 h 63 HYPERLINK l _Toc453156118 7.6.2 测试设计说明 PAGEREF _Toc453156118 h 64 HYPERLINK l _Toc453156119 7.6.3 测试结果及发现 PAGEREF _To
42、c453156119 h 64 HYPERLINK l _Toc453156120 8 结论 PAGEREF _Toc453156120 h 66 HYPERLINK l _Toc453156121 参考文献 PAGEREF _Toc453156121 h 67 HYPERLINK l _Toc453156122 致谢 PAGEREF _Toc453156122 h 68 HYPERLINK l _Toc453156123 外文文献 PAGEREF _Toc453156123 h 69 HYPERLINK l _Toc453156124 中文翻译 PAGEREF _Toc453156124 h
43、 751 绪论1.1 研究背景与意义首先,随着科技的进步和生活水平的提高,人们的生活范围逐渐扩大,每个地区的气候条件差别很大,因此人们对气象预报的需求越来越大。其次,全球气候变化多端,极端气象天气也频繁出现,短信、电视、广播媒体很难保证气象信息多频、有效的发布和传播,因此如何加强气象天气监测预警和及时的信息发布成为防灾工作的关键任务。最后,在移动通信网络高速发展的今天,手机用户逐年增长,手机气象软件可以解决很多问题,并实现高效、实时的无盲区信息发布,它也成为发布实时灾害预警信息的有效平台,带给用户更大的便利,成为手机用户必不可少的软件。1.2 研究内容此天气预报软件是一个App应用程序,也就是
44、基于android平台的天气预报查询软件。当第一次启动程序时,通过网络定位当前位置,并从网上获取当前城市的天气信息,解析得到响应文件后,显示在手机主界面上。每一次进入城市管理界面,可以添加或者删除多个城市,一旦添加了其他城市,就可以从主界面通过手势翻页切换查看每一个城市的天气情况。所有从网上获取的数据都存储在SQLite数据库中,如果当前处于无网络状态,则获取的是上一次刷新后的最新数据;如果网络已连接,程序自动获取最新天气信息,或也可以手动下拉界面刷新天气,获取最新数据。如果有需要,可以在设置界面开启通知栏或者添加AppWidget小组件,方便查看天气情况。此软件可以分享当前城市的天气情况至其
45、他第三方软件(如微博客户端)中。支持语音播报,根据用户需要选择发音人,播报当前城市的天气情况。1.3 论文组织结构首先,本文对开发天气预报软件使用的系统环境和相关技术知识简单的介绍。之后,进行了可行性分析,对该课题是否可行做出分析。其次,对该系统进行了需求分析,包括功能、数据、性能需求方面。再次,根据需求分析,对该系统进行项目的概要设计和详细设计,其中涉及到结构设计、各功能模块的划分、以及数据结构的设计。最后,对整个软件进行测试,包含了测试计划和测试的内容。本论文包括八个部分,内容如下:第一部分:绪论。简要介绍该软件研究的背景、意义,以及研究的主要内容。第二部分:系统环境及相关技术知识。介绍了
46、该软件的开发环境和运行环境,以及所使用的主要技术。第三部分:项目可行性分析。主要介绍可行性研究的前提,以及分析所建议的系统的多方面可行性。第四部分:项目需求分析。主要包括对功能需求、数据需求、性能需求的规定。第五部分:项目概要设计。主要讲解了系统的基本设计概念和处理流程、功能模块划分、以及系统数据结构的设计。第六部分:项目详细设计。详细对每个模块进行设计说明,包括的内容有:程序描述、输入项、输出项、流程逻辑、接口、存储分配。第七部分:项目系统测试。包括测试计划和测试结果,对每个模块设计相应测试用例,并依次通过测试。第八部分:结论。对天气预报软件进行总结,对系统当前存在的主要问题进行概述,以及在
47、本次毕设的体会。2 系统环境及相关技术知识2.1 开发环境1)操作系统:Windows 102)开发工具:eclipse-jee-mars,JDK 1.7,android SDK,ADTEclipse是通过集成多种插件的开发环境,是开发程序时使用的平台。由于使用java语言编写代码,因此需要JDK(Java Development Kit),即java开发工具包,其中包含了许多开发时使用的类库。不仅如此,由于开发的是基于android平台的手机软件,因此还需要android SDK(android software development kit),即android专属的软件开发工具包,引入该
48、工具包,即可以调用android相关的API。ADT(android development tools)是谷歌提供的一个eclipse插件,在进行android开发时需要安装。它作为android代码与手机之间的桥梁,可以联机调试,能够模拟各种手机事件、分析程序性能等等。2.2 运行环境1)android 4.0以上操作系统。由于本软件程序涉及定位服务以及联网等功能,模拟器功能受限,因此使用android 4.0 以上的真机进行开发调试和运行。2.3 相关技术知识1Android系统。Android系统是由Google公司开发的操作系统,它底层基于Linux2.6内核,此操作系统源代码开放,
49、主要在移动设备上使用,目前大部分用于移动手机和平板电脑上面。准确来讲,android系统是一个平台,使得智能手机正常运行,其主要由4部分构成:内层包括操作系统和中间件,外层包括用户程序、系统程序、用户界面。2Android的系统框架。Android的系统框架主要分为4层框架,5块区域。4层框架分别为:Linux内核层(Linux Kernel)、系统运行库层、应用框架层(application framework)、应用层(applications)。Linux内核层主要为android移动设备提供相关的底层驱动。系统运行库层包含两块区域(C / C+库,android运行时库),其中C/C+
50、库首先可以保证程序运行的效率,其次为系统特性和功能提供了支持;android运行时库包含两部分,核心库(Core libraries)和Dalvik虚拟机。核心库提供了java核心库的功能,可以使用java语言编写应用程序。Dalvik虚拟机用来运行android应用程序,并且每个应用都运行在独立的进程中。在android4.4之后,使用ART虚拟机代替Dalvik虚拟机,ART虚拟机在安装时进行编译,因此每个应用程序只需要编译一次,运行时比Dalvik速度快。应用框架层主要提供了应用程序会使用到的API,通过这些API可以开发自己的应用程序。应用层就是用户可以看到的所有应用程序。3Andro
51、id的布局。Android程序的每一个界面都是由布局文件构成的,5大布局方式分别为:LinearLayout(线性布局),FrameLayout(单帧布局),RelativeLayout(相对布局),AbsoluteLayout(绝对布局),TableLayout(表格布局)。在android4.0之后,新增了GridLayout(网格布局)。此程序中主要使用了LinearLayout,FrameLayout,RelativeLayout三种布局方式。4此程序中使用到的控件(View)主要有以下几种。1)TextView。显示文本框,只能显示文本内容,不能编辑此文本。2)EditText。编辑
52、文本框,可以由用户输入。 3)Button。普通按钮,可以设置点击事件进行界面跳转或者开启服务等。3)RadioGroup/RadioButton。单选按钮,RadioGroup代表一组,RadioButton代表单个按钮。4)Switch。开关按钮,继承与Button,常用在切换程序中的某种状态。5)View。它是所有控件的父类,当android提供的View不能满足需求时,可以自定义组件(View)。自定义组件分为完全自定义组件、复合组件、修改已有组件的自定义组件。完全自定义组件是继承View类,并重写onDraw等方法实现。复合组件是在现有组件基础上,复合成一个新的组件,一般继承自一个V
53、iewGroup,然后调用父类的构造方法,一般不需要重写onDraw等方法。修改已有组件的自定义组件是继承已有的View类(如TextView),增强其功能。6)ImageView。图片控件,可以显示对应资源的图片。7)ImageButton。图片按钮,可以显示图片,并且支持点击事件。8)ListView。列表视图,它可以将多种数据源(如数组,集合,数据库中的数据)通过适配器显示在列表中,可以根据不同的需求定制不同的列表项布局。数据源和listView之间需要通过Adapter接口来实现通信。常见的Adapter接口的实现类包括:ArrayAdapter,SimpleAdapter,Simpl
54、eCursorAdapter,BaseAdapter。BaseAdapter是所有适配器的基类,可以通过根据需求提供自己的构造器。另外,在描述getView方法时,可能会由于数据较多而出现程序卡顿的情况,因此需要利用ListView的缓存机制,并通过ViewHolder类实现显示数据视图的缓存。9)GridView。网格视图,它和ListView类似,区别是ListView只显示一列,而GridView可以显示多列。它显示数据需要使用Adapter适配器获取数据源中的数据,和ListView的使用类似。10)AutoCompleteTextView。自动完成文本框,继承于EditText,它可
55、以当用户输入一定量的字符后,会显示一个下拉菜单,供用户选择,当用户选择某个菜单项后,自动完成文本框会按用户选择填写该文本框内容。它也需要Adapter适配器获取数据,但是此适配器必须是继承于BaseAdapter和Filterable,因此如果使用自定义BaseAdapter,需要再实现Filterable接口,也就是实现此接口的getFilter方法,用于获取过滤器。或者直接选择已经实现了这个接口的适配器来实现。11)ProgressBar。进度条,分为圆形进度条和水平进度条两类。12)Dialog。所有对话框的父类,它的子类常见的包括:AlertDalog,ProgressDialog等对
56、话框。在此程序中使用的Dialog,自定义对话框的风格和布局,并设置了点击的响应事件。13)ViewPager。它是android.support.v4.view包中的类,这个类可以使用户左右切换当前的页面。此类继承了ViewGroup类,因此是一个容器类,可以在此控件中添加其它view控件。ViewPager也需要配置Adapter提供显示的数据。它有三种适配器,如果数据源是List,则使用PagerAdapter适配器;如果数据源是List,有两种相应的适配器:FragmentPagerAdapter和FragmentStatePagerAdapter。这三种适配器区别如下:PagerAd
57、apter是三个一组的方式进行加载;FragmentPagerAdapter会将所有页面全部加载,该类生成的每一个Fragment都会保存在内存之中;FragmentStatePagerAdapter只保留当前页面,当页面离开视线后,就会释放资源。此程序中使用的适配器是FragmentStatePagerAdapter,由于功能需求,添加或者删除某个城市后,需要及时增加或者删除Fragment界面,因此需要使用这个类来实现。5Android的四大组件。android的四大组件包括:Activity,Service,BroadcastReceiver,Content Provider。1)Act
58、ivity相当于每一个可见的界面,它负责与用户交互,完成界面显示和用户对一些控件的事件响应,也是四大组件中是最常用的组件。Activity的生命周期是指Activity从创建到销毁的整个过程,在过程中会有多次状态间的转换,根据不同的状态,自动调用相应的方法。Activity的加载模式有四种:standard(默认模式),singleTop(栈顶单例),singleTask(栈内单例),singleInstance(全局单例)。默认模式允许多个相同的实例,也允许多个相同的Activity叠加;栈顶单例允许多个相同的实例,但不允许多个相同的Activity叠加;栈内单例只允许任务栈内有一个实例;全
59、局单例表示只允许有一个实例,并且这个实例自己独立运行在一个任务栈中。2)Service表示一个服务,它始终运行在后台,没有用户界面。当进行耗时较长的操作,或者和用户实现无交互的功能时,可以启动一个Service。Service的启动服务有两种方式:startService和bindService。startService表示开启一个独立的实例,该实例与它的调用者(Activity)没有任何关联关系。而bindService表示开启一个有关联关系(Service实例和调用者之间)的实例,两者可以共享数据,并且调用者的生命周期会影响Service实例的生命周期。3)BroadcastReceive
60、r表示一个广播接收器。这个组件其实算是一种全局的监听器,用于监听系统全局的广播消息。这个组件没有生命周期,负责监听多个应用程序所发出的广播,当接收到与之匹配的广播时,会自动启动Receiver来处理广播。如果onReceiver方法不能在10秒内执行完成,会弹出ANR的对话框,因此不要在广播接收器中进行耗时的操作或者使用新线程完成,可以启动一个Service。发送广播方式主要有两种:默认的广播(无序广播),有序广播。接收广播需要注册Receiver,也包括两种方式:静态注册和动态注册。4)ContentProvider表示内容提供者,它支持在多个应用程序中存储和读取数据,可以跨应用程序共享数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 果品综合检测项目范围分析
- 发电厂的实习报告汇编七篇
- 台风预防应急预案(7篇)
- 初中高知识复习测试题
- 2024安全管理技术竞赛(多选、判断)专项测试卷
- 语文统编版(2024)一年级上册语文园地二 课件
- 给您透露一点我压箱底的英语语法绝活儿
- 第1章 口腔颌面部发育课件
- 草原课件图片教学课件
- 2024届上海市6校高三下学期百日冲刺模拟考试数学试题
- 危化品特种作业人员安全操作高温液体操作要点
- 《我健康我快乐》心理健康
- 急诊科的现状与发展趋势
- 设备采购 投标方案(技术方案)
- 2024年四川航空股份有限公司招聘笔试参考题库含答案解析
- 【高中语文】《念奴娇+赤壁怀古》课件+统编版+必修上册
- 钢结构主体验收记录
- 全国大学生市场调查与分析大赛题库汇总(含答案)
- 2015年6月2日境外旅客购物离境退税申请单
- 马克思主义与社会科学方法论课后思考题答案全
- 新媒体运营实务-短视频剪辑
评论
0/150
提交评论