已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学毕业设计(论文)用纸基于Android平台的校园通软件摘 要随着智能手机的迅速发展,它逐渐成为人们用来了解信息的主要设备之一。因此,手机服务应用将会有巨大的发展潜力,校园通讯软件作为其中的一部分,结合在校师生的迫切需求,发展空间很大。本文首先对当下流行的IOS与Windows Mobile等操作系统平台的现状进行了对比分析,接着研究阐述了安卓平台的系统架构,安卓功能特征,重要的API以及生命周期机制。结合基础知识,基于安卓平台设计和开发校园通讯软件,系统地分析了太原理工大学校园通软件开发的背景和研究目标,首先介绍了软件的需求分析,然后介绍了该软件的详细设计过程,具体界面的设计和功能,最后总结出了在本软件开发过程中的所遇到的问题以及软件的拓展性。该软件应用在安卓手机上,方便太原理工大学师生在手机上就能直观的了解到太原理工大学的相关信息及校园风貌。 关键词:Android;Intent;校园资讯;移动客户端全套设计加扣 3012250582IIA Campus Information Software based on the Android Operating SystemAbstract With smart phones walking intothe lives of ordinary people,it willbecome the main device to obtain information.Therefore,the application of mobile phone servicewill have great development space,campus communicationsoftwareis one of them.In this paper,the applications ofIOS,Mobilestatus of Windowsplatformare analyzed and compared.Further research and analysis of the Android platform system architecture and the component model, and then analyze the Android API and the application form, with intent and life cycle of the mechanism.On the basis of, based on the Android platform design and development of the campus through software, systematically analyzes the too Taiyuan University of Technology campus through the background and process of software system development, first introduced the software development environment, then introduces the detailed design of the software process and the specific interface design and function, and finally a summary of the problems encountered in the process of software development. Application of this software on Android mobile phones to facilitate teachers and students on the phone can intuitively understand to too Taiyuan University of technology, the related information and the campus style. Keywords: Android;Intent;Campus Information;Mobile ClientIII目 录1 绪论11.1 国内外手机系统现状11.2 手机应用发展趋势22 Android相关技术介绍及分析42.1 Android系统架构研究42.2 Android架构分析52.2.1 应用程序层62.2.2 应用程序框架层62.2.3 系统运行库72.2.4 Linux内核层73 Android应用程序结构剖析93.1 Android的API93.2 Android四大组件103.2.1 活动103.2.2 广播接收器113.2.3 服务113.2.4 内容提供者113.3 Android活动的生命周期123.4 Intent的详细解析144 系统需求分析164.1研究目标164.2系统的可行性研究164.2.1 系统的可行性分析164.2.2 经济可行性164.2.3 技术可行性164.2.4 操作可行性174.3性能需求分析174.3.1 实用性原则174.3.2 可扩展性与可维护性原则17I4.3.3 安全可靠性原则174.3.4 用户界面美观原则184.3.5 易用性原则184.4系统的需求分析185 系统设计205.1系统总体结构设计205.2系统静态模型设计205.3数据库设计205.4文件结构与用途216 系统实现237 系统测试367.1系统测试方案367.2测试总结37结论38参考文献39致谢40II1 绪论现在随着移动设备变得越来越火热,移动设备的功能越来越强大,移动设备硬件水平的提高,移动设备的系统开发平台也越来越流行。现在国内比较常见的移动设备的开发平台有IOS, Windows Phone 以及当下逐渐流行的Android。到现在为止国内外的安卓手机用户已经有很多,市场占有率接近50%。Android是一个移动设备的集成平台,具有开源性,它由中间件、操作系统和一些基本的平台应用程序构成。Linux和Java共同组成的Android是一个具有开源性质的软件,它允许所有的个人和厂商在它的平台上进行研发。Android平台最大的优点就是开放性,不仅可以促进技术以及平台本身的创新,还可以给个人和厂商开发自己特色化的相关产品带来方便,并有助于降低开发的成本。因此,它具有巨大的市场发展潜力。手机校园通软件可以很好地帮助太原理工大学师生以及外来人员直观的了解到学校的相关信息和校园风貌,了解学校的新闻,公告以及其他相关信息,更加方便师生们的生活。1.1 国内外手机系统现状目前许多款手机操作系统已经被国内外各大硬件厂商推出,以下简要介绍目前主流的手机操作系统。IOS操作系统是苹果公司研发的,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。IOS与苹果的Mac OS X操作系统一样,属于类Unix的商业操作系统。因此它是以Darwin为基础的,类似于其他基于Mac OSX的操作系统。IOS的系统架构可以分为四个层次:核心操作系统层(the Core OS layer),介质层(the Media layer),核心服务层(the Core Services layer),可触摸层(the Cocoa Touch layer)。系统运行需要大约250兆的内存空间。Windows Mobile 操作系统是由微软公司开发的Windows操作系统演变而来。Windows Mobile操作系统具有非常强大的功能,主频较高,并且Intel嵌入式处理器都被用在了支持此操作系统的智能手机上,而且在很多硬件配置(比如储存卡容量、内存等方面)也优秀于使用其它操作系统的智能手机,因此速度比较快,性能比较强大。Linux系统是一个开放源代码的操作系统,正是由于它的开源的特性,手机制造商们可以根据实际情况开发自己相应的Linux手机操作系统,从而也可以吸引许多的软件制造商在自己的操作系统上研发更多的应用软件,丰富第三方的应用。不过Linux操作系统也存在一些不足,例如集成开发环境以及基于Linux的应用与PC的连接性比较差等。1.2 手机应用发展趋势目前针对于4G应用的开发和推广,手机用户对于更加优质化、个性化的应用服务的需求越来越迫切,期待着能够在任何时间任何地点都可以利用4G网络进行娱乐、观看电视节目、上网交易、办公、收听和下载音乐与视频等。相信在未来移动智能手机终端将能够做到以下几个方面:首先,提供智能提醒服务,智能手机可以实时监控用户的行为,并且为用户提供个性化设置,当到了某一时间点用户需要做特定的事情时,手机会自动向用户发送提醒,提醒的内容包括:日程提醒、最佳出行路线、最佳泊位、体育赛事、优惠活动、天气情况、实时新闻、股市行情、亲友生日等。其次,提供虚拟现实体验,智能手机要及时监测到用户身边的环境,通过借助特定传感器以及周边设备完成,并收集情报进行具体分析,研究对比之后为用户提供具有利用价值信息,例如在用户对其在网络虚拟世界里领养的宠物表达情感之后根据用户的喜怒哀乐让宠物进行情感反馈,在用户表达想让宠物进行跳跃等行为信息之后借助位置传感器和马达等表达;也可以在用户购物的时候,针对用户想要选择的物品为其提供相关产品的价格参考,对比分析之后告诉用户附近的哪个卖场售卖的该物品价格更加低廉;还可以根据用户所在的实际环境和场景,实时地为用户提供操控某件物品的使用步骤和方法。接着,发挥物联网的大优势,捕捉并且上传周围环境的大量信息通过无处不在的传感器,把收集的信上传到在“云端”进行整合,帮助用户及时、准确地获取用户需要的信息,例如气象信息、交通路况等。另外,用户与用户之间还可以方便快捷地实时分享所拥有的资源、协助处理相关问题和交互信息传达信息,例如进行端到端的多人游戏、书籍分享、音乐分享、照片分享等。然后,作为一个经济工具,在当时信息或者交通传输不便利的情况下,能够帮助用户寻找到最合适的位置,通过分析比较之后获取最有利用价值的信息,从而帮助用户把其所做的经济活动的收益率提高到最大水平。最后,作为更加智能、更加安全的设备,手机软件的升级与更新将会变得更加容易,得益于移动智能手机的不断普及和智能化,而且可以为用户提供有用的方法或者工具,让用户有能力和权力去自主决定哪些内容需要被屏蔽,哪些内容可以浏览、分享或者下载。2 Android相关技术介绍及分析2.1 Android系统架构研究Android系统是软件堆栈架构,由操作系统、中介架构层以及应用程序组成。Android核心是Linux 嵌入式系统,搭配谷歌为安卓开发的各种类库和运行时组件,再配合多种不同的基础组件,开发多种多样的应用程序。(l)应用程序架构: 包含具有多样功能的基础组件,开发应用程序时可直接调用。安卓应用程序中最核心的特性就是可以调用其他应用程序的资源。(2) Dalvik虚拟器: 是安卓程序的虚拟机,是Android中Java程序的运行基础。其指令集基于寄存器架构,执行其特有的文件格式dex字节码来完成对象生命周期管理、堆栈管理、安全异常管理、线程管理、垃圾回收等重要功能。它的核心内容是实现库,大体由C语言实现。(3)优化的绘图能力: 2D与3D两个方面是在应用程序里可以使用到的绘图功能。2D方面,Android专门提供了一套其特有的类库(SGL),而在3D方面则是使用了OpenGLES1.0(openGL for Embedded systems)规范的类库。另外,它支还持硬件加速,是一种运行快速的图形引擎。(4)集成的浏览器: Android内部集成浏览器基于开源的WebKit引擎。有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机就是一台“小电脑”,可以在网上随意遨游。(5)SQLite数据库: 是关系型数据库管理系统,包含在一个相对小的C库中。它是一个轻量型的数据库,嵌入式是它当初的设计目标。目前SQLite数据库已经在很多的嵌入式产品中使用,它的优点是占用的资源非常小,不需要安装和管理配置,是一个完整的数据库储存在一个单一磁盘文件中,体积很小只有250KB但是支持的数据库大小可以至2TB。(6)蓝牙、EDGE及Wi-Fi: 蓝牙是一种支持设备短距离通信的无线电技术,能够在多种设备之间进行无线信息交换。EDGE( Enhanced Data Rate for GSM,Evolution ),增强型的数据速率GSM的演进技术。EDGE其实是一种从GSM到3G的过渡技术。它主要在GSM的系统中使用了一种新的调制方法,就是最先进的SPSK调制技术和多时隙操作技术。Wi-Fi( Wireless Fidelity ),无线保真技术,属于在家庭和办公室中使用的短距离无线技术,事实上它是一个高频无线电信号,无线保真是一个无线网络通信技术的品牌,由Wi-Fi联盟所持有。这些通讯能力是手机硬件方面的体现,也是开发Android应用程序的突出的特点之一。(7)GSM技术: Global System for Mobile Communications,全球移动通讯系统,是当前应用最为广泛的移动电话标准。全球超过200个国家和地区超过10亿人正在使用GSM电话。GSM 较之它以前的标准最大的不同是它的信令和语音信道都是数字式的。从用户观点出发,GSM的主要优势在于用户可以从更高的数字语音质量和低费用的短信之间作出选择。GSM技术其实是属于手机硬件方面的展现,同时也是在开发Android应用程序的突出特点之一。(8)GPS: Global Positioning System,全球定位系统,是利用GPS定位卫星,在全球范围内实时进行定位、导航的系统。该系统可以保证同时观测到4 颗卫星在任意时刻任何地点,用来保证卫星可以采集到观测点的高度和经纬度,以实现授时、定位、导航等功能。这项技术能够用来引导飞机、船舶、车辆以及个人,同样也是属于手机硬件方面的体现,也是开发Android应用程序突出的特点之一。 2.2 Android架构分析图2-1 安卓架构的四个部分Android 是一个手机的完整系统,大致上可分为上下两层,上层采用Java 撰写应用程式,而下层则采用C 语言撰写系统程式。如果我们将上下两层再度细分,则可将上面的Java应用层分为应用程式框架(Application Framework)与应用程式(Applications),然后将下面的C 语言系统层分为系统函式库(Libraries)与Linux作业系统层,因而形成如图2-1所示的四层式架构。 Android是基于Linux的内核,它在Linux上有个Dalvik虚拟机。再往上一层,我们把它叫JNI层,就是说,它是Java虚拟机、C、Linux通讯的一个管道。再往上,这是一般大家说Android系统实际上是指的这一层。它有一些系统服务,实现的一些如程序安装包的管理、安装和整个程序运行。因为Android对用户是封装的,程序封装的不是什么程序的概念,它是在Linux提供的进程基础之上,再封装的一些概念。2.2.1 应用程序层Android其实是一个关键应用程序的集合,所有的应用程序都是用Java语言编写出来的,包括SMS程序、浏览器、电子邮件客户端、地图、日历、联系人和其他设置。这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。每一个应用程序由一个或者多个活动组成,活动必须以Activity类为超类,活动类似于操作系统上的进程,但是活动比操作系统的进程要更为灵活,与进程类似的是,活动在多种状态之间进行切换。利用Java的跨平台性质,基于Android框架开发的应用程序可以不用编译运行于任何一台安装有Android系统的平台,这点正是Android的精髓所在。2.2.2 应用程序框架层应用程序的架构设计简化了组件的重用。任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。框架可以说是一个应用程序的核心,框架是所有参与开发的程序员共同使用和遵守的约定,大家在其约定上进行必要的扩展,但程序始终保持主体结构的一致性。所有的应用程序其实是提供一组服务,包括:丰富且可以可扩展的视图(Views),可以用来构建应用程序,它包括网格(grids),列表(lists),文本框(text boxes),按钮(buttons),甚至可嵌入的web浏览器。包管理器(Package Manager),Android系统内部的程序管理。窗口管理器(Window Manager),管理所有的窗口程序。电话管理器(Telephony Manager),管理所有移动设备功能。位置管理器(Location Manager),提供位置服务。2.2.3 系统运行库包括程序库与Android运行库。程序库:Android包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。主要包括基本的C库、以及多媒体库以支持各种多媒体格式、位图和矢量字体、2D和3D图形引擎、浏览器、数据库支持。以下是一些核心库:Bionic系统C库;媒体库,基于PacketVideo OpenCORE;Surface Manager 顾名思义,用于管理Surface;Webkit,LibWebCore 浏览器,基于Webkit引擎;SGL 底层的2D图形引擎;3D libraries 基于OpenGL ES 1.0 APIs实现;.FreeType 位图(bitmap)和矢量(vector)字体显示;SQLite 一个关系型数据库管理系统,所有应用程序都可使用。另外这里还有一个硬件抽象层。为了避开Linux所遵循的GPL协议,对于Android来说并不是所有的设备驱动都放在linux内核里面,有一部分在用户空间实现,一般情况下如果要将Android移植到其他硬件去运行,只需要实现这部分代码即可。包括:显示器驱动,声音,相机,GPS,GSM等等。Android运行库:Android 系统的应用层是由Java语言开发的,由于Java语言具有跨平台的特性,所以Java代码必须运行在虚拟机中。正是因为这个特性,Android系统也自己实现了一个类似JVM但是更适用于嵌入式平台的Java虚拟机,这被称为dalvik。dalvik的功能等同于JVM,为Android平台上的Java代码提供了运行环境,dalvik本身是由C+语言实现的,在源码中根目录下有dalvik文件夹,里面存放的是dalvik虚拟机的实现代码。正是有上面这些代码实现的Android虚拟机,应用程序生成的二进制执行文件才能够快速、稳定地运行在Android系统上。2.2.4 Linux内核层Android的核心系统服务基于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。Linux内核同时也作为硬件和软件栈之间的抽象层,它可隐藏具体硬件细节而为上层提供统一的服务。Android内核对Linux内核进行了增强,增加了一些针对移动计算特有的功能,例如匿名共享内存。这些内核的增强使Android在继承Linux内核安全机制的同时,进一步提升了内存管理、进程间通信等方面的安全性。其外还对其做了部分修改,主要涉及两部分修改:Binder(IPC):提供有效的进程间通信,虽然Linux内核本身已经提供了这些功能,但Android系统很多服务都需要用到该功能,为了某种原因其实现了自己的一套。电源管理:为手持设备节省能耗。 3 Android应用程序结构剖析3.1 Android的API Android API主要包含了以下几个部分: (1)AndroidManifest.xml 每一个Android项目都包含一个清单(Manifest)文件-AndroidManifest.xml,它存储在项目层次中的最底层。清单可以定义应用程序及其组件的结构和元数据。它包含了组成应用程序的每一个组件(活动、服务、内容提供器和广播接收器)的节点。是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件,他们各自的实现类,各种能被处理的数据和启动位置。除了能声明程序中的活动、服务、内容提供者和意图接收者,还能指定安全控制和测试。(2)活动活动就是一个有生命周期的对象。一个活动对象是一个应用组织,提供了一个与用户交互的屏幕,用户可以利用这些交互做一些事情,比如打电话,拍照,发电子邮件等等。一个应用通常包括多个用户对象,而这些活动对象彼此是松散关联的。当一个活动对象因为另一个活动对象的启动而停止了,这些状态的改变是通过活动对象生命周期的回调方法通知的。(3)意图一个应用程序的三个核心组件-活动,服务和广播接收器是通过消息即意图(Intents)来激活的。Intent消息传送是相同或不同应用中组件运行时晚绑定的一种机制。意图本身,一个意图对象,是一个包含被执行操作抽象描述的被动的数据结构-或者,对于广播而言,是某件已经发生并被声明的事情的描述。存在不同的机制来传送意图到每种组件中。(4)视图视图可以将其自身绘制到屏幕上,可以用来构建应用程序。(5)通知Notification,俗称通知,是一种具有全局效果的通知,它展示在屏幕的顶端,首先会表现为一个图标的形式,当用户向下滑动的时候,展示出通知具体的内容。程序一般通过Notification Manager服务来发送通知。(6)服务服务是运行在后台的一段代码。它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务总是藏在后台的。(7)内容提供者内容提供程序组件从一个应用到其他请求提供数据。通过ContentResolver 类的方法这样的请求处理。内容提供程序使用不同的方式来存储数据,并且可以将数据存储在数据库中,文件中,甚至在网络上。每一个Android应用程序运行在自己的进程保持一个应用程序数据,在另外一个应用程序中隐藏自己的权限。但有时需要在应用程序之间共享数据。这时内容提供程序是非常有用。内容提供程序将内容集中在一个地方,让许多不同的应用访问。内容提供程序的行非常像数据库,可以对它进行查询,编辑等操作,添加或删除可使用insert(), update(), delete(), query()方法。在大多数情况下,这些数据都存储在SQlite数据库。内容提供程序实施 Content Provider 类的子类,必须实现了一套标准的API,使其他应用程序来执行事务。3.2 Android四大组件 Android四大基本组件分别是Activity活动,Service服务,Content Provider内容提供者,Broadcast Receiver广播接收器。3.2.1 活动 活动是安卓应用中最常用和常见的组件之一,它提供一个屏幕,为了完成某项任务用户可以与它交互。每一个活动都对应一个窗口,其上可以提供接口。一个安卓工程至少有一个Activity,其上可以有多个View的实例。每新建一个activity,就要继承(extends)Activity类,复写onCreate(bundle)方法,然后绑定此activity的布局文件XML。Android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。3.2.2 广播接收器BroadcastReceiver 用于异步接收广播Intent。主要有两大类: 正常广播Normal broadcasts用Context.sendBroadcast()发送是完全异步的。 有序广播Ordered broadcasts用Context.sendOrderedBroadcast()发送每次被发送到一个receiver。所谓有序,就是每个receiver执行后可以传播到下一个receiver,也可以完全中止传播-不传播给其他receiver。而receiver运行的顺序可以通过matched intent-filter 里面的android:priority来控制,当priority优先级相同的时候,Receiver以任意的顺序运行。广播接收器的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。3.2.3 服务Service用于在后台完成用户指定的操作。Service分为两种。started(启动):当应用程序组件(如Activity)调用startService()方法启动服务时,服务处于started状态。bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。startService()与bindService()区别:started service(启动服务)是由其他组件调用startService()方法启动的,这导致服务的onStartCommand()方法被调用。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。因此,服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调用stopService()方法停止。Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。3.2.4 内容提供者Android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。ContentProvider使用URI来唯一标识其数据集,这里的URI以content:/作为前缀,表示该数据由ContentProvider来管理。3.3 Android活动的生命周期 在系统中的Activity被一个Activity栈所管理。当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,不再放到前台,直到新的Activity退出为止。 Activity有四种本质区别的状态: 在屏幕的前台Activity栈顶,叫做活动状态或者运行状态(active or running)。 当一个Activity失去焦点,但依然可见时,即一个不是全屏的Activity或者一个透明的Activity被放置在栈顶的时候,叫做暂停状态(Paused)。一个暂停状态的Activity依然保持所有的状态,成员信息,和窗口管理器保持连接,但是在系统内存极低的情况下将被杀死。 当一个Activity被另外的一个Activity完全覆盖掉的时候,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,它的窗口被隐藏,当系统内存不足时并且其他应用程序需要使用系统内存的时候,停止状态的Activity将被杀死。当一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,第一种方式是要求该Activity结束,另一种方式是直接杀死它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。下图显示了Activity的重要状态转换,矩形框表明Activity在状态转换之间的回调接口,开发人员可以重载实现以便执行相关代码,带有颜色的椭圆形表明Activity所处的状态。图3-1 Activity状态在图3-1中,Activity有三个关键的循环:1. 整个的生命周期,从onCreate(Bundle)开始到onDestroy()结束。Activity在onCreate()设置所有的“全局”状态,在onDestory()释放所有的资源。例如:某个Activity有一个在后台运行的线程,用于从网络下载数据,则该Activity可以在onCreate()中创建线程,在onDestory()中停止线程。2. 可见的生命周期,从onStart()开始到onStop()结束。在这段时间,Activity有可能不在前台,不能和用户交互,但可以看到Activity可以显示在屏幕上。在这两个状态之间,需要显示给用户的UI数据和资源,例如:可以在onStart中注册一个IntentReceiver来监听数据变化导致UI的变动,当不再需要显示时候,可以在onStop()中注销它。onStart(),onStop()都可以被多次调用,因为Activity随时可以在可见和隐藏之间转换。3. 前台的生命周期,从onResume()开始到onPause()结束。在这段时间里,该Activity处于所有 Activity的最前面,和用户进行交互。Activity可以经常性地在resumed和paused状态之间切换,例如:当设备准备休眠时,当一个Activity处理结果被分发时,当一个新的Intent被分发时。所以在这些接口方法中的代码应该属于非常轻量级的。3.4 Intent的详细解析 Intent(意图)主要是解决Android应用的各项组件之间的通讯。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器的Activity来浏览网页。在应用中,我们可以以两种形式来使用Intent:直接Intent:指定了component属性的Intent(调用setComponent(ComponentName)或者setClass(Context, Class)来指定)。通过指定具体的组件类,通知应用启动对应的组件。间接Intent:没有指定comonent属性的Intent。这些Intent需要包含足够的信息,这样系统才能根据这些信息,在在所有的可用组件中,确定满足此Intent的组件。对于直接Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接Intent,通过解析,将Intent映射给可以处理此Intent的Activity、IntentReceiver或Service。Intent解析机制主要是通过查找已注册在AndroidManifest.xml中的所有IntentFilter及其中定义的Intent,最终找到匹配的Intent。在这个解析过程中,Android是通过Intent的action、type、category这三个属性来进行判断的,判断方法如下:如果Intent指明定了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不能匹配;如果Intent没有提供type,系统将从data中得到数据类型。和action一样,目标组件的数据类型列表中必须包含Intent的数据类型,否则不能匹配。如果Intent中的数据不是content: 类型的URI,而且Intent也没有明确指定它的type,将根据Intent中数据的scheme (比如 http: 或者mailto: ) 进行匹配。同上,Intent 的scheme必须出现在目标组件的scheme列表中。 如果Intent指定了一个或多个category,这些类别必须全部出现在组建的类别列表中。比如Intent中包含了两个类别:LAUNCHER_CATEGORY 和 ALTERNATIVE_CATEGORY,解析得到的目标组件必须至少包含这两个类别。 4 系统需求分析4.1研究目标(1)了解Android应用程序的设计和开发过程;(2) 使用多种组件进行Android 平台校园通软件的开发。本软件是基于Eclipse的开发环境,在Android平台上开发的手机校园资讯软件。4.2系统的可行性研究系统的可行性研究是建立在用户的需求上,对于用户提出可供选择的方案,进行调查研究、信息流程分析和数据采集,对开发中将会出现的各种问题进行估计,以便在开发过程中能够正确处理。该阶段通过对系统总目标的初步调研与分析,提出可行性方案并进行论证。在此,主要从经济可行性、技术可行性以及操作可行性三方面进行分析研究。4.2.1 系统的可行性分析现在,安卓智能手机的价格越来越便宜,性能却一天比一天好,太原理工大学校园通软件的开发可以为在校师生查阅相关资料提供便捷平台,节约资源,提高个人管理生活的效率,同时还具有较高的安全性。另外本系统所消耗的资源小,每个人的安卓智能手机都可以满足,所以本系统在运行上是可行的。4.2.2 经济可行性本校园通软件采用移动设备手机软件的方式呈现,与传统的电脑软件相比优点是可以随时随地获取信息,不受时间和地域限制,可以充分利用人们的闲暇时间,从这个角度看,该校园通软件可行。4.2.3 技术可行性开发工具:Eclipse数据库环境:SQLite系统环境:Windows 7及以上版本本软件实现是基于Android系统的开发技术,采用以Java为主的语言进行开发。4.2.4 操作可行性本软件采用Android设计风格,并使用Android组件进行开发,界面友好,可操作性强。4.3性能需求分析为了保证软件能够长期、安全、可靠、稳定、高效地在Android设备上运行,本软件应满足以下性能需求。4.3.1 实用性原则充分利用手机的3G/4G网络,为本软件提供信息支持,充分考虑用户获取信息的心理需求,在简洁实用的基础上对软件界面层次进行布局。4.3.2 可扩展性与可维护性原则为了适应后续维护与升级,软件应该具有良好的可扩展性与可维护性。系统设计尽可能组件化、模块化,由于Android设备分辨率的不同,为了适应不同的Android终端设备,软件应该灵活配置。系统的可扩展性包括能够接纳现有的系统以及在今后系统的软硬件扩展时,能够有效保护已有的资源建设。当用户的需求有所改变时,可以迅速对其进行配置的相应改变,以适应用户的需求,同时有一个良好的应用平台,易于安装与卸载。系统能够做到扩展升级,既能满足当前业务的需求,将来的需求改变升级也被考虑在内。4.3.3 安全可靠性原则本软件是基于手机设备使用的,其安全性与其他的应用软件一样,不会残留用户任何的隐私信息,保证数据的准确性与及时性。4.3.4 用户界面美观原则界面经过对用户心理的调研分析后,参考时下流行的软件风格进行设计,在此基础上,加入了对用户具有诱导性的按键设计,使得用户在初次使用的时候就可以得心应手,不需要进行特别指导。4.3.5 易用性原则 本软件是Android平台上的软件,自然保留了Android软件的应用性原则,能够让用户看到任何一个界面都不会不知所措,会有不同含义的图标进行提示。4.4系统的需求分析 本系统主要用于对智能手机用户,点击浏览该软件,主要是界面程序的开发、数据库的建立和维护等方面。应用程序功能要完善,界面人机交互性要好,并且操作要简单。数据库中的数据应该条理清晰,易于维护,同时还要保证数据库中的数据的完整性。能够让在校手机用户快速准确地找到需要的信息,可以很方便的了解学校的新闻信息、相关公告、校车信息等内容。基于上面的描述可以总结软件的功能需求: (1)发布和浏览校园新闻; (2)发布和查看校园公告; (3)校园周边新鲜事发布和查看; (4)校车时间查询; (5)校园生活指导; (6)毕业须知。太原理工大学校园通软件是基于Eclipse、Android SDK、开发Android程序。Eclipse 插件作为开发工具, SQLite作为后台数据库支持。因为Android基于不同开发平台,很好地实现了人机交互,所以选择Android语言。同时Android语言也非常简单,在比较短的时间内可以开发出使用性较强、功能较为完善,易于操作的程序,并且也可以实现与数据库的连接。首先在Eclipse中配置好ADT和Android SDK等开发环境,然后新建一个Android项目,项目名为MySchoolApp,然后在Android项目中的AndroidManifest.xml文件中配置本软件需要使用的权限。5 系统设计5.1系统总体结构设计 在设计一款软件时一般都需要把软件分成几大模块,再把大模块细分成更小的模块,这样就做到了软件模块化设计的要求,然后再对各个小模块进行详细设计。采用模块化设计的好处是使软件结构更加清晰,也使软件的管理更加有序。但是要注意这些小模块不能随便脱离设计框架,设计完成后需要把每个设计完成的模块根据总体框架结合起来。图5-1 软件功能结构图从功能需求上分析可以看出,整个应用程序应划分为两大模块,分别是首页和更多。其中首页模块下又包括六个小模块,分别是:校园新闻、校园公告、校园周边、校车查询、校园生活、毕业须知。5.2系统静态模型设计 根据系统需求可以识别系统中存在的对象。系统和用户交互时需要直观的图形化界面,所以需要用户界面类。从需求中可知至少要创建九个类,分别是:首页类、校园新闻类、校园公告类、校园周边类、校园生活类、校车查询类、毕业须知类、常用电话类、联系我们类。5.3数据库设计 本校园通软件的数据库是采用SQLite数据库,数据库名称为myschool.db3,共涉及到两张表tb_ershou与tb_job,建表语句如下:create table tb_ershou(_id integer primary key autoincrement,title varchar(40),content varchar(200);create table tb_job(_id integer primary key autoincrement,title varchar(40),content varchar(200)。表tb_ershou代表二手闲置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农村信用社招聘合同制员工考试试题及答案
- 全面质量控制方案承诺书3篇
- 物流运营高效运作方案检查模板
- 防溺水安全教育课程讲稿及互动方案
- 合同审批流程模板
- 企业品牌宣传策划方案
- 高校创新人才培养实践方案
- 客户服务响应快速解决方案模板
- 写字楼能耗监控与节约方案
- 青少年预防教育活动方案及总结
- 保安防恐防暴教育知识培训课件
- 易制爆安全管理培训制度课件
- 军事交通运输课件
- 2025电化学储能电站施工及验收规范
- 设备技术改造合同范本
- 预见性护理及早期风险识别
- 红楼梦大观园教学课件
- 篮球场租赁合同下载5篇
- 苏教版(2024)三年级上册第五单元《平移、旋转和轴对称》单元测试卷(含解析)
- 人防工程安全培训内容课件
- 备选习题:导数在实际生活中的应用
评论
0/150
提交评论