基于Android平台的电子相册设计与实现格式修改后设计.doc

上传人:精*** 文档编号:835772 上传时间:2023-09-07 格式:DOC 页数:76 大小:1.01MB
下载 相关 举报
基于Android平台的电子相册设计与实现格式修改后设计.doc_第1页
第1页 / 共76页
基于Android平台的电子相册设计与实现格式修改后设计.doc_第2页
第2页 / 共76页
基于Android平台的电子相册设计与实现格式修改后设计.doc_第3页
第3页 / 共76页
基于Android平台的电子相册设计与实现格式修改后设计.doc_第4页
第4页 / 共76页
基于Android平台的电子相册设计与实现格式修改后设计.doc_第5页
第5页 / 共76页
点击查看更多>>
资源描述

1、中文摘要随着智能手机走进普通人的生活,它将成为人们获取信息的主要设备。因此,手机的应用服务将会有很大的发展空间,手机电子相册服务就是其中的一项。Android平台支持各种应用的开发,它是目前最流行的开源智能手机操作系统,最新的版本是android3.0,提供了便捷灵活的开发接口。本课题在Android SDK2.2平台下,设计了一个手机电子相册。采用了Android平台的Framework层提供的接口,实现了图片预览、图片动态切换、停止播放等功能,支持jpg,bmp,png和gif图片格式,该程序是独立的apk文件,可以安装在android2.2以上的系统内。它可以让手机成为一个电子相册,用户

2、可以将其放在心仪的地方,来展示美好的图片,而不必再去购买别的设备就能拥有精美的电子相册了。 本程序具有很好的可移植性和可继承性,开发者可以在其基础之上,建立更多的功能,来设计更加专业级的电子相册。关键词:Android, framework,电子相册, 预览AbstractSmart cell phone has flooded our life, and it will become main equipment for acquiring information. And cell phones E-album service will have a great future, as on

3、e of application service of cell phone. Android platform supports all application research. It is the most popular open-source smart cell phone operating system. The newest version is Android 3.0, and it offers convenient and fast connector. On Android SDK 2.2 platform, this subject designs a cell p

4、hone E-album. Framework realizes picture preview, picture exchange, stop functions and so on, and supports jpg, bmp, png and gif. This project is a saperate apk file, and may set up in system above Android 2.2. It will make cell phone as E-album,guests may put it at any places he or she likes to sho

5、w wonderful pictures, no need to purchase other equipment.This process has great portable and inheritable, researcher may build more functions based on it to design more professional E-album.Key words: Android, Framework, E-album, preview目录中文摘要IAbstractII目录III第一章 绪论11.1 目前现状11.2 本设计的背景和研究意义31.3 本设计的

6、目标31.4 论文结构3第二章电子相册研究42.1 电子相册简介42.2 电子相册的结构42.3 电子相册的性能42.4 电子相册的特点5第三章 Andriod平台介绍63.1 Android系统介绍63.2 Windows里的Android开发环境搭建15第四章 Android平台的电子相册的设计与实现174.1 Fade In/Fade Out特效与运行线程174.2 主要功能模块的设计与开发174.3 用手指移动相册里的照片184.4 主界面的图片切换204.5 本章总结22第五章 总结与展望235.1 总结235.2 展望23参考文献2367第一章 绪论Android平台对我们来说已经

7、不陌生了,从08年Google推出Android系统,已经经历了2年多的发展,目前最新的版本是Android3.0。作为全球最大的搜索引擎提供者,Google提供的服务实际上远不止搜索,还包括Gmail、Google Map、Google Earth、Google Talk、YouTube、iGoogle、Google Docs、Picasa、Google Web API、Blogger、Google Notebook、桌面搜索、Google Answers、Google音乐搜索、Google Street View等数量众多的服务。基于免费、开放的互联网精神,这些服务本身是不收费的。但是,通

