基于Android的图片阅读器的设计与实现计算机毕业设计(论文)1

上传人:无*** 文档编号:80539407 上传时间:2022-04-25 格式:DOC 页数:65 大小:2.62MB
收藏 版权申诉 举报 下载
基于Android的图片阅读器的设计与实现计算机毕业设计(论文)1_第1页
第1页 / 共65页
基于Android的图片阅读器的设计与实现计算机毕业设计(论文)1_第2页
第2页 / 共65页
基于Android的图片阅读器的设计与实现计算机毕业设计(论文)1_第3页
第3页 / 共65页
资源描述:

《基于Android的图片阅读器的设计与实现计算机毕业设计(论文)1》由会员分享,可在线阅读,更多相关《基于Android的图片阅读器的设计与实现计算机毕业设计(论文)1(65页珍藏版)》请在装配图网上搜索。

1、基于 Android 的图片阅读器的设计与实现摘 要 随着4G 时代的到来以及公共场所WiFi越来越普及,以网络通信为主流功能的移动终端设备包括智能手机已经随处可见,而 Android 系统作为最流行、开放性最强的手机操作系统给用户带来了新的应用体验,也给移动软件开发者带来了新的发展机会,以 Android 为平台的应用程序软件越来越多。本文即是依靠 Android有关的技术来进行开发和研究。 本系统使用 JAVA 和 Android SDK(Software Development Kit)开发,其中 Android SDK 主要是以 Java 语言为基础,包含了在 Android 平台上开

2、发移动应用的各种工具集。用户可以使用 Java 语言来开发 Android 平台上的软件应用。采用 Eclipse + ADT(Android Development Tools)作为开发工具,在 Android 手机模拟器和 Android 手机真机上测试运行。该图片阅读器的设计使用了模块化的方法,同一模块实现了高内聚,不同模块之间实现了低耦合。把整个系统划分为不同的功能模块,安装不同的功能模块,进行详细设计,然后进行编码开发。该图像阅读器的设计和实现,在模拟器的实验中,取得了比较不错的结果,各方面性能表现良好。较好的实现了对SD卡上的图片进行扫描显示;在放缩图片、旋转图片、删除图片以及图片

3、详细信息的获取等方面取得了不小的进步。这些都表明本文的工作是有意义的。关键词: 图片阅读器;Android手机;JAVA;Eclipse+ADTBased on the Android the Design and Implementation of the Picture ReadAbstract With the advent of the era of 4 g and WiFi in public places is more and more popular, with function of network communication for the mainstream mobil

4、e devices including smartphones have everywhere, the Android system as the most popular mobile operating system, open the strongest brought new application to the user experience, and also brought new development opportunities for mobile software developers, more and more application software based

5、on Android platform.This article is to rely on Android for studying the development and related technology.This system uses JAVA and Android SDK (Software Development Kit) Development, including the Android SDK is mainly based on JAVA language, includes a mobile application on the Android platform D

6、evelopment set of tools.Users can use the Java language to develop software applications on the Android platform.Using the Eclipse ADT + (Android Development Tools) as a Development tool, the Android emulator with Android mobile phone real machine test run.The image reader design USES the modular ap

7、proach, the same module implements the high cohesion, realized the low coupling between different modules.The whole system is divided into different functional modules, the installation of different function modules, detailed design, coding and development.Design and the implementation of the image

8、of the reader, in a simulator experiment, has achieved fairly good results, good performance in all respects.Better implement the scanned picture of SD card;In scale, rotating pictures, delete pictures and images detailed information retrieval has made big progress.All this suggests that the work of

9、 this paper is meaningful.Keyword: Picture reader; Android Phone ;JAVA ;Eclipse+ADT毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部

10、门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期: 注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等

11、),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它目

