版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本科生毕业论文题 目: 文件管理器的设计与实现方法专业代码: 070102 作者姓名: 张家昌 学 号: 2011201303 单 位: 聊城大学 指导教师: 郑红霞 2010 年 5 月 18 日原创性声明本人郑重声明: 所提交的学位论文是本人在导师指导下, 独立进行研究取得的成果. 除文中已经注明引用的内容外, 论文中不含其他人已经发表或撰写过的研究成果, 也不包含为获得聊城大学或其他教育机构的学位证书而使用过的材料. 对本文的研究做出重要贡献的个人和集体, 均已在文中以明确方式标明. 本人承担本声明的相应责任. 学位论文作者签名: 日期 指 导 教 师 签 名: 日期 摘 要1Abst
2、ract2前 言31. Android开发环境41.1安卓系统(Android)简介41.2开发Android应用程序采用Java语言的优势42. 系统需求分析及设计53. 概要设计53.1 开发设计原理53.2 主要实现的功能64. 系统功能模块设计与实现64.1 系统主界面模块64.2 显示音乐模块94.3显示视频模块114.4显示图片模块134.5实现新建文件夹功能模块134.6实现多选功能模块154.7实现下拉列表模块155 结束语18摘 要android操作系统;java高级语言;eclipse开发平台;安卓文件管理器 Abstract Keywords: android opera
3、tion system; Java advanced language; eclipse development platform; Android file manager前 言现在,智能手机用户基本上普及了男女老少,大到七八十岁的爷爷奶奶,小到刚刚三四岁的小孩子,公交车上,公园里,地铁上,火车上到处可见手拿智能手机看电视,看电子书,玩游戏的男男女女。总之,现在智能手机现在普及很广,不论年龄大小,都会用,都在用。与电脑相比较而言,电脑的笨重,易于携带,给用户带来很多不便,导致有些工作来不及处理,以至于影响员工的工作,进而影响整个公司的效率,降低整个企业的竞争力。尤其是基于安卓系统的智能手机,
4、以其便宜,超高的性价比赢得了很多用户的青睐。智能手机兴起之前,我们常常看电视,上网,都要用到电脑或者电视。它们很是笨重,携带非常不方便。而这种种,我们都离不开文件管理器,不管是安卓系统本身自带的系统文件,还是用户自己的视频文件,照片,电子书等等,都需要一个工具来有序管理。另外,人们对于智能手机文件管理功能的个性化的要求也在随着数据的爆炸逐步增加,以便于更好更快地适应社会的飞速发展,满足自己工作的需要。就业压力、同行的竞争也要求智能手机的管理功能越来越适应时代的快节奏,对用户起到更重要的帮助。但是安卓系统本身没有带有文件管理系统。因此,我们需要给它设计一款适合的用来管理各种文件的工具,也就是我要
5、做的文件管理专家,即文件管理器。它为广大安卓用户提供了方便的可视化的文件管理UI界面。操作简单,方便,易懂,适宜各个年龄段的的人群使用,给他们带来学习、工作上的便利。Java是一种简单,易理解,相对较容易掌握的的高级编程语言,它是sun公司在1995年推出的。面向对象是它最主要的特点,所谓面向对象是相对于面向过程而言的,即Java语言编写的程序的执行动作都要依赖于具体的某一个对象,完成某一项功能,首先考虑的不是要怎么做,而是考虑我们需要通过哪一个具体的对象来完成这项功能。Java的第二个显著特点,便是它的跨平台可移植性,即首先把源程序编译成对应的以.class结尾的字节码文件,然后通过Java
6、虚拟机来执行字节码文件。第三个显著特点是Java舍弃了c+语言的指针特性,采用了更灵活好用的引用功能,Java语言的接口特性实现了多重继承,弥补了Java类只能单继承的缺陷。垃圾回收也是Java语言的显著特性,所谓的垃圾回收指的是,Java程序运行完后,那些不再被引用的对象所占用的堆内存空间被直接回收,从而及时释放堆内存空间,以供其它程序运行用。技术上,Java的语言规范,一整套由web向下的框架,分类齐全的API,JVM的灵活性和可重构性都是其他语言无法比拟的。开发上,Java程序员数量很多,入门相对容易,市场占有率较高,使用范围较为广泛,发展潜力也是很大。Java程序可以在多种不一样的环境
7、中使用,仅仅需要一次编译,就可以随时运行。利益上,Java有相对稳定的联盟关系(apache ,IBM ,SUN,oracle),现在虽然联盟内有些不够朋友的,比如oracle,但是他们是相互依存,产品互补性还是很大的。当然还有良好的开源社区环境。最近几年来,信息技术发展越来越快,智能手机发展非常迅速。市场上的非智能手机基本上销声匿迹。基于安卓系统的智能手机与基于iOS系统的苹果智能机相比,安卓以其便宜的价格,可视化用户界面,好用的操作,及开源的操作系统,得到了更多更广的用户的支持和使用。智能手机与普通手机相比,增添了很多新功能,可以看高清视频,2g,3g,4g,WiFi上网。看电子书,可以自
8、己安装各种软件。实现了很多以前非智能及实现不了的功能。基本了手机替代了电脑的功能。但是,即便是有了这么多的功能,但是,安卓智能手机并不是十全十美,因为它没有系统自带的文件管理系统。无法管理繁多的文件。因此,对于安卓系统来说,急需一款用来管理系统自身的工具软件。用来管理手机上的越来也多的文件。实现有序,分类管理。要实现文件的添加,修改,和删除等功能,还有与此相关的布局知识。3.1 开发设计原理这两种浏览模式显示图片的方式都是基于ViewPage,ViewPage主要是达到不同页面的跳转,实现滑动的效果;在ViewPage中嵌套ImageView类,显示各类文件的图标。 3.2 主要实现的功能点击
9、手机桌面上的快捷方式进入到主界面后,屏幕上方会显示出主界面、音乐、视频、图片四个按钮。点击相应的按钮会自动进入相应的文件界面,另外,由于两种浏览模式显示图片的方式都是基于ViewPage,ViewPage主要是达到不同页面的跳转,实现左右滑动的效果,所以滑动跳转到不同的文件界面。在主界面中,实现了音乐、视频、图片界面中显示的是只是显示了单一的各种文件,因此只是实现了的列表布局,这样的效果是界面比较清晰,方便查找,长按文件图标便会出现处理方式的提示。这两种浏览模式显示图片的方式都是基于ViewPage类来实现的,ViewPage主要是达到不同页面的跳转,实现滑动的效果;在ViewPage中嵌套I
10、mageView类,显示各类文件的图标。 switchcasereturnmFileBrowsercasereturnmMusicFileBrowsercasereturnmVideoFileBrowsercasereturnmImageFileBrowserdefaultreturnnull该界面展示了本软件所具备的功能,每个模块均可以正常使用。该应用程序启动时,即activity开始时会声明一些变量存储数据,虚拟机会把手机本地的不同的资源文件放入相应的list集合中共不同函数调用,实现具体的操作,如:private List<View> myViews;/定义私有的List集合
11、对象,集合的范型为Viewactivity的生命周期开始需要通过init()函数初始化要调用的布局文件,生成音乐(mMusicFileBrowser)、视频(mViewFileBrowser)、图片(mImageViewBrowser)的对象,获取焦点完成后,主界面的activity的生命周期结束,要跳转的下一个activity的生命周期开始。文件浏览的模式本文是通过与activity类似设置监听事件,因为有两种浏览方式,需要设置多个监听,这样增加代码了的重复。这一是个程序人员应该避免的地方,当然也可以通过switch的参数来判断的,这样会更简便。无论是用哪种方式实现,两个页面之间的跳转还是多
12、个页面之间的跳转,它们之间的信息交互是很重要的环节。实现网格浏览方式如下图所示:图4-1 主界面文件网格显示实现列表浏览方式如下图所示:图4-2 主界面文件列表显示 主要核心代码如下: public MusicFileBrowser(Context context) /实现浏览音乐文件功能super(context);/调用父类的构造方法initView();/调用方法初始化View子控件mViewMode = ViewMode.LISTVIEW;/初始化浏览模式public void onResume()/获取焦点if (!onResume) /判断是聚焦QueryData(new File
13、("/mnt/"), true, FileFilter.MUSIC);/刷新数据onResume = true;/设置参数 private void initView() /初始化控件的方法图4-3显示音乐文件模块mView = mInflater.inflate(R.layout.music_browser, null);/初始化View控件mListView = (ListView)mView.findViewById(R.id.lvMusicList);/初始化本控件mListView.setOnItemClickListener(this);/设置监听器 Overr
14、idepublic void QueryData(File preFile,boolean clear,FileFilter filter) /查询数据super.QueryData(preFile,clear,filter);/继承超类的方法mListView.setAdapter(mItemsAdapter);/设置ListView适配器Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) /点击条目监听FileItemForOperation fileI
15、tem = mData.getFileItems().get(position);clickFileItem(fileItem);mListView集合中,并保存在R文件中,对象mViewMode首先依据switch语句判断LISTVIEW与GRIDVIEW,然后以不同的后缀名子的文件类似音乐文件显示在视频界面中,如图4-4。图4-4 显示视频文件在显示图片模块中,类似视频模块虚拟机会将本地的图片资源放入mListView集合中,对象mViewMode首先依据switch语句判断LISTVIEW与GRIDVIEW,使用已经存在R文件中的图片资源,一般手机中的图片资源往往会比较多,以列表的形式是
16、不太方便查找,因此以网格布局显示在手机上,如图4-5。图4-5显示图片模块该模块展示了新建文件夹功能,点击首页当中的新建文件夹按钮进入新建文件夹模块,手机屏幕中会显示一个对话框,如图4-6所示。启动创建文件夹命令时虚拟机会调用自定义的comparator函数自动的把键入的文件夹的名字与该目录下的文件夹名字进行比较,如果键入的名字已存在,便会显示提醒对话框提醒用户重新键入文件夹的名字。该功能通过创建文件夹完成后,新的文件夹的名字便会保存到本地数据中,供用户以后查询或者进行其他造作。本管理器通过comparatorByName函数实现了按照文件夹的名字的顺序自动的排列文件夹,排列顺序可以自己去定义
17、。图4-6 新建文件夹界面4.6实现多选功能模块本管理器有一个新的功能,那就是实现了将一个文件同时复制到多个文件夹中,当选中一个文件或者文件夹,即执行完doCopy()函数后,点击菜单栏的多选按钮,会以Toast的方式显示进入多选状态的对话框,这里用到了安卓里面的Toast类,如图4-7,然后选中多个文件夹,所选中的文件夹的名字会以不同的字体形式显示,此时执行粘贴命令多个文件或文件夹的复制便完成。图4-7 实现多选界面当用户想要对手机中的一些文件或者文件夹进行操作时,用户只需在手机屏幕中长按想要操作的文件或者文件夹,变会弹出一个下拉列表,如图4-8所示。该下拉菜单是通过在Menu类的对象调用自
18、定义的allSelect()、doOpen()、doCopy()、分别实现了全选(Select All),打开(Open),复制(Copy),剪切(Cut),删除(Delete)等功能。当用户完成想要完成的操作后,虚拟机会自动的刷新数据。menu.add(0, MENU_SELECT_ALL, Menu.NONE, R.string.menu_select_all);/全选menu.add(0, MENU_OPEN_AS, Menu.NONE, R.string.menu_open);/打开menu.add(0, MENU_COPY, Menu.NONE, R.string.menu_copy
19、_selected);/复制menu.add(0, MENU_CUT, Menu.NONE, R.string.menu_cut_selected);/剪切menu.add(0, MENU_DELETE, Menu.NONE, R.string.menu_delete_selected);/删除图4-8 下拉列表界面实现粘贴功能: 在该模块中实现了粘贴功能,此时用到了java中与文件相关的Filer类,以及相关的各种方法,也涉及到了多线程的知识。虽然粘贴命令只有一个,但是虚拟机在处理的过程中需要进行一下判断,如果是文件直接用FileInputStream类与FileOutPutStream类将
20、需要执行的文件导入用户指定的文件目录中。如果是文件夹,则需要用递归的方式不停的判断文件类型才能完成相关操作。相关的核心的代码如下: private void doPaste(CopyOperation type)/粘贴 if(DEBUG)Log.i(TAG, "paste currPosition=>" + currPosition); currOperationType = type;/当前操作类型 FileItemForOperation fileForOperation = mSrcToDir.get(currPosition);/创建文件条目对象 if(fil
21、eForOperation != null)/判断是否为空 FileItem fileItem = fileForOperation.getFileItem(); File fromFile = new File(fileItem.getFilePath();/创建文件对象 /如果复制的是文件夹 if(fromFile.isDirectory()/判断是否是文件夹 if(!addFilesToTable(fileForOperation) return;/结束该方法 /将第一层加入到folders中去 folders.add(mSrcToDir.get(currPosition);/添加文件夹
22、 mHandler.sendEmptyMessage(PASTE_SUCCEED);/发送消息 return;/结束该方法 PasteFileThread thread = new PasteFileThread(fileForOperation);/创建粘贴文件的线程对象 thread.setOperationType(type);/设置类型 thread.start();/启动此线程 实现剪切功能:剪切与复制的完成过程大体相同,首先应该判断用户要完成的是对文件或文件夹的剪切操作还是对文件或文件夹的复制操作,此时又要涉及到监听事件。5 结束语经历了2个多月的努力和学习,在指导老师和学生自己的
23、努力下完成了Android文件管理器的实现,本系统设计的各个模块功能都基本满足了人们对手机管理文件的需求。方便了广大用户使用手机来管理该软件界面设计易理解,容易使用。不足之处在于UI界面做的样式过于简单不是很美观。即将毕业,感觉到时间过得很快,如白驹过隙。但是这段与老师和同学共处的时间给我留下来美好的回忆。在我的这次毕业设计中,充分利用了我学到的知识,如Android系统架构,Java类的File类的相关操作,Android PackManager类,Android ListView,Android GridView,Android ListAdapter,Android GridAdapter以及XML文件等等的一系列安卓相关的知识。对之前并不是很熟悉的两个页面之间的跳转,经过这段时间的练习和实践,强化了对这些知识点的记忆。在论文写作过程中我也遇到了很多的难题。我通过与老师沟通交流,寻求同学的帮助,自己去图书馆查阅相关资料或者上网查资料。在这次论文写作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 太原城市职业技术学院《智慧物流与大数据》2024-2025学年第二学期期末试卷
- 机关内部协作制度
- 机关内部督办制度
- 机场内部安全监察制度
- 李宁企业内部员工制度
- 林场财务内部管理制度
- 民庭内部管理制度
- 民警内部通报制度
- 海事局财务内部控制制度
- 海尔内部员工考核制度
- 2025年黑龙江林业职业技术学院单招职业技能测试题库含答案
- 2025年度光伏电站运维服务合同范本
- 房屋装修质量保证书样式
- 人才测评:理论、方法、实务
- 无损检测超声波二级考试题库汇编
- 掘进机行走机构的结构设计
- 2024年江苏省中学生生物学奥林匹克初赛理论试题
- 泥石流灾害与防治工程
- 高分子材料工程专业英语翻译(DOC)
- 【高中数学】充要条件+课件+高一上学期数学人教A版(2019)必修第一册
- Soul《心灵奇旅(2020)》完整中英文对照剧本
评论
0/150
提交评论