8、过这些有创意的服务,Google吸引了大量互联网用户,并成功地藉由广告服务,获取了巨额利润。 Google主持开发Android平台,其目的是推动全世界30亿手机用户,更方便、成本更低地访问互联网。Google公司宣称的目标是“组织世界上所有信息,让所有人方便地访问”。Google认为,手机价格越来越低,而其中手机平台的价格变化不大,在手机成本中所占比例越来越大。基于此,Google希望提供一个免费、开放、功能强大的手机操作系统,使用户承担的手机价格更低,同时更方便、更频繁地访问互联网。当然,Google本身也将因此而受益。 电子相册是指可以在电脑上或者是在移动终端上观赏的区别于CDVCD的静

9、止图片的特殊文档,其内容不局限于摄影照片,也可以包括各种艺术创作图片。电子相册具有传统相册无法比拟的优越性:图、文、声、像并茂的表现手法,随意修改编辑的功能,快速的检索方式,永不褪色的恒久保存特性,以及廉价复制分发的优越手段。 本文就是在Android平台上,基于SDK2.2开发的一款电子相册软件,包括图片预览、图片播放、动态切换、停止播放等功能。当然,由于时间的关系,本文仅实现了电子相册的基础功能,后续还有很多工作可以完善和深入。1.1 目前现状国内外百花齐放电子相册制作软件顾名思义,则是用户制作电子相册的软件。目前国内外 电子相册繁多,如图1.1所示, 图1.1电子相册封面不同的软件,制作

10、出的电子相册都会有不同。随着数码相机在家庭中越来越普及,人们在可以更方便的拍摄照片却又不需要把拍摄的照片都冲印的时候,更多就选择了打包保存在电脑或光盘中,电子相册制作软件就在这一过程中充当了非常重要的作用。通过电子相册制作软件,我们的照片可以更加动态、更加多姿多彩的展现,通过电子相册制作软件的打包,相片可以更方便的以一个整体分发给亲朋好友,刻录在光盘上保存,或在影碟机上播放。 COOZINE (XBOOKSKY)COOZINE 基于 Flash 技术,是实现在线和离线电子相册、电子图书的核心,它应用在需要从 PDF 文件或 JPEG 文件源制作的电子杂志的情况,它同时提供一些协助处理工具软件,

11、方便批量的处理,而且帮助文档较详细,还提供了演示下载包,可以稍作修改即可。COOZINE 与目前的几类电子杂志软件不同,它把阅读以及低成本批量制作作为首要追求目标。 每一本 COOZINE 电子杂志(电子图书)由 COOZINE、JPEG 图片和 XML 文件 3 部分组成。 Portable Scribus 1.3.5.0Portable Scribus是一款类似Adobe Pagemaker的开源电子相册制作软件,可以用来制作个人文件、邮件列表、电子杂志类型的电子文档。它体积很小,可以放在U盘里,只需插入相应的电脑就可以使用。 Windows Movie MakerWindows Movi

12、e Maker是普通电脑最常见的可制作电子相册的软件 软件介绍:是Windows系统会自带的视频制作软件,在软件中添加图片后,将图片拖拉到时间线上,即可将添加的图片生成wmv视频。由于作为Windows系统自带软件,这款软件具有广泛的传播性,只需将相片简单制作为视频可以直接使用它。但由于软件功能繁多,在制作电子相册上效果单一,没有转场特效,也没有其他注释功能,适用于对相册效果没有太多要求的制作者选择。 Premiere软件特点:premiere是一款专业级具有高级的编辑功能的电子相册制作软件,对于专业用户,它可以通过不断增加插件,和用户的专业水平进行复杂的编辑,制作出专业的绚丽相册,但由于面向

13、专业用户,软件的操作十分复杂,上手时间很长,非专业用户使用有非常大的难度。1.2 本设计的背景和研究意义制作电子相册首先要获得数字化的图片,即图片文件。用数字相机拍摄,可以直接得到电子图片文件。也可以使用普通相机拍摄,通过扫描仪得到图片文件。如果是游戏画面或VCDDVD画面,可采用屏幕拷贝或功能更强的截屏软件获得图片。 其次要对图片进行加工处理,专业人士可以使用专业级的软件Photoshop,想要操作简单快速,高画质也可以使用国内图像处理软件,实现更加精美的相册制作。 最后使用电子相册制作软件将处理后的图片制作成电子相册,就可以进行观看了。1.3 本设计的目标本文的目标是在Android SD