12、 录摘 要iAbstractii1 绪论11.1 课题的研究背景11.2 课题的研究意义11.3 课题设计目标12 关键技术平台与理论介绍32.1 ANDROID 平台简介和特点32.2 Android应用的构成和工作机制52.3 开发环境的搭建72.3.1 安装并配置JDK 672.3.2 安装Eclipse72.3.3 安装并配置Android SDK72.3.4 安装ADT72.4 安卓应用程序的结构解析82.4.1 Activities82.4.2 Service102.4.3 Content Provider113 需求分析和可行性研究123.1 问题的定义123.2 需求分析123

13、.2.1 需求分析的过程123.2.2 需求分析的方法123.2.3 本软件研究方法133.3 可行性分析143.3.1 经济可行性143.3.2 技术可行性143.3.3 操作可行性143.3.4 法律可行性154 系统概要设计164.1 系统的功能模块说明164.2 系统的功能模块结构图164.3 业务流分析185 系统的详细设计205.1 系统主要功能界面的设计和实现205.1.1 对SD卡图片文件的扫描.205.1.2 图片存储目录245.1.3 图片预览255.1.4 单张图片显示275.2 系统任务界面的设计295.2.1 幻灯片播放295.2.2 旋转图片305.2.3 缩放处理

14、325.2.4 图片的详细信息345.2.5 图片的删除操作376 软件测试396.1 软件测试描述396.2 系统功能测试407 总结41参考文献42致 谢43外文原文44中文翻译54vi1 绪论 智能手机应用软件是近年来十分活跃的技术研究领域,是一系列高新技术的汇集,往往指以移动互联网为传输媒介,以运营商服务器和用户计算机为处理终端,以手机应用软件为信息交互窗口的旨在实现娱乐、休闲、交流和取得虚拟成就的具有可持续性的应用软件这些技术包括计算机图形学、多媒体技术、人工智能、人机接口技术、传感技术以及高度并行的实时计算技术,还包括人的行为学研究等多项关键技术。除此之外特别是个人版的智能手机应用

15、软件,如图片阅读器软件 ,是个简单的应用软件,但却能给人以重大帮助,让我们从繁锁的图片中解脱出来.而只有我们的身心得到了解脱才能更好的投入到新的工作.现在的人,不管是已经工作的,还是还未进入社会的学生,都喜欢在吃饭前对美食拍照、旅游时对大自然瑰丽的风景拍照还有随时随地的自拍,面对大量照片需要整理有着很大的厌倦,而这样一款能让我们方便整理照片的应用软件,其魅力还是不可估量的。1.1 课题的研究背景 Google 在 2007 年 11 月正式推出,基于 Linux 的 Android 移动终端操作系统,从那时起 Android 平台越来越受人们所关注,由于 Android 是一个真正开放开源的平

16、台,故而开发者都可以使用 Android 平台开发程序,使得其平台上应用软件与日剧增。除了 Android 自身内嵌的应用之外,也有一些其他应用软件,伴随着 4G 时代的来临,无线宽带网络覆盖越来越广,无线上网速度也越来越快,智能手机的主流功能正逐渐转变为以网络通信为主,用户也更倾向于手机应用的体验。为了满足用户在 Android 上浏览本地图片的需求,也结合上述的一系列分析和研究,本人决定开发一个基于 Android 平台的图片阅读器的应用客户端软件。1.2 课题的研究意义 目前市场上安卓平台占有率在20%左右,使用安卓手机的人数如此众多,所以在安卓平台上开发手机应用软件是比较有意义的。借助

17、Android系统的全触摸的形式,用户可以用手指简单的滑动、点击本地图片,能够方便实现对本地图片和SD卡的加载、分类显示、浏览、旋转处理和缩放操作,方便用户对手机本地图片的整理,从而增强用户体验和易用性。手机应用软件的盈利空间非常大,无论是下载时收取一定费用,还是通过广告盈利都是非常可行的。手机应用软件的开发与传统PC机的应用软件开发有一定差距,因为手机平台资源有限,所以开发时要处处考虑资源分配问题。而且,手机已经和现代生活方式紧紧结合在一起,可以说是随身必带品。所以手机应用软件的盈利面因为手机的覆盖率而变得非常广。1.3 课题设计目标易于操作性:既然手机应用软件面向的是普通消费者而不是计算机

