ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:219.89KB ,
资源ID:17478349      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17478349.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程专业毕业设计论文内容模板Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程专业毕业设计论文内容模板Word文档格式.docx

1、2.相关技术和工具综述2.1 Android技术 Android是一种以l i n u x为基础的开放源代码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由谷歌收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的i o s以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场5

2、2.5%的份额,中国市场占有率为68.4%。Android的系统架构和其它操作系统一样,采用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和l i n u x核心层。 Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使

3、用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、l u a、t cl、p h p等等),还有其他诸如:QT(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过Mon o Droid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,HTML5等等都已经支持Android开发。2.1.2 Android应用程序早期

4、的Android应用程序开发,通常通过AndroidSDK(Android软件开发包)下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同。例如开发者可以通过AndroidNDK(AndroidNative开发包)使用C语言或者C+语言来编程语言开发应用程序。同时谷歌还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的VisualBasic语言。此外,谷歌公司还推出了GoogleAppInventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。2.1.3 JAVA开发方面Android支持使用Java作为编程语言来开发应用程序,

5、而Android的Java开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。2.1.4 C/C+开发方面早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步。2010年4月,谷歌正式对开发者发布了AndroidNDK,NDK允许开发者使用C/C+作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C+在Android开发中的希望。但是,当前版本的NDK在功能上还有很多局限性:NDK并没有提供对应用程序生命

6、周期的维护;NDK也不提供对Android系统中大量系统事件的支持;对于作为应用程序交互接口的UIAPI,当前版本的NDK中也没有提供。但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进。由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好。2.1.5 硬件抽象层Android的HAL(硬件抽象层)是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把framework与Linuxkernel隔开,让不至过度依赖kernel,以达成independent的概念,也让的开发能在不考虑驱动程序实现的前提下进行发展。stub是一种代理人(proxy)的

7、概念,stub是以*.so档的形式存在。Stub向HAL“提供”操作函数(operations),并由runtime向取得stub的operations,再callback这些操作函数。里包含了许多的stub(代理人)。Runtime只要说明“类型”,即moduleID,就可以取得操作函数。2.1.6 系统内核是运行于kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo

8、、再以 opencore取代FFmpeg等等。为了达到商业应用,必须移除被GNUGPL 授权证所约束的部份,例如Android将驱动程序移到userspace,使得Linuxdriverkernel彻底分开。bionic/libc/kernel/并非标准的kernelheaderfiles。header是利用工具由所产生的,这样做是为了保留常数、数据结构与宏。2.1.7 安全权限机制Android本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与

9、系统隔离开。系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。从用户角度看,一款Android应用通常会要求如下的权限:拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精

10、确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑。编辑本段系统组件Android开发四大组件分别是:活动(Activity):用于表现功能。服务(Service):后台运行服务,不提供界面呈现

11、。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(ContentProvider):支持在多个应用中存储和读取数据,相当于数据库。2.1.8 Activity中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。在Android的程序当中,Activity一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity当中可以添加一些Button、Checkbox等控件。可以看到Activity概念和网页的概念相当

12、类似。一般一个Android应用是由多个Activity组成的。这多个Activity之间可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity之间的跳转有可能返回值,例如,从ActivityA跳转到ActivityB,那么当ActivityB运行结束的时候,有可能会给Activity一个返回值。这样做在很多时候是相当方便的。2.1.9 应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布

13、的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括;1. 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。2.内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据3.资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layou

14、t files )。4. 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。5. 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。2.2 系统维护为了清除系统运行中发生的故障和错误,软、硬件维护人员要对系统进行必要的修改与完善;为了使系统适应用户环境的变化,满足新提出的需要,也要对原系统做些局部的更新,这些工作称为系统维护。 系统维护的任务是改正软件系统在使用过程中发现的隐含错误,扩充在使用过程中用户提出的新的功能及性能要求,其目的是维护软件系统的“正常运作”。这阶段的文档是软件问题报告

15、和软件修改报告,它记录发现软件错误的情况以及修改软件的过程。3.需求分析 3.1系统功能分析 3.3系统非功能分析包括运行环境、系统接口、数据要求、主要性能、质量体系(可靠性、可用性、安全等)、其他需求等;运行环境:Mac OS X EI Captian 10.11.6系统接口:1.专题页面: 一级页面: 专题: 文章详情: 本周精选: 专题分类: 最新: 其他: 2. 发现页面: 轮播图: POST请求参数:NameValueActiongetAdList 轮播图详情页Html: 参数:tokenF4D845028303F9A466B67EFF9C8C6BD6userIdd6e0ce4c-4