14、K2.2平台下,设计了一个手机电子相册。采用了Android平台的Framework层提供的接口,实现了图片预览、图片动态切换、停止播放等功能,支持jpg,bmp,png和gif图片格式。可以让手机成为一个电子相册,让用户不必再去购买别的设备就能拥有心仪的电子相册了。1.4 论文结构第一章主要介绍课题的背景和现状第二章介绍手机电子相册服务的设计实现原理第三章详细介绍了基于Android平台的手机电子相册软件的设计与开发第四章对整个论文进行了总结,并进行了展望,对软件的不足进行了分析,并说明了改进意见。第二章 电子相册研究2.1 电子相册简介电子相册分为两种,一种是软件类型的电子相册,一种是硬件

15、类型的电子相册,上文所讲的windows media player等制作的电子相册,都属于软件类型,除此之外,还有一种电子相册为硬件类型,指能够不借助电脑可以在LCD面板上显示数码照片的电子产品的展示效果,还能够将照片显示到电视机上。还可接U盘、SD卡、MMC卡,除播放图片外,还可播放MP3、内置左右双喇叭、边播放图片边听MP3、看手机AVI格式电影、DAT格式或MPEG格式或MPG格式电影(VCD文件)、VOB格式电影(DVD文件)(其它不支持的格式可以软件转换)、输出音频视频到电视机或音响,制作这种电子相册的产品称为电子相框,电子工程杂志将电子相框分为3类,简易电子相框、“多媒体”电子相框

16、高级、“多媒体”电子相框。 简易数码相框只能显示JPEG格式的图片,而多媒体数码相框则可以播放音乐和视频。 某些高级“多媒体”数码相框可以通过因特网从RSS、照片共享网站甚至电子邮件下载图片。这些型号通常也支持无线传输(IEEE802.11)。大部分数码相框可以像幻灯一样按可调整的时间间隔显示图片。一些相框还可以播放MP3音乐或者用相机拍摄的视频片断,比如MPEG文件。 2.2 电子相册的结构一个电子相册往往由三部分组成:LCD液晶面板,PCB,外部相框按钮等构件 LCD面板有一个模拟或者是数字的接口,当然其面板尺寸大小可能不同。 其中PCB因为容纳了设备驱动和运行固件,因而可以称得上是电子相

17、框的核心了。 2.3 电子相册的性能一些数码相框只能够显示JPEG这种通用格式的图片,也就是说有些高端产品也是可以显示比如png这类型的图片格式的。 大多数数码相框是以幻灯片的形式显示照片的,通常你可以通过调节切换时间间隔来达到满意的效果。当然有些还可以发送照片到打印机,甚至支持其他多媒体内容,比如记录在数码相机的电影录像模式的电影剪辑, MPEG视频文件还有MP3音频。 某些相框还也可以通过互联网上的RSS,图片共享网站如Flickr, Picasa还有电子邮件这些媒介来加载图片。而具备这种网络功能的相框通常是支持无线( 802.11 )连接的。还有些其他的滇西电子相框可以显示txt文件的。

18、 数码相框显示的图片文件通常是从相机存储卡读取的,尽管某些相框还提供内部存储。某些框架电子相框具备使用USB接口从电脑直接传输文件到电子相框的功能。然而,由于价格过高,一般很少有数码相框内置有记忆体的。其中一些人还包括一个或者是可充电电池的。 大多数7英寸(十七点五厘米)相框显示图像时候由于将图片进行了拉伸实现宽高比16:9的显示 ,因而存在非常明显的失真。所以,一般为了达到良好的显示效果图片文件最好也选择合适的尺寸。 2.4 电子相册的特点硬件类型的电子相册相比于软件类型的电子相册,具有实时性,软件类型的电子相册一经软件生成,则不需要再次生成,可直接打开和传播,而硬件类型的电子相册则实时生成