18、专家,那么他们不可能深入的学习手机应用软件操作技巧。手机应用软件操作的简单性是开发过程中必须要遵循的基本特征。良好的用户界面:良好的用户界面用户界面更是吸引用户的硬指标。相关的美术构图、系统实时性和人性化提示也是必须要考虑的。可中断性:多任务处理是手机生活方式的基本特征。手机用户常常在任务(如等一个电子邮件或者等车)之间有一小段时间。而游戏、通讯和工作数据访问使用的是同一个设备。所以一个好的手机应用软件应该提供短时间的娱乐功能,并且允许用户在手机应用软件提醒模式和工作模式之间顺利切换。所以在手机应用软件的服务过程中,如果遇到来电或接受到短信这样的优先级最高的进程,要能够保存手机应用软件进程,保

19、证接完来电或查看短信之后还可以继续正常工作。 所以,在设计过程中,要特别注意这几个方面的功能,使该系统更加完善。2 关键技术平台与理论介绍2.1 ANDROID 平台简介和特点Android 操作系统是与 Windows Mobile、iPhone 等手机操作系统处在同一级别的操作系统,是 Google 公司在 2007 年 11 月发布的基于 Linux 核心的手机操作系统,是真正开放和开源的移动平台操作系统。Android是一个包含操作系统、中介架构层及应用程序所产生出来的软件堆栈架构。由下而上,其核心为嵌入式Linux2.6作业系统,向上搭配Google为Android开发的类库及And

20、roid运行时,再配合应用程序架构,来开发各种不同的应用程序。Android 包含的功能非常强大和完善,有很好的应用环境和用户体验,当然也有很多的应用接口,在 Android 平台上,开发者可以随意开发出各式各样的应用,因而以 Android 为平台的应用程序越来越多。 Android 操作系统是第一个全部包含下列全部特点的平台环境,下列列出的功能只是一些平台具有的部分功能: (1)Android 是一个基于 Linux 核心和开源的真正完全开放、自由的开发平台,移动手机制造企业当然可以不用像其他操作系统那样,交付 Android 操作系统的专利费用才能使用和定制 Android 平台;软件开

21、发者也不用担心 Android会突然由于某个厂商的倒闭或被收购而突然消失。开发者自己就可以设计、整合、扩展甚至可以替换现存的一些组件,Android 也没有隐藏或者设置权限的框架API。因此加入到 Android 开发社区来共同改善和维护 Android 的开发者越来越多,在当下成为最为火热的手机操作系统。也正因为如此,在 Android 平台上应用程序与日剧增。 (2)Android 组件的架构是采用 Internet mashups。最初的时候一个应用程序是不可以被另一个程序用不同的方式使用的;但是后来随着平台不断的发展出现了变化,一个应用程序的可以用不同的方式被另一个程序使用部分功能,这

22、超出了程序员最初的预料。不同的用户完全可以用自己开发不断改善的版本替换一个已经存在的内嵌组件,这样的结果是解除了在移动手机开发上的开发者创新能力的束缚。(3)应用程序架构:在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。(4)Dalvik虚拟机器:在Android平台上所使用Java虚拟机,不是Sim公司的标准Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。(5)Android 自身内嵌了大量的应用服务。