16、4c2-4b20-b07c-5cf9f21de3a6actiongetActivityactivityff1f65c4-01b7-4ccf-b4b2-bf81599010d2 轮播图详情页评论:index1actIdgetComListpageSize5 每日精选:type荐getJianOrJingListcurrentPageIndex4 帖子详情:bbsIdc6c89ef3-92c9-4bac-9381-6af00fad620egetDetail 评论详情:getBbsList20 3. 发布帖子: 获取帖子分类:getCircleType 发布帖子: POST请求 参数:content

17、大家好fileTypesgifafe78aff-8c30-4beb-a7e2-95d0cbeea3c6writeBBS 4. 账号信息:getListversion2 5. 注册:mobile131*cc86mcc460 6. 登录:terminalAndroidmarkethtxqjpc(极光推送)vc(验证码)4173934.系统设计 4.1 设计指导思想和原则4.1.1 概要设计在系统需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标系统的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现系统的需求。首先,我们需要描述的是系统的总的体系结

18、构。4.2 详细设计4.2.1软件设计原则 根据用户的体验方便快捷,系统分为四大模块,其中专题模块是为用户提供每日的精选帖子,根据专题分类推荐帖子,还有丰富的壁纸,无需用户自己找, 发现界面是由精选,圈子,订阅三个小界面组成的,清晰明了的为用户提供了自己想要的选择,商城界面则是方便用户购买自己喜欢的花,而我的界面显示的则是自己的个人信息,用户可以修改自己的头像,查看自己帖子的点赞情况或者管理等一些功能。4.2.3系统结构设计系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来

19、,成为一个整体,完成整个系统所要求的功能。将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。在系统的概要设计中采用结构化设计以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构。首先将整个系统化分为几个小问题,小模块。然后,进一步细分模块,添加细节。4.3系统的详细设计 该项目采用MVP架构,该架构是Android平台MVC框架的升级,MVC全称是Model -

20、View - Controller,是模型(model)视图(view)控制器(controller)的缩写。MVC是一种框架模式而非设计模式,GOF把MVC看作是3种设计模式:观察者模式、策略模式与组合模式的合体,而核心是观察者模式。简而言之,框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。MVP架构是在MVC的基础上进行的升级,MVP模式是MVC模式的一个演化版本,MVP全称Model-View-Presenter。目前MVP在Android应用开发中越来越重要了。在Android中,业务逻辑和数据存取是紧紧耦合的,很多缺乏经验

21、的开发者很可能会将各种各样的业务逻辑塞进某个Activity、Fragment或者自定义View中,这样会使得这些组件的单个类型臃肿不堪。如果不将具体的业务逻辑抽离出来,当UI变化时,你就需要去原来的View中抽离具体业务逻辑,这必然会很麻烦并且易出错。MVP模式会解除View与Model的耦合,有效的降低View的复杂性。同时又带来了良好的可扩展性、可测试性,保证系统的整洁性和灵活性。MVP模式可以分离显示层与逻辑层,它们之间通过接口进行通信,降低耦合。理想化的MVP模式可以实现同一份逻辑代码搭配不同的显示界面,因为它们之间并不依赖与具体,而是依赖于抽象。这使得Presenter可以运用于任

22、何实现了View逻辑接口的UI,使之具有更广泛的适用性,保证了灵活度。MVP模式的三个角色(1)Presenter 交互中间人:Presenter主要作为沟通View与Model的桥梁,它从Model层检索数据后,返回给View层,使得View与Model之间没有耦合,也将业务逻辑从View角色上抽离出来。(2)View 用户界面:View通常是指Activity、Fragment或者某个View控件,它含有一个Presenter成员变量。通常View需要实现一个逻辑接口,将View上的操作转交给Presenter进行实现,最后,Presenter 调用View逻辑接口将结果返回给View元素。(3)Model 数据的存取:Model 角色主要是提供数据的存取功能。Presenter 需要通过Model层存储、获取数据,Model就像一个数据仓库。更直白的说,Model是封装了数据库DAO或者网络获取数据的角色,或者两种数据方式获取的集合。项目中列表视图采用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1