19、,由于专为电子相册展示而制作,硬件类型的电子相册具有更大分辨率,无需再连接电脑即可显示,更可连接到电视机等硬件上播放。硬件类型的电子相册的劣势在于,不能将电子相册生成,通过U盘等介质存储共享,在传播上具有一定的局限性,也不能生成用于刻录的视频形式。第三章 Andriod平台介绍3.1 Android系统介绍3.1.1 Android平台总体架构下图显示的是Android操作系统的主要组件。每一部分将会在下面具体描述。图3.1 Android系统架构图应用程序(Applications)Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图

20、,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块,并且任何其它的应用程序都可以使用其所发布的功能块(不过要遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括; 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。 内容

21、提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(layout files)。 通知管理器 (Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息。 活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。 窗口管理器(Window Manager) 用于管理窗口的生命周期及窗口布局。程序包管理器(Package Manager) 用于管理所

22、有在Android上安装的程序包。电话管理(Telephony Manager) 用于管理使用者拨打和接听电话的相关功能。程序库Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库(libc), 它是专门为基于 embedded linux 的设备定制的。 该库遵循BSD协议,继承了GNU/Linux里glibc的大部分接口,但不完全兼容,比glibc更小,运行更快。媒体库 - 基于 PacketVideo OpenCORE;该库

23、支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。 Surface Manager - 对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。 LibWebCore - 一个最新的web浏览器引擎,支持Android浏览器和一个可嵌入的web视图。 SGL - 底层的2D图形引擎,这是应用程序使用最多的渲染方式。3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。 FreeType -位

24、图(bitmap)和矢量(vector)字体显示。 SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。 Audio Flinger 管理声音的输出设备(喇叭,有线耳机,蓝牙耳机等),可以混合多路音频流的输出。Surface Flinger 管理图形、图像的显示,能够把来自不同应用的多个2D/3D图形组合,叠加;使用双缓冲机制。Android 运行库 Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。包括数据结构、工具、文件访问、网络访问、图形处理等。 每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟

25、机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了 优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 dx 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。Linux 内核 Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。3.1.2 Android应用程序的构成

26、Android平台的应用程序主要是由以下四个组件构成的:1活动 Activity2.意图 Intent 3.服务 Service4.内容提供器 Content Provider需要注意的是,并不是每个Android应用程序都必须构建这4个组件,有些可能由这4个组件的组合而成。一旦你确定了你的应用程序中需要的组件,那么你就应该在AndroidManifest.xml中列出他们。这是一个XML配置文件,它用于定义应用程序中需要的组件、组件的功能及必要条件等。四种组件说明如下:活动ActivityActivity是Android构造块中最基本的一种,在应用中,一个Activity通常就是一个单独的屏

27、幕。每一个Activity都被实现为一个独立的类,并且继承于Activity这个基类。这个Activity类将会显示由几个Views控件组成的用户接口,并对事件做出响应。大部份的应用都会包含多个的屏幕。例如,一个短消息应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。每一个这样的屏幕,就是一个Activity。从一个屏幕导航到另一个屏幕是很简单的。在一些应用中,一个屏幕甚至会返回值给前一个屏幕。当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删

28、除。默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。意图IntentAndroid使用了Intent这个特殊类,实现在屏幕与屏幕之间移动。 Intent类用于描述一个应用将会做什么事。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:MAIN(activity的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI的形式进行表示。例如:要查看一个人的联系方式,需要创建一个动作类型为VIEW的intent,以及一个表示这个人的URI。与之有关系的一个类叫IntentFilter。相对于intent是一个有效的做某事的请求,一个i

29、ntent filter则用于描述一个activity(或者Intent Receiver)能够操作哪些intent。一个activity如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个 IntentFilter要知道怎么去处理VIEW动作和表示一个人的URI。IntentFilter需要在AndroidManifest.xml中定义。通过解析各种Intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity将会调用 startActivity(Intent myIntent)方法。然后,系统会在所有安装的应用程序中定义的IntentFilter中查

30、找,找到最匹配myIntent的Intent对应的 activity。新的activity接收到myIntent的通知后,开始运行。当startActivity方法被调用将触发解析myIntent 的动作,这个机制提供了两个关键好处:A、Activities能够重复利用从其它组件中以Intent的形式产生的一个请求;B、Activities可以在任何时候被一个具有相同IntentFilter的新的Activity取代。服务Service一个服务是具有一段较长生命周期且没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个活动,让

31、使用者可以选择歌曲并播放歌曲。 然而,音乐重放这个功能并没有对应的活动,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个活动会使用Context.startService() 来启动一个服务,从而可以在后台保持音乐的播放。同时,系统也将保持这个服务一直执行,直到这个service运行结束。(可以通过阅读Life Cycle of an Android Application 获取更多关于服务的介绍)。另外,还可以通过使用Context.bindService() 方法,连接到一个服务上(如果这个服务还没有运行将启动它)。当连接到一个服务之后,还可以通过服务

32、提供的接口与它进行通讯。拿媒体播放器这个例子来说,还可以进行暂停、重播等操作。内容提供器Content Provider应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。当开发者想将其的应用数据与其它的应用共享时,内容提供其将会很有用。一个内容提供器类实现了一组标准的方法,从而能够让其它的应用保存或读取此内容提供器处理的各种数据类型。3.1.3 Android平台独特技术特征Dalvik虚拟机Dalvik是Android平台的虚拟机,它运行经过内存和运行效率优化的.dex格式文件。该虚拟机是基于寄存器的,它可以执行由Java编译器编译的类,只需将该编译结果用dx

33、工具转换为本地格式的.dex文件。该虚拟机运行在Posix兼容的操作系统(如Linux系统)之上, 虚拟机会依赖底层操作系统的某些功能(如线程管理和内存管理)。Dalvik核心类库为之前使用标准Java语言的开发者提供了类似的开发体验,它更提供了对小型移动设备的支持。Dalvik主要完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能。Dalvik虚拟机的主要特征由于Android的编程语言是Java语言,所以许多人认为Dalvik虚拟机是一个Java虚拟机(JVM),Dalvik虚拟机并不是按照Java虚拟机的规范来实现的,两者并不兼容。1 专有的DEX文件格式

34、Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的则是其专有的文件格式DEX(Dalvik Executable)。在Java SE程序中的Java类会被编译成一个或者多个字节码文件(.class)然后打包到JAR文件,而后Java虚拟机会从相应的CLASS文件和JAR文件中获取相应的字节码;Android应用虽然也是使用Java语言进行编程,但是在编译成CLASS文件后,还会通过一个工具(dx)将应用所有的CLASS文件转换成一个DEX文件,而后Dalvik虚拟机会从其中读取指令和数据。 图3.2 CLASS文件和DEX文件的转换DEX文件较之于CLASS文件的优势在于:l 一

35、个应用中会定义很多类,编译完成后即会有很多相应的CLASS文件,CLASS文件间会有不少冗余的信息;而DEX文件格式会把所有的CLASS文件内容整合到一个文件中。这样,除了减少整体的文件尺寸,I/O操作,也提高了类的查找速度。原来每个类文件中的常量池,在DEX文件中由一个常量池来管理l 增加了新的操作码的支持l 文件结构尽量简洁,使用等长的指令,借以提高解析速度l 尽量扩大只读结构的大小,借以提高跨进程的数据共享2DEX的优化 DEX文件的结构是紧凑的,如果要求运行时的性能有进一步提高,就仍然需要对DEX文件进行进一步优化。优化主要是针对以下几个方面:l 调整所有字段的字节序(LITTLE_E

36、NDIAN)和对齐结构中的每一个域 l 验证DEX文件中的所有类 l 对一些特定的类进行优化,对方法里的操作码进行优化 优化后的文件大小会有所增加,应该是原DEX文件的1-4倍。优化发生的时机有两个:对于预置应用,可以在系统编译后,生成优化文件,以ODEX结尾。这样在发布时除APK文件(不包含DEX)以外,还有一个相应的ODEX文件;对于非预置应用,包含在APK文件里的DEX文件会在运行时被优化,优化后的文件将被保存在缓存中。3基于寄存器Dalvik和标准Java虚拟机(JVM)之间的首要差别之一,就是Dalvik基于寄存器,而JVM基于栈。选择基于寄存器的方式是因为它对提前优化(ahead-

37、of-time optimization)提供了更好的支持,而这对类似于移动电话这样的受限环境是颇有裨益的。另一份针对基于寄存器虚拟机和基于栈虚拟机更深入的比较分析指出,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。相对于基于堆栈的虚拟机实现,基于寄存器的虚拟机实现虽然在硬件通用性上要差一些,但是它在代码的执行效率上却更胜一筹。一般来讲,虚拟机中指令的解释执行时间主要花在以下三个方面:l 分发指令 l 访问运算数 l 执行运算 其中“分发指令”这个环节对性能的影响最大。在基于寄存器的虚拟机里,可以更为有效的减少冗余指令的分发和减少内存的读写访问,如:表达式:a = b

38、 + c基于栈的指令:ILOAD c, ILOAD b, IADD, ISTORE a基于寄存器的指令:IADD a, b, c4应用虚拟机实例进程Dalvik和Java之间的另外一大区别就是运行环境Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,每一个Android应用都运行在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统而实现的。所有Android应用的线程都对应一个Linux线程,虚拟机可以更多的依赖操作系统的线程调度和管理机制。不同的应用在不同的进程空间里运行,加之对不同来源

39、的应用都使用不同的Linux用户来运行,可以最大程度的保护应用的安全和独立运行。给每一个应用赋予独立的进程可以允许动态安装、激活和去激活,独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。有一个特殊的虚拟机进程Zygote,他是虚拟机实例的孵化器。每当系统要求执行一个Android应用程序,Zygote就会FORK出一个子进程来执行该应用程序。它在系统启动的时候就会产生,它会完成虚拟机的初始化,库的加载,预置类库和初始化的操作。如果系统需要一个新的虚拟机实例,它会迅速复制自身,以最快的速度提供给系统。对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域,很大程度上节省了内存

40、开销。图3.3 虚拟机实例内存共享原理图5低内存需求Dalvik虚拟机队内存的高效使用和它在低速CPU上表现出的高性能,使之非常适合在移动终端上使用。根据Google的测算,64M的RAM已经能够令系统正常运转了。其中24M被用于底层系统的初始化和启动,另外20M被用于高层启动高层服务。当然,随着系统服务的增多和应用功能的扩展,其所消耗的内存也势必越来越大。Dalvik需要的内存空间比其他虚拟机更低,因为它有如下特性:1)本身占用的空间更小;2)Dalvik不使用及时编译器;3)常量池使用32位的索引以简化解释器;4)使用自有的字节码而非Java字节码。3.1.4 Android平台稳定性分析

