《于基android的文件浏览器开发与实现设计--毕业设计.doc》由会员分享,可在线阅读,更多相关《于基android的文件浏览器开发与实现设计--毕业设计.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、I Android开发 题目: 基于Android的文件浏览器开发与实现 3 基于Android的文件浏览器的开发与实现摘 要 目前android平台手机渗透到我们生活,20世纪末,电子技术获得了飞速的发展,在其推动下,基于android平台手机的现代电子产品在我们生活的各个角落都能见到,有力地推动了社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。基于android平台手机的发展趋势,本设计以android平台手机为核心制作了一个文件浏览器。本次设计运用android平台手机作为研究开发对象,配合Java语言程序设计以及面向对象思想设计了一种手机文件浏览
2、器。本设计完成后,能够实现以下功能:文件的浏览、文件属性的修改、文件的一些基本操作,一些远程模块的调用、根据不同文件扩展名来实现文件只能的打开,同时给以后的一些实用软件留下了借口、可以实现与手机之间的通讯。以及电脑之间的共享。在设计时,按照设计的要求,从可靠性、经济性、安全性三个方面进行考虑,通过设计方案的比较,确定出来一套即经济又可行的方案。本次设计是对所学知识的综合运用,把理论知识和实践相结合。在本次设计与检验过程中遇到了许多实际问题,比如android平台手机及其运行环境的选择,不熟悉myeclipse和eclipse软件的使用方法,不熟悉开发技巧,可能会发生一些微小功能不能实现、软件运
3、行不稳定,如何设计软件的最佳外观效果等。所有的这些问题,我们都通过查阅资料,咨询老师一一解决了,为设计的成功提供了保障。本文通过方案确认,介绍了设计中所用到的技术、开发思想,以及android平台的简介,通过清晰的程序流程图,给程序的理解提供了方向。还介绍了程序调试软件和硬件调试软件,最后对本设计的软件做了一个概述。关键词:文件浏览器,Android平台,Java技术一、文件浏览器可行性分析1、市场可行性随着科技的发展信息时代的到来,3G技术发展日益成熟随之而来的是3G手机的出现,基于Android操作系统的手机市场逐渐发展壮大,愈来愈多的人选择谷歌的Android手机逐渐形成一种趋势,因此这
4、个市场的商业价值很高,所以我们选择开发基于Android平台的文件浏览器,由于普通手机用户的手机都是应用Symbian操作系统所以都有手机自带的文件管理功能,而Android系统中却找不到相关的功能提示,正是出于这样的原因我们决定研发文件浏览器,我们所研发的文件浏览器不但支持本地文件管理,方便用户对手机和SD卡上的文件/文件夹进行各种操作,还提供了任务管理,程序管理功能,用户随时查看当前的任务进程,或者卸载手机中的应用程序。除此之外我们的浏览器还提供本地和远程网络共享功能,用户可以通过本地共享,FTP远程和蓝牙等三种模式,用户可以在手机远程在移动和桌面终端之间分享文件,传输操作;软件能独立打开
5、媒体文件,浏览图片,编辑文本,甚至可以远程播放媒体文件。因此我们的研发具有巨大的商业价值是一个历史性的进步,这样可以在很大程度上增加Android手机用户的市场份额。所以从市场角度来看,十分有必要开发基于Android的文件浏览器。 3、技术可行性我们已经系统的学习过Java技术,并且对软件的开发流程有一定的了解,进而学习了与Android相关的一些技术,以及一些简单的xml技术,随着对这几种技术的掌握,结合市场上基于Android的文件浏览器种类虽然繁多,但真正能让用户满意的缺少的情况,从技术角度我们决定开发基于Android的文件浏览器。本项目需要用到Sun公司开发的Java技术以及Goo
6、gle公司开发的Android技术在Myeclipse环境下进行开发。下面对Android技术以及Java技术进行简单的介绍和必要的阐释。 二、文件浏览器的需求分析 随着信息的高速发展手机已变的越来越普及尤其是智能手机,基于Android操作系统的手机就是在这样的趋势下逐渐一步步的走入我们的生活,因此,我们选择这样的研究课题最主要的一点是看在它的潜在市场价值,另外一个方面就是团队合作由于这次研发不是一个人完成而是一个团队所以团队合作很重要,这是研发成功的关键所在。所以我们这次最重要的目标是培养团队合作的精神这也是我们完成毕业设计的前提,一个团队一定要凝成一股劲朝着一个方向前进这才是团队协作,这
7、次虽然每一个人所做的部分不相同但最终我们都是为了同一个目标将文件浏览器研发成功,团队可以让每一个成员变得成熟稳重可以使每一个人的能力得到充分的体现。1、产品背景明细 软件名称:基于Android的文件浏览器2、本工程描述 软件开发的目标:通过开发基于Android的文件浏览器,能给广大Android用户提供一个安全的,功能强大的,易于操作的,便于管理的高性能浏览器。3、应用环境 Android手机系统,版本Android1.1以上,系统推荐配置为400MHz处理器、128MB RAM、3.0英寸屏幕或更大屏幕;,或者是升级到Android 3.0的系统推荐配置为1GHz13基于Android平
8、台的文件浏览器研究与实现处理器、512MB RAM、3.5英寸屏幕或更大屏幕;的广大手机用户 4、开发环境操作系统目前只支持XP(32-bit)、Vista(32/64-bit)、Mac OS X 10.4.8或更新版本(x86)、Linux。Android开发环境官方建议使用Myeclipse进行开发,当然,eclipse版本要在3.3以上。因为开发是基于java的,所以jdk是少不了的,jdk要求是5.0或者6.0,我还是用5.0比较多,可以到sun官方下载。J2ME,现称为JavaME(JavaPlatform,MicroEdition)是为机顶盒、移动电话和PDA之类嵌入式消费电子设备
9、提供的Java语言平台,包括虚拟机和一系列标准化的JavaAPI。它和JavaSE、JavaEE一起构成Java技术的三大版本,并且同样是通过JCP(JavaCommunityProcess)制订的。目前阶段,JavaME最流行的应用是游戏软件。因为与需要昂贵的专用设备和开发工具的竞争对手(如索尼和任天堂)相比,JavaME程序可以在PC机上开发和仿真运行,然后很容易地部署到目标机上,从而使其开发、测试和发布的变得容易,Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclip
10、se的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会。 5、系统组件的搭建首先必须要有Android的AWT组件以及Google官方发布的Android的SDK1.1以上,最好是1.5或者2.2版本的SDK。首先必须要给Myeclipse打上Android的插件,是的能有运行Android工程的平
11、台,与开发Android的源代码。开发Android应用程序最简捷的方式是下载Android SDK和Eclipse IDE。Android 应用程序是用 Java 语言编写的,只要结合Eclipse 的 Android Developer Tools 插件就可以开发Android应用程序了,不过它是在Dalvik VM(非Java虚拟机)中编译和执行的(这个在上文中也有介绍)。Eclipse提供了一个丰富的Java环境,Java代码通过编译后,Android Developer Tools 执行打包的工作,其中包括AndroidManifest.xml文件。当然了,不用Eclipse也能开发
12、Android应用程序,但是你需要熟悉Android SDK。Android SDK是一个ZIP文件,可以把它解压到硬盘上的一个目录中。SDK包括:android.jar Java 归档文件,其中包含构建应用程序所需的所有的 Android SDK 类。documention.html 和 docs 目录 本地和网上提供的 SDK 文档。这些文档的主要形式为 JavaDocs,以便于在 SDK 中导航大量的包。文档还包括一个高级开发指南和 Android 社区的链接。Samples 目录:Samples 子目录包含各种应用程序的源代码,包括 ApiDemo,该应用程序演示了很多 API。这个示
13、例应用程序可以作为 Android 应用程序开发的良好起点。Tools 目录:包含所有用于构建 Android 应用程序的命令行工具。最常用、最有用的工具是adb实用程序(Android Debug Bridge)。usb_driver该目录包含将开发环境连接到支持 Android 的设备(例如 G1 或 Android Dev 1 解锁开发手机)所需的驱动程序。只有 Windows 平台的开发人员才需要这些文件。Android 应用程序可以在实际的设备上运行,也可以在 Android SDK 附带的 Android Emulator 上运行。 三、文件浏览器的总体设计 1、总体设计概述1)项
14、目目的本项目旨在给用户提供一个,友好,方便的手机浏览器,提供给用户一些查看,实现文件的复制、剪切、删除、标记、重命名、详情(属性)、新建、发送到、属性设置(共享、隐藏、密码保护)、收藏、存储状态、加密,不同文件调用不同其他软件。针对音乐、图象填加使用功能。图象:设壁纸、屏幕保护、联系人头像、填加新联系人,设分组头像、编辑图象;音乐:设铃声、信息提示、闹钟、日历提醒、聊天室。如有可能填加蓝牙(手机访问手机、电脑访问手记),上传网络,添加到邮件功能。本项目能为用户提供最基本的文件浏览,相关文件调用:例如文件相关路径的设置、路径的更改,可以最大限度的体现文件浏览器的最基本的功能,使文件浏览器的性能在
15、目前配置下最大程度的提升。相关程序调用:例如用户选择图片文件,相关扩展名为.jpg或.jpeg或.bmp或.png或.jif进而调用图片产看器来对图片进行查看,如果用户选择的是以.mp3或.wmv或.mid为扩展名的音乐文件则调用音乐播放器来对文件打开,对文件的扩展名来进行智能匹配,这样就使的文件浏览器的各项扩张性能有最大限度的提升,能使手机扩展更多的文件、应用,我们还在定期的对文件浏览器进行版本的更新升级,及时的设置新的文件匹配扩展,这样如果有新的应用或者格式的文件,我们就能在很短时间内与其兼容,可以说我们的文件浏览器是一个永不过期的文件浏览器应用。小型局域网的组建:如果用户选择的是文件远程
16、共享模式,则调用文件浏览器来与远端的计算机来进行文件传输,利用wap(无线网络访问协议)协议进行小型局域网的组建,进行文件共享、文件传输,可以极大的扩展手机的可玩性、共享性。文件传输模式是指当用户设置文件传输模式的时候,启动本地蓝牙模块,用蓝牙与其他终端进行ftp通信,用ftp(文件传输协议)来对文件进行收发、手机与计算机只讲进行通信、进行手机与手机终端的通信、建立连接可以进行文件的传输、建立游戏互联,可以极大的扩展手机的可玩性、共享性。 2)项目模块分配小组将我们的项目分成四个模块:本地模块,远程模块,视图查看模块,文件传输模块,其中我负责本地模块,我们要在文件浏览器里面实现文件浏览的基本功
17、能,文件的的浏览,文件的更名,文件属性的修改,文件的加密,文件的编辑,文件的隐藏,与其他模块的互动,发送文件发送,文件的一些基本功能的浏览文件浏览器的基本功能模块的开发会用到Java.io包下的file类,该类继承与Object类,实现了Java.io下的接口Serializable以及Java.lang 下的接口。 2、基本功能要求1系统文件与用户应用文件及应用程序切换。采用树结构,列表,缩略图显示,排序(日期、大小、格式、名称)、文件拖拽。2搜索功能(调用输入法)。3基本控制操作:向上,前进,撤消。4不同文件调用不同其他软件。针对音乐、图象填加使用功能。图象:设壁纸、屏幕保护、联系人头像、
18、填加新联系人,设分组头像、编辑图象;音乐:设铃声、信息提示、闹钟、日历提醒、聊天室。5如有可能填加蓝牙(手机访问手机、电脑访问手记),上传网络,添加到邮件功能。6亮点优势:采用树结构、文件拖拽、属性设置(共巷、隐藏、密码保护)、撤消。 3、扩展功能需求1操作系统整体运行速度更快,尤其是浏览器。2浏览器支持双击屏幕进行缩放。3Facebook好友整合至联系人功能。4整个系统多出都支持语音控制,并拥有独立的控制面板。5谷歌地图服务更新。6支持微软Exchange邮件服务。7整合多个不同用户,提供统一的邮件收件箱。8双击就能上传图片至YouTube。4、性能需求1. 系统是免费的开放源代码。2. 屏
19、幕分辨率很高。3. 系统是可以刷机的刷机很方便 最初的1.5到1.6到2.0到2.6到3.0系统更新很快 。4. 播放视频方面android相对流畅。5. android的拍照功能白天强晚上差 。 四、项目测试4.1项目部分代码以及注释本章主要介绍本项目的一些代码及注释,最后会展示一部分功能,4.1.1文件目录显示代码及注释/*创建文件列表类*该类继承于ListActivity使之有文件列表功能*/public class FileList extends ListActivity /*创建文件列表*列表功能,文件列表功能可以将文件存入列表中*列表是私有属性,只能自己调用*/private L
20、ist items = null;/*当Android活动第一次启动的时候调用OnCreate()函数*OnCreat()函数是继承于父类ListActivity*/ Override public void onCreate(Bundle icicle) super.onCreate(icicle);/*设置视图的布局格式为线性布局*创建文件的根目录*将根目录加入文件列表中*/ setContentView(R.layout.directory_list); fill(new File(/).listFiles();/*设置点击方法*方法onListItemClick监听文件列表的点击事件*
21、该方法onListItemClick使受保护的方法*/ Overrideprotected void onListItemClick(ListView l, View v, int position, long id) /*获取到点击行的ID,返回类型为整形*判断获得的ID是不是为0*如果获得ID为0则说明选择的是根目录进而显示根目录*如果ID不为0则没有选择根目录*传如选择文件列表的ID号*再次判断ID是不是在文件目录中*如果文件ID在目录中则调用显示目录方法*如果不在文件目录里则弹出提示框*提示语为Thats a file, not a directory*用户选择按钮返回false值*/
22、int selectionRowID = (int) getSelectionRowID();if (selectionRowID = 0) fillWithRoot(); else File file = new File(items.get(selectionRowID);if (file.isDirectory()fill(file.listFiles();elseAlertDialog.show(this, Not a Directory,Thats a file, not a directory, Cancel, false);这段程序主要实现了文件浏览器的文件列表显示功能,我们新建
23、了一个类,类名字叫FileList这个类继承与ListActivity这样的话,这个类就有了类似于Java中的List类所实现的功能,能够显示列表,而ListActivity类有继承于Activity类,这个类是android系统的最基本的类之一,有这个类的话,ListActivity就是一个activity,就可以用来显示。而FileList就是一个activity,可以用来显示,而且他还有一些Java中的List类的相似的功能。进而设置文件浏览器的布局方式为现行布局,调用文件浏览器源代码的布局文件,在布局文件中设置文件浏览器的布局方式。接下来就是FileList这个类重写了父类里面的一个方
24、法OnCreat方法,这个方法用于生成程序的界面,当工程的源代码运行的时候,启动虚拟设备,这时就是android的一个activity,所以系统就会找到源代码的的OnCreat方法,生成一个可视的界面。因为生成的文件目录是用List方式来显示的,这样的话,每个历List就有自己独一无二的Id,当我们点击相应的List列的时候,就会有一个单击监听器对用户的活动进行监听,在监听器中对点击的Id进行判断,如果判断Id是0的话则意味着用户选择的是根目录,如果选的不是根目录就打开相应的文件或者目录。4.1.2返回上一级目录代码及注释/返回上一级目录private void upOneLevel()if(
25、this.currentDirectory.getParent() != null)this.browseTo(this.currentDirectory.getParentFile();这段代码主要实现了文件浏览器的返回上一层目录的功能,因为在日常的操作中,用户在很多时间里都有这样的需求,那就是在文件浏览完成之后,马上就要返回上一次操作的目录,那么就要是有返回上一层目录这个功能了,设置这样的一个快捷操作能大大的节省用户的一些操作时间。4.1.3浏览指定目录代码及注释/浏览指定的目录,如果是文件则进行打开操作private void browseTo(final File file)this.
26、setTitle(file.getAbsolutePath();if (file.isDirectory()this.currentDirectory = file;fill(file.listFiles();elsefileOptMenu(file);4.1.4代开指定文件及以扩展名打开部分代码及注释/打开指定文件protected void openFile(File aFile)Intent intent = new Intent();intent.setAction(android.content.Intent.ACTION_VIEW);File file = new File(aFi
27、le.getAbsolutePath();/ 取得文件名String fileName = file.getName();4.1.5按照不同扩展名打开部分代码及注释/ 根据不同的文件类型来打开文件if(checkEndsWithInStringArray(fileName,getResources().getStringArray(R.array.fileEndingImage)intent.setDataAndType(Uri.fromFile(file), image/*);Else if (checkEndsWithInStringArray(fileName, getResources
28、().getStringArray(R.array.fileEndingAudio)intent.setDataAndType(Uri.fromFile(file), audio/*);else if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingVideo)intent.setDataAndType(Uri.fromFile(file), video/*);startActivity(intent);该段代码主要实现了文件浏览器针对不同扩展名的文件调用不同的打开方式来
29、执行文件,文件的不同扩展名是已经放置在我们的文件浏览器的配置文件中,其已经设置了一些文件扩展名格式、例如我们的音乐文件是mp3格式,这样的话,当文件浏览器打开了不同类型的文件,这时候文件浏览器就可以调用相应的程序来运行这些扩展名的文件。这样文件浏览器的可扩展性能就会大大的提高了,同时我们还为一些其他扩展名的文件预留号了相应的应用接口,这样当用户扩展了相应的文件格式,我们就可以通过接口来实现文件的一些扩展。大大的方便了用户。4.1.6创建文件浏览器菜单部分代码及注释public boolean onCreateOptionsMenu(Menu menu)super.onCreateOptions
30、Menu(menu);menu.add(0, 0, 0, 新建目录).setIcon(R.drawable.addfolderr);menu.add(0, 1, 0, 删除目录).setIcon(R.drawable.delete);menu.add(0, 2, 0, 粘贴文件).setIcon(R.drawable.paste);menu.add(0, 3, 0, 根目录).setIcon(R.drawable.goroot);menu.add(0, 4, 0, 上一级).setIcon(R.drawable.uponelevel);return true;/新建文件夹public bool
31、ean newFolder(String file)FiledirFile = new File(this.currentDirectory.getAbsolutePath()+/+file);try if (!(dirFile.exists() & !(dirFile.isDirectory()boolean creadok = dirFile.mkdirs();if (creadok)this.browseTo(this.currentDirectory);return true; else return false; catch (Exception e) e.printStackTra
32、ce();System.out.println(e);return falsereturn true;该段代码主要完成了对自动菜单的操作,在自动菜单中可以进行文件的新建,复制、删除、粘贴、返回文件浏览器的根目录、判断如果是文件浏览器的子目录的话就会有一个新的列表用来显示文件的上一层目录并获得文件浏览器预设的一些小图标。美化界面,实现这些功能的主要是使用了文件浏览器所继承的一些Java包下的类、主要的类有File类,以及android的Listactivity类,创建文件夹的操作、使用File类中的一些方法对文件进行操作、使用listactivity类对文件显示列表进行设置。4.2项目测试部分4
33、.2.1文件的几种基本操作图示图5-1 文件的几种基本操作文件浏览器的几种基本操作用来给用用户显示用户所需要的几种基本操作,例如文件浏览器对文件的选择、应用程序的卸载、系统文件的备份、系统设定的备份、在其他地方创建快捷方式来方便操作、以及对文件或者目录的属性进行设置、例如我们可以设置文件夹的各种属性、这样就大大的方便了用户对自己文件的操作,例如用户将文件属性设置问隐藏、就有利于用户数据的安全。使得本地数据能够更安全的放置在手机上,真真正正的方便用户,在方便用户的同时,我们也设置了友好的操作界面,用户可以很方便的管理自己手机中的文件。4.2.2 文件浏览器的任务管理图5-2 文件的任务管理在提供
34、给用户基本功能模块的同时、我们也设置了一些在实际应用中比较实用的扩展,例如我们的文件任务管理,在文件任务管理中、我们实现了对文件的切换,根据用户的实用情况、可能在浏览文件的同时也有需要使用其他程序,这样就要用到我们的文件任务管理功能中的切换功能,用户可以切换到其他界面进行操作,同时我们还提供了部分的软件卸载功能供用户使用。总结在本浏览器的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对浏览器的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。在本次开发过程由于硬件的限制,未能实现网络
35、功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。尽管本浏览器存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。在这次课程设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法。在整个设计过程中,我们遇到了很多困难,但是在邱晓荣老师的悉心教导和我们组员的共同努力下,我们完成了软件制作和论文纂写,在此期间我深入学习了软件的开发流程、团队项目组建、Android、Java语言程序设计等方面的书籍,所以收获颇大。我始终相信毕业设计是我们大学当中的最后也是最重要的一个环节,通过这些理论知识
36、的学习和实验,不仅锻炼了动手能力,而且加强了合作意识,使我受益匪浅,为我们的四年大学生活画上一个圆满的句号。在设计和实验过程中,我们提出问题,解决问题和分析问题的能力得到了提升。但是仍然存在一些问题,如有些详细功能没有实现,软件外观布置不协调,键盘使用不方便等。希望在我以后的学习和工作生涯中继续研究,继续完善。对Android了解不够,不能很大发挥其语言功能,尤其在编写代码的时候不能够熟练使用,而是到处查阅资料,也不能够很准确的区别出相近功能指令的各自功能特点,使得在本系统的实现过程中,放弃了一些很好的设想和功能,也是一种遗憾。但是总的来说,这次的课程设计对我来说是一次非常难得的锻炼机会。使我对所学的专业课知识得到了融会贯通,得到了比任何一门课都大的提高和进步。