毕业论文-基于android平台的生日管家的设计与实现_第1页
毕业论文-基于android平台的生日管家的设计与实现_第2页
毕业论文-基于android平台的生日管家的设计与实现_第3页
毕业论文-基于android平台的生日管家的设计与实现_第4页
毕业论文-基于android平台的生日管家的设计与实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

太原理工大学毕业设计(论文)用纸1绪论1.1课题研究背景及意义现在手机已经成为了人们生活中不可或缺的移动设备,没有手机会让人觉得寸步难行。手机已经不再仅仅拥有传统的打电话、发短信等基本功能,取而代之的是基于智能手机强大的信息处理能力和扩展能力,以及3G网络高速数据传输,使得越来越多的功能和业务将被开发并被大规模的应用。目前,得益于谷歌公司的开源策略,拥有众多优点的Android系统发展迅速,各大产商推出大量搭载Android系统的手机,Android手机已经占据了手机市场的绝大份额。在未来几年必将大放异彩,将极大的推动整个手机操作系统甚至是互联网乃至软件行业的发展。进入21世纪以来,无所不在的计算机将打破传统意义上计算机概念:使用更方便、移动更容易、功能更多样化的各种具有计算机功能的设备大量出现,并且在需要时,可以随时通过无线方式连接到移动数据通信网络中,以便高效地交换信息和获得各种服务。移动设备最根本的特征是移动性,即能够利用无线电波、微波或红外线灯传输介质允许通信中的设备在一定范围内自由移动,其位置不受束缚,从而实现通信双方至少有一方在移动中进行信息传输和交换的目的。移动设备从产生到现在的历史并不长,然而其发展速度却远远超出人们的预料。现如今,移动设备大行其道,全球有超过十亿部移动电话正在被使用,并且这个数目正在逐渐增加,在除美国之外的每个发达国家,拥有手机的人数比拥有计算机的人数更多。而目前,Android系统在成为全球最流行的智能手机操作系统,2012年11月,Android全球市场占有率达到76%,在中国份额更是达到90%,2013年9月24日,全世界Android的设备数量已经达到10亿台,智能手机的功能是越来越强大,它已经进入人类生活的各个领域,如炒股、聊天、娱乐以及网上冲浪等。综上所述,Android系统是移动平台发展的大势所趋,未来将在移动领域扮演一个时代重要的角色。所以,对Android平台进行相关研究并熟悉它是很有必要的,通过了解手机软件行业,进而把握未来移动互联网的发展趋势。同时可以更好的提升目前掌握的软件开发专业技能,开发出符合用户需求的应用软件,从而使生活更加便捷。Android操作系统的普及,使用Android智能手机的人越来越多,Android的应用程序也越来越多。社会的不断发展进步,人们的生活变得异常的忙碌,生活节奏越来越快,忘却身边人的生日也是常有之事。如果在Android手机中装有这么一个生日提醒软件,在朋友生日到来之时,及时给他们送上祝福,彼此都会觉得特别的开心。目前市场上也存在类似的提醒软件,此类软件的特点是:比较占用手机资源,功能相对比较单一,用户体验较差,广告繁多导致用户使用比例小。所以,很多用户装了这类软件之后发现效果没有预期的好,或者是软件占用较大的手机资源甚至有毒,使用的比例非常小,因此设计一款小型的、安全无毒的,用户操作便捷的生日管家软件是很有必要的。1.2Android系统及其手机平台发展1.2.1Android系统简介Android一词本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。它包括操作系统、中间件、用户界面和应用程序等移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专业权障碍。目前,最新版本为Android4.4KitKat(巧克力),截止2014年5月,KitKat设备已增至8.5%,而Android2.3Gingerbread(姜饼)已成明日黄花,但历史是会铭记它的。虽然Android是Google公司推出的产品,但更贴切的说法应该是开放手机联盟的产品。开放手机联盟是由大约30家公司组成的联盟,致力于将“更好的”和“开放的”手机推向市场。网站上的一句话很好的阐述了这一点:“Android是本着成为第一个开放、完整、免费。专门针对移动设备开发的平台这一目标,完全从零开始创建的。”Android系统的特点开放性。Google与开放手机联盟合作开发了Android,Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。应用程序无界限。Android上的应用程序可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。应用程序是在平等的条件下创立的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或者主屏幕这样的核心组件。应用程序可以轻松地嵌入网络组件。应用程序可以嵌入HTML、JavaScript和样式表,还可以通过WebView显示网络内容。应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以再其中并行运行。在后台运行时,应用程序可以生成通知以引起注意。1.2.2国内外手机系统现状目前国外各软硬件厂商已经推出过多款手机操作系统。下面简单介绍一下现在主流手机操作系统。提到手机操作系统,不得不提由诺基亚公司主导推出的Symbian操作系统。Symbian是为手机而设计的操作系统,它是一个实时性,多任务的纯32位嵌入式的操作系统,具有低能耗,内存占用较少等特点。Symbian系统有以下四个版本,分别为S40、S60(第二版)、S60(第三版)、S60(第五版)、S60(第五版)为触摸屏手机版本,尽管现今已逐渐淡出市场。IOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPodtouch以及iPad使用。就像其基于的MacOSX操作系统一样,它也是以Darwin为基础的。IOS的系统架构分为四个层次:核心操作系统层(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),可轻触层(theCocoaTouchlayer)。系统操作占用大概240MB的存储器空间。WindowsMobile系列操作系统是从微软计算机的Windows操作系统演化而来的。WindowsMobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件配置(如内存、储存卡容量等)上也比采用其它操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。PalmOS属于Palm公司开发,是一种32位的嵌入式操作系统,是一套专门为掌上电脑编写的操作系统,是一种轻量级、比较开放的操作系统,占用的内存非常小。现在多用Palm公司生产的手机上。该系统允许用户在其基础上编写和修改相关软件,使支持的应用程序更加丰富多彩。Palm系统与其他手机系统相比在其它方面也还存在一些不足,如Palm操作系统本身不具有录音、MP3播放功能等,但是可以通过加入第三方软件或硬件设备来实现。相对国外手机系统百花齐放的局面,国内手机操作系统则处于刚起步的阶段。这其中不得不提小米MIUI,MIUI是小米公司基于Android原生深度优化定制的手机操作系统,对Android系统有超过100项优化和改进。MIUI还是中国首个基于互联网开发模式进行开发的手机操作系统,根据社区发烧友的反馈意见不断进行改进,并在每周更新迭代。从2010年8月16日首个内测版发布至今,MIUI受到了全球23个国家、60万手机发烧友的追捧。当然,还有2014年5月20日发布的锤子手机搭载的SmartisanOS,SmartisanOS是一款深度定制的Android,类似于小米MIUI系统,或许会“砍掉GoogleMobileService”,此外,这款系统会有比siri更好的智能语音功能。1.2.3国内外手机应用现状随着3G在中国的全面启动,它所带来的巨大机遇和新生力量,大规模的网络建设正不断深入展开。但不可否认的是我国在通信领域中相比许多发达国家仍然存在着不小的差距,就在国人还在为EDGE这种传输速度仅能达到384KB/秒的2.75G过渡技术而欣喜的时候,国外早已开始试行HSDPA这种3.5G技术,传输速度更可达到惊人的数兆每秒,而基于其上所开发的延伸功能更是数不胜数,所以国内外手机应用也存在的较大的差异。但国内外对手机应用的需求方向是大致相似的,主要集中在信息服务,娱乐,学习这些方面。目前国内外手机应用服务方向主要有基于地理位置的信息服务(LocationBasedServiceLBS),它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(GeographicInformationSystem,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务,例如手机定位,导航服务。近年来十分热门的网络社交服务(SocialNetworkingServices)也已进入到手机客户端领域。例如国内有名的社交网站人人网已经针对iPhone,Android,WP等手机平台推出了手机客户端。国外最大的社交网站Facebook也已经传出正在进行针对手机产品的研发。Twitter,MySpace等国外知名社交类网站都已经推出手机版。主流视频网站优酷,爱奇艺等也都推出手机客户端。微信,QQ等即时通信类的应用也已经在各个主流手机平台推出。手机办公类软件在手机上也正日趋完善,在手机上编辑查看各类文档已经实现,在Android平台上的QuickOffice就是这样的软件。在GoogleMarket(一个谷歌针对Android系统用户所开发的应用商场)上已经有过万的企业应用办公套件。手机娱乐游戏类应用,该类应用作为传统类手机应用,在各个平台上发展已经相对完善,手机上对各种主流媒体的播放也已完美的支持,各类传统PC游戏厂商进入了手机领域。1.3手机生日管家软件市场在这个快节奏的社会里,人们都是为了自己的生活奔走着,很多细微的小事情越来越容易被忽略,所以也应生了一系列的提醒小软件,市场空间很大也能够被广大的民众认可,这些软件便利了广大快节奏生活的人们,看似用户使用比例小实则在日常生活中必不可少。下面,我们就几款热门的手机生日管家软件来进行讨论,从软件的变更和功能的强大,来了解生日管家软件的现状和将来发展的趋势,也会从侧面了解手机应用市场的潮流,从而为本系统的设计提供更多的信息。时间表是一款为用户量身定做的日程提醒管理应用,帮助那些琐事诸多,时常忘记事情而烦恼的用户,是最理想的备忘记事,全能便签,生日管家工具。其主要功能是可以按照每天、每周、每月、每年、节日和生日的重复提醒,实现小团体的协作功能,并支持留言交流和反馈,特色功能:智能语音提醒,举例,直接用语音告诉用户“某某生日了”;一劳永逸的重复事件列表,只需一次性地罗列一个重复要做的清单,用户就可以一直得到准时的提醒;人性化的今后代办事项列表,顺应现代人聚焦眼前的习惯;最有意义的自动顺延功能,让必须做的事情每天提留在眼前直到完成;摇一摇时间表,可以听到今天代办事情的语音播报;多人协作功能,用户可以通过多人记事提醒或安排别人做某件事情,还可以围绕这件事情进行沟通和交流。这是一个智能日程提醒和代办事项管理相结合的平台,在APPStore和各大安卓市场均用大量用户在使用,也因为类似于提醒软件功能的强大,包含了生日提醒,造成专门用于生日管理的软件少之又少,市场情况也不容乐观。接下来介绍的这款在市场反响还不错的生日管家软件,可能会为用户选择专门用于好友生日管理的软件提供帮助。生日管家是一款手机端的生日提醒软件,使用生日管家可以方便地管理亲友的生日,并设置时间适时提醒,生日管家提供的生日云端备份,多天多次提醒方案,使用户再也不会担心忘记亲友的生日,其功能特色:完美支持公历和农历生日提醒,双历生日计算和提醒,生日公/农历换算;支持和通讯录结合,轻松关联联系人,添加生日不费时;支持从QQ、人人网、开心网导入好友生日;生日祝福大全,精心选编,定位准确,发送祝福更轻松;可以设置提前15天、7天、3天提醒,有时间为亲友准备生日礼物或筹备生日party;网络备份和恢复功能,不同设备数据通用,让生日信息永不丢失;超准的星座属相分析、事业运程及性格预测,帮用户揭开生日命理的神秘面纱,在亲友聚会时,也是一种娱乐消遣;支持微博、朋友圈分享,邀请更多的人为亲友庆生。这样专门用于管理亲友生日的软件是否打动了你,而其在应用市场800万的用户可以看到类似软件的发展,拥有琳琅满目的生日祝福短信供挑选,完美的生日云端备份,紧跟时代潮流等,像这样的软件还同时兼容IOS和Android,各种应用市场均能下载。最后,不得不提到的一款原创生日管家软件,同时也在将一种工具转服务的理念突显出来,从记录亲友生日切入社交的生日管家变身社交消费平台,也适应了手机应用市场的发展潮流。2012年7月上线的生日管家,用户上述生日管家大体相同的功能:用户可以直接由通讯录导入亲友的生日,从而省去了手动录入的麻烦,降低了使用门槛;不管出于真情或假意,用户都要适时送去祝福,为此生日管家的祝福标签一栏中为用户提供的是一系列祝福素材,比如短信祝福、语音贺卡等。但一般说来,一个单纯的工具性App是很难保持高粘性的,为此,生日管家以更多的服务去锁定更多的用户群体。用户规模决定商业模式,有5000万用户的生日管家将选择尝试卖虚拟礼物,围绕生日卖蛋糕、鲜花以及礼品,目前生日管家在全国100多个城市共有20多家蛋糕供应商和3家鲜花供应商,用户可以根据人气、价格、赠送对象预定合适的礼物,同时提出个性化的需求,比如在蛋糕上做个玩偶,花束里写上祝福语等,礼物会通过这些门店的专门渠道当日送达至好友手中,该业务正式上线以来,每天订单量一直稳步增长,目前约100单/天,客单价200元,选择组合购买的用户约为10%,用户男女比例持平,下单用户年龄集中在18-35岁之间,目前它采用与合作商分成的盈利模式,分成比例高达20%-30%,就蛋糕、鲜花、礼品三类商品而言,目前销售比例约为65%、20%和15%。随着产品的主体功能由记录工具向社交消费服务转变,生日管家的产品设计也正在朝着这个方向发展。1.4发展趋势随着3G应用的不断开发推广,用户会越来越需要更加个性化、优质化的多媒体数据服务,用户希望能够随时、随地利用3G网络进行办公、网上交易、游戏娱乐、欣赏影视节目、收听和下载音乐等。根据观察,在不久的将来,移动手机终端将会在以下若干方面具有新的发展。首先,提供智能提醒服务,手机能够与用户实现密切配合,并监控用户的个性化活动,当重要时间点或关键事物需要用户注意时,手机会向用户发出“提醒”服务,服务包括优惠活动、天气情况、日程提醒、交通状况、股市行情、最佳泊位、体育赛事、好友活动、实时新闻、亲友生日,游戏娱乐等。其次,提供虚拟现实体验,手机可以借助传感器、周边设备了解到您的身边环境,并根据收集到的信息,智能的为您提供有用的信息,如在网络世界养的宠物,可以借助音频设备表达叫声,借助马达和位置传感器等传递其跳、跃等行为信息;也可以在用户购物时,提供相关的同类产品价格参考,提醒用户附近的哪个卖场更物美价廉;根据实际场景,为用户及时提供正在操控的产品的使用方法。接着,发挥物联网的优势,借助无处不在的传感器,可以感知并分享到周围的环境信息,这些信息将在“云端”得到整合,帮助用户及时、准确的获得气象信息、交通路况。另外借助物联网,用户间可以方便、快速的分享资源,协助和交互,如进行用户端的多人娱乐、书籍分享、照片分享、游戏分享等。然后,作为经济工具,在交通或者信息不发达的情况下,帮助用户找到最佳的市场,获得有价值的帮助信息。最后,更加智能、安全的设备,随着智能手机的不断普及和更加智能,手机软件的更新、升级将会变得越发简单,并会为用户提供工具或信息,让用户有能力和权力决策哪些内容可以浏览、下载或分享。在安全性上也将更加出色,能够十分有效的帮助用户进行获取到的内容的管理,保护用户的个人隐私和基于手机的金融活动如电子钱包、在线支付等。1.5本文的结构论文主要结构及内容如下:绪论,介绍项目背景及意义,阐述Android手机平台的发展。相关知识介绍,介绍项目开发的相关技术与知识。软件需求分析及概要设计,分析软件开发的各方面需求,为设计做准备。软件的详细设计,针对用户需求及概要设计,实现软件模块功能。软件的测试,就软件几个功能进行测试,找出问题,完善软件。2Android开发环境和相关技术2.1系统开发的环境Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:JavaRuntimeEnvironment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。(1)Eclipse(2)JDK(3)AndroidSDK(4)ADT(AndroidDevelopmentTools)2.2系统开发软件的简介2.2.1Eclipse的简介Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。2.2.2其他软件的简介(1)JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的JavaSDK。JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的JRocket在服务端运行效率也要比SunJDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。(2)AndroidSDK(softwaredevelopmentkit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,AndroidSDK指的既是Android专属的软件开发工具包。(3)ADT(AndroidDevelopmentTools),目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。2.3系统开发编程语言的简介Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。Java编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在JavaSE1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的执行速度有了大幅提升。与传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun公司对Java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java平台是基于Java语言的平台。。Java的特点:1.平台无关性平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(JavaVirtualMachine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。2.安全性Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。3.面向对象Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。4.分布式Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。5.健壮性Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Bytecode校验等功能。6.解释型我们知道C,C++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。Java不像C或C++,它不针对CPU芯片进行编译,而是把程序编译成称为自字节码的一种“中间代码”。字节码是很接近机器码的文件,可以在提供了Java虚拟机(JVM)的任何系统上被解释执行。7.动态Java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C++那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。3软件需求分析及概要设计3.1软件的需求分析该软件是一个基于Android平台的手机生日管家软件,是为用户提供好友生日提醒方面服务的,它包括好友生日信息的查看、好友信息的增删、好友信息的编辑、好友生日提醒的设置、向好友送去祝福等功能。本软件可以帮助用户在繁忙的工作之余,不忘亲朋好友的生日,在特殊的日子里记录我们人生的成长记号,在这样特别的日子里为身边的人送上最真诚的生日祝福,希望这样的软件能给你的爱人,亲人,朋友带去欢乐和美好的祝福。3.2软件的概要设计3.2.1软件的功能模块说明(1)好友信息编辑模块。用户可以通过增加、修改、删除来管理好友生日信息。在好友信息列表中,包含了好友的姓名、生日、电话等内容。(2)自由选择提醒日期模块。用户可以通过软件自由去选择生日的提醒日日期,可以是在生日当天,可以是生日提前的那几天,用户可以完全进行自由设置。(3)提醒方式的选择模块。用户可以通过软件自由去选择生日的提醒的方式,例如震动,铃声,震动加铃声。(4)自动拨打电话和自动发送信息模块。在生日提醒时,用户可以一键拨通好友的电话,或者说一键给好友发信息。3.2.2软件的功能模块结构图在程序设计分析的基础上,结合实际情况,得出本程序的功能模块结构图。在结构图中包括了功能模块的表示及其中部分功能的实现原理。根据生日管家软件的要求,生日管家的功能模块主要有好友信息模块和生日提醒模块这两大块。首先是一个总的功能模块的结构图,其中包括了系统设计时的总体功能概括,如图3-1。置置图3-1功能模块结构然后在总体的功能模块后面是主体功能的详细模块显示。在好友信息编辑显示上可分为几个部分,详细见图3-2。图3-2信息编辑3.3数据保存的设计通过Android文件的写入与读写,简单的文本读写context.openFileIput()和context.openFileOutput()方法实现,存储数据保存在LinkMan.txt中,如图3-3。图3-3存储数据到文件在文件I/O操作上,除了标准的JavaI/O类和方法外,Android系统本身提供了两个方法用于文件的读/写操作,以简化使用标准I/O的步骤。openFileInput(Stringname)方法:用于读取当前应用文件夹下的文件,并返回FileInputStream输入流。openFileOutput(Stringname,intmode)方法:用于向当前应用文件夹下输出文件,并返回FileOutputStream输出流。值得注意的是:1.两个方法都只支持操作当前Android应用程序文件夹下的文件,即应用的私有目录。这个私有目录位于Android系统的“/data/data/<应用程序报名>/”目录中。2.传入的文件名不能带有任何的路径信息,只需要传入文件名即可(包括扩展名)。3.当创建文件时,如果指定的文件不存在,则Android会创建文件,而对于存在的文件,默认使用覆盖私有模式(Context.MODE_PRIVATE)对文件进行写操作;如果想让增量方式写入已存在文件,需要指定输出模式为Context.MODE_APPEND。4.如果打算让其他应用访问输出的文件,可以设置输出模式为只读Context.MODE_WORLD_READABLE。5.如果打算让其他应用访问输出的文件,也可以设置输出模式为可读写Context.MODE_WORLD_WRITEABLE。4软件的详细设计4.1主界面的设计与实现4.1.1主界面的头部菜单栏制作菜单栏使用了ActionBar,可以替代传统的标题栏,设计出可以展开更多的丰富内容,方便操控。ActionBar上默认情况下包括了app的logo,logo位置在左侧,紧挨在logo右侧的是activity的title,其主要功能包括:显示选项菜单,提供标签页的切换方式的导航功能,可以切换多个fragment,提供下拉的导航条目,提供交互式活动视图代替选项条目,使用程序的图标作为返回Home主屏或向上的导航操作。通过调用onCreateOptionsMenu()方法来将菜单项放置于ActionBar中,在menu中声明ActionItem的例子如图4-1:图4-1在菜单栏中增加添加控件当用户选择一个ActionItem是,Activity会接受到对onOptionsItemSelected()方法的调用,并且传入菜单项的ID值,例如图4-2添加的实现:图4-2添加功能的跳转通过ActionBar实现页面跳转,最终的效果如图4-3。图4-3头部菜单效果图4.1.2软件的主界面该界面用到ListView,由于要用到ImageView,图片源不是在资源里面的,没法用到资料ID,则需要写一个Adapter,是连接后端数据和前端显示的适配器接口,是数据和UI之间的一个了纽带,而BaswAdapter是一个抽象类,继承它需要实现较多的方法,所以比较具有较高的灵活性。ListView在开始绘制的时候,系统首先掉用getCount()函数,根据它的返回值得到ListView的长度,然后根据这个,调用getView()逐一绘制每一行。如图4-4。图4-4主界面效果图4.1.3软件主界面功能的设计在主界面(好友信息界面)中,包括了好友信息的添加、修改、删除主要功能。添加好友信息功能,通过调用onOptionsItemSelected()方法的调用,并且传入菜单项的ID值,开始对添加功能代码的编写,包括姓名,手机,生日的录入。其代码如下图4-5: 图4-5添加功能的实现点击保存,完成对好友信息的添加,效果如图4-6。图4-6好友信息添加好友信息的修改,调用LinkManDao.txt文本下保存的好友信息,通过edit重新编辑信息,其效果图如图4-7。 图4-7好友信息修改在ListView界面上有对好友信息的删除操作,只要点击就会出现删除选项,删除后后会跳转回主界面。删除信息的界面如图4-8。图4-8好友信息删除4.2生日提醒界面4.2.1提醒界面的设计生日提醒界面和主界面设计一样,制作菜单栏使用了ActionBar,界面用到ListView,用户点击主界面的提醒按钮即可跳转至提醒界面,通过调用Activity中onCreateOptionsMenu()方法映射menu布局到提醒界面如图4-9:图4-9好友生日提醒界面4.2.2任务功能的设计(1)一键拨打电话在AndroidManifest中添加user-permission,并声明使用权限:<uses-permissionandroid:name="android.permission.CALL_PHONE"/>通过Inter对象,带入“ACTION_CALL”这个关键词,以及通过Uri.parse()方法将用户要拨打的号码带入。最后以startActivity(intent)方法(代码如图4-10),即可完成通过程序直接拨打电话,如图4-11一键拨打电话效果图。图4-10拨打电话的实现代码通过两个虚拟机模拟拨打电话。 图4-11一键拨打电话效果图(2)一键发送短信同样,在AndroidManifest中添加user-permission,并声明使用权限:<uses-permissionandroid:name="android.permission.SEND_SMS"/>,其效果图4-12。图4-12一键发送短信效果图5手机软件系统测试5.1手机软件测试概述手机软件系统测试仿佛还是近几年的事情,当大多数的IT工程师埋头于软件编程,想着如何增加手机的各项功能使其更加的人性化、智能化的时候,软件测试工程师并没有得到足够的重视。而如今随着智能手机的日渐强大,各种复杂功能的出现,用户在使用过程中出现了各种各样的问题,这时企业才发现经历了软件开发过程之后,产品并不能立即交付使用,成功与否还需要测试人员加以认证。软件测试是软件开发过程中的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的:第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件;第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息;第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量。四、质量也代表着它符合客户的需要。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是提高了。

测试人员在软件开发过程中的任务:寻找Bug;避免软件开发过程中的缺陷;衡量软件的品质;关注用户的需求。总的目标是:确保软件的质量。5.2常用的软件测试方法随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强,选择合适的软件测试方法可以让我们事半功倍。5.2.1黑盒测试黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。

黑盒测试的优点有:(1)比较简单,不需要了解程序内部的代码及实现;

(2)与软件的内部实现无关;(3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;

(4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;(5)在做软件自动化测试时较为方便。

黑盒测试的缺点有:

(1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;

(2)自动化测试的复用性较低。5.2.2白盒测试白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。如下图5-1程序代码:图5-1用例代码

读了代码之后可以知道,先要检查一个字符串是否为空,然后再根据播放器当前的状态来执行相应的动作。可以这样设计一些测试用例:比如字符串(文件)为空的话会出现什么情况;如果此时播放器的状态是文件刚打开,会是什么情况;如果文件已经在播放,再调用这个函数会是什么情况。也就是说,根据播放器内部状态的不同,可以设计很多不同的测试用例。这些是在纯粹做黑盒测试时不一定能做到的事情。白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。

白盒测试的缺点有:

(1)程序运行会有很多不同的路径,不可能测试所有的运行路径;

(2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可;(3)能会漏掉一些功能需求;

(4)系统庞大时,测试开销会非常大。5.2.3基于风险的测试基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。有如图5-2,横轴代表影响,竖轴代表概率,根据一个软件的特点来确定:如果一个功能出了问题,它对整个产品的影响有多大,这个功能出问题的概率有多大?如果出问题的概率很大,出了问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。对于一个用户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,那么如果时间比较紧的话,就可以考虑不测试。基于风险测试的两个决定因素就是:该功能出问题对用户的影响有多大,出问题的概率有多大。其它一些影响因素还有复杂性、可用性、依赖性、可修改性等。测试人员主要根据事情的轻重缓急来决定测试工作的重点。图5-2风险测试分析5.2.4基于模型的测试模型实际上就是用语言把一个系统的行为描述出来,定义出它可能的各种状态,以及它们之间的转换关系,即状态转换图。模型是系统的抽象。基于模型的测试是利用模型来生成相应的测试用例,然后根据实际结果和原先预想的结果的差异来测试系统,过程如图5-3。

图5-3模型测试过程状态转化5.3本系统测试用例本系统是基于Android平台的生日管家系统,其主要功能是好友信息的编辑及好友生日的提醒,测试目的在于好友信息是否能够正确的保存和好友生日当天是否能够通过查询已保存的好友信息向好友送去生日祝福。在测试过程中还需启动两个模拟机,以此模拟向好友打电话和发送短信的功能。主界面功能的测试,结果如图5-4。1.添加手机测试用例功能的测试。模拟用户添加手机测试用例的几种情况。(1)选择添加,输入姓名、电话、生日。系统提示:测试用例保存成功。(2)选择添加,输入电话、生日,不输入姓名。系统提示:姓名不能为空。(3)选择添加,输入姓名、生日,不输入电话。系统提示:测试用例保存成功。(4)选择添加,什么也不填写,直接保存。系统提示:姓名不能为空。(5)填写一条已经存在的手机测试用例,保存。系统提示:测试用例保存成功。2.删除手机测试用例功能的测试。(1)选择一条测试用例,点击删除。系统提示:删除成功。(2)以上操作成功后,重新查询删除的手机测试用例。实际情况:查询不到该测试用例。3.修改手机测试用例功能的测试。(1)修改时,只修改姓名,电话、生日不进行修改。系统提示:修改成功。(2)修改时,只修改电话,姓名、生日不进行修改。系统提示:修改成功。图5-4主界面测试结果图生日提醒界面功能的测试。模拟用户添加两条手机测试用例:一条测试用例添加好友姓名、电话及生日;另一条测试用例则只添加好友姓名和生日,电话为空。进入生日提醒界面,测试一键拨打电话和发送短信功能是否出现问题,如图5-5。点击已保存好的好友信息(包括姓名、电话、生日)的item,一键拨打电话。系统提示:拨打成功。相同的测试用例,进行发送短信。系统提示:短信发送成功。点击另一条保存好的好友信息(不包括电话)的item,一键拨打电话。系统提示:无响应。相同的测试用例,进行发送短信。系统提示:没有电话号码。图5-5生日提醒界面测试用例结论经过艰苦的奋斗,我的毕业设计——基于Android平台的生日管家软件终于完成了,软件成功通过测试,可以实现在模拟器和手机上的操作。在毕业设计开始之初,经过先前的准备工作,包括开题报告、任务书、外文翻译的书写,使得我对自己的毕业设计内容有了初步的认识,然后是对Android基本知识的学习、熟悉及掌握。一切准备就绪后开始进行毕业设计的启动,一开始还是遇到了各种各样的问题,通过自己的不断尝试,不断的学习,查找资料和向老师寻求解决办法,终于解决了毕业设计项目中的一些难点,在这过程中我感觉到经历很多,收益很多。其中我了解了很多以前在书本中无法学习到的知识,我发现只有自己实践才能更好地提升自己的能力,并且光有知识是不够的,还需要与实践相结合,这样才能提高自己的专业知识和操作能力。同时,还从侧面让我再次学习到Android的应用时怎么在系统上运行的。其中吸引我地方就是Android的Runtime,在这,我看到了Google设计的Dalvik虚拟机不同于传统Java虚拟机的地方,这个虚拟机在移动终端设备CPU速度低,资源有限的环境下也能很高效率的运行,这无疑也证明了Android系统的成功。软件开发的过程中,不仅学习到Android系统是一个层次的软件集,学习了Android层次方面的问题及对其运行环境层和Android应用框架层的重要,通过对Android平台上应用的开发,更一步了解了Android系统在开发过程中,尤其注重Android对Intent机制的使用。此项目虽然完成了,但是其中还存在不少的问题。当然,作为第一次做Android的手机应用,还有许多未熟悉和掌握的知识,所以开发出来的软件可能存在着问题,例如界面粗糙,未达到市场需求等。只有在不断地熟悉与学习,并且去尝试,才能更好的完成以后的工作任务。虽然存在一些问题,但是这次的毕业设计,给了我们一次很好的锻炼机会。指导老师耐心的带领我们,深刻的认识了开发一个项目的完整过程,从中我学到了很多很多。这次毕业设计的制作使我体会最深的是我们做任何事只要坚持就会成功的。刚开始做这个系统的时候我自己无从下手,当中存在着很多很多的疑问,我灰心丧气,感觉自己学了那么多的东西一样都没有用到。但是在老师的耐心指导下,我重拾信心,通过去图书馆找相关的资料,通过网上搜索相关的内容,慢慢就有了头绪。从一开始的手足无措,毫无进展,到后来通过老师的帮助把系统的一个个模块一点一点地实现出来,我感到很高兴很兴奋。总之,这次的毕业设计是一个不断学习、探索、发现问题和解决问题的过程。在以后的工作中还需要不断的积累,不断的努力。参考文献[1]靳岩,姚尚朗.GoogleAndroid开发入门与实战[M].北京:人民邮电出版社,2009:1-12[2]景保玉.2010中国移动应用开发现状与趋势大调查[M].北京:人民邮电出版社,2011:2-19[3]谭浩强.Java语言程序设计(第三版)[M].北京:清华大学出版社,2008[4]余志龙.AndroidSDK开发范例大全2[M].北京:人民邮电出版社,2010[5]郭宏志.Android应用开发详解[M].北京:电子工业出版社,2010[6]李飞.最新实用网络技术教程[M].西安:西安电子科技大学出版社.[7]张利国,龚海平,王植萌.Android移动开发入门与进阶[M].北京:人民邮电出版社,2009[8]韩敬海.Android程序设计[M].北京:电子工业出版社,2012[9]杨丰胜.Android应用开发解密[M].西安:机械工业出版社,2010.1~63[10]W.FranAbleson,RobiSen.GoogleAndroid揭秘.北京:人民邮电出版社,2010[11]Jennings,N.R,Wooldridge,M.:Agent-OrientedSoftwareEngineering.ArtificialIntelligence117.277-296(2000)Nowostawski,andMartinLectureNotesiComputerScience,2012,Volume7068,AdvancedAgentTechnology,Pages488-502致谢在本文完成之际,我由衷地感谢关怀、教诲、帮助、支持和鼓励我完成学业的老师、朋友和亲人。首先我要感谢我的导师赵彦涛,李建林,半年来他们在学习、科研上一直对我悉心指导,严格要求、热情鼓励,为我创造了很多锻炼提高的机会。老师洞察全局、高屋建瓴,为我的论文的顺利完成指出了很好的方向,老师渊博的知识、宽广无私的胸怀、夜以继日的工作态度、对事业的执著追求、诲人不倦的教师风范和对问题的敏锐观察力,都将使我毕生受益。在此我谨向敬爱的导师致以最诚挚的谢意。感谢我的同学和朋友对我的关心和帮助。外文原文AndroidApplicationFundamentals AndroidapplicationsarewrittenintheJavaprogramminglanguage.TheAndroidSDKtoolscompilethecode—alongwithanydataandresourcefiles—intoan

Androidpackage,anarchivefilewithan

.apk

suffix.Allthecodeinasingle

.apk

fileisconsideredtobeoneapplicationandisthefilethatAndroid-powereddevicesusetoinstalltheapplication. Onceinstalledonadevice,eachAndroidapplicationlivesinitsownsecuritysandbox:TheAndroidoperatingsystemisamulti-userLinuxsysteminwhicheachapplicationisadifferentuser.Bydefault,thesystemassignseachapplicationauniqueLinuxuserID(theIDisusedonlybythesystemandisunknowntotheapplication).ThesystemsetspermissionsforallthefilesinanapplicationsothatonlytheuserIDassignedtothatapplicationcanaccessthem.Eachprocesshasitsownvirtualmachine(VM),soanapplication'scoderunsinisolationfromotherapplications.Bydefault,everyapplicationrunsinitsownLinuxprocess.Androidstartstheprocesswhenanyoftheapplication'scomponentsneedtobeexecuted,thenshutsdowntheprocesswhenit'snolongerneededorwhenthesystemmustrecovermemoryforotherapplications.Inthisway,theAndroidsystemimplementsthe

principleofleastprivilege.Thatis,eachapplication,bydefault,hasaccessonlytothecomponentsthatitrequirestodoitsworkandnomore.Thiscreatesaverysecureenvironmentinwhichanapplicationcannotaccesspartsofthesystemforwhichitisnotgivenpermission. However,therearewaysforanapplicationtosharedatawithotherapplicationsandforanapplicationtoaccesssystemservices:It'spossibletoarrangefortwoapplicationstosharethesameLinuxuserID,inwhichcasetheyareabletoaccesseachother'sfiles.Toconservesystemresources,applicationswiththesameuserIDcanalsoarrangetoruninthesameLinuxprocessandsharethesameVM(theapplicationsmustalsobesignedwiththesamecertificate).Anapplicationcanrequestpermissiontoaccessdevicedatasuchastheuser'scontacts,SMSmessages,themountablestorage(SDcard),camera,Bluetooth,andmore.Allapplicationpermissionsmustbegrantedbytheuseratinstalltime.ThatcoversthebasicsregardinghowanAndroidapplicationexistswithinthesystem.Therestofthisdocumentintroducesyouto:1、Thecoreframeworkcomponentsthatdefineyourapplication.2、Themanifestfileinwhichyoudeclarecomponentsandrequireddevicefeaturesforyourapplication.3、Resourcesthatareseparatefromtheapplicationcodeandallowyourapplicationtogracefullyoptimizeitsbehaviorforavarietyofdeviceconfigurations.ApplicationComponents ApplicationcomponentsaretheessentialbuildingblocksofanAndroidapplication.Eachcomponentisadifferentpointthroughwhichthesystemcanenteryourapplication.Notallcomponentsareactualentrypointsfortheuserandsomedependoneachother,buteachoneexistsasitsownentityandplaysaspecificrole—eachoneisauniquebuildingblockthathelpsdefineyourapplication'soverallbehavior.Therearefourdifferenttypesofapplicationcomponents.Eachtypeservesadistinctpurposeandhasadistinctlifecyclethatdefineshowthecomponentiscreatedanddestroyed.Herearethefourtypesofapplicationcomponents:ActivitiesAn

activity

representsasinglescreenwithauserinterface.Forexample,anemailapplicationmighthaveoneactivitythatshowsalistofnewemails,anotheractivitytocomposeanemail,andanotheractivityforreadingemails.Althoughtheactivitiesworktogethertoformacohesiveuserexperienceintheemailapplication,eachoneisindependentoftheothers.Assuch,adifferentapplicationcanstartanyoneoftheseactivities(iftheemailapplicationallowsit).Forexample,acameraapplicationcanstarttheactivityintheemailapplicationthatcomposesnewmail,inorderfortheusertoshareapicture.Anactivityisimplementedasasubclassof

Activity

andyoucanlearnmoreaboutitinthe

Activities

developerguide.ServicesA

service

isacomponentthatrunsinthebackgroundtoperformlong-runningoperationsortoperformworkforremoteprocesses.Aservicedoesnotprovideauserinterface.Forexample,aservicemightplaymusicinthebackgroundwhiletheuserisinadifferentapplication,oritmightfetchdataoverthenetworkwithoutblockinguserinteractionwithanactivity.Anothercomponent,suchasanactivity,canstarttheserviceandletitrunorbindtoitinordertointeractwithit.Aserviceisimplementedasasubclassof

Service

andyoucanlearnmoreaboutitinthe

Services

developerguide.ContentprovidersA

contentprovider

managesasharedsetofapplicationdata.Youcanstorethedatainthefilesystem,anSQLitedatabase,ontheweb,oranyotherpersistentstoragelocationyourapplicationcanaccess.Throughthecontentprovider,otherapplicationscanqueryorevenmodifythedata(ifthecontentproviderallowsit).Forexample,theAndroidsystemprovidesacontentproviderthatmanagestheuser'scontactinformation.Assuch,anyapplicationwiththeproperpermissionscanquerypartofthecontentprovider(suchas

ContactsContract.Data)toreadandwriteinformationaboutaparticularperson.Contentprovidersarealsousefulforreadingandwritingdatathatisprivatetoyourapplicationandnotshared.Forexample,the

NotePad

sampleapplicationusesacontentprovidertosavenotes.Acontentproviderisimplementedasasubclassof

ContentProvider

andmustimplementastandardsetofAPIsthatenableotherapplicationstoperformtransactions.Formoreinformation,seethe

ContentProviders

developerguide.BroadcastreceiversA

broadcastreceiver

isacomponentthatrespondstosystem-widebroadcastannouncements.Manybroadcastsoriginatefromthesystem—forexample,abroadcastannouncingthatthescreenhasturnedoff,thebatteryislow,orapicturewascaptured.Applicationscanalsoinitiatebroadcasts—forexample,toletotherapplicationsknowthatsomedatahasbeendownloadedtothedeviceandisavailableforthemtouse.Althoughbroadcastreceiversdon'tdisplayauserinterface,theymay

createastatusbarnotification

toalerttheuserwhenabroadcasteventoccurs.Morecommonly,though,abroadcastreceiverisjusta"gateway"toothercomponentsandisintendedtodoaveryminimalamountofwork.Forinstance,itmightinitiateaservicetoperformsomeworkbasedontheevent.Abroadcastreceiverisimplementedasasubclassof

HYPERLINK"/reference/android/content/BroadcastReceiver.

温馨提示

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

评论

0/150

提交评论