41、对于Android平台,随着版本的不断升级,系统的稳定性也会逐渐加强。众所周知,在HTC推出他们的首款Android产品G1时虽然Android系统就已经拥有了不错的口碑但是其并没有在市场上引起轰动的效应,原因自然是G1当时所搭载的Android 1.1版本的系统无论在整体的稳定性方面还记基本功能方面都存在这样或者那样的缺陷有关。对于一款不稳定同时基本功能表现也不完美的系统厂家也不愿意去使用。然而Android 1.5的版本的发布却在一定程度上解决了上面的问题。系统稳定了不少,不再像之前那样频繁报错了。同时在系统的基本功能上也改进了不少,通话、短信以及多媒体娱乐功能的加强使得Android系统

42、符合了大多数厂商的要求,因此在被足足掉了半年胃口的厂商们自然此时会蜂拥而至,Android系统的突然爆发也就不足为奇了。Android平台相对稳定原因在于Android每个应用都是独立的进程,所以对于普通的应用,例如计算器、资源管理器等,如果出现异常不会导致其他应用出问题,但是如果是关键应用异常,如SystemServer、PhoneApp等,则会有比较大的影响,比如某些状态不准确,甚至所有应用不能正常启动等。这种特性应该是所有基于真正操作系统的手机都具备的。3.1.5 Android平台响应速度分析Android响应速度的提升主要指Java虚拟机的运行速度,相对与Sun的虚拟机,速度确实快很