23、集成的浏览器:集成的浏览器是Android内建的浏览器,是以WebKit的浏览引擎为基础所开发成的。WedKit是一个开源浏览器网页排版引擎,目前使用WebKit引擎的浏览器主要有:Safari,Midori,Epiphany等。配合Android手机的功能,可以在浏览网页时,达到更好的效果,例如:局部性的缩放网页上的资讯、触控式的操作等效果。优化的绘图能力:在程序里可以用到的绘图功能分为2D与3D两个方面。在2D方面,Android提供了一套特有的类库(SGL;而在3D方面则是使用OpenGLES1.0(openGL for Embedded systems)规范的类库。它们是一种非常快的图

24、形引擎,并且支持硬件加速。SQLite数据库:SQLite提供结构化的数据存取。SQLite是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。它能够支持Windows/Linux/U nix等主流的操作系统,同时能够跟很多程序语言相结合,比如php,Java等,还有ODBC接口,同样比起Mysql,PostgreSQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理

25、等等。SQLite也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。多媒体的支持能力:主要用于播放媒体文件。这同时包括对音频(如播放MP3或其他音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放URI地址”(Note:URI即是统一资源识别地址)模式在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如:JPG、PNG、GIF等格式。GSM技术:Global System for Mobile Communications,即全球移动通讯系统,俗称”全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可

26、以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。GSM技术是属于手机硬件方面的展现,也是在开发Android应用程序时可以突出的特点之一。蓝牙、EDGE、3G及Wi-Fi:蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。EDGE(Enhanced Data Rate for GSM,Evolution),即增强型数据速率GSM演进技术。EDGE是一种从GSM到3G的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操作和SPSK调制技术。由于8PSK可将现有GSM网络采用的GMSK调制技术的信号空间从2扩展

27、到8,从而使每个符号所包含的信息是原来的4倍。Wi-Fi(WirelessFidelity),即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是2.4GHz附近的频段,该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,分别是IEEE802.lla和IEEE802.11b。这些通讯能力也是属于手机硬件方面的展现,也是在开发Android应用程序时可以突出的特点之一。GPS: Global Positioning System,即全球定位系统,它是一个由覆盖全球的24颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到4颗卫星

28、,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面的体现,也是在开发Android应用程序是可以突出的特点之一。 (6)操作系统可以自动管理 Android 应用程序的生命周期,每个应用程序被很多的不同的安全层相互隔离,这样就使得现在的系统稳定性比以前的智能手机更加稳健,终端用户再也不用担心应用程序是否一直活动占用内用,而影响其他应用程序的运行,或者只有关闭一些应用程序才能使得其他的应用程序可以运行。Android 还针对电力供应较弱,持续时间较短、存储容量小的设备专门作了一系列的优化。 (7

29、)可移植性好。大部分当前和将来的硬件都被覆盖了,因为 Android 上所有的程序都是用 java 编写,然后在 Android 的 Dalvik 虚拟机上运行,所以用户编写的代码可以移植到 ARM、x86 和其他架构上。支持多种输入设备,其中包括键盘、触屏和滚动球,用户接口可以很好的适应各种分辨率和方位。2.2 Android应用的构成和工作机制 对于一个Android应用程序来说,是由Activity、IntentReceiver、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件Andr

30、oidManifest.xml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。Android应用的构成和工作流程如图2-1:图2-1 Android的构成和工作流程图2-2 Android的构成和工作流程在Android SDK中,定义了让开发者使用与核心应用程序相同API的权限应用程序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能为其它应用程序所使用。但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、置换组件。目前所有的应用程序是由服务及系统来组成,包含有:(l)一套强大和可扩展的视图系统:用来建

31、构一个应用程序的基本组件,包了在开发系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的Web浏览器。 (2)内容提供者:使应用程序可以访问另一个应用程序的数据(如联系人数库),或者共享它们自己的数据。(3)资源管理器:提供各种非程序代码的资源让应用程序去使用。例如:本字符串、图形文件或排版相关的布局文件。(4)通知管理器:提供应用程序在状态栏中显示应用程序自定义的提示信息。(5)活动管理器:管理所有应用程序的生命周期及提供常用的导航回退功能。例如:启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。(6)视窗管理器:用来管理所有启动程序的视窗。(7)位置管理器:

32、用来管理地图服务的相关功能。(8)电话管理器:用来管理用户拨打与接听电话的相关功能。 (9)包管理器:管理所有安装在Android系统内的包。 在Android中包含一些C/C+的类库,这些类库能被Android系统中不同的组件来使用。开发者可以通过应用程序框架使用这些功能。部分核心类库列表如下:(1)surface Manager:主要的功能是让开发者可以去存取/显示系统及管理的功能,在显示与存取操作间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整合。例如:在2D、2D显示上的合成、叠合动作。(2)3Dlibraries:主要是依openGLES1.0规范所定义的3D绘图引擎。该库

33、使用硬件加速(当硬件可用时),可以将硬件的3D功能做最佳化的处理显示。(3)SGL:主要是处理有关显示2D方面的绘图引擎。(4)Media Frame work:主要是以packetVideo公司的OpenCORE为基础所发展的多媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。例如:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式(5)Free Type:主要是用来显示点阵图和处理向量字形的。(6)SSL:(secureSocketsuyer),中文名为“安全套接层协议层”,它是网景公司提出的基于WEB应用的安全协议,当前版本为3.0。SSL协议指定了一

34、种在应用程序协议(如HTTP、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP胆协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Proto col):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Hand shake proto col):它建立在SSL记录协议之上,

35、用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议提供的服务主要有:认证用户和服务器,确保数据发送到正确的客户机和服务器;加密数据以防止数据中途被窃取;维护数据的完整性,确保数据在传输过程中不被改变。(7)SQLite:SQLite是一套开放性的关联式资料库,能够被所有应用程序使用的轻量级的关系数据库引擎。(8)web Kit:是一个先进的网页浏览器引擎,被用来构建Android浏览器和内嵌的web视图,也可以让开发者利用这个引擎来做不同的应用。(9)lib c:就是一个BSD标准C类库。但是,针对Linux嵌入式装置进行过最佳化的调整。 虽然Andro

36、id是用Java语言来开发、撰写应用程序,但却不使用Java运行时组件来执行Java程序,而是使用了由Google自行研发的Android运行时组件来执行程序。Android运行时组件包括两个重要的部分,一个是核心类库,另一个是Dalvik虚拟机。2.3 开发环境的搭建2.3.1 安装并配置JDK 6首先需要的是JDK。Android SDK需要JDK 5或更高的版本,我们使用JDK 6来开发。以windows为例,从Sun网站( )下载JDK 6并安装。接下来,设置JAVA_HOME环境变量以指向JDK安装文件夹。右键单击“计算机”选择“属性”,选择“高级系统设置”,然后单击“环境变量”。单

37、击“新建”添加JAVA_HOME变量,如果该变量已存在,单击“编辑”修改它。JAVA_HOME的值类似于“C:Program FilesJavajdk1.6.0_16”。2.3.2 安装Eclipse 安装JDK之后,可以从 http:/www.eclipse.org/downloads/ 下载Eclipse IDE for Java Developers。将下载的.zip的文件解压到任何位置。首次启动Eclipse时,它将要求为工作区间提供一个位置。为了简化操作,可以选择一个简单的位置,比如D:workspaces。2.3.3 安装并配置Android SDKAndroid SDK是开发an

38、droid应用程序的基本要求,没有Android SDK,android应用开发无从谈起。Android SDK中包含一个模拟器,所以无需带有Android操作系统的移动设备就能开发Android应用程序。Android SDK可以从 下载。Android SDK同eclipse一样以.zip文件的形式发布,所以将其解压到合适的位置。Android SDK包含一个tools目录,需要将它添加到PATH中。2.3.4 安装ADTADT这个Eclipse插件对开发Android应用程序有很大的帮助。它提供了一些工具来创建、测试、和调试Android应用程序。ADT需要使用Eclipse中的Inst

39、all New Software工具来执行安装。(1)选择Help菜单项并选择Install New Software选项。这个选项在以前的Eclipse版本中为“Software Updates”。(2)选择“Work with”字段,输https:/dl- 。Eclipse将连接该网站并生成列表,如图2-3所示。然后选择父节点Developer Tools,并确认同事选中所有子节点,然后单击Next。(3)更具提示安装所有的工具,并安装ADT所需工具的许可协议。单击“I accept”,然后单击Finish按钮。图2-3 使用Eclipse中的Install New Software功能安

40、装ADT在Eclipse中安装ADT的最后一步是将他指向Android SDK。选择windows菜单并选择Preferences。在Preferences对话框中,选择Android节点并将SDK Location字段设置为Android SDK的路径(参见图3-2)然后单击Apply按钮。2.4 安卓应用程序的结构解析 通常由以下四个组件来构建一个完整的Android应用程序。 活动 意图接收器 服务 内容提供者2.4.1 Activities 然而,并不是所有的Android应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建Android应用程序

41、时,需要将它们注册在AndroidManifest.xml文件中,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个Android应用程序所必需的。Activities 是一个程序的组件之一。它的主要功能是提供界面。一个程序一般由多个Activity组成,各activities之间关系很松散,它们之间没有直接的关联。必须有一个activity被指定为主activity,它是程序启动时首先显示的界面。每个activity都可以随意启动其它的activity。每当一个activity被启动,则前一个activity就被停止。一个程序中的所有启动的act

42、ivity都被放在一个栈中,所以被停止的activity并没有销毁,而在存于棧中。新启动的activity先被存放于栈中,然后获得输入焦点。在当前活动的activity上点返回键,它被从棧中取出,然后销毁,然后上一个activity被恢复。当一个activity因为新的activity启动而被停止时,它会收到状态变化的通知,这样的变化有多个,每个都会引起系统调用一个相应的回调方法以通知activity,这些回调方法被统称为“生命周期回调方法”。这些回调方法分别在Activity被创建、停止、恢复、销毁时被调用。如图2-4,介绍各个“生命周期回调方法”,以及其各个方法之间的关系:onCreate

43、 :当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。onCreate 方法有一个参数,该参数可以为空( null ),也可以是之前调用 onSaveInstanceState ()方法保存的状态信息。onStart :该方法的触发表示所属活动将被展现给用户。onResume :当一个活动和用户发生交互的时候,触发该方法。onPause :当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等。onStop :当一个活动不再需要展示给用户的时候,触发该方法。如果内存紧张,系统会直接结束这个活

44、动,而不会触发 onStop 方法。 所以保存状态信息是应该在onPause时做,而不是onStop时做。活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。在一些情况下,onPause方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息。onRestart :当处于停止状态的活动需要再次展现给用户的时候,触发该方法。onDestroy :当活动销毁的时候,触发该方法。和onStop 方法一样,如果内存紧张,系统会直接结束这个活动而不会触发该方法。图2-

45、4 Android生命周期2.4.2 Service Service是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service的启动有两种方式:context.startService() 和 context.bindService()。 使用context.startService() 启动Service经历: context.startService() -onCreate()- onStart()-Service running context.stopService() | -onDestroy()

46、-Service stop 如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。 stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。所以调用startService的生命周期为:onCreate - onStart(可多次调用) - onDestroy

47、使用使用context.bindService()启动Service会经历:context.bindService()-onCreate()-onBind()-Service runningonUnbind() - onDestroy() -Service stoponBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind-onDestroy相应退出。所以调用bindServic

48、e的生命周期为:onCreate - onBind(只一次,不可多次绑定) - onUnbind - onDestory。在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次。service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等。2.4.3 Content ProviderContent Provi

49、der 属于Android应用程序的组件之一,作为应用程序之间唯一的共享数据的途径,Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的借口。 Android 系统为一些常见的数据类型(如音乐、视频、图像、手机通信录联系人信息等)内置了一系列的 Content Provider, 这些都位于android.provider包下。持有特定的许可,可以在自己开发的应用程序中访问这些Content Provider。让自己的数据和其他应用程序共享有两种方式:创建自己的Content Provier(即继承自ContentProvider的子类) 或者是将自己

50、的数据添加到已有的Content Provider中去,后者需要保证现有的Content Provider和自己的数据类型相同且具有该 Content Provider的写入权限。对于Content Provider,最重要的就是数据模型(data model) 和 URI。3 需求分析和可行性研究需求分析简单地说就是分析一般用户的要求,按照用户需求大致的把目标系统架构出来。需求分析首先要做的是详细调查实际要处理的对象,对当前目标的现状要做到充分了解,然后确定用户真正所需要的也切合实际情况的系统,最终才能根据实际情况确定系统所具有的全部功能。本次设计的图片阅读器即是如此。3.1 问题的定义问题

51、定义:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准.这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标。在开发软件之前,经过查阅有关文献和著作,一段时间的分析和学习之后,基本了解了Android 平台的一些具体应用以及如何在 Android 平台上开发应用程序,还有图像显示高分辨率的具体原理,也学习了图像处理相关的一些知识,认识到

52、完成本软件和实现基本的功能,需要做到掌握 Android 平台框架,熟悉 JAVA 开发语言,熟悉相关的一些基础理论。3.2 需求分析3.2.1 需求分析的过程 需求分析阶段的工作,可以分为三个方面:分析与综合,制订规格说明,评审。 分析与综合:逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。 制订规格说明书:即编制文档,描述需求的文档称为软件需求规格说明书。注意需求分析阶段的成果是需求规格说明书,向下一阶段提交。 评审:对功能的正确性,完整性

53、和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。3.2.2 需求分析的方法需求分析的方法有很多。这里只强调原型化方法,其它的方法如:结构化方法,动态分析法等在此不讨论。原型化方法是十分重要的。原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能。原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷。建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等。如,为了考察是否满足用户的要求,可以用某些软件工具

54、快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型.以后的目标系统就在原型系统的基础上开发。原型主要有三种类型(软考考过):探索型,实验型,进化型.探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠。进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。使用原型化方法有两种不同的策略:废弃策略,追加策略。废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整,

55、准确,一致,可靠的最终系统。系统构造完成后,原来的模型系统就被废弃不用.探索型和实验型属于这种策略。 追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。进化型属于这种策略。3.2.3 本软件研究方法 软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程是一门指导计算机软件开发和维护的工程

56、学科。 软件工程的模型是软件开发全部过程、活动和任务的结构框架。 瀑布模型内容及特点:瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的软干阶段工作,是一种线性模型。各阶段活动为,提出系统需求、提出软件需求、需求分析、设计、编码、测试和运行。每个开发阶段具有以下特征,从上一阶段接受本阶段工作的对象作为输入,对上述输入实施本阶段的活动,给出本阶段的工作成果作为输出传入下一阶段,对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段甚至更前阶段。瀑布模型最为突出的缺点是该模型缺乏灵活性。演化模型内容及特点:演化模型主要针对事先不能完整定义需求的软件开发,其开发过程一般是

57、首先开发核心系统,当核心系统投入运行后,软件开发人员根据用户的反馈,实施开发的迭代过程,每一迭代过程均由需求、设计、编码、测试、集成等阶段组成,直到软件开发结束。演化模型在一定程度上减少了软件开发活动的盲目性。螺旋模型内容及特点:它是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。沿螺旋模型顺时针方向,依次表达了四个方面的活动,制定计划、风险分析、实施工程、客户评估。喷泉模型内容及特点:它体现了软件创建所固有的迭代和无间隙特征,喷泉模型主要用于支持面向对象开发过程。增量模型内容及特点:在设计了软件系统整体体系结构之后,首先完整的开发系统的一个初始子集,继之,根据

58、这一子集,建造一个更加精细的版本,如此不断的进行系统的增量开发。 瀑布模型、演化模型、螺旋模型之间的联系:相同点是这三个模型都分为多个阶段,而瀑布模型一次完成软件,演化模型分为多次完成,每次迭代完成软件的一个部分,螺旋模型也分为多次完成,每次完成软件的一个新原型,并考虑风险分析。 本软件主要实现的功能是显示本地和SD卡上的图片和对图片进行一些简单的处理,第一,需要实现扫描相关存储介质上的图片数据;第二,对于扫描出的图片能够显其存储的目录;第三,在查看相关目录中的图片时显示低分辨率图片的缩略图,使用户能够对整个存储目录中的所有图片有一个大致的了解和进行简单的浏览;第四,当用户点击预览图片中的想要

59、查看的单张图片时,能够将图片按照原分辨率显示出来;第五,如果用户想要同一存储目录下多张图片自动切换显示来浏览图片,那就需要使图片按幻灯片一样播放;第六,如果从存储介质中扫描出来的图片是颠倒或横置,就需要进行旋转来调节,以便使用户能够正常观看图片;第七,对扫描出的图片过于大以致不能在现有的屏幕上完全显示出来或过于小用户想查看图片细节时,就要通过对图片的缩放操作来处理;第八,对于一张图片,用户想深入了解,最简单的就是了解其大小和所在位置,所以要实现图片详细信息的查看;第九,对于不喜欢的图片,用户要对其删除,对图片的删除操作需要实现。 首先进行总体的分析和设计,再将基本信息模块的具体内容设计完成,然

60、后完成其它各个子模块的功能。不同阶段中注意对系统进行备份。通过DDMS调试来发现问题,并要重视作好笔记。本项目采用SQLite进行数据库设计,开发工具采用eclipse+Android SDK2.2开发环境。3.3 可行性分析可行性分析的目的,就是通过具体某个项目的主要内容和与之相对应的相关条件,来从各方面对其进行调查研究,以确定问题是否能够得到解决;也即是用最小的代价在尽可能的时间内确定问题是否能够解决,以避免盲目投资带来的巨大浪费。可行性分析需要对不同的可能解决方法进行分析,并对所得到的结果进行预测,看取得的效益和影响是否达到预期的目标。可行性分析必须要做到公正、可靠和科学。下面从经济、技

61、术、操作、法律四个方面来对本系统进行可行性分析。3.3.1 经济可行性基于 Android 平台的图片阅读器的开发,在经过查阅有关资料,一段时间的调查和仔细研究潜在的市场和成本-效益分析,综合各种条件之后,最后得到本系统在经济上是可行的。下面从投入和效益两方面来对其进行分析。首先在投入方面,开发者仅需一台配置一般的计算机,内存要求也不用太高,再加上 JDK,配置了 AndroidADT 的 Eclipse、Android SDK 和Android 模拟器后就可以进行开发,开发完成后自己就可以进行模拟实验,而且很容易找到装有Android 系统的手机。3.3.2 技术可行性根据以前软件开发总结的

62、经验和通过对本系统具有的功能结构详细的分析,采用日渐趋于成熟的 Android 开发技术,按照软件开发相关的具体流程就可以设计和开发本系统程序。前面调研获取的准确和完全的信息是开发功能完善应用程序的前提;而使用当下最为流行的设计方法,有助于以后对软件进行有序完善的开发和易于扩展,并能够大大简化设计流程,减少无谓的工作量,减少应用程序可能出现的漏洞和缺陷。同时 JAVA 已经是很成熟的跨平台软件开发语言,在J2EE 上开发应用程序也日渐成熟,而 Android 则是这几年关注度一直很高的系统平台,开放性非常强,在此平台上的开发能够使开发者了解最前沿的技术理念和新的框架结构设计。所以在技术上本系统是可行的。3.3.3 操作可行性基于 Android 平台的图片阅读器客户端软件具备友好的用户界面,使用方便,操作简单,易于被用户接受,有很好的用户体验。因此从使用操作方面看,此系统的开发是可行的。3.3.4 法律可行性本系统属于私人设计,在开发过程中没有涉及合同、责任等与法律相抵触的方面。因此,本系统在法律上是可行的。综

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!