1、基于某Android的电子相册设计与实现学 士 学 位 论 文基于android的电子相册-功能模块设计与实现Based on the electronic photo album AndroidFunctional module design and Implementation 指 导 老 师 : 姓 名 : 学 号 : 学 院 : 专 业 : 完 成 时 间 : 摘要随着智能手机的逐渐普及,手机已经成为人们生活中不可缺少的一部分。而如今智能手机像个人电脑一样,具有独立的操作系统。我们可以享受智能手机给我们带来的拍照,看电影,听音乐等多媒体服务。当然智能手机上还必须要有的一个服务就是图片浏
2、览服务,我们可以通过图片来记录下我们生活中的美妙瞬间。本课题是在AndroidSDK2.2平台下,实现了一个手机电子相册。主要采用Android平台的Framework层提供的接口,实现了图片的文件夹路径的显示,图片的查看、放大、缩小等基本功能,支持jpg、bmp、png和gif图片格式,该程序是独立的apk文件,可以安装在Android2.2以上的系统版本的手机上。本文在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的图片浏览器。以图片浏览器的页面为主线进行分析和研究的,进而研究了Android程序开发环境的搭建,Android工程文件中的
3、各个文件的作用,程序界面的设计,程序数据的处理,图片的异步加载,防止程序的存溢出以及自定义控件的使用。关键字:Android;图片浏览器;智能手机平台;异步加载;存溢出AbstractWiththe popularity ofsmartmobile phone,mobile phonehas becomean indispensable part of peoples life.Now theintelligentmobile phonelike a personalcomputer,with an independent operating system.Wecan take picture
4、s,enjoyintelligentmobile phonebrings usto watch movies,listen to musicand other multimediaservices.Of course,the intelligentmobile phonealsomust have aservice is thepicture browsingservice,we canthrough the picture torecord ourlife in themoment.This topic isin the AndroidSDK2.2 platform,the realizat
5、ion of amobile phoneelectronic photo album.Using Frameworkplatform Android layerprovides the interface,realize thepath of the folderimagedisplay,picture of the view,zoom,and other basic functions,support for JPG,BMP,PNG andGIF image format,the program is independent of theAPK files,system versioncan
6、 be installed in more than Android2.2mobile phone.In this paper,based on analyzing theprinciple ofAndroidmobile phonesoftware development technologyonAndroid platform,developedbased on theimage browserto provide users with better.In thephoto browserpages as the main lineof analysis and research,and
7、then studied theAndroidprogram development environmentto buildtheAndroid project file,each filein therole,design of the procedure interface,dataprocessingprogram,asynchronousloading picture,prevent the programmemoryoverflowand the use ofa custom control.Key word: android; Photo browser; Smartphone p
8、latform; Asynchronous loading; Memory leak第1章 绪论 11.1 Android系统简介 11.2 Android系统架构 11.3 Android Java开发方向 21.4 组织结构 2第2章 系统分析与设计 32.1 功能分析 32.2 性能分析 32.3 界面设计 42.3.1 用户界面的设计 42.3.2 功能的设计 6第3章 Android开发环境的搭建 83.1 开发环境搭建需要的软件 83.2 Android开发平台的搭建 83.2.1 JDK安装 83.2.2 Eclipse的安装 93.2.3 Android SDK 安装 103.
9、2.4 ADT 安装 113.2.5 创建ADT 12第4章 程序的实现 134.1 Android项目的总体架构以及其用途 134.2 功能的实现 164.2.1 第一个界面-欢迎界面 164.2.2 第二个界面-主界面 184.2.3 第三个界面-GridView界面 194.2.4 第四个界面-单图片显示界面 24第5章 总结 30参考文献 31第1章 绪论1.1 Android系统简介Android是一种以Linux为基础的开放源的操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安智”。Android操作系统最初由Andy Rubin开发,最初主
10、要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的ISO以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。1.2 Android系统架构Android的系统架构和其它操作系统一样,采用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。Android是以L
11、inux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名
12、编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic 语言。而在网页编程语言方JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、phonegap等等都已经支持Android开发。而在Android系统底层方面,Android使用C/C+作为开发语言。1.3 Android Java开发方向Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,
13、都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。 其中Activity等同于J2ME的MIDlet,一个 Activity 类(Class)负责创建视窗(Windows),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(Stopped),甚至被系
14、统清除(Kill)。View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activi
15、ty 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有BitMap等同于J2ME的Image。1.4 组织结构通过本软件的开发,我们可以熟悉和掌握在Android平台上的程序开发的环境的搭建,熟悉和掌握在Android平台上的程序的设计开发流程,熟
16、悉和掌握在Android平台下编程常遇到的问题及解决办法。第一章主要阐述了下Android的发展历史,Android的系统框架以及其Java方向的开发方面的容。第二章主要是对系统做的功能分析,性能的分析和程序设计。第三章主要讲述的是Android开发环境的搭建的相关问题。第四章主要描述的是本软件开发过程中的一些要点和难点,并贴上源代码来描述解决的一些方法。第五章是对开发该程序做一个系统性的总结。第2章 系统分析与设计2.1 功能分析如果您经常用手机拍照,那么您的手机里一定保存着数量众多的图片文件,闲暇的时候打开来和好友分享,怎能少了手机电子相册。本电子相册是一个功能齐全的图片浏览器,软件主要由
17、四个界面构成:第一个界面:一个欢迎界面,并在其中读取数据,提高程序的效率。第二个界面:显示的是SD卡中所有包含了图片文件的文件夹,且以该文件夹里面的第一图片作为该文件夹的图标。第三个界面:当点击第二个界面的文件夹图标的时候进入第三个界面,并在其中显示该文件夹里面的所有图片。第四个界面:当点击第三个界面里面的某个图片的时候,进入第四个界面,显示点击的那图片,该界面实现了多点触控图片的放大和缩小功能,当往左滑时,跳转到下一图片,当往右滑的时候跳转到上一图片。本电子相册不同于其他的软件,界面做的很友好,有欢迎界面,有文件夹,对手机中的图片进行归类,而且在第二个界面我们可以看到图片的物理地址,可以很快
18、的找到图片的储存的文件目录。程序的架构包含三个模块:模块1:程序界面。模块2:后台服务,后台数据处理。模块3:处理界面的刷新。2.2 性能分析我认为本程序中的异步加载图片和防止程序的存溢出是重点和难点所在。为了防止程序的存溢出,我把该程序设计成分页浏览模式,假如说图片的数量大于30的话,程序只会加载当前你所需要浏览的那一页的图片,并把以前浏览的图片所占的存给清理掉。而图片的异步加载的目的就是为了提升用户的体验效果,假如把图片的加载放入到主线程的话,势必照成程序的响应时间变长,更有可能出现ANR(如果程序5秒钟没有反映的话,系统会弹出一个提示框),严重影响了用户的体验效果。做手机上的图片浏览器需
19、要面对的最大的问题是加载图片的效率问题和浏览图片时不会因为图片过多而造成存溢出,因为手机不同于电脑,手机的存是非常珍贵的,一旦存溢出的话程序就会造成异常退出,降低了用户的体验效果。同样,当程序加载图片的速度很慢,而且滑动的时候造成很卡的话同样会降低了用户的体验效果。所以,当用户浏览图片的时候必须异步加载图片,当用户加载的图片到达一定数量后,应该清理掉前面的图片再继续加载图片,以防程序存溢出。2.3 界面设计2.3.1 用户界面的设计在人和机器的互动过程(Human Machine Interaction)中,有一个层面,即我们所说的界面(interface)。从心理学意义来分,界面可分为感觉(
20、视觉、触觉、听觉等)和情感两个层次。用户界面设计是屏幕产品的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。用户界面设计的三大原则是:置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。电子相册的第一界面是一个欢迎界面,设计图如图2.1所示:图2.1 第一个界面设计图 这个界面有两个功能,首先就是展现欢迎界面,给用户一个友好的感觉,其次是为软件读取数据提供一个缓冲的时间,提高程序的运行效率。电子相册的第二个界面是一个展现图片所在文件夹的界面,设计图如图2.2所示:图2.2 第二个界面设计图在这个界面,我们可以看到手机中有多少
21、图片的文件夹,每个文件夹下有多少图片,以及文件夹在手机中的地址。电子相册的第三个界面就是图片的具体展现,设计图如图2.3所示: 图2.3 第三个页面设计图 此界面主要是对图片展现的页面布局,采用三列,可以下拉,每页显示的行数根据手机显示屏的大小有所不一样。电子相册的第四个页面就是每图片的具体的展示了,设计图如图2.4所示: 图2.4 第四个页面设计图此界面在手机上实现了多点触控,图片可以放大和缩小,当往左滑时,跳转到下一图片,当往右滑的时候跳转到上一图片,当跳转到第一图片,提示这已经是第一图片,当跳转到最后一图片时,提示这已经是最后一图片。2.3.2 功能的设计功能设计就是按照产品定位的初步要
22、求,在对用户需求及现有产品进行功能调查分析的基础上,对所定位产品应具备的目标功能系统进行概念性构建的创造活动。功能设计是功能创新和产品设计的早期工作,是设计调查、策划、概念产生、概念定义的方法,也是产品开发定位及其实施环节,体现了设计中市场导向作用。可以采用用户设计和专业设计或二者结合的方式。是以消费者的潜在需求和功能成本规划为依据,设计产品的功能,经过功能的成本核算后,由专业人员进行产品设计并生产,通过定价,开展针对性的营销,使企业跳出产品同质化陷阱。功能设计的依据是市场细分和产品定位理论的深化,市场细分方法有好多种,但归根结底都是以功能细分的。本程序主要就是由四个界面构成,每个界面都有自己
23、要实现的功能,针对每个界面设计功能流程图如图2.5所示:图2.5 功能设计流程图从第一界面到第二个界面是不需要交互的,是程序运行的过度阶段,这里主要实现遍历SD卡中的图片这个功能;第二个界面是主界面,这里要实现显示包含图片的文件夹的功能,并且能够显示出文件夹所在的路径;第三个界面是查看文件夹中具体照片的界面,这里要实现异步加载的功能;第四个界面是单图片的显示,这里要实现多点触控、放大、缩小和切换图片的功能;从此流程图,我们不难发现,本电子相册是一个功能齐全的简单易用的程序。第3章 Android开发环境的搭建3.1 开发环境搭建需要的软件(1) jdk-6u18-windows-i586.ex
24、e(2) eclipse-standard-kepler-R-win32.zip (3) android-sdk-windows-1.5_r1.zip (4) ADT插件(5)android系统手机一部(图片浏览器中的多点触控的功能不能在android模拟器上测试) 3.2 Android开发平台的搭建3.2.1 JDK安装如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。设置环境变量步骤如下:我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量:JAVA_HOME值为:D:Program FilesJavajdk1.6.0_18(你安装JDK的目录)CLASS
25、PATH值为:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin;Path: 在开始追加 %JAVA_HOME%bin;NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。当然在安装过程要注意一下,360安全卫士可能会提示木马防火墙,大家要选择“允许程序的所有操作”,否则可能会造成JDK安装不完整。JDK的环境变量经配置完成后,可以通过打开命令提示符窗口,输入命令“java version”, 看到Java版本的信息,来确定安装是否成功。首先点击“开始”,然后点击“运行”,输入“cmd”,按“E
26、nter”键,然后会出现命令提示符窗口的输入界面,输入命令“java version”。当出现类似如图3.1的画面表示安装成功了:图3.1 命令窗口3.2.2 Eclipse的安装打开官网eclipse.org,点击菜单栏上面的download,选择红框里面的下载,如图,若你的电脑是32位的则点第一个,64位的点第二个,进入下载页面,一般点击红框里面的网址就可以下载了,下载完毕,你会在你保存的地方看到一个压缩包文件,它就是eclipse。右键你下载的压缩包,解压,解压完毕后即可使用,进入文件夹,就可以看到 eclipse的启动程序,第一次打开要设置工作环境,你可以选择在别的盘或者默认c盘,点击
27、ok,现在就成功的进入eclipse了。现在还不能进行Android的开发,还要安装其他的组件。图3.2 eclipse首页3.2.3 Android SDK 安装在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的Force https:/.这项,再点击Available Packages 。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Acc
28、ept All、Install Accepted,开始下载安装所选包。在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。图3.3 设置Android SDK的环境变量“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。运行 android h 如果出现类似如图3.4所示的输出,表明安装成功:图3.4 验证Android SDK是否安装成功3.2.4 ADT 安装打开 Eclipse IDE,进入菜单中的 Help - Install New
29、Software。点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入dl-ssl.google./android/eclipse。如图3.5所示:图3.5 安装ADT确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。 如图3.6所示:图3.6 安装ADT组件然后就是按提示一步一步next。完成之后,选择Window Preferences.。在左边的面板选择Android,然后
30、在右侧点击Browse.并选中SDK路径,本机为:D:AndroidDevelopandroid-sdk-windows。点击Apply、OK,配置完成。3.2.5 创建ADT为使Android应用程序可以在模拟器上运行,必须创建AVD。1、在Eclipse中。选择Windows Android SDK and AVD Manager2、点击左侧面板的Virtual Devices,再右侧点击New3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值4、点击Create AVD即可完成创建AVD注意:如果你点击左侧面板的Virtua
31、l Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候你:点击左侧面板的Available Packages在右侧勾选https:/dl-ssl.google./android/repository/repository.xml,如图3.7所示:图3.7 安装ADT组件然后点击Install Selected按钮,接下来就是按提示做就行了,要做这两步,原因是在Android SDK安装中没有安装一些必要的可用包(Available Packages)。第4章 程序的实现4.1 Android项目的总体架构以及其用途首先,用Eclipse新建一个Android项目,项目会自动生成一些目录及文件,如图4.1所示:图4.1 项目文件这些自动生成的目录及文件是组成Android应用程序的必需部分,它们在应用程序中所起到的作用和主题功能如下:src:该目录用来存放项目的源文件,当项目刚创建时,该文件夹中包含activity的源文件,以后用户创建的所有源文件也都将存放在该文件夹中。gen:该文件夹中包含一个在创建项目时自动生成的R.java
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1