43、多,因为它从代码解释执行方式到地层的C库都做了很多优化,而且多个虚拟机最大程度共享资源。但是从界面操作速度的直观感受,只是不比Windows Mobile慢,这还跟不同型号手机的处理能力,以及不同功能的实现的算法有关系。从实现角度看,Android对于Java的运行速度已有很大提升。3.2 Windows里的Android开发环境搭建3.2.1 必备软件1、jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe。2、eclipse-SDK-3.4.2-win32.zip。3、ADT-0.9.0.zip。4、android-sdk-windows-

44、1.5_r1.zip。版本不同可能会导致不兼容。出现各种错误。请上网查询。3.2.2 安装过程1、jdk 1.6安装(双击jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe)。选择安装路径为“E:androidjdk-6u10”,安装完成后设置环境变量:右击点我的电脑-属性-高级-环境变量,双击PATH,变量值中末尾加上“;E:androidjdk-6u10bin”。同时新建两个环境变量,JAVA_HOME,变量值为:“E:androidjdk-6u10”以及CLASSPATH,变量值为:“.”。2、解压eclipse-SDK-3.4.2-w

45、in32.zip到目录“E:androideclipse-3.4.2”。不用安装,绿色软件。3、打开eclipse.exe。随意设置工作目录。选择Help-Software Updates-Available Software-Add Site -Archive. 选择ADT。(ADT必须0.9以上,如:ADT-0.9.0.zip)在列表中勾选 jar:file:. ADT-0.9.0.zip开始安装,即点击Install.按钮。(这时会出现警告 大概意思是dl- 没有找到。不用理采,这个网站早就消失了,找不到正常。因为使用的是离线安装,所以不需要千万不要勾选,否则可能会浪费很多时间。)然后一

