基于Android的移动校园客户端设计与实现_第1页
基于Android的移动校园客户端设计与实现_第2页
基于Android的移动校园客户端设计与实现_第3页
基于Android的移动校园客户端设计与实现_第4页
基于Android的移动校园客户端设计与实现_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、代 号 分 类 号 密 级 公开 TP393.09 10701 1102121292 学 号 U D 题 (中 、 西安电子科技大学学位论文独创性声明秉承学校严谨的学风和优良的科学道德, 本人声明所呈交的论文是我个人在导师指 导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所 罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得 西安电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志 对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切的法律责任。本人签名:日期 :西

2、安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校 攻读学位期间论文工作的知识产权单位属西安电子科技大学。 学校有权保留送交论文的 复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影 印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰 写的文章一律署名单位为西安电子科技大学。(保密的论文在解密后遵守此规定本学位论文属于保密,在 年解密后适用本授权书。本人签名:日期 :导师签名:日期 :摘要摘要随着智能终端和移动信息技术的快速发展, 智能设备已经逐渐地在普通人的生活中 普及起来,它已经成

3、为人们日常中获取学习、生活、娱乐等各方面信息的主要途径。 Android 智能移动操作系统自 2007年 11月发布以来,由于其开源和免费性质,在智能 终端市场占有率中跃居全球第一。因此基于 Android 平台的移动应用,其发展前景和受 用程度必定十分广阔。本文对目前市场中主流的移动操作系统 iOS 、 Android 、 Windows Phone等进行分析 和比较,并深入地研究了 Android 平台的系统架构、组件以及应用程序结构,了解其重 要组件间的相互关系和作用以及 Android 中重要的 API 和 Activity 的生命周期机制。在 此基础上,使用 Eclipse + AD

4、T(Android Development Tools开发环境,设计并实现了 基于 Android 的移动校园客户端。该客户端包括基本功能、扩展功能和管理功能三个模 块,涉及校园中学习、生活、办公、服务等各类信息;用户界面设计简洁友好、操作明 确简便、软件更新快捷,开发和维护过程中通过用户反馈信息和移动统计数据可为开发 人员提供直观的数据信息进行改进,具备良好可扩展性和可维护性。经过广大师生的使 用测试,移动校园客户端可正常、稳定地运行,达到预期设计的功能效果,能够满足在 校用户对校园各类信息的获取需求。关键词:智能终端 Android 移动校园 智能客户端 数据库 用例建模AbstractA

5、bstractWith the rapid development of smart terminals and mobile information technology, smart devices has gradually spread over in ordinary peoples life.It has become the main way for people to get daily information of learning, living , entertainment and other on all aspects. Android intelligent mo

6、bile operating system, since its release in November 2007, gradually ranks first in global market share in the smart terminals on account of open source and free features of it. Therefore the prospects of mobile application based on Android platform will certainly be very broad.In this thesis , thos

7、e mobile operating systems which are popular in current market such as iOS, Android , Windows Phone, etc. are analyzed and compared, and then an in-depth research and analysis of Android system architecture, components and application architecture has been done to help us understand the relationship

8、 and role between its important components and APIs and Activitys mechanisms of lifecycle. Based on previous research, we designs and implements a mobile campus client based on Android using Eclipse + ADT(Android Development Tools development environment. The client includes three modules: basic fun

9、ctions, extended functions and management functions, involving learning, living , office , services and other information in university. It has simple and friendly user interface design, clear and easy operation, fast software updates. In development and maintenance process, users feedback informati

10、on and mobile statistical data provides an intuitive data for developers to improve and modify it, it has good scalability and maintainability. The testing results show that the mobile campus client runs well and achieves the expected design goal. It can help the campus users to access all kinds of

11、real-time information.Keywords :Smart Terminal, Android, Mobile Campus, Intelligent Client, Database Use Case Modeling目录 1目录2 基于 Android 的移动校园客户端设计与实现第一章 绪论 1第一章 绪论1.1 项目的研究背景和意义近年来,随着 3G 技术的快速发展,以及目前 4G 时代的到来,国内的移动互联网 络和终端用户对移动终端的使用有了更高的要求。手机、平板电脑等移动终端设备已经 快速发展成为人们日常学习生活中娱乐以及获取信息最重要也是最简便的方式。 根据国 际数

12、据公司(IDC 季度性的对全球手机的追踪数据显示,到 2013年第三季度,搭载 Android 平台的智能手机的全球市场份额已经超过 80%,全球大多数的智能手机都使用 的是 Android 操作系统 1。在中国的市场占有率上,截止到 2013年 5月, Android 达到 71.5%,超过其主要的市场竞争对手苹果公司约 5成 2-3。随着手机等终端设备用户数量 的迅速增长,尤其是在各大高校中,大多数的教师和大学生使用的智能设备都是基于 Android 系统的,并且在现今高校网络应用移动化快速成长的主流趋势下,基于手机、 平板电脑等移动终端设备的高校移动化信息服务也受到了越来越多高校以及师生

13、的关 注。本文中所提出的基于 Android 平台的移动校园客户端,就是为了更加数字化、更加 方便地为广大师生服务, 将校园内的生活、 办公、 学习、 服务等各类信息进行分类整理, 以智能终端设备、 3G 网络、无线网络、移动网络等各种移动技术为载体,把各类校园 信息聚合起来,让广大师生不受地域、时间等客观条件的限制,仅需使用自己的移动设 备便能够快速、准确的查询到自己想要的信息。目前校园中各个部门由于职能和分工不 同, 它们所管辖和负责的内容也不同, 这样就导致所有在校园内发布的信息都是零散的, 不便于用户快速准确的找到想要的到东西。 由此, 在移动校园客户端这样的一个媒介下, 它能够为在校

14、师生提供一个更为便捷的平台来方便校园中的移动生活, 同时这样的一个 平台也能够高效地提高校园内准确有效信息的传播效率,有助于完善校园的智能化、移 动化建设,让师生在校园中的移动生活更加简便和丰富。1.2 项目的研究现状智能手机是指能够像个人电脑一样自由地下载、安装和卸载应用程序的移动设备, 它搭载着独立的操作系统,具有友好的操作交互界面,相对于非智能机来说,它无论是 在功能、运算处理的能力上都有更大的提高。目前,主流的智能手机操作系统并且排名 前列的有谷歌公司的 Android 操作系统、苹果公司的 iOS 操作系统、 RIM(Research in基于 Android 的移动校园客户端设计与

15、实现2Motion 的 BlackBerry OS、微软的 Windows Phone和诺基亚的 Symbian 操作系统。下面 主要对上述操作系统做一个简单的介绍。1、谷歌公司的 AndroidAndroid 是 Google 于 2007年 11月 5日宣布的基于 Linux 平台的开源手机操作系统 的名称,该平台由操作系统、中间件、用户界面和应用软件组成。目前 Android 系统版 本从测试版本已经更新到 4.4版本, 并且 Android 已逐渐扩展到平板电脑及其他领域上, 如电视、数码相机、游戏机等,它的平台优势主要有开放性、不受束缚、丰富的硬件、 方便开发、 以及 Google

16、应用。 目前 Android 在全球的智能手机系统市场中占有率为第一。 2、苹果公司的 iOSiOS 是苹果公司开发的移动操作系统, 最早于 2007年 1月 9日的 Macworld 大会上 公之于众,设计之初是用于 iPhone 的,后来在发展过程中陆续应用到 iPod touch、 iPad 以及 Apple TV等产品上 4。 该系统的具有丰富的图形用户界面、 高效流畅的运行效率和 稳定安全的系统等特点, 并且提供多触点操控, 使用户利用手指对 iPhone 操作起来十分 之方便。目前 iOS 在全球的智能手机系统市场占有率为第二。3、 RIM 的 BlackBerry OSBlack

17、Berry OS是加拿大 RIM 公司专用的智能手机操作系统,它较早地进入了美国 移动领域,加上 BlackBerry 手机设计了个性的宽屏和 Qwerty 全键盘,使得 BlackBerry 手机发送电子电邮方面非常方便,由于中国用户的使用习惯很少使用手机发送电邮,所 以 BlackBerry 系统的邮件优势在中国市场就体现不出来,目前 BlackBerry OS在智能手 机操作系统的市场份额占据第三位,主要市场是在美国 5。4、微软公司的 Windows PhoneWindows Phone包括 Windows Mobile系列和 Windows Phone系列, 它是微软发布的 一款手机

18、操作系统,它将微软旗下的 Xbox Live游戏、 Xbox Music音乐与独特的视频体 验集成至手机中。 2012年 6月,微软最新发布的 Windows Phone 8 操作系统采用与 Windows 8相同的 Windows 内核 8。该系统为用户提供了丰富的界面和一个增强的触摸 屏界面,方便用户使用。5、诺基亚的 SymbianSymbian 最初是由诺基亚、西门子和摩托罗拉等公司共同研制开发的智能手机操作 系统, 该系统现已经被诺基亚公司全资收购。 Symbian 的前身是 EPOC(Electronic Piece Of Cheese ,意为“使用电子产品可以犹如吃奶酪一样简单”

19、 。 Symbian 操作系统本身有良 好的应用、强大的通信能力以及优越的可扩展性,它对微软的文字处理软件完全支持, 如果要很好的使用这些软件还需要手机硬件的支持 6。基于 Symbian 系统的手机一般采 用的硬件配置比较低,采用的处理器主频也较低,虽然它有较高的处理能力,但在多媒第一章 绪论 3体性能方面还是比较欠缺,它支持的主流的媒体格式不多。 Symbian 主要分为两个智能 操作系统平台,一个是 S60系统,比较适合单手操作;另一个是 S80系统,适合双手操 作。 Symbian 操作系统目前在欧洲市场占有率较大,目前全球智能手机系统市场占有率 排名第四。6、三星的 BadaBada

20、 是有韩国三星电子自行开发的智能手机操作系统, 它承接三星 TouchWIZ 的经 验,特点是配置灵活、用户交互性好、面向服务优化到位。对互联网和基于位置服务 (LBS 应用、一些感应应用如距离、重力等都有着很好的支持,电子商务与游戏开发 也列入 Bada 的主体规划中,并且操作界面比较时尚,但该系统仅支持三星系列手机 7。目前,高校中对网络运用最重要的平台是校园网,它在校园中无论是对于学校与学 校之间或者是学校与学生之间的信息传播都占据很重要的地位。 无论是信息传播还是资 源共享,它的便捷性和高效性都为校园用户提供了很大的便利。在校人员一般的获取校 园信息的方式大概有以下几种。 一是使用电脑

21、上或者手机浏览器登录校园的各类网站进 行浏览访问;另一方面是靠相关负责人员口述传达或张贴海报等宣传信息。但是整个校 园网中大家所需要的学习、生活、办公服务等各类信息容量很大,有需要的人员在短时 间内很难快速准确的找到想要的内容,所以一个整合性强,包容量足而且全的移动软件 对在校人员的学习生活有着莫大的帮助。现在, 在国内很多高校无论是官方发布还是学生社团兴趣所致而开发的校园移动软 件都已经在使用中,并且为在校的老师、同学们都提供着方方面面的便利。下面就简要 对几所高校中发布或使用的移动校园应用进行介绍。1、西安交通大学 移动交通大学(校园移动门户移动交通大学西交大信息中心负责完成, 通过信息网

22、络技术提高校园服务质量和管 理,为师生和校友提供最快速便捷的移动化服务。先有支持 Android 、 iOS 等移动操作 系统设备的客户端版本。功能设计符合在校用户的需求,可查看最新的学校新闻、通知公告、活动安排、招 聘招生和校友信息、 失物招领信息等;公开课中的 iTunes U可访问公开课程、学术讲座 等;另外可查询空闲教室,访问移动图书馆等便捷服务。2、浙江大学校园移动应用平台浙江大学的这款移动应用测试版本支持 iPhone 和 Android 版本, 主要功能大概包括 浏览校内新闻、资讯和公告;在校师生用户可查看校园卡余额、工资等,学习方面还有 成绩查询、 学费信息等; 其余的生活资讯

23、可进行班车查询, 图书馆书籍、 论文等的查看。基于 Android 的移动校园客户端设计与实现43、华中科技大学 校园通华中大校园通支持 iPhone 和 Android 版本, 主要功能包括学校要闻浏览、 院系通知 消息、校园地图查看、教师信息查询,学生个人用户可以查询个人的成绩信息等。 4、中国海洋大学 移动教务客户端该客户端用户群定位以教师和学生分类, 主要用途是让教务管理员和在校师生查询 教务教学信息, 教学管理通知和工作动态等信息。 教师用户可查询个人信息、 教学任务、 选课学生、学生成绩录入情况。学生用户可查询个人信息、学习计划、选课情况、课表 和考试安排、成绩等。5、华东师范大学

24、 i 华东师大i 华东师大客户端集成了该校各类信息和服务,校园信息主要有校园黄页、师大新 闻、通知公告、教师名录,学习方面主要有学术讲座、图书馆、空闲教室,生活娱乐方 面有校车查询、校园微博等功能。这些功能模块不但使广大师生和校友能够随时随地查 询到学校最新信息,同时对校园信息移动化有一定的帮助。6、河南师范大学 移动校园客户端“河南师大”的校园客户端对用户分类主要是按校内和校外用户区分,其中校外用 户不用登录即可查阅到该校简介、新闻、通知公告、招生简章和校园风光等信息。另一 部分校内用户就是广大教工和学生, 他们使用自己的帐号登录后不但能享有上述校外用 户可查阅的功能, 还可查询个人的工资信

25、息、 教学计划、 图书借阅信息、 校园卡信息等。 1.3 本文所做的工作和组织结构通过对智能手机操作系统发展趋势和现今主流的几个操作系统在系统性能和市场 占有率等方面的对比,证明了基于 Android 平台的软件开发将是未来智能终端开发大势 所趋的方向。它受到越来越多的终端用户的青睐,同时也吸引了大批的开发者涌入 Android 开发的阵营。为了能更进一步的了解并且在 Android 平台上进行应用开发实践, 本文通过对 Android 平台进行深入的研究和分析,其中包括 Android 系统平台的特点、 架构,应用程序的主要核心构成、基本组件的运行机理和应用程序的生命周期等,实现 了在 Ec

26、lipse 中配置 Android 开发环境。 并且在此基础上, 设计并开发实现了基于应用校 园信息数据库的一款移动应用软件,不仅进一步了解了 Android 平台应用程序的运行机 制和相关的项目开发经验的积累,而且还将该软件在校园中传播使用,在平时学习生活 或者一些特殊时段如招生、就业时期对同学们给予了极大的帮助。本文章节安排如下:第一章介绍本文项目的研究背景、研究现状及其现实意义,并且介绍了将 Android 作为研究对象的原因以及它和其他移动操作系统的差别, 提出了本文想要达到的目的和第一章 绪论 5要完成的工作。第二章介绍了 Android 的诞生、成长和发展情况,以及它的平台组成情况

27、、系统特 点、应用平台架构和基于这个平台的应用程序架构和组件等内容。主要是对 Android 中 Activity 的生命周期机制以及其重要组件之间交互的关系进行详细的了解。第三章对移动校园客户端的功能、用户界面以及性能需求各方面进行分析,主要是 对它的基本功能模块、扩展功能模块和管理模块进行详尽的分析。第四章是在基于第三章对移动校园客户端功能需求分析的基础上, 从服务器端到客 户端的系统整体结构以及对客户端模块结构完成较为清晰的概要设计, 为后期功能实现 打下良好的基础。第五章根据需求的分析和概要设计对移动校园客户端完成对各模块完整功能设计 与实现,主要介绍了每个主体模块中各功能模块的实现部

28、分。第六章是对已完成上述设计与实现的移动校园客户端进行功能、性能测试的部分, 主要根据开发人员的测试、统计和用户使用后的反馈信息完成这个部分的内容。第七章对本文进行了总结与展望。基于 Android 的移动校园客户端设计与实现 6第二章 Android集成环境及相关技术介绍 7第二章 Android集成环境及相关技术介绍2.1 Android简介Android 一词本意指“机器人” ,中文名翻译为“安卓” ,它是由谷歌公司发布的开 源手机操作系统。从架构上看它是由 Linux内核、中间件、用户交互界面以及应用软件 程序组成, 是首个完全开源免费、 并专门为移动终端而开发的操作系统, 目前 An

29、droid 操 作系统的下一个最新版本将被命名为 KitKat (KitKat 是雀巢一种巧克力的商标 ,这也 是 Android 首次以有版权的食物作为操作系统版本名称,而该版本的编号将会以 Android 4.4命名。Android早期是由名为“ Android ”的公司进行开发, 2005年谷歌收购该公司后,任 命该公司原创始人 Andy Rubin为工程部副总裁, 继续负责 Android 项目的开发运营。 2007年 11月 5日,谷歌在正式发布了名为 Android 的手机操作系统的同时还宣布建立由 34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与 84家硬件制

30、 造商、 软件开发商及电信营运商组成的开放手持设备联盟 (Open Handset Alliance 来共 同研发和改良 Android 系统 3,并在 Android 软件平台上开发新的移动业务和软件。Android的问世对移动互联网时代具有十分重要的意义,它不仅让谷歌成功地跨入 移动互联网的世界,而且还在移动互联网界掀起了一场 Android 革命, Android 的迅猛 发展进一步推进了移动互联的进步。 2008年 10月 21日, Android 操作系统在 Apache Software License协议下开放全部的源代码。 开发人员可自由地获取、 修改 Android 源代 码

31、,是一套具有开放源代码性质的手机终端解决方案。由于其开源性质并且免费,厂商 可以自由地定制、改良或者将自己专有的技术应用到 Android 平台上,创造出更多更好 地,为用户所设计的产品。Android 系统开源以来,每个数月便有一次升级和更名。升级更新后的 Android 系 统的功能和用户体验上都有不同程度的提高。据 IDC 最新数据显示, Android 在中国市 场的占有率为 71.5%,在全球智能手机操作系统市场占有 80%的份额 3 9。基于 Android 的移动校园客户端设计与实现82.2 Android平台组成及其特点Android平台不仅是一种操作系统, 还是一个具有开源性

32、质的体系架构。 Android 平 台集中了所有开源社区的成果于一身, 并针对移动设备对其自身进行了大量的改进和优 化。Android 平台的核心构成部分及自身特性有 9-11:1、应用程序框可将多个标准构件合而为一,表示开发人员可根据需要选择安装程 序。2、 Dalvik 虚拟机的优化。 Android 应用程序是基于 Java 语言进行编写, 通过 DX 工 具生成类文件并转换成 .dex 的后缀名文件来执行。 基于寄存器 Dalvik 虚拟机相对于 Java 虚拟机来说,处理速度快很多。3、原生浏览器基于开源的 WebKit 引擎,用户可以随时随地进行互联网接入。4、基于 OpenGL

33、图形库,对于游戏开发者进行 2D 和 3D 的游戏开发提供了强大的 技术支持。5、 SQLite 是一种嵌入式系统开发的轻量级数据库,占用资源少,兼容性好。6、对常见的音视频和 JPG , PNG 等静态图片文件格式的支持。7、 GSM 通讯应用开发标准,此项开发主要依赖于设备的硬件环境。8、蓝牙, EDGE , 3G , WiFi 等辅助功能,同样依赖于硬件。9、照相机,全球定位的 GPS ,指南针与依赖硬件的加速度计。10、 Android SDK, 丰富的开发类库, 开发调试和性能分析等工具, 以及集成于 Eclipse 的可视化 ADT 插件。与其他移动操作系统相比, Android

34、有 4个无可比拟的优点 9:1、平台开放性。 Android 系统不只是一个操作系统,同时是一个完全开源的移动平 台,最主要的是系统本身免费,大大地降低了厂商的开发成本,运营商可以自由地开发 新应用,另外很多的第三方移动开发人员也找到了基于此可以快速发展的机会。2、应用平等性。 Android 平台诞生之始就被规划设计为一个应用的组成平台,它里 面所有应用程序都运行在 Dalvik 虚拟机上,它为资源间的相互通信访问提供了相应的 API 接口。3、应用流通性。 Android 中没有应用间的界限,开发人员可将多种服务联系起来开 发,例如可以将短信、 GPS 、网络服务等连接到一起。4、开发快捷

35、性。 Android 为开发者提供了很多即见即用的库和工具,开发者可以使 用这些库文件和工具快速开发出自己的应用程序。例如 Android 平台集成了 Google Maps 、 Google Voice 等,开发者仅需通过调用和数行代码即可创建相关的应用程序。第二章 Android集成环境及相关技术介绍 9 2.3 Android应用平台构架Android 是基于 Linux 的开源手机操作系统, 其系统采用了软件堆层 (software stack, 又名软件叠层 的架构。 底层 Linux 内核仅提供基本功能, 其他系统中的应用软件则开发 者或厂商自行开发,其中部分代码以 Java 编写

36、。如图 2.1所示, Android 系统的架构由 底层到应用层主要由 4个层次 5个部分组成,分别为 Linux 内核层 (Linux Kernel、系统 类库 (Libraries和运行库层 (Android Runtime、应用程序框架层 (Application Frameworks和应用程序层 (Applications 11。 图 2.1 Android系统架构图基于 Android 的移动校园客户端设计与实现10Android 系统平台的核心系统服务是基于 Linux2.6内核来开发的 10 12, 如图 2.2所 示。该层主要提供系统一些安全管理机制,进程管理机制,内存管理机制

37、和网络堆栈等 一系列驱动模块的底层服务,同时 Linux 内核用来作为抽象层连接软件栈和硬件。 图 2.2 Linux内核层类库如图 2.3所示。 Android 为开发人员提供了用 C 和 C+语言编写的一些共享库, 它们可以为 Android 系统中不同的组件所使用。开发者可以使用 Android 平台框架提供 的这些类库功能进行开发。类库中主要库有以下 5部分: 图 2.3 系统类库和运行库层(1界面管理器。 Android 管理器使用的窗口是基于 OpenGL 的混合型 3D 组合窗 口。但它并不是在屏幕缓冲区中直接绘制要显示内容,它是通过绘制命令将要绘制的图 形传递给屏幕外位图,最后

38、通过将该位图和其它位图结合起来,转换成人们看到的屏幕 内容。利用位图结合的方法可以让系统展现出很多有趣的特殊界面效果。(2 2D 和 3D 图形。在 Android 平台上可以在一个用户界面中结合 2D 和 3D 图形 元素。库将支持使用 3D 硬件或者快速软件渲染器(不支持 3D 硬件设备 。(3媒体编解码器。 Android 系统不但支持静态图像文件,还可以播放和录制影音第二章 Android集成环境及相关技术介绍 11文件,主要的文件格式有高级音频编码(AAC ,高级视频编码(A VC , MP3文件和 MPEG-4文件等。(4 SQLite 数据库。 Android 提供了功能强劲的轻

39、量级 SQLite 关系型数据库引擎, 它的设计目标是嵌入式的,它占用的资源非常低,仅需几百 K 的内存就够了, Android 所有应用均可采用该数据库。 它不仅能够支持 Windows 、 Linux 和 Unix 等主流操作系统, 同时还能跟多种开发语言相结合,并且还支持事务处理功能等。(5浏览器引擎。为保证快速显示 HTML 内容, Android 使用了一个时尚的 Web 浏览器引擎 WebKit 库。Android 是用 Java 语言来开发应用程序,用谷歌自行研发的 Android 运行时组件来 执行程序。 Android 运行时组件包括两个部分,一个是它的核心类库,另一个是 D

40、alvik 的 Java 虚拟机,如图 2.3 所示。基于 Java 的 Dalvik 虚拟机(Dalvik Virtual Machine是一种缓存器形态的虚拟机, 它主要是为移动设备应用开发而专门设计的, 在对其编写和开发之初就对内存资源使用 最小化和对同时支持运行多个虚拟机进行了详细的设计。 Dalvik 与一般的 Java 虚拟机存 在不同之处,区别主要有两个方面:(1 Dalvik 虚拟机运行 .dex 文件, 即编译时会将标准的 .class 和 .jar 文件转换为 .dex 文件。 dex 文件是系统针对 Android 设备运行过程中内存有限和移动设备电池供电等特 点,对其作

41、出的重要改进,这样使得 dex 文件运行的更加紧凑和高效。(2 Android 附带的 Java 核心库与 Java SE库和 Java ME(Java Mobile Edition, Java 移动版 库不同。 基于 Android 平台的每个应用程序都有各自的进程和的 Dalvik 虚拟机, 所以 Dalvik 与 Android 应用的对应关系不是一对多的关系,而是一对一的关系。该层提供了在创建应用程序时各种需要使用的高级构建块。 开发人员可根据开发需 要完全访问核心应用程序所使用的 API 框架 13, 也可以根据需要使用自己的组件扩展该 框架,在此主要介绍图 2.4中常用的 8个部分

42、 14-16。 图 2.4 应用程序框架层基于 Android 的移动校园客户端设计与实现12(1视图系统 (View System 。应用程序框架为用户提供了可以用来构建和开发的 丰富而又可扩展性的程序视图,这些视图包括列表视图(Lists ,网格视图(Grids 和 文本框视图(TextBoxs ,按钮(Buttons ,这些视图甚至也可以嵌入到 Web 浏览器中进 行开发。(2活动管理器(Activity Manager 。程序框架为应用程序提供了一个用于控制程 序生命周期的活动管理器,并且为用户提供了一个共同的栈,该栈主要为用户提供用户 导航、回退等功能。例如程序启动时的资源准备和关闭

43、程序时释放内存和其他资源等。 (3内容提供者(Content Providers 。内容提供者是为用户提供可以读写封装在 API 中自定义的一组数据,或者另一个应用程序的数据,如联系人数据库,也可以共享 它们自己的数据,这是在应用程序之间共享全局数据的最佳方式。(4资源管理器(Resource Manager 。资源管理器是为用户提供一些非代码资源 的访问,如本地字符串 (strings.xml 、布局配置文件(Layout files 、 颜色(colors.xml 、 尺寸形状(dimens.xml 等。(5通知管理器(Notification Manager 。通知管理器是系统通过界面顶

44、部的状态 栏为用户提供通讯、短消息、网络服务、应用程序通知和系统警告等即时信息的提示, 这些提示都会在通知管理器中出现。(6窗口管理器(Window Manager 。管理所有启动程序的窗口程序。(7位置管理器(Location Manager 。用来提供基于位置的服务,管理地图服务的 相关功能。(8 包管理器 (Package Manager 。 管理所有安装在 Android 系统内的 APK (Android Package 程序包。在 Android 中,在安全性限制内的任意一个应用程序都可以发布它的功能模块并且 可用于其他应用对其进行调用。在其他移动操作系统中,便于用户替换平台默认应

45、用程 序和提供在调用机制的应用程序的应用是没有实现的。Android系统将内置的自带应用程序集成在 Android SDK捆绑的虚拟机和手机真机 当中,让用户从购买设备开始就可以在手机上使用这些基本功能。它将电话拨号程序, 联系人通讯录程序, SMS 短信息程序, Web 浏览器程序,电子邮件系统、地图和日历 等常用的核心应用打包并统一发布,如图 2.5所示。在 Android 应用程序框架中,开发 人员还可以用自己开发的应用程序来替换 Android原生的应用程序, 这个应用可替换的 机制必须在应用程序框架基础上实现的。第二章 Android集成环境及相关技术介绍 13 图 2.5 应用程序

46、层2.4 Android应用程序组件Android 应用程序使用的是 Java 语言,与 Java SE一样,在编译时都需要使用 Sun JDK 将 Java 源程序编译为标准的 Java 字节码文件(.class 文件 ,然后通过 DX 工具, 可以把全部的 .class文件进一步转变成为 Android DEX 文件(classes.dex 17,最后使 用 Android 自带的程序打包工具 aapt 将程序所有的 DEX 文件、 AndroidManifest.xml 文件 (二进制格式 和其他各类资源文件打包形成一个以 apk 为后缀名的安装程序文件。 APK 在 Android 设

47、备上解进行压安时装, Dalvik 虚拟机会从 APK 里读取相关的指令和 数据形成可执行程序, 让应用程序可以正常运行。 Android 应用程序的构建原理如图 2.6所示。 图 2.6 Android应用程序构建原理基于 Android 的移动校园客户端设计与实现14对于预置应用, Android 会在系统编译生成 ODEX 后缀的优化文件,这样 APK 文 件(不含 DEX 在发布时还有一个相应的 ODEX 文件。对于非预置应用, Android 首次启动应用程序时会将 DEX 优化为 DEY 文件存放在 /data/dalvik-cache目录。如果程序的 APK 文件没有任何变化,也

48、就不会重新生成 DEX 文件,这样加快了应用程序之后的启动速度。应用程序组件是 Android 系统中最基本的程序组件。例如,若某个正在使用的程序 需要使用列表功能,其本身并没有这项功能,而其它应用程序已经拥有这项功能并且又 允许别人调用这个功能,则前者可以直接调用拥有列表的应用来完成这个工作,而不用 自己重新开发。这个过程中,前者并没有复写或链接另一应用程序的代码,而是在有需 求的时候调用并启动了其它应用程序所已有的功能部分。为此,系统必须在单个应用程序的一部分被调用时启动这个应用程序,并将那个已 调用部分的 Java 对象实例化。 与其他系统上的应用程序不同, Android 应用程序和

49、C+、 Java 程序是不一样的,没有共同的入口方法,例如 main(入口函数一样。 Android 中的 每个应用实例之间没有联系且相互独立,它们各自在各自的进程周期中运行。根据 Android 各个组件自身应用范围与功能可将组件划分为 Activity、 Service 、 Broadcast Receiver 和 Content Provider等四大类, 组件之间的通讯和切换是通过 Intent 来实现的, 同时 Android 平台中还定义了用来显示对话框和菜单等可视化的 View 类。 一个 Android 应用程序可拥有多个组件,它们必须在 AndroidManifest.xml

50、 文件中先进行注册。 AndroidManifest.xml 用于声明应用程序的权限或各组件及其特性和设置等 18-19。 上述四 大类组件之间的关系如图 2.7所示,每类组件提供不同的用途,并各自拥有不同的生命 周期。 图 2.7 Android四个重要组件之间的联系第二章 Android集成环境及相关技术介绍 151、 ActivityAndroid 系统中最常用、使用最频繁的基本组件就是 Activity 组件,在一个 Android 应用中,一个 Activity 表示一个可视化的界面,也就相当于是一个单独的屏幕。不同的 Activity 被系统视为不同的类,这些不同类的父类都继承自

51、Activity 这个基类。这个 Activity 类就会显现出由多个 Views 控件组成的用户自定义的接口,并且针对该接口的 事件作出对应的响应。因为一个程序对应多个用户定义的 Activity ,所以多数的应用程 序都会包含多于一个的 Activity 。例如,联系人列表是一个 Activity ,查看联系人详细信 息是里另一个 Activity , 给其中一个联系人发短信息又是另外一个 Activity 。 尽管一个整 体的用户界面是由多个 Activity 组成,但是每个 Activity 都是独立于其他的 Activity 而 存在的。一个 Activity 有四种基本状态。第一个

52、状态是 Active 和 Running ,由于 Android 对 Activity 的管理是采用堆栈的方式, 所以当程序新创建一个 Activity 后, 该 Activity 将会 显示在当前屏幕上,系统会把当前界面的 Activity 压入 Activity 栈顶,这是它处于激活 状态并可以与用户进行交互。第二个状态是 Paused ,若当前 Activity 失去焦点时,系统 在资源允许的情况下让其保持原有状态并可见, 但是它因为失去焦点而不能与用户进行 交互,若系统资源不允许,该 Activity 将被系统强行结束。第三个状态是 Stoped ,若当 前 Activity 被新创建

53、的 Activity 或者重新激活后的 Activity 所取代,系统会继续保持前 者的原有状态,并将其隐藏,因为新的 Activity 被激活且压入栈顶。最后一个状态就是 Killed ,当一个 Activity 处于第二种或第三种状态下,系统会结束或者强行终止该进程, 如果用户还要激活这个 Activity 就需要重新开始前面的状态。基于 Android 的移动校园客户端设计与实现16 图 2.8 Activity的生命周期如图 2.8对 Android 中 Activity 的生命周期的流程详解所示, 一个 Activity 包含三个 关键的循环过程:(1 Activity 的生命周期。

54、 Activity 从 onCreate( 调用开始, 到最后结束于 onDestroy( 的调用。第一步进行资源的初始化工作,最后一步是对资源的释放和清理工作。 (2可视的活动周期。从 onStart( 开始,到调用 onStop( 为止,这个过程中即使 Activity 和用户没有交互动作,用户也能在屏幕上看到它。在这段过程中任意时间用户 都能看到活动提供给用户的资源,活动可以在可见与不可见状态中进行切换,这是因为 上述两个方法可以被多次调用。(3活动的后台生命期。从 onResume( 到 onPause( 方法被调用为止, 在其期间第二章 Android集成环境及相关技术介绍 17内的

55、其它活动之前, 并与用户进行交互。 并且 resumed 和 paused 两个状态在一个活动进 程中可以进行任意切换。Activity 之间的切换原理是当新的屏幕窗口运行显示后, Android 系统对前一个窗口 进行暂停,并按顺序先将旧窗口值压进堆栈,在将新窗口值压入栈顶位置, 当前就显 示新窗口。当窗口不再使用时,堆栈销毁对应值,并将旧窗口值置于栈顶,此时就可以 返回到前一个窗口。2、 Service通常情况下 Service 是一个没有可视化用户界面但拥有长生命周期的应用程序,这 个程序不需要与用户进行交互,它是无时间限制运行在系统的后台任务,与 Unix 进行 相类似。每个服务都继承

56、于 Service 基类,通常是执行一些需要持续运行的情况。它负 责触发通知和某些可视的 Activity 和数据源。它可以绑定其他正在持续运行的服务,若 该服务没有运行, 则启动该服务。 连接后, 它可以通过那个服务的接口与服务进行通讯。 Service 服务在应用程序中的主线程内运行,它和 Activity 组件等运行情况相同,所以 Service 会派生新的线程来进行耗时任务, 这些任务不会对其它应用界面和组件产生任何 阻塞或干扰。3、 Broadcast ReceiverBroadcast Receiver 和 Service 一样,不会显示有 UI 元素的图形界面,它是为了实 现广播

57、而提供的一种组件,广播来自系统或应用程序,它负责接收广播并做出相应的动 作 亦 接 收 请 求 并 处 理 Intent 。 通 常 Service 和 Broadcast Receiver都 会 在 AndroidManifest.xml 文件中注册。4、 Content ProviderContent Provider组件主要用于 Android 应用程序的数据存储管理, 为了能够在应用 程序间共享数据。 一般情况它起到扮演服务器的角色, 通过它可以对数据存储进行访问。 通过 Content Provider中的读写功能来传递对数据进行存储和更新等操作,但是应用程 序是调用一个 Conte

58、nt Resolver对象的方法来实现访问数据的。 Content Resolver与 Content Provider相对应, 每一个 Content Resolver能够与任何一个 Content Provider通信 5、 IntentIntent 中封装了组件之间跳转和切换所需要的条件,这就使得 Intent 成为组件之间 通讯的联络员。 Intent 中,动作及其对应的数据是两个重要的部分,后者则以 URI 的形 式进行表示。6、 ViewsAndroid 为用户提供了基于 View 类的可视化图形界面类, 在可视化图形界面中布局 设计可以采用框架布局 (Frame Layout 、 线性布局 (Linear Layout 、 相对布局 (Relative基于 Android 的移动校园客户端设计与实现18Layout 、绝对布局(Absolute Layout和表格布局(Table Layout 。当选择一种布局方 式后,可以通过 Button 、 Te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论