本科毕业论文(设计)android的文件浏览器程序设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:
指导教师签名:日期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日
导师签名:日期:年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
目录
内容提要.................................................................. I
1. 引言 (1)
2. 文件浏览器可行性分析 (1)
2.1开发前景 (1)
2.2市场可行性 (1)
2.3技术可行性 (2)
2.3.1 产品背景明细 (2)
2.3.2 ANDROID技术 (2)
2.3.3 SDK介绍 (3)
2.3.4 JDK介绍 (3)
2.3.5 eclipse简介[6] (4)
3. 文件浏览器的总体设计 (5)
3.1项目目的 (5)
3.2基本功能要求 (5)
3.3基本功能模块设计 (6)
3.3.1 android环境搭建[7][8] (6)
3.3.2 复制功能的实现[9] [10] (10)
3.3.3 删除功能的实现 (11)
3.3.4 新建文件的功能 (12)
3.3.5 菜单功能的实现 (14)
3.3.6 文件列表功能的实现[11] (15)
4.项目测试部分 (18)
4.1文件浏览效果图 (18)
4.2菜单测试效果图 (19)
4.3删除功能效果图 (19)
5.结语 (20)
致谢 (23)
参考文献 (25)
ABSTRACT (1)
基于android的文件浏览器程序设计
学生姓名:梁晓刚
指导教师:周明红孙夏玉
内容提要3G时代已经慢慢的融入了大众消费者的日常生活,手机无疑是一个最大的用户集,而作为将来的领军android系统无疑是一个大卖点。Android文件浏览器程序可以对文件或者文件夹进行基本的管理。比如:复制、剪切、移动、删除、新建、搜索等等操作;支持多标签页,列表或图标的形式显示,拖拽文件,文件库,zip压缩,隐藏“.”开头的文件;还附带简单的APK管理工具。
Android文件浏览器程序主要是应用于基于android系统的手机,为用户管理提供方便。Android 利用的是Java开发环境,开发工具:Android SDK 1.6版本、JDK 5.0、Eclipse IDE、ADT
关键词文件浏览器 Android平台 Java
I
1. 引言
目前android平台手机渗透到现实生活,20世纪末,电子技术获得了飞速的发展,在其推动下,基于android平台手机的现代电子产品在我们生活的各个角落都能见到,有力地推动了社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。基于android平台手机的发展趋势,本设计以android平台手机为核心制作了一个文件浏览器。
本次设计运用android平台手机作为研究开发对象,配合Java语言程序设计以及面向对象思想设计了一种手机文件浏览器。本设计完成后,能够实现以下功能:文件的浏览、文件属性的修改、文件的一些基本操作,一些远程模块的调用、根据不同文件扩展名来实现文件只能的打开,同时给以后的一些实用软件留下了借口、可以实现与手机之间的通讯、以及电脑之间的共享。
在设计时,按照设计的要求,从可靠性、经济性、安全性三个方面进行考虑,通过设计方案的比较,确定出来一套即经济又可行的方案[1]。
本文通过方案确认,介绍了设计中所用到的技术、开发思想,以及android平台的简介,通过清晰的程序流程图,给程序的理解提供了方向。还介绍了程序调试软件和硬件调试软件,最后对本设计的软件做了一个概述。
2. 文件浏览器可行性分析
2.1开发前景
随着新技术的不断开发与应用,近年来Java技术发展十分迅速,一个以Java应用为主的新技术革命浪潮正在蓬勃兴起。而基于Andriod的软件开发是一个前景很大的技术,然而市面上基于Android的文件浏览器虽然有不少种,各种的文件浏览器都能实现文件浏览的功能的应用,但是由于版本繁多,开发思路不同,加之Google开放的源代码,Android的SDK的版本不同,API不同使得各种文件浏览器的版本、实现的功能也进而不同。所以基于Android的文件浏览器越发显得非常必要,以下基于几方面介绍关于基于Android文件浏览器的各个方面的可行性分析。
2.2市场可行性
随着科技的发展信息时代的到来,3G技术发展日益成熟随之而来的是3G手机的出现,基于Android操作系统的手机市场逐渐发展壮大,愈来愈多的人选择谷歌的Android手机逐渐形成一种
趋势,因此这个市场的商业价值很高,所以选择开发基于Android平台的文件浏览器很有必要,由于普通手机用户的手机都是应用Symbian操作系统所以都有手机自带的文件管理功能,而Android 系统中却找不到相关的功能提示,本设计所研发的文件浏览器不但支持本地文件管理,方便用户对手机和SD卡上的文件/文件夹进行各种操作,还提供了任务管理,程序管理功能,用户随时查看当前的任务进程,或者卸载手机中的应用程序。除此之外该浏览器还提供本地和远程网络共享功能,用户可以通过本地共享,FTP远程和蓝牙等三种模式,用户可以在手机远程在移动和桌面终端之间分享文件,传输操作;软件能独立打开媒体文件,浏览图片,编辑文本,甚至可以远程播放媒体文件。
所以从市场角度来看,十分有必要开发基于Android的文件浏览器。
2.3技术可行性
本项目需要用到Sun公司开发的Java技术以及Google公司开发的Android技术在Myeclipse 环境下进行开发。下面对Android技术以及Java技术进行简单的介绍和必要的阐释。
2.3.1 产品背景明细
软件名称:基于Android的文件浏览器
软件开发的目标:通过开发基于Android的文件浏览器,能给广大Android用户提供一个安全的,功能强大的,易于操作的,便于管理的高性能浏览器。
开发环境:Android SDK 1.6版本、JDK、Eclipse 、ADT[2]
2.3.2 android技术
android一词的本义指“机器人”,当时同时Android也是Google于07年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,Android是基于JAVA并运行在Linux内核上的操作系统,这个操作系统是轻量级的,但是功能很全面。而且在这个操作系统上,Google公司已经内置了很多有用的软件,如打电话、发短信等,号称是首个为移动终端打造的真正开放和完整的。
文件浏览器主界面的设计:运用android的View来对文件浏览器的主界面进行布局。使用现行布局与表格布局来对文件浏览器的菜单进行布局。可以是有android的一些布局小工具。Android 2
包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx 工具转化成.dex格式由虚拟机执行[3]。
2.3.3 SDK介绍
SDK是(software development kit)软件开发工具包的缩写。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。Android SDk 指的既是Android专属的软件开发工具包[4]。
SDK版本有android SDK 1.6/2.0/2.2/2.3等,此次开发用的是android SDK 1.6版本的。
2.3.4 JDK介绍
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java 工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。
版本:SE(J2SE),standard edition,标准版,是通常用的一个版本,从JDK 5.0开始,改名为Java SE;EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE;ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。此次设计用的是J2ME
在windows环境下,java运行环境安装与测试及HelloWorld的实现。
(1)下载j2sdk 1.6.0_21或更高版本(https://www.doczj.com/doc/3714742330.html,,建议同时下载其Java Documentation,这是Java帮助文档)
(2)运行刚刚下载的安装程序进行正式安装(以下假设安装于c:\jdk1.6.0_21\,建议安装路径不要有空格,不宜安装在\Program Files目录下!)。
(3)设置运行环境参数:a.如果是Win95/98,在\autoexec.bat的最后面添加如下3行语句:
set JAVA_HOME=c:\jdk1.6.0_21\
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.;%JAVA_HOME%\lib
注意:---可用dos命令notepad c:\autoexec.bat打开记事本,加入上面的3行语句。
b.如果是Windows2000或XP系统,使用鼠标右击“我的电脑”->属性->高级->环境变量
系统变量->新建->变量名:JAVA_HOME 变量值:c:\jdk1.6.0_21\
系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;
(CLASSPATH中有一英文句号“.”后跟一个分号,表示当前路径的意思)
(4)使用文本编辑器(比如:https://www.doczj.com/doc/3714742330.html,/记事本/UltraEdit/EditPlus)编写如下代码,并保存为文件:HelloWorld.java(必须大小写正确!假设为c:\test\HelloWorld.java)/* HelloWorld.java */
public class HelloWorld {
public static void main(String arg[]) {
System.out.println("Hello, World!");
}
}
(5)开启一个DOS窗口,跳转到HelloWorld.java所在的目录中
c:\>cd \test
(6)编译HelloWorld.java为HelloWorld.class
c:\test>javac HelloWorld.java
(7)运行HelloWorld.class
c:\test>java HelloWorld
Hello, World! [5]
2.3.5 eclipse简介[6]
Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。JDT支持Java 开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,4
提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。基于Eclipse 的应用程序的突出例子是IBM 的WebSphere Studio Workbench,它构成了IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。
3. 文件浏览器的总体设计
3.1项目目的
本项目旨在给用户提供一个,友好,方便的手机浏览器,提供给用户一些查看,实现文件的复制、剪切、删除、标记、重命名、详情(属性)、新建、发送到、属性设置(共享、隐藏、密码保护)、收藏、存储状态、加密,不同文件调用不同其他软件。
与其他手机软件类似,文件浏览器的设置功能还是丰富多彩的。从主题内容到布局设置,从视图变更到偏好设置,处处体现了文件浏览器提供给用户个性化的服务。比如我们为了随时了解SD 卡的存储情况,打开了SD卡容量在地址栏上的显示。
用户在文件浏览器的设置功能中,还可以看到其实验产品——蓝牙选项。Android Rom在 2.0以下的版本,需要首先拥有最基层的root权限才可以使用。用户在开启该功能并打开蓝牙后,就可以其他蓝牙终端,访问该终端中的资料。
文件浏览器还提供了本地和远程网络共享的功能。用户可以通过本地共享、FTP远程和蓝牙等三种模式,用户可以在手机远程在移动和桌面终端之间分享文件,传输、操作;软件能独立打开媒体文件,浏览图片,编辑文本,甚至可以远程播放媒体文件。
3.2基本功能要求
本程序是一个关于文件管理器的工具,可以对文件或者文件夹进行基本的管理。比如:
复制、剪切、移动、删除、新建、搜索等等操作。
支持多标签页,列表或图标的形式显示,拖拽文件,文件库,zip压缩,隐藏“.”开头的文件,还附带简单的APK管理工具。
本程序的特色功能:
(1)拖拽文件,在列表方式显示状态下,拖拽文件的图标即可进入拖拽的状态;在图标显示方式下,双击文件即可进入拖拽状态。
(2)支持多标签页显示,右上角的+号是添加标签页按钮,长按可以关闭标签。
(3)文件库功能比较全面,在库里可以添加文件,对文件进行分类,便于管理文件。
图3.1 功能介绍
3.3基本功能模块设计
基本功能模块的设计是要实现基于android的文件浏览器的一些基本功能,如文件浏览器的文件列表的创建,实现文件浏览功能,文件打开功能,文件属性修改,文件隐藏,文件显示,文件浏览器的菜单自动显示,新建文件夹,删除文件夹,修改文件夹的属性,隐藏文件夹,显示隐藏文件夹,新建文件,删除文件,以及主界面的设计与开发实现。
文件浏览器的主界面由最上方的文件管理位置、中上方的导航标签栏和下方的显示栏内容构成。用户通过本地位置,可以管理当前手机和SD卡上的文件;通过共享位置,管理在局域网内的其他终端上的文件;通过远程位置,访问FTP服务器上的内容。
用户可以通过长按文件/文件夹的方式,选择一系列操作方式。如常见的打开、剪切、复制、删除、重命名、全选、压缩、发送、属性等。
3.3.1 android环境搭建[7][8]
JDK安装、Eclipse安装、Android SDK
ADT插件安装,第一步:
启动Eclipse选择“Help”>“Software Updates...”准备安装插件
6
7
?
图3.2 ADT 插件安装 第二步:在打开的对话框中点击“Available Software ”,出现Eclipse 的现有软件对话框。
图3.3 Eclipse 对话框 第三步:回到安装对话框,可以看到plugin 的URL 下面有“Developer Tools ”。选择到“Developer Tools ”中
?
图3.4 add
环境测试:
为了运行一个Android模拟器的环境,首先需要建立Android虚拟设备(AVD)。在Eclipse 的菜单中,选择“Window”>“Android AVD Manager”,出现“Android SDK and AVD Device Manager”窗口,界面如下图所示:
?
8
9
图3.5 avd
? 建立新的Android 虚拟设备的窗口为Create new AVD
图3.6 创建avd ? 在“Android SDK and AVD Device Manager ”窗口中,选择一个设备,点击右侧的Start ,将启动虚拟设备,运行一个Android 系统,一个HVGA-P (320x480)尺寸的运行结果如图所示: ?
图3.7 虚拟设备
?
3.3.2 复制功能的实现使用如下代码[9][10]
public void copy(File source, File dest) throws Exception
{
if (source.isDirectory())
{
id=1;
if (!(new File(dest+ "/" + source.getName())).exists())
{
n ewdest = new File(dest+ "/" + source.getName());
n ewdest.mkdir();
}
String[] children = source.list();
for (int i=0; i { copy(new File(source, children[i]),new File(newdest, children[i])); } } else { if(id==0) { dest = new File(dest+ "/" + source.getName()); } try { // Create channel on the source FileChannel srcChannel = new FileInputStream(source).getChannel(); 10