46、步步执行,一直到安装完毕。4、解压android-sdk-windows-1.5_r1.zip到目录“E:androidandroid-sdk-1.5”。5、选择window - Preferences 设置Android的SDK Location:为“E:androidandroid-sdk-1.5”。6、运行里输入cmd命令,进入dos环境,输入以下命令新建avd:android create avd -n sdk_1.5_avd -t 2出现的配置界面中依次键入配置选项即可。(注:如果想删除已经创建的avd,dos下输入以下命令:android delete avd n sdk_1.5_

47、avd)7、安装完毕。第四章 Android平台的电子相册的设计与实现4.1 Fade In/Fade Out特效与运行线程虽然手机可以通过系统设置(Setting),在闲置数秒或者数分钟后会自动进入省电模式,也即关闭背光,进而达到省电的效果。这个屏幕保护程序(Screen Saver)则是通过避免同一个静止图片或画面在LCD上久滞不懂,以达到保护屏幕的效果。本节所要实现的重点如下。1) 控制与判别User静止未触碰手机键盘或屏幕的时间及其事件2) 设计动态全屏幕淡入(Fade-In)、淡出(Fade-Out)图片的交替效果以上这两个重点都需要通过线程(Thread)来实现,以时间戳记的方式,判断距离上一次单击手机键盘、屏幕的时间,并计量两次的时间间隔,当超过了指定的描述(默认为5秒)则自动进入保护程序。4.2 主要功能模块的设计与开发其实,编写Android 电子相册并不复杂,只需要继承Act

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922