




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ANDROID的图片阅读器的设计与实现摘要随着4G时代的到来以及公共场所WIFI越来越普及,以网络通信为主流功能的移动终端设备包括智能手机已经随处可见,而ANDROID系统作为最流行、开放性最强的手机操作系统给用户带来了新的应用体验,也给移动软件开发者带来了新的发展机会,以ANDROID为平台的应用程序软件越来越多。本文即是依靠ANDROID有关的技术来进行开发和研究。本系统使用JAVA和ANDROIDSDK(SOFTWAREDEVELOPMENTKIT)开发,其中ANDROIDSDK主要是以JAVA语言为基础,包含了在ANDROID平台上开发移动应用的各种工具集。用户可以使用JAVA语言来开发ANDROID平台上的软件应用。采用ECLIPSEADT(ANDROIDDEVELOPMENTTOOLS)作为开发工具,在ANDROID手机模拟器和ANDROID手机真机上测试运行。该图片阅读器的设计使用了模块化的方法,同一模块实现了高内聚,不同模块之间实现了低耦合。把整个系统划分为不同的功能模块,安装不同的功能模块,进行详细设计,然后进行编码开发。该图像阅读器的设计和实现,在模拟器的实验中,取得了比较不错的结果,各方面性能表现良好。较好的实现了对SD卡上的图片进行扫描显示;在放缩图片、旋转图片、删除图片以及图片详细信息的获取等方面取得了不小的进步。这些都表明本文的工作是有意义的。关键词图片阅读器;ANDROID手机;JAVA;ECLIPSEADTBASEDONTHEANDROIDTHEDESIGNANDIMPLEMENTATIONOFTHEPICTUREREADABSTRACTWITHTHEADVENTOFTHEERAOF4GANDWIFIINPUBLICPLACESISMOREANDMOREPOPULAR,WITHFUNCTIONOFNETWORKCOMMUNICATIONFORTHEMAINSTREAMMOBILEDEVICESINCLUDINGSMARTPHONESHAVEEVERYWHERE,THEANDROIDSYSTEMASTHEMOSTPOPULARMOBILEOPERATINGSYSTEM,OPENTHESTRONGESTBROUGHTNEWAPPLICATIONTOTHEUSEREXPERIENCE,ANDALSOBROUGHTNEWDEVELOPMENTOPPORTUNITIESFORMOBILESOFTWAREDEVELOPERS,MOREANDMOREAPPLICATIONSOFTWAREBASEDONANDROIDPLATFORMTHISARTICLEISTORELYONANDROIDFORSTUDYINGTHEDEVELOPMENTANDRELATEDTECHNOLOGYTHISSYSTEMUSESJAVAANDANDROIDSDKSOFTWAREDEVELOPMENTKITDEVELOPMENT,INCLUDINGTHEANDROIDSDKISMAINLYBASEDONJAVALANGUAGE,INCLUDESAMOBILEAPPLICATIONONTHEANDROIDPLATFORMDEVELOPMENTSETOFTOOLSUSERSCANUSETHEJAVALANGUAGETODEVELOPSOFTWAREAPPLICATIONSONTHEANDROIDPLATFORMUSINGTHEECLIPSEADTANDROIDDEVELOPMENTTOOLSASADEVELOPMENTTOOL,THEANDROIDEMULATORWITHANDROIDMOBILEPHONEREALMACHINETESTRUNTHEIMAGEREADERDESIGNUSESTHEMODULARAPPROACH,THESAMEMODULEIMPLEMENTSTHEHIGHCOHESION,REALIZEDTHELOWCOUPLINGBETWEENDIFFERENTMODULESTHEWHOLESYSTEMISDIVIDEDINTODIFFERENTFUNCTIONALMODULES,THEINSTALLATIONOFDIFFERENTFUNCTIONMODULES,DETAILEDDESIGN,CODINGANDDEVELOPMENTDESIGNANDTHEIMPLEMENTATIONOFTHEIMAGEOFTHEREADER,INASIMULATOREXPERIMENT,HASACHIEVEDFAIRLYGOODRESULTS,GOODPERFORMANCEINALLRESPECTSBETTERIMPLEMENTTHESCANNEDPICTUREOFSDCARDINSCALE,ROTATINGPICTURES,DELETEPICTURESANDIMAGESDETAILEDINFORMATIONRETRIEVALHASMADEBIGPROGRESSALLTHISSUGGESTSTHATTHEWORKOFTHISPAPERISMEANINGFULKEYWORDPICTUREREADER;ANDROIDPHONE;JAVA;ECLIPSEADT目录摘要IABSTRACTII1绪论111课题的研究背景112课题的研究意义113课题设计目标12关键技术平台与理论介绍321ANDROID平台简介和特点322ANDROID应用的构成和工作机制523开发环境的搭建7231安装并配置JDK67232安装ECLIPSE7233安装并配置ANDROIDSDK7234安装ADT724安卓应用程序的结构解析8241ACTIVITIES8242SERVICE10243CONTENTPROVIDER113需求分析和可行性研究1231问题的定义1232需求分析12321需求分析的过程12322需求分析的方法12323本软件研究方法1333可行性分析14331经济可行性14332技术可行性14333操作可行性14334法律可行性154系统概要设计1641系统的功能模块说明1642系统的功能模块结构图1643业务流分析185系统的详细设计2051系统主要功能界面的设计和实现20511对SD卡图片文件的扫描20512图片存储目录24513图片预览25514单张图片显示2752系统任务界面的设计29521幻灯片播放29522旋转图片30523缩放处理32524图片的详细信息34525图片的删除操作376软件测试3961软件测试描述3962系统功能测试407总结41参考文献42致谢43外文原文44中文翻译541绪论智能手机应用软件是近年来十分活跃的技术研究领域,是一系列高新技术的汇集,往往指以移动互联网为传输媒介,以运营商服务器和用户计算机为处理终端,以手机应用软件为信息交互窗口的旨在实现娱乐、休闲、交流和取得虚拟成就的具有可持续性的应用软件这些技术包括计算机图形学、多媒体技术、人工智能、人机接口技术、传感技术以及高度并行的实时计算技术,还包括人的行为学研究等多项关键技术。除此之外特别是个人版的智能手机应用软件,如图片阅读器软件,是个简单的应用软件,但却能给人以重大帮助,让我们从繁锁的图片中解脱出来而只有我们的身心得到了解脱才能更好的投入到新的工作现在的人,不管是已经工作的,还是还未进入社会的学生,都喜欢在吃饭前对美食拍照、旅游时对大自然瑰丽的风景拍照还有随时随地的自拍,面对大量照片需要整理有着很大的厌倦,而这样一款能让我们方便整理照片的应用软件,其魅力还是不可估量的。11课题的研究背景GOOGLE在2007年11月正式推出,基于LINUX的ANDROID移动终端操作系统,从那时起ANDROID平台越来越受人们所关注,由于ANDROID是一个真正开放开源的平台,故而开发者都可以使用ANDROID平台开发程序,使得其平台上应用软件与日剧增。除了ANDROID自身内嵌的应用之外,也有一些其他应用软件,伴随着4G时代的来临,无线宽带网络覆盖越来越广,无线上网速度也越来越快,智能手机的主流功能正逐渐转变为以网络通信为主,用户也更倾向于手机应用的体验。为了满足用户在ANDROID上浏览本地图片的需求,也结合上述的一系列分析和研究,本人决定开发一个基于ANDROID平台的图片阅读器的应用客户端软件。12课题的研究意义目前市场上安卓平台占有率在20左右,使用安卓手机的人数如此众多,所以在安卓平台上开发手机应用软件是比较有意义的。借助ANDROID系统的全触摸的形式,用户可以用手指简单的滑动、点击本地图片,能够方便实现对本地图片和SD卡的加载、分类显示、浏览、旋转处理和缩放操作,方便用户对手机本地图片的整理,从而增强用户体验和易用性。手机应用软件的盈利空间非常大,无论是下载时收取一定费用,还是通过广告盈利都是非常可行的。手机应用软件的开发与传统PC机的应用软件开发有一定差距,因为手机平台资源有限,所以开发时要处处考虑资源分配问题。而且,手机已经和现代生活方式紧紧结合在一起,可以说是随身必带品。所以手机应用软件的盈利面因为手机的覆盖率而变得非常广。13课题设计目标易于操作性既然手机应用软件面向的是普通消费者而不是计算机专家,那么他们不可能深入的学习手机应用软件操作技巧。手机应用软件操作的简单性是开发过程中必须要遵循的基本特征。良好的用户界面良好的用户界面用户界面更是吸引用户的硬指标。相关的美术构图、系统实时性和人性化提示也是必须要考虑的。可中断性多任务处理是手机生活方式的基本特征。手机用户常常在任务(如等一个电子邮件或者等车)之间有一小段时间。而游戏、通讯和工作数据访问使用的是同一个设备。所以一个好的手机应用软件应该提供短时间的娱乐功能,并且允许用户在手机应用软件提醒模式和工作模式之间顺利切换。所以在手机应用软件的服务过程中,如果遇到来电或接受到短信这样的优先级最高的进程,要能够保存手机应用软件进程,保证接完来电或查看短信之后还可以继续正常工作。所以,在设计过程中,要特别注意这几个方面的功能,使该系统更加完善。2关键技术平台与理论介绍21ANDROID平台简介和特点ANDROID操作系统是与WINDOWSMOBILE、IPHONE等手机操作系统处在同一级别的操作系统,是GOOGLE公司在2007年11月发布的基于LINUX核心的手机操作系统,是真正开放和开源的移动平台操作系统。ANDROID是一个包含操作系统、中介架构层及应用程序所产生出来的软件堆栈架构。由下而上,其核心为嵌入式LINUX26作业系统,向上搭配GOOGLE为ANDROID开发的类库及ANDROID运行时,再配合应用程序架构,来开发各种不同的应用程序。ANDROID包含的功能非常强大和完善,有很好的应用环境和用户体验,当然也有很多的应用接口,在ANDROID平台上,开发者可以随意开发出各式各样的应用,因而以ANDROID为平台的应用程序越来越多。ANDROID操作系统是第一个全部包含下列全部特点的平台环境,下列列出的功能只是一些平台具有的部分功能1ANDROID是一个基于LINUX核心和开源的真正完全开放、自由的开发平台,移动手机制造企业当然可以不用像其他操作系统那样,交付ANDROID操作系统的专利费用才能使用和定制ANDROID平台;软件开发者也不用担心ANDROID会突然由于某个厂商的倒闭或被收购而突然消失。开发者自己就可以设计、整合、扩展甚至可以替换现存的一些组件,ANDROID也没有隐藏或者设置权限的框架API。因此加入到ANDROID开发社区来共同改善和维护ANDROID的开发者越来越多,在当下成为最为火热的手机操作系统。也正因为如此,在ANDROID平台上应用程序与日剧增。2ANDROID组件的架构是采用INTERNETMASHUPS。最初的时候一个应用程序是不可以被另一个程序用不同的方式使用的;但是后来随着平台不断的发展出现了变化,一个应用程序的可以用不同的方式被另一个程序使用部分功能,这超出了程序员最初的预料。不同的用户完全可以用自己开发不断改善的版本替换一个已经存在的内嵌组件,这样的结果是解除了在移动手机开发上的开发者创新能力的束缚。3应用程序架构在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。4DALVIK虚拟机器在ANDROID平台上所使用JAVA虚拟机,不是SIM公司的标准JAVA虚拟机,而是使用GOOGLE自主开发的代号为DALVIK的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。5ANDROID自身内嵌了大量的应用服务。集成的浏览器集成的浏览器是ANDROID内建的浏览器,是以WEBKIT的浏览引擎为基础所开发成的。WEDKIT是一个开源浏览器网页排版引擎,目前使用WEBKIT引擎的浏览器主要有SAFARI,MIDORI,EPIPHANY等。配合ANDROID手机的功能,可以在浏览网页时,达到更好的效果,例如局部性的缩放网页上的资讯、触控式的操作等效果。优化的绘图能力在程序里可以用到的绘图功能分为2D与3D两个方面。在2D方面,ANDROID提供了一套特有的类库SGL而在3D方面则是使用OPENGLES10OPENGLFOREMBEDDEDSYSTEMS规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。SQLITE数据库SQLITE提供结构化的数据存取。SQLITE是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。它能够支持WINDOWS/LINUX/UNIX等主流的操作系统,同时能够跟很多程序语言相结合,比如PHP,JAVA等,还有ODBC接口,同样比起MYSQL,POSTGRESQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLITE也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。多媒体的支持能力主要用于播放媒体文件。这同时包括对音频如播放MP3或其他音乐文件等和视频如播放从网上下载的视频的支持,并支持“播放URI地址”NOTEURI即是统一资源识别地址模式在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如JPG、PNG、GIF等格式。GSM技术GLOBALSYSTEMFORMOBILECOMMUNICATIONS,即全球移动通讯系统,俗称”全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。GSM技术是属于手机硬件方面的展现,也是在开发ANDROID应用程序时可以突出的特点之一。蓝牙、EDGE、3G及WIFI蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGEENHANCEDDATARATEFORGSM,EVOLUTION,即增强型数据速率GSM演进技术。EDGE是一种从GSM到3G的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操作和SPSK调制技术。由于8PSK可将现有GSM网络采用的GMSK调制技术的信号空间从2扩展到8,从而使每个符号所包含的信息是原来的4倍。WIFIWIRELESSFIDELITY,即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是24GHZ附近的频段,该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,分别是IEEE802LLA和IEEE80211B。这些通讯能力也是属于手机硬件方面的展现,也是在开发ANDROID应用程序时可以突出的特点之一。GPSGLOBALPOSITIONINGSYSTEM,即全球定位系统,它是一个由覆盖全球的24颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面的体现,也是在开发ANDROID应用程序是可以突出的特点之一。6操作系统可以自动管理ANDROID应用程序的生命周期,每个应用程序被很多的不同的安全层相互隔离,这样就使得现在的系统稳定性比以前的智能手机更加稳健,终端用户再也不用担心应用程序是否一直活动占用内用,而影响其他应用程序的运行,或者只有关闭一些应用程序才能使得其他的应用程序可以运行。ANDROID还针对电力供应较弱,持续时间较短、存储容量小的设备专门作了一系列的优化。7可移植性好。大部分当前和将来的硬件都被覆盖了,因为ANDROID上所有的程序都是用JAVA编写,然后在ANDROID的DALVIK虚拟机上运行,所以用户编写的代码可以移植到ARM、X86和其他架构上。支持多种输入设备,其中包括键盘、触屏和滚动球,用户接口可以很好的适应各种分辨率和方位。22ANDROID应用的构成和工作机制对于一个ANDROID应用程序来说,是由ACTIVITY、INTENTRECEIVER、SERVICE、CONTENTPROVIDER四部分组成,但并不是每一个ANDROID应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件ANDROIDMANIFESTXML中进行配置。这个配置文件是每个ANDROID应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。ANDROID应用的构成和工作流程如图21图21ANDROID的构成和工作流程图22ANDROID的构成和工作流程在ANDROIDSDK中,定义了让开发者使用与核心应用程序相同API的权限应用程序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能为其它应用程序所使用。但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、置换组件。目前所有的应用程序是由服务及系统来组成,包含有L一套强大和可扩展的视图系统用来建构一个应用程序的基本组件,包了在开发系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的WEB浏览器。2内容提供者使应用程序可以访问另一个应用程序的数据如联系人数库,或者共享它们自己的数据。3资源管理器提供各种非程序代码的资源让应用程序去使用。例如本字符串、图形文件或排版相关的布局文件。4通知管理器提供应用程序在状态栏中显示应用程序自定义的提示信息。5活动管理器管理所有应用程序的生命周期及提供常用的导航回退功能。例如启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。6视窗管理器用来管理所有启动程序的视窗。7位置管理器用来管理地图服务的相关功能。8电话管理器用来管理用户拨打与接听电话的相关功能。9包管理器管理所有安装在ANDROID系统内的包。在ANDROID中包含一些C/C的类库,这些类库能被ANDROID系统中不同的组件来使用。开发者可以通过应用程序框架使用这些功能。部分核心类库列表如下1SURFACEMANAGER主要的功能是让开发者可以去存取/显示系统及管理的功能,在显示与存取操作间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整合。例如在2D、2D显示上的合成、叠合动作。23DLIBRARIES主要是依OPENGLES10规范所定义的3D绘图引擎。该库使用硬件加速当硬件可用时,可以将硬件的3D功能做最佳化的处理显示。3SGL主要是处理有关显示2D方面的绘图引擎。4MEDIAFRAMEWORK主要是以PACKETVIDEO公司的OPENCORE为基础所发展的多媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。例如MPEG4、H264、MP3、AAC、AMR、JPG、PNG、GIF等格式5FREETYPE主要是用来显示点阵图和处理向量字形的。6SSLSECURESOCKETSUYER,中文名为“安全套接层协议层”,它是网景公司提出的基于WEB应用的安全协议,当前版本为30。SSL协议指定了一种在应用程序协议如HTTP、TELENET、NMTP和FTP等和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。它已被广泛地用于WEB浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP胆协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层SSL记录协议SSLRECORDPROTOCOL它建立在可靠的传输协议如TCP之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议SSLHANDSHAKEPROTOCOL它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议提供的服务主要有认证用户和服务器,确保数据发送到正确的客户机和服务器加密数据以防止数据中途被窃取维护数据的完整性,确保数据在传输过程中不被改变。7SQLITESQLITE是一套开放性的关联式资料库,能够被所有应用程序使用的轻量级的关系数据库引擎。8WEBKIT是一个先进的网页浏览器引擎,被用来构建ANDROID浏览器和内嵌的WEB视图,也可以让开发者利用这个引擎来做不同的应用。9LIBC就是一个BSD标准C类库。但是,针对LINUX嵌入式装置进行过最佳化的调整。虽然ANDROID是用JAVA语言来开发、撰写应用程序,但却不使用JAVA运行时组件来执行JAVA程序,而是使用了由GOOGLE自行研发的ANDROID运行时组件来执行程序。ANDROID运行时组件包括两个重要的部分,一个是核心类库,另一个是DALVIK虚拟机。23开发环境的搭建231安装并配置JDK6首先需要的是JDK。ANDROIDSDK需要JDK5或更高的版本,我们使用JDK6来开发。以WINDOWS为例,从SUN网站(HTTP/JAVASUNCOM/JAVASE/DOWNLOADS/)下载JDK6并安装。接下来,设置JAVA_HOME环境变量以指向JDK安装文件夹。右键单击“计算机”选择“属性”,选择“高级系统设置”,然后单击“环境变量”。单击“新建”添加JAVA_HOME变量,如果该变量已存在,单击“编辑”修改它。JAVA_HOME的值类似于“CPROGRAMFILESJAVAJDK160_16”。232安装ECLIPSE安装JDK之后,可以从HTTP/WWWECLIPSEORG/DOWNLOADS/下载ECLIPSEIDEFORJAVADEVELOPERS。将下载的ZIP的文件解压到任何位置。首次启动ECLIPSE时,它将要求为工作区间提供一个位置。为了简化操作,可以选择一个简单的位置,比如DWORKSPACES。233安装并配置ANDROIDSDKANDROIDSDK是开发ANDROID应用程序的基本要求,没有ANDROIDSDK,ANDROID应用开发无从谈起。ANDROIDSDK中包含一个模拟器,所以无需带有ANDROID操作系统的移动设备就能开发ANDROID应用程序。ANDROIDSDK可以从HTTP/DEVELOPERANDROIDCOM/SDK下载。ANDROIDSDK同ECLIPSE一样以ZIP文件的形式发布,所以将其解压到合适的位置。ANDROIDSDK包含一个TOOLS目录,需要将它添加到PATH中。234安装ADTADT这个ECLIPSE插件对开发ANDROID应用程序有很大的帮助。它提供了一些工具来创建、测试、和调试ANDROID应用程序。ADT需要使用ECLIPSE中的INSTALLNEWSOFTWARE工具来执行安装。1选择HELP菜单项并选择INSTALLNEWSOFTWARE选项。这个选项在以前的ECLIPSE版本中为“SOFTWAREUPDATES”。2选择“WORKWITH”字段,输HTTPS/DLSSLGOOGLECOM/ANDROID/ECLIPSE/。ECLIPSE将连接该网站并生成列表,如图23所示。然后选择父节点DEVELOPERTOOLS,并确认同事选中所有子节点,然后单击NEXT。3更具提示安装所有的工具,并安装ADT所需工具的许可协议。单击“IACCEPT”,然后单击FINISH按钮。图23使用ECLIPSE中的INSTALLNEWSOFTWARE功能安装ADT在ECLIPSE中安装ADT的最后一步是将他指向ANDROIDSDK。选择WINDOWS菜单并选择PREFERENCES。在PREFERENCES对话框中,选择ANDROID节点并将SDKLOCATION字段设置为ANDROIDSDK的路径(参见图32)然后单击APPLY按钮。24安卓应用程序的结构解析通常由以下四个组件来构建一个完整的ANDROID应用程序。活动意图接收器服务内容提供者241ACTIVITIES然而,并不是所有的ANDROID应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建ANDROID应用程序时,需要将它们注册在ANDROIDMANIFESTXML文件中,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个ANDROID应用程序所必需的。ACTIVITIES是一个程序的组件之一。它的主要功能是提供界面。一个程序一般由多个ACTIVITY组成,各ACTIVITIES之间关系很松散,它们之间没有直接的关联。必须有一个ACTIVITY被指定为主ACTIVITY,它是程序启动时首先显示的界面。每个ACTIVITY都可以随意启动其它的ACTIVITY。每当一个ACTIVITY被启动,则前一个ACTIVITY就被停止。一个程序中的所有启动的ACTIVITY都被放在一个栈中,所以被停止的ACTIVITY并没有销毁,而在存于棧中。新启动的ACTIVITY先被存放于栈中,然后获得输入焦点。在当前活动的ACTIVITY上点返回键,它被从棧中取出,然后销毁,然后上一个ACTIVITY被恢复。当一个ACTIVITY因为新的ACTIVITY启动而被停止时,它会收到状态变化的通知,这样的变化有多个,每个都会引起系统调用一个相应的回调方法以通知ACTIVITY,这些回调方法被统称为“生命周期回调方法”。这些回调方法分别在ACTIVITY被创建、停止、恢复、销毁时被调用。如图24,介绍各个“生命周期回调方法”,以及其各个方法之间的关系ONCREATE当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。ONCREATE方法有一个参数,该参数可以为空NULL,也可以是之前调用ONSAVEINSTANCESTATE方法保存的状态信息。ONSTART该方法的触发表示所属活动将被展现给用户。ONRESUME当一个活动和用户发生交互的时候,触发该方法。ONPAUSE当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等。ONSTOP当一个活动不再需要展示给用户的时候,触发该方法。如果内存紧张,系统会直接结束这个活动,而不会触发ONSTOP方法。所以保存状态信息是应该在ONPAUSE时做,而不是ONSTOP时做。活动如果没有在前台运行,都将被停止或者LINUX管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。在一些情况下,ONPAUSE方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息。ONRESTART当处于停止状态的活动需要再次展现给用户的时候,触发该方法。ONDESTROY当活动销毁的时候,触发该方法。和ONSTOP方法一样,如果内存紧张,系统会直接结束这个活动而不会触发该方法。图24ANDROID生命周期242SERVICESERVICE是ANDROID系统中的一种组件,它跟ACTIVITY的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。SERVICE的启动有两种方式CONTEXTSTARTSERVICE和CONTEXTBINDSERVICE。使用CONTEXTSTARTSERVICE启动SERVICE经历CONTEXTSTARTSERVICEONCREATEONSTARTSERVICERUNNINGCONTEXTSTOPSERVICE|ONDESTROYSERVICESTOP如果SERVICE还没有运行,则ANDROID先调用ONCREATE然后调用ONSTART;如果SERVICE已经运行,则只调用ONSTART,所以一个SERVICE的ONSTART方法可能会重复调用多次。STOPSERVICE的时候直接ONDESTROY,如果是调用者自己直接退出而没有调用STOPSERVICE的话,SERVICE会一直在后台运行。该SERVICE的调用者再启动起来后可以通过STOPSERVICE关闭SERVICE。所以调用STARTSERVICE的生命周期为ONCREATEONSTART可多次调用ONDESTROY使用使用CONTEXTBINDSERVICE启动SERVICE会经历CONTEXTBINDSERVICEONCREATEONBINDSERVICERUNNINGONUNBINDONDESTROYSERVICESTOPONBIND将返回给客户端一个IBIND接口实例,IBIND允许客户端回调服务的方法,比如得到SERVICE运行的状态或其他操作。这个时候把调用者(CONTEXT,例如ACTIVITY)会和SERVICE绑定在一起,CONTEXT退出了,SREVICE就会调用ONUNBINDONDESTROY相应退出。所以调用BINDSERVICE的生命周期为ONCREATEONBIND只一次,不可多次绑定ONUNBINDONDESTORY。在SERVICE每一次的开启关闭过程中,只有ONSTART可被多次调用通过多次STARTSERVICE调用,其他ONCREATE,ONBIND,ONUNBIND,ONDESTORY在一个生命周期中只能被调用一次。SERVICE可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他ACTIVITY这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等。243CONTENTPROVIDERCONTENTPROVIDER属于ANDROID应用程序的组件之一,作为应用程序之间唯一的共享数据的途径,CONTENTPROVIDER主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的借口。ANDROID系统为一些常见的数据类型如音乐、视频、图像、手机通信录联系人信息等内置了一系列的CONTENTPROVIDER,这些都位于ANDROIDPROVIDER包下。持有特定的许可,可以在自己开发的应用程序中访问这些CONTENTPROVIDER。让自己的数据和其他应用程序共享有两种方式创建自己的CONTENTPROVIER即继承自CONTENTPROVIDER的子类或者是将自己的数据添加到已有的CONTENTPROVIDER中去,后者需要保证现有的CONTENTPROVIDER和自己的数据类型相同且具有该CONTENTPROVIDER的写入权限。对于CONTENTPROVIDER,最重要的就是数据模型DATAMODEL和URI。3需求分析和可行性研究需求分析简单地说就是分析一般用户的要求,按照用户需求大致的把目标系统架构出来。需求分析首先要做的是详细调查实际要处理的对象,对当前目标的现状要做到充分了解,然后确定用户真正所需要的也切合实际情况的系统,最终才能根据实际情况确定系统所具有的全部功能。本次设计的图片阅读器即是如此。31问题的定义问题定义就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准这些需求包括功能需求做什么,性能需求要达到什么指标,环境需求如机型,操作系统等,可靠性需求不发生故障的概率),安全保密需求,用户界面需求,资源使用需求软件运行是所需的内存,CPU等,软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标。在开发软件之前,经过查阅有关文献和著作,一段时间的分析和学习之后,基本了解了ANDROID平台的一些具体应用以及如何在ANDROID平台上开发应用程序,还有图像显示高分辨率的具体原理,也学习了图像处理相关的一些知识,认识到完成本软件和实现基本的功能,需要做到掌握ANDROID平台框架,熟悉JAVA开发语言,熟悉相关的一些基础理论。32需求分析321需求分析的过程需求分析阶段的工作,可以分为三个方面分析与综合,制订规格说明,评审。分析与综合逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型做什么的模型。制订规格说明书即编制文档,描述需求的文档称为软件需求规格说明书。注意需求分析阶段的成果是需求规格说明书,向下一阶段提交。评审对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。322需求分析的方法需求分析的方法有很多。这里只强调原型化方法,其它的方法如结构化方法,动态分析法等在此不讨论。原型化方法是十分重要的。原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能。原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷。建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等。如,为了考察是否满足用户的要求,可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型以后的目标系统就在原型系统的基础上开发。原型主要有三种类型软考考过探索型,实验型,进化型探索型目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。实验型用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠。进化型目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。使用原型化方法有两种不同的策略废弃策略,追加策略。废弃策略先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整,准确,一致,可靠的最终系统。系统构造完成后,原来的模型系统就被废弃不用探索型和实验型属于这种策略。追加策略先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。进化型属于这种策略。323本软件研究方法软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程是一门指导计算机软件开发和维护的工程学科。软件工程的模型是软件开发全部过程、活动和任务的结构框架。瀑布模型内容及特点瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的软干阶段工作,是一种线性模型。各阶段活动为,提出系统需求、提出软件需求、需求分析、设计、编码、测试和运行。每个开发阶段具有以下特征,从上一阶段接受本阶段工作的对象作为输入,对上述输入实施本阶段的活动,给出本阶段的工作成果作为输出传入下一阶段,对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段甚至更前阶段。瀑布模型最为突出的缺点是该模型缺乏灵活性。演化模型内容及特点演化模型主要针对事先不能完整定义需求的软件开发,其开发过程一般是首先开发核心系统,当核心系统投入运行后,软件开发人员根据用户的反馈,实施开发的迭代过程,每一迭代过程均由需求、设计、编码、测试、集成等阶段组成,直到软件开发结束。演化模型在一定程度上减少了软件开发活动的盲目性。螺旋模型内容及特点它是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。沿螺旋模型顺时针方向,依次表达了四个方面的活动,制定计划、风险分析、实施工程、客户评估。喷泉模型内容及特点它体现了软件创建所固有的迭代和无间隙特征,喷泉模型主要用于支持面向对象开发过程。增量模型内容及特点在设计了软件系统整体体系结构之后,首先完整的开发系统的一个初始子集,继之,根据这一子集,建造一个更加精细的版本,如此不断的进行系统的增量开发。瀑布模型、演化模型、螺旋模型之间的联系相同点是这三个模型都分为多个阶段,而瀑布模型一次完成软件,演化模型分为多次完成,每次迭代完成软件的一个部分,螺旋模型也分为多次完成,每次完成软件的一个新原型,并考虑风险分析。本软件主要实现的功能是显示本地和SD卡上的图片和对图片进行一些简单的处理,第一,需要实现扫描相关存储介质上的图片数据;第二,对于扫描出的图片能够显其存储的目录;第三,在查看相关目录中的图片时显示低分辨率图片的缩略图,使用户能够对整个存储目录中的所有图片有一个大致的了解和进行简单的浏览;第四,当用户点击预览图片中的想要查看的单张图片时,能够将图片按照原分辨率显示出来;第五,如果用户想要同一存储目录下多张图片自动切换显示来浏览图片,那就需要使图片按幻灯片一样播放;第六,如果从存储介质中扫描出来的图片是颠倒或横置,就需要进行旋转来调节,以便使用户能够正常观看图片;第七,对扫描出的图片过于大以致不能在现有的屏幕上完全显示出来或过于小用户想查看图片细节时,就要通过对图片的缩放操作来处理;第八,对于一张图片,用户想深入了解,最简单的就是了解其大小和所在位置,所以要实现图片详细信息的查看;第九,对于不喜欢的图片,用户要对其删除,对图片的删除操作需要实现。首先进行总体的分析和设计,再将基本信息模块的具体内容设计完成,然后完成其它各个子模块的功能。不同阶段中注意对系统进行备份。通过DDMS调试来发现问题,并要重视作好笔记。本项目采用SQLITE进行数据库设计,开发工具采用ECLIPSEANDROIDSDK22开发环境。33可行性分析可行性分析的目的,就是通过具体某个项目的主要内容和与之相对应的相关条件,来从各方面对其进行调查研究,以确定问题是否能够得到解决;也即是用最小的代价在尽可能的时间内确定问题是否能够解决,以避免盲目投资带来的巨大浪费。可行性分析需要对不同的可能解决方法进行分析,并对所得到的结果进行预测,看取得的效益和影响是否达到预期的目标。可行性分析必须要做到公正、可靠和科学。下面从经济、技术、操作、法律四个方面来对本系统进行可行性分析。331经济可行性基于ANDROID平台的图片阅读器的开发,在经过查阅有关资料,一段时间的调查和仔细研究潜在的市场和成本效益分析,综合各种条件之后,最后得到本系统在经济上是可行的。下面从投入和效益两方面来对其进行分析。首先在投入方面,开发者仅需一台配置一般的计算机,内存要求也不用太高,再加上JDK,配置了ANDROIDADT的ECLIPSE、ANDROIDSDK和ANDROID模拟器后就可以进行开发,开发完成后自己就可以进行模拟实验,而且很容易找到装有ANDROID系统的手机。332技术可行性根据以前软件开发总结的经验和通过对本系统具有的功能结构详细的分析,采用日渐趋于成熟的ANDROID开发技术,按照软件开发相关的具体流程就可以设计和开发本系统程序。前面调研获取的准确和完全的信息是开发功能完善应用程序的前提;而使用当下最为流行的设计方法,有助于以后对软件进行有序完善的开发和易于扩展,并能够大大简化设计流程,减少无谓的工作量,减少应用程序可能出现的漏洞和缺陷。同时JAVA已经是很成熟的跨平台软件开发语言,在J2EE上开发应用程序也日渐成熟,而ANDROID则是这几年关注度一直很高的系统平台,开放性非常强,在此平台上的开发能够使开发者了解最前沿的技术理念和新的框架结构设计。所以在技术上本系统是可行的。333操作可行性基于ANDROID平台的图片阅读器客户端软件具备友好的用户界面,使用方便,操作简单,易于被用户接受,有很好的用户体验。因此从使用操作方面看,此系统的开发是可行的。334法律可行性本系统属于私人设计,在开发过程中没有涉及合同、责任等与法律相抵触的方面。因此,本系统在法律上是可行的。综合上述四个方面的可行性分析可知,开发一个基于ANDROID的图像阅读器客户端是可以实现和可行的。4系统概要设计41系统的功能模块说明基于ANDROID平台的图片阅读器客户端软件主要的功能,是能够在本地显示和处理、以及实现放缩,主要提供如下功能1图片存储目录列表图片存储的物理位置2图片预览列表对于SD卡中的图片是以列表的方式显示出来,这样将能够对SD卡中的所有图片有个大致的了解和进行简单的浏览。3单张图片显示用户可以点击图片列表中某一项进入单张图片显示。4图片操作选项点击MENU显示可对图片进行哪些操作的选项。5幻灯片播放可使一个列表中的全部图片按照幻灯片显示。6旋转图片可使图片逆时针或顺时针旋转90度和旋转180度。7缩放处理可以对其做放缩处理的功能。8图片的详细信息显示图片的名称、所在位置、图片大小、修改时间。9图片的删除操作删除图片。42系统的功能模块结构图在程序设计分析的基础上,结合实际情况,得出本程序的功能模块结构图。在结构图中包括了功能模块的表示及其中部分功能的实现原理。首先是一个总的功能模块的结构图,其中包括了系统设计时的总体功能概括,如图41。图41总系统功能模块然后在总体的功能模块后面是主体功能的详细模块显示。在功能菜单栏上可分为几个部分,详细见图42,图42功能菜单栏模块还有就是附加功能模块(“更多”)的详细介绍。总体书写了图片添加界面的功能点,结构图如图43所示,图43附加功能模块43业务流分析基于ANDROID平台的图片阅读器客户端软件的业务流程大致如下用户可以点击某个包含图片的列表项,就可以进入单张图片显示模式,显示对应的是图片,点击屏幕上显示的左右箭头按钮可以查看上一张和下一张图片,点击图片是对图片进行下一步操作的菜单栏。然后用户可以找到相应缩放按钮点击弹出放大或缩小图片的选项,使用户可以查看不同大小的图画。本应用软件的业务流程图如下图44所示图44业务流程图5系统的详细设计51系统主要功能界面的设计和实现511对SD卡图片文件的扫描图51图片阅读器的主界面图片阅读器应用打开之后的主界面,有四个BUTTON,分别是“本地存储”、“SDCARD”、“USBHOST”、“重新扫描图片”这四个按钮。“重新扫描图片”是对所有可能存有图片文件的物理介质进行扫描,并将扫描到的图片文件在相应的物理介质目录中显示出来;“本地存储”将手机自身存储介质中的图片文件按照存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保修期合同样本
- 众筹ktv合同样本
- 个人店铺售卖合同样本
- 海底两万里教学设计
- 乙方违约合同标准文本
- 2025中文版股权转让合同范本
- 供货合同标准文本教程
- 企业员工终止合同样本
- 绿化服务承诺与质量保证措施方案
- 危急值报告制度最终版
- 2024年抖音游戏推广合作服务合同范本3篇
- 招聘团队管理
- 【课件】用坐标描述简单几何图形+课件人教版七年级数学下册
- 电商运营岗位聘用合同样本
- 2023年浙江省杭州市上城区中考数学一模试卷
- 租赁钻杆合同范例
- 消毒管理办法
- 湖北省黄冈市部分学校2024-2025学年七年级上学期期中地理试卷(含答案)
- CNG加气站应急演练方案
- 反向开票政策解读课件
- 2024年商业经济行业技能考试-黄金交易从业水平考试近5年真题集锦(频考类试题)带答案
评论
0/150
提交评论