1、本科毕业论文题目:基于Android平台电子相册设计与实现姓名:班级:学号:日期道谢本论文工作是在我导师*悉心指引下完毕,*严谨治学态度和科学工作办法给了我极大协助和影响。在此衷心感谢二年来*对我关怀和指引。*悉心指引咱们完毕了论文项目有关科研工作,在学习上和生活上都予以了我很大关怀和协助,在此向*表达衷心谢意。*对于我科研工作和论文都提出了许多宝贵意见,在此表达衷心感谢。在工作及撰写论文期间,周飞宇同窗对我论文在写作规范和格式方面存在问题提出了诸多宝贵意见,在此向她表达我感激之情。中文摘要随着智能手机走进普通人生活,它将成为人们获取信息重要设备。因而,手机应用服务将会有很大发展空间,手机电子
2、相册服务就是其中一项。Android平台支持各种应用开发,它是当前最流行开源智能手机操作系统,最新版本是android3.0,提供了便捷灵活开发接口。本课题在Android SDK2.2平台下,设计了一种手机电子相册。采用了Android平台Framework层提供接口,实现了图片预览、图片动态切换、停止播放等功能,支持jpg,bmp,png和gif图片格式,该程序是独立apk文献,可以安装在android2.2以上系统内。它可以让手机成为一种电子相册,顾客可以将其放在心仪地方,来展示美好图片,而不必再去购买别设备就能拥有精美电子相册了。 本程序具备较好可移植性和可继承性,开发者可以在其基本之
3、上,建立更多功能,来设计更加专业级电子相册。核心词: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 one of application service of cell phone. Android platform supports all applicat
4、ion 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 phone E-album. Framework realizes picture preview,picture exchange,stop functions
5、 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 show wonderful pictures,no need to purchase other equipment.This process has great portab
6、le 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 本设计目的31.4 论文构造3第二章电子相册研究42.1 电子相册简介42.2 电子相册构造42.3 电子相册性能42.4 电子相册特点5第三章 Andriod平台简介63.1 Android系
7、统简介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参照文献23第一章 绪论Android平台对咱们来说已经不陌生了,从Google推出Android系统,已经经历了2年多发展,当前最新版本是Android3.0。作为全球最大搜索引擎提供者,Google提供服务事实上远不止搜索,还涉及Gmail、Google Map
8、、Google Earth、Google Talk、YouTube、iGoogle、Google Docs、Picasa、Google Web API、Blogger、Google Notebook、桌面搜索、Google Answers、Google音乐搜索、Google Street View等数量众多服务。基于免费、开放互联网精神,这些服务自身是不收费。但是,通过这些有创意服务,Google吸引了大量互联网顾客,并成功地藉由广告服务,获取了巨额利润。 Google主持开发Android平台,其目是推动全世界30亿手机顾客,更以便、成本更低地访问互联网。Google公司宣称目的是“组织世界
9、上所有信息,让所有人以便地访问”。Google以为,手机价格越来越低,而其中手机平台价格变化不大,在手机成本中所占比例越来越大。基于此,Google但愿提供一种免费、开放、功能强大手机操作系统,使顾客承担手机价格更低,同步更以便、更频繁地访问互联网。固然,Google自身也将因而而受益。 电子相册是指可以在电脑上或者是在移动终端上观赏区别于CDVCD静止图片特殊文档,其内容不局限于照相照片,也可以涉及各种艺术创作图片。电子相册具备老式相册无法比拟优越性:图、文、声、像并茂体现手法,随意修改编辑功能,迅速检索方式,永不褪色恒久保存特性,以及便宜复制分发优越手段。 本文就是在Android平台上,
10、基于SDK2.2开发一款电子相册软件,涉及图片预览、图片播放、动态切换、停止播放等功能。固然,由于时间关系,本文仅实现了电子相册基本功能,后续尚有诸多工作可以完善和进一步。1.1 当前现状国内外百花齐放电子相册制作软件顾名思义,则是顾客制作电子相册软件。当前国内外 电子相册繁多,如图1.1所示, 图1.1电子相册封面不同软件,制作出电子相册都会有不同。随着数码相机在家庭中越来越普及,人们在可以更以便拍摄照片却又不需要把拍摄照片都冲印时候,更多就选取了打包保存在电脑或光盘中,电子相册制作软件就在这一过程中充当了非常重要作用。通过电子相册制作软件,咱们照片可以更加动态、更加多姿多彩呈现,通过电子相
11、册制作软件打包,相片可以更以便以一种整体分发给亲朋朋友,刻录在光盘上保存,或在影碟机上播放。 COOZINE (XBOOKSKY)COOZINE 基于 Flash 技术,是实当前线和离线电子相册、电子图书核心,它应用在需要从 PDF 文献或 JPEG 文献源制作电子杂志状况,它同步提供某些协助解决工具软件,以便批量解决,并且协助文档较详细,还提供了演示下载包,可以稍作修改即可。COOZINE 与当前几类电子杂志软件不同,它把阅读以及低成本批量制作作为首要追求目的。 每一本 COOZINE 电子杂志(电子图书)由 COOZINE、JPEG 图片和 XML 文献 3 某些构成。 Portable
12、Scribus 1.3.5.0Portable Scribus是一款类似Adobe Pagemaker开源电子相册制作软件,可以用来制作个人文献、邮件列表、电子杂志类型电子文档。它体积很小,可以放在U盘里,只需插入相应电脑就可以使用。 Windows Movie MakerWindows Movie Maker是普通电脑最常用可制作电子相册软件 软件简介:是Windows系统会自带视频制作软件,在软件中添加图片后,将图片拖拉届时间线上,即可将添加图片生成wmv视频。由于作为Windows系统自带软件,这款软件具备广泛传播性,只需将相片简朴制作为视频可以直接使用它。但由于软件功能繁多,在制作电子
13、相册上效果单一,没有转场特效,也没有其她注释功能,合用于对相册效果没有太多规定制作者选取。 Premiere软件特点:premiere是一款专业级具备高档编辑功能电子相册制作软件,对于专业顾客,它可以通过不断增长插件,和顾客专业水平进行复杂编辑,制作出专业绚丽相册,但由于面向专业顾客,软件操作十分复杂,上手时间很长,非专业顾客使用有非常大难度。1.2 本设计背景和研究意义制作电子相册一方面要获得数字化图片,即图片文献。用数字相机拍摄,可以直接得到电子图片文献。也可以使用普通相机拍摄,通过扫描仪得到图片文献。如果是游戏画面或VCDDVD画面,可采用屏幕拷贝或功能更强截屏软件获得图片。 另一方面要
14、对图片进行加工解决,专业人士可以使用专业级软件Photoshop,想要操作简朴迅速,高画质也可以使用国内图像解决软件,实现更加精美相册制作。 最后使用电子相册制作软件将解决后图片制作成电子相册,就可以进行观看了。1.3 本设计目的本文目的是在Android SDK2.2平台下,设计了一种手机电子相册。采用了Android平台Framework层提供接口,实现了图片预览、图片动态切换、停止播放等功能,支持jpg,bmp,png和gif图片格式。可以让手机成为一种电子相册,让顾客不必再去购买别设备就能拥有心仪电子相册了。1.4 论文构造第一章重要简介课题背景和现状第二章简介手机电子相册服务设计实现
15、原理第三章详细简介了基于Android平台手机电子相册软件设计与开发第四章对整个论文进行了总结,并进行了展望,对软件局限性进行了分析,并阐明了改进意见。第二章 电子相册研究2.1 电子相册简介电子相册分为两种,一种是软件类型电子相册,一种是硬件类型电子相册,上文所讲windows media player等制作电子相册,都属于软件类型,除此之外,尚有一种电子相册为硬件类型,指可以不借助电脑可以在LCD面板上显示数码照片电子产品展示效果,还可以将照片显示到电视机上。还可接U盘、SD卡、MMC卡,除播放图片外,还可播放MP3、内置左右双喇叭、边播放图片边听MP3、看手机AVI格式电影、DAT格式或
16、MPEG格式或MPG格式电影(VCD文献)、VOB格式电影(DVD文献)(其他不支持格式可以软件转换)、输出音频视频到电视机或音响,制作这种电子相册产品称为电子相框,电子工程杂志将电子相框分为3类,简易电子相框、“多媒体”电子相框高档、“多媒体”电子相框。 简易数码相框只能显示JPEG格式图片,而多媒体数码相框则可以播放音乐和视频。 某些高档“多媒体”数码相框可以通过因特网从RSS、照片共享网站甚至电子邮件下载图片。这些型号普通也支持无线传播(IEEE802.11)。大某些数码相框可以像幻灯同样按可调节时间间隔显示图片。某些相框还可以播放MP3音乐或者用相机拍摄视频片断,例如MPEG文献。 2
17、.2 电子相册构造一种电子相册往往由三某些构成:LCD液晶面板,PCB,外部相框按钮等构件 LCD面板有一种模仿或者是数字接口,固然其面板尺寸大小也许不同。 其中PCB由于容纳了设备驱动和运营固件,因而可以称得上是电子相框核心了。 2.3 电子相册性能某些数码相框只可以显示JPEG这种通用格式图片,也就是说有些高品位产品也是可以显示例如png此类型图片格式。 大多数数码相框是以幻灯片形式显示照片,普通你可以通过调节切换时间间隔来达到满意效果。固然有些还可以发送照片到打印机,甚至支持其她多媒体内容,例如记录在数码相机电影录像模式电影剪辑, MPEG视频文献尚有MP3音频。 某些相框还也可以通过互
18、联网上RSS,图片共享网站如Flickr, Picasa尚有电子邮件这些媒介来加载图片。而具备这种网络功能相框普通是支持无线( 802.11 )连接。尚有些其她滇西电子相框可以显示txt文献。 数码相框显示图片文献普通是从相机存储卡读取,尽管某些相框还提供内部存储。某些框架电子相框具备使用USB接口从电脑直接传播文献到电子相框功能。然而,由于价格过高,普通很少有数码相框内置有记忆体。其中某些人还涉及一种或者是可充电电池。 大多数7英寸(十七点五厘米)相框显示图像时候由于将图片进行了拉伸实现宽高比16:9显示 ,因而存在非常明显失真。因此,普通为了达到良好显示效果图片文献最佳也选取适当尺寸。 2
19、.4 电子相册特点硬件类型电子相册相比于软件类型电子相册,具备实时性,软件类型电子相册一经软件生成,则不需要再次生成,可直接打开和传播,而硬件类型电子相册则实时生成,由于专为电子相册展示而制作,硬件类型电子相册具备更大辨别率,无需再连接电脑即可显示,更可连接到电视机等硬件上播放。硬件类型电子相册劣势在于,不能将电子相册生成,通过U盘等介质存储共享,在传播上具备一定局限性,也不能生成用于刻录视频形式。第三章 Andriod平台简介3.1 Android系统简介3.1.1 Android平台总体架构下图显示是Android操作系统重要组件。每一某些将会在下面详细描述。图3.1 Android系统架
20、构图应用程序(Applications)Android会同一系列核心应用程序包一起发布,该应用程序包涉及email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有应用程序都是使用JAVA语言编写。应用程序框架开发人员也可以完全访问核心应用程序所使用API框架。该应用程序架构设计简化了组件重用;任何一种应用程序都可以发布它功能块,并且任何其他应用程序都可以使用其所发布功能块(但是要遵循框架安全性限制)。同样,该应用程序重用机制也使顾客可以以便替代程序组件。隐藏在每个应用背面是一系列服务和系统,其中涉及; 丰富而又可扩展视图(Views),可以用来构建应用程序, 它涉及列表(l
21、ists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入web浏览器。 内容提供器(Content Providers)使得应用程序可以访问另一种应用程序数据(如联系人数据库),或者共享它们自己数据 资源管理器(Resource Manager)提供 非代码资源访问,如本地字符串,图形,和布局文献(layout files)。 告知管理器 (Notification Manager)使得应用程序可以在状态栏中显示自定义提示信息。 活动管理器(Activity Manager)用来管理应用程序生命周期并提供惯用导航回退功能。 窗口管理器(Window
22、Manager) 用于管理窗口生命周期及窗口布局。程序包管理器(Package Manager) 用于管理所有在Android上安装程序包。电话管理(Telephony Manager) 用于管理使用者拨打和接听电话有关功能。程序库Android 包括某些C/C+库,这些库能被Android系统中不同组件使用。它们通过 Android 应用程序框架为开发者提供服务。如下是某些核心库:系统 C 库 - 一种从 BSD 继承来原则 C 系统函数库(libc), 它是专门为基于 embedded linux 设备定制。 该库遵循BSD合同,继承了GNU/Linux里glibc大某些接口,但不完全兼容
23、,比glibc更小,运营更快。媒体库 - 基于 PacketVideo OpenCORE;该库支持各种惯用音频、视频格式回放和录制,同步支持静态图像文献。编码格式涉及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加
24、速(如果可用)或者使用高度优化3D软加速。 FreeType -位图(bitmap)和矢量(vector)字体显示。 SQLite - 一种对于所有应用程序可用,功能强劲轻型关系型数据库引擎。 Audio Flinger 管理声音输出设备(喇叭,有线耳机,蓝牙耳机等),可以混合多路音频流输出。Surface Flinger 管理图形、图像显示,可以把来自不同应用各种2D/3D图形组合,叠加;使用双缓冲机制。Android 运营库 Android 涉及了一种核心库,该核心库提供了JAVA编程语言核心库大多数功能。涉及数据构造、工具、文献访问、网络访问、图形解决等。 每一种Android应用程序都
25、在它自己进程中运营,都拥有一种独立Dalvik虚拟机实例。Dalvik被设计成一种设备可以同步高效地运营各种虚拟系统。 Dalvik虚拟机执行(.dex)Dalvik可执行文献,该格式文献针对小内存使用做了 优化。同步虚拟机是基于寄存器,所有类都经由JAVA编译器编译,然后通过SDK中 dx 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于Linux内核某些功能,例如线程机制和底层内存管理机制。Linux 内核 Android 核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络合同栈和驱动模型。 Linux 内核也同步作为硬件和软件栈之间抽象层。3.1
26、.2 Android应用程序构成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形式进行表达。例如:要查看一种人联系方式,需要创立一种动作类型为VIEWintent,以及一种表达这个人URI。与之关于系一种类叫IntentFilter。相对于intent是一种有效做某事祈求,一种intent filter则用于描述
29、一种activity(或者Intent Receiver)可以操作哪些intent。一种activity如果要显示一种人联系方式时,需要声明一种IntentFilter,这个 IntentFilter要懂得怎么去解决VIEW动作和表达一种人URI。IntentFilter需要在AndroidManifest.xml中定义。通过解析各种Intent,从一种屏幕导航到另一种屏幕是很简朴。当向前导航时,activity将会调用 startActivity(Intent myIntent)办法。然后,系统会在所有安装应用程序中定义IntentFilter中查找,找到最匹配myIntentIntent相
30、应 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工具转换为本地格式.dex文献。该虚拟机运营在Posix兼容操作系统(如Linux系统)之上, 虚拟机
33、会依赖底层操作系统某些功能(如线程管理和内存管理)。Dalvik核心类库为之前使用原则Java语言开发者提供了类似开发体验,它更提供了对小型移动设备支持。Dalvik重要完毕对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能。Dalvik虚拟机重要特性由于Android编程语言是Java语言,因此许多人以为Dalvik虚拟机是一种Java虚拟机(JVM),Dalvik虚拟机并不是按照Java虚拟机规范来实现,两者并不兼容。1 专有DEX文献格式Java虚拟机运营是Java字节码,而Dalvik虚拟机运营则是其专有文献格式DEX(Dalvik Executable)。
34、在Java SE程序中Java类会被编译成一种或者各种字节码文献(.class)然后打包到JAR文献,而后Java虚拟机会从相应CLASS文献和JAR文献中获取相应字节码;Android应用虽然也是使用Java语言进行编程,但是在编译成CLASS文献后,还会通过一种工具(dx)将应用所有CLASS文献转换成一种DEX文献,而后Dalvik虚拟机会从其中读取指令和数据。 图3.2 CLASS文献和DEX文献转换DEX文献较之于CLASS文献优势在于:l 一种应用中会定义诸多类,编译完毕后即会有诸多相应CLASS文献,CLASS文献间会有不少冗余信息;而DEX文献格式会把所有CLASS文献内容整合
35、到一种文献中。这样,除了减少整体文献尺寸,I/O操作,也提高了类查找速度。本来每个类文献中常量池,在DEX文献中由一种常量池来管理l 增长了新操作码支持l 文献构造尽量简洁,使用等长指令,借以提高解析速度l 尽量扩大只读构造大小,借以提高跨进程数据共享2DEX优化 DEX文献构造是紧凑,如果规定运营时性能有进一步提高,就依然需要对DEX文献进行进一步优化。优化重要是针对如下几种方面:l 调节所有字段字节序(LITTLE_ENDIAN)和对齐构造中每一种域 l 验证DEX文献中所有类 l 对某些特定类进行优化,对办法里操作码进行优化 优化后文献大小会有所增长,应当是原DEX文献1-4倍。优化发生
36、时机有两个:对于预置应用,可以在系统编译后,生成优化文献,以ODEX结尾。这样在发布时除APK文献(不包括DEX)以外,尚有一种相应ODEX文献;对于非预置应用,包括在APK文献里DEX文献会在运营时被优化,优化后文献将被保存在缓存中。3基于寄存器Dalvik和原则Java虚拟机(JVM)之间首要差别之一,就是Dalvik基于寄存器,而JVM基于栈。选取基于寄存器方式是由于它对提前优化(ahead-of-time optimization)提供了更好支持,而这对类似于移动电话这样受限环境是颇有裨益。另一份针对基于寄存器虚拟机和基于栈虚拟机更进一步比较分析指出,基于寄存器虚拟机对于更大程序来说,
37、在它们编译时候,耗费时间更短。相对于基于堆栈虚拟机实现,基于寄存器虚拟机实现虽然在硬件通用性上要差某些,但是它在代码执行效率上却更胜一筹。普通来讲,虚拟机中指令解释执行时间重要花在如下三个方面:l 分发指令 l 访问运算数 l 执行运算 其中“分发指令”这个环节对性能影响最大。在基于寄存器虚拟机里,可以更为有效减少冗余指令分发和减少内存读写访问,如:表达式:a = b + c基于栈指令:ILOAD c,ILOAD b,IADD,ISTORE a基于寄存器指令:IADD a,b,c4应用虚拟机实例进程Dalvik和Java之间此外一大区别就是运营环境Dalvik通过优化,容许在有限内存中同步运营
38、各种虚拟机实例,每一种Android应用都运营在一种Dalvik虚拟机实例里,而每一种虚拟机实例都是一种独立进程空间。虚拟机线程机制,内存分派和管理,Mutex等等都是依赖底层操作系统而实现。所有Android应用线程都相应一种Linux线程,虚拟机可以更多依赖操作系统线程调度和管理机制。不同应用在不同进程空间里运营,加之对不同来源应用都使用不同Linux顾客来运营,可以最大限度保护应用安全和独立运营。给每一种应用赋予独立进程可以容许动态安装、激活和去激活,独立进程可以防止在虚拟机崩溃时候所有程序都被关闭。有一种特殊虚拟机进程Zygote,她是虚拟机实例孵化器。每当系统规定执行一种Androi
39、d应用程序,Zygote就会FORK出一种子进程来执行该应用程序。它在系统启动时候就会产生,它会完毕虚拟机初始化,库加载,预置类库和初始化操作。如果系统需要一种新虚拟机实例,它会迅速复制自身,以最迅速度提供应系统。对于某些只读系统库,所有虚拟机实例都和Zygote共享一块内存区域,很大限度上节约了内存开销。图3.3 虚拟机实例内存共享原理图5低内存需求Dalvik虚拟机队内存高效使用和它在低速CPU上体现出高性能,使之非常适合在移动终端上使用。依照Google测算,64MRAM已经可以令系统正常运转了。其中24M被用于底层系统初始化和启动,此外20M被用于高层启动高层服务。固然,随着系统服务增
40、多和应用功能扩展,其所消耗内存也势必越来越大。Dalvik需要内存空间比其她虚拟机更低,由于它有如下特性:1)自身占用空间更小;2)Dalvik不使用及时编译器;3)常量池使用32位索引以简化解释器;4)使用自有字节码而非Java字节码。3.1.4 Android平台稳定性分析对于Android平台,随着版本不断升级,系统稳定性也会逐渐加强。众所周知,在HTC推出她们首款Android产品G1时虽然Android系统就已经拥有了不错口碑但是其并没有在市场上引起轰动效应,因素自然是G1当时所搭载Android 1.1版本系统无论在整体稳定性方面还记基本功能方面都存在这样或者那样缺陷关于。对于一款
41、不稳定同步基本功能体现也不完美系统厂家也不乐意去使用。然而Android 1.5版本发布却在一定限度上解决了上面问题。系统稳定了不少,不再像之前那样频繁报错了。同步在系统基本功能上也改进了不少,通话、短信以及多媒体娱乐功能加强使得Android系统符合了大多数厂商规定,因而在被足足掉了半年胃口厂商们自然此时会蜂拥而至,Android系统突然爆发也就局限性为奇了。Android平台相对稳定因素在于Android每个应用都是独立进程,因此对于普通应用,例如计算器、资源管理器等,如果浮现异常不会导致其她应用出问题,但是如果是核心应用异常,如SystemServer、PhoneApp等,则会有比较大影
42、响,例如某些状态不精确,甚至所有应用不能正常启动等。这种特性应当是所有基于真正操作系统手机都具备。3.1.5 Android平台响应速度分析Android响应速度提高重要指Java虚拟机运营速度,相对与Sun虚拟机,速度的确快诸多,由于它从代码解释执行方式到地层C库都做了诸多优化,并且各种虚拟机最大限度共享资源。但是从界面操作速度直观感受,只是不比Windows Mobile慢,这还跟不同型号手机解决能力,以及不同功能实现算法关于系。从实现角度看,Android对于Java运营速度已有很大提高。3.2 Windows里Android开发环境搭建3.2.1 必备软件1、jdk-6u10-rc2-
43、bin-b32-windows-i586-p-12_sep_.exe。2、eclipse-SDK-3.4.2-win32.zip。3、ADT-0.9.0.zip。4、android-sdk-windows-1.5_r1.zip。版本不同也许会导致不兼容。浮现各种错误。请上网查询。3.2.2 安装过程1、jdk 1.6安装(双击jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_.exe)。选取安装途径为“E:androidjdk-6u10”,安装完毕后设立环境变量:右击点我电脑-属性-高档-环境变量,双击PATH,变量值中末尾加上“;E:androidjdk-
44、6u10bin”。同步新建两个环境变量,JAVA_HOME,变量值为:“E:androidjdk-6u10”以及CLASSPATH,变量值为:“.”。2、解压eclipse-SDK-3.4.2-win32.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开始安装
45、,即点击Install.按钮。(这时会浮现警告 大概意思是dl- 没有找到。不用理采,这个网站早就消失了,找不到正常。由于使用是离线安装,因此不需要千万不要勾选,否则也许会挥霍诸多时间。)然后一步步执行,始终到安装完毕。4、解压android-sdk-windows-1.5_r1.zip到目录“E:androidandroid-sdk-1.5”。5、选取window - Preferences 设立AndroidSDK Location:为“E:androidandroid-sdk-1.5”。6、运营里输入cmd命令,进入dos环境,输入如下命令新建avd:android create avd
46、 -n sdk_1.5_avd -t 2浮现配备界面中依次键入配备选项即可。(注:如果想删除已经创立avd,dos下输入如下命令:android delete avd n sdk_1.5_avd)7、安装完毕。第四章 Android平台电子相册设计与实现4.1 Fade In/Fade Out特效与运营线程虽然手机可以通过系统设立(Setting),在闲置数秒或者数分钟后会自动进入省电模式,也即关闭背光,进而达到省电效果。这个屏幕保护程序(Screen Saver)则是通过避免同一种静止图片或画面在LCD上久滞不懂,以达到保护屏幕效果。本节所要实现重点如下。1) 控制与鉴别User静止未触碰手
47、机键盘或屏幕时间及其事件2) 设计动态全屏幕淡入(Fade-In)、淡出(Fade-Out)图片交替效果以上这两个重点都需要通过线程(Thread)来实现,以时间戳记方式,判断距离上一次单击手机键盘、屏幕时间,并计量两次时间间隔,当超过了指定描述(默以为5秒)则自动进入保护程序。4.2 重要功能模块设计与开发其实,编写Android 电子相册并不复杂,只需要继承Activity类就可以了,固然,内部还需要实现诸多细节功能,涉及辨认文献、获取图片文献列表、监听触摸屏事件并作出响应、动态切换图片等功能。4.2.1 获取文献格式要显示程序,就要先拟定Android平台都支持显示什么格式图片文献,通过研究,得知Android