课程设计Ⅱ设计报告-基于android文件管理器的设计与实现.docx

上传人:来看看 文档编号:5027418 上传时间:2020-01-29 格式:DOCX 页数:30 大小:1,014.05KB
返回 下载 相关 举报
课程设计Ⅱ设计报告-基于android文件管理器的设计与实现.docx_第1页
第1页 / 共30页
课程设计Ⅱ设计报告-基于android文件管理器的设计与实现.docx_第2页
第2页 / 共30页
课程设计Ⅱ设计报告-基于android文件管理器的设计与实现.docx_第3页
第3页 / 共30页
课程设计Ⅱ设计报告-基于android文件管理器的设计与实现.docx_第4页
第4页 / 共30页
课程设计Ⅱ设计报告-基于android文件管理器的设计与实现.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《课程设计Ⅱ设计报告-基于android文件管理器的设计与实现.docx》由会员分享,可在线阅读,更多相关《课程设计Ⅱ设计报告-基于android文件管理器的设计与实现.docx(30页珍藏版)》请在三一文库上搜索。

1、课程设计设计报告题 目:基于android文件管理器的设计与实现 学 号: 姓 名: 学 院: 信息科学与技术学院 专业班级:08级软计3班 指导教师: 设计时间:2011年4月至2011年6月 指导老师评语: 评定成绩: 签名: 日期:目录1软件需求31.1引言31.1.1编写目的31.1.2背景31.1.3相关技术及开发工具简介31.3需求规定31.3运行环境规定32软件分析与设计32.1前台界面设计32.2后台代码实现33测试报告33.1界面测试34使用说明34.1安装EX05_15.apk34.2运行程序3课程设计总计31软件需求1.1引言1.1.1编写目的编写此软件需求说明书的目的是

2、为后续开发程序提供功能、接口等各方面的参照,也为程序实际使用者提供参考。本文的预期读者为程序开发人员及普通用户。1.1.2背景本软件开发背景如下:a. 系统名称:基于android文件管理器。b. 开发工具:eclipsec. 本项目的提出者、开发者为在校学生,使用者为对本软件感兴趣的且持有android系统的手机用户。d. 本软件可在android手机上独立运行,因此与其他系统或机构几乎没有相互来往关系。1.1.3相关技术及开发工具简介Android:Android是基于Linux核心的软体平台和作业系统,早期由Google,后由开放手机联盟开发。 美國檢索公司Google在2007年11月

3、5日公布的手機系統平台。美国检索公司Google在2007年11月5日公布的手机系统平台。该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它採用了軟體堆層(software stack,又名以軟體疊層)的架構,主要分為三郭分。它采用了软体堆层(software stack,又名以软体叠层)的架构,主要分为三部分。 低層以Linux核心工作為基礎,只提供基本功能,其他的應用軟體則由名公司自行開發,以java作為編寫程式的一部分。低层以Linux核心工作为基础,只提供基本功能,其他的应用软体则由名公司自行开发,以java作为编写程式的一部分。

4、另外,為了推廣此技術,Google和其它幾十個手機公司建立了開放手機聯盟(Open Handset Alliance)。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟(Open Handset Alliance)。 Android在未公開之前常被傳聞為Google電話或gPhone。 Android在未公开之前常被传闻为Google电话或gPhone。 大多傳聞認為Google開發的是自己的手機電話產品,而不是一套軟體平台。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软体平台。Eclipse: Eclipse 是一个开放源代码的、基于 Java 的可

5、扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一

6、个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。1.2任务概述本软件基于android技术开发,规模不大,由一个人开独立发完成。开始接触学习android有两个月了,算是初步入门了,开发本软件意图是为了深入学习android技术,锻炼自主学习能力,为以后开发积累经验,锻炼发现问题解决问题的能力。现在,有很多手机软件使手机的应用更方便,本软件开发的目的就是开发一款实用的手机文件管理器对一系列的手机软件及文件进

7、行管理,方便快捷。本软件为android系统的手机用户提供服务,可以使用安装器进行软件的安装。1.3需求规定本软件所需功能及总体设计如图1所示。根目录SystemSbinSys。DevBusAppBin 图11.3运行环境规定本软件在完成设计编码及发布工作后,可运行的硬件设备为具有android操作系统的手机,比如目前推出这一平台机型的厂商大概有:HTC、摩托罗拉、三星、索尼爱立信、魅族、联想、夏普、中兴、LG、戴尔、宏碁、华硕、海信等。因此本软件的运行环境较为简单,可在任何android系统的手机上运行,对其他硬件无较高要求,并且与其他软件没有过多的交互。2软件分析与设计2.1前台界面设计(

8、1)根目录如图2.1所示 图2.1其xml代码main.xml 文件代码如下: (2)主选择界面设计如图2.2所示 图2.2其xml代码如下所示 (3)文件夹选择界面如图2.3所示,由于文件夹较多,此以一个为例。 图2.3其xml代码如下: (4)主界面颜色设置代码如下: #FFFFFFFF #000000 #0000FF(5)文件或文件夹重命名界面: 图2.5代码如下:/* create更改文件名时弹出的Dialog */ AlertDialog renameDialog=new AlertDialog.Builder(EX05_15.this).create(); renameDialog

9、.setView(myView); /* 设定更改文件名按下确认后的Listener */ renameDialog.setButton(确定,listener2); renameDialog.setButton2(取消,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) ); renameDialog.show(); (6)选择文件操作功能界面如下图:图2.6代码如下: String menu=打开文件,更改文件名,删除文件; new AlertDialog.

10、Builder(EX05_15.this) .setTitle(你要做甚么?) .setItems(menu,listener1) .setPositiveButton(取消, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) ) .show(); (7)选择删除文件时,弹出注意对话框:图2.7代码如下:else /* 选择的item为删除文件 */ new AlertDialog.Builder(EX05_15.this).setTitle(注意!) .se

11、tMessage(确定要删除文件吗?) .setPositiveButton(确定, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) /* 删除文件 */ file.delete(); getFileDir(file.getParent(); ) .setNegativeButton(取消, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, in

12、t which) ).show(); (8)判断文件名是否存在如图示: 图2.8代码如下: /* 判断文件名是否存在 */ if(new File(newPath).exists() /* 排除修改文件名时没修改直接发送的状况 */ if(!modName.equals(file.getName() /* 弹出Alert警告文件名重复,并确认是否修改 */ new AlertDialog.Builder(EX05_15.this) .setTitle(注意!) .setMessage(文件名已经存在,是否要覆盖?) .setPositiveButton(确定,new DialogInterfa

13、ce.OnClickListener() public void onClick(DialogInterface dialog,int which) /* 文件名重复仍然修改会覆盖掉已存的文件 */ file.renameTo(new File(newPath); /* 重新生成文件在表的ListView */ getFileDir(pFile); ) .setNegativeButton(取消,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog,int which) ).show()

14、; 2.2后台代码实现(1)对应以上几个图的软件初始界面的具体实现代码EX05_15.java 的具体代码如下:package irdc.ex05_15;/* import相关class */import java.io.File;import java.util.ArrayList;import java.util.List;import android.app.AlertDialog;import android.app.ListActivity;import android.content.DialogInterface;import android.content.Intent;imp

15、ort .Uri;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.widget.EditText;import android.widget.ListView;import android.widget.TextView;import android.content.DialogInterface.OnClickListener;public class EX05_15 extends ListActivity /* 对象声明 items:存放

16、显示的名称 paths:存放文件路径rootPath:起始目录 */ private List items=null;private List paths=null;private String rootPath=/; private TextView mPath;private View myView; private EditText myEditText; Override protected void onCreate(Bundle icicle) super.onCreate(icicle); /* 加载main.xml Layout */ setContentView(R.layo

17、ut.main); /* 初始化mPath,用以显示目前路径 */ mPath=(TextView)findViewById(R.id.mPath); getFileDir(rootPath); /* 取得文件架构的method */ private void getFileDir(String filePath) /* 设定目前所存路径 */ mPath.setText(filePath); items=new ArrayList(); paths=new ArrayList(); File f=new File(filePath); File files=f.listFiles(); if

18、(!filePath.equals(rootPath) /* 第一笔设定为并到根目录 */ items.add(b1); paths.add(rootPath); /* 第二笔设定为并勺层 */ items.add(b2); paths.add(f.getParent(); /* 将所有文件放入ArrayList中 */ for(int i=0;ifiles.length;i+) File file=filesi; items.add(file.getName(); paths.add(file.getPath(); /* 使用自定义的MyAdapter来将数据传入ListActivity *

19、/ setListAdapter(new MyAdapter(this,items,paths); /* 设定ListItem被按下时要做的操作 */ Override protected void onListItemClick(ListView l,View v, int position,long id) File file = new File(paths.get(position); if(file.canRead() if(file.isDirectory() /* 如果是文件夹就运行getFileDir() */ getFileDir(paths.get(position); e

20、lse /* 如果是文件调用fileHandle() */ fileHandle(file); else /* 弹出AlertDialog显示权限不足 */ new AlertDialog.Builder(this) .setTitle(Message) .setMessage(权限不足!) .setPositiveButton(OK, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog,int which) ).show(); /* 处理文件的method */ private vo

21、id fileHandle(final File file) /* 按下文件时的OnClickListener */ OnClickListener listener1=new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog,int which) if(which=0) /* 选择的item为打开文件 */ openFile(file); else if(which=1) /* 选择的item为更改文件名 */ LayoutInflater factory = LayoutInflater

22、.from(EX05_15.this); /* 初始化myChoiceView,使用rename_alert_dialog为layout */ myView=factory.inflate(R.layout.rename_alert_dialog,null); myEditText=(EditText)myView.findViewById(R.id.mEdit); /* 将原始文件名因放入EditText中 */ myEditText.setText(file.getName(); /* new一个更改文件名的Dialog的确定按钮的listener */ OnClickListener l

23、istener2=new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog,int which) /* 取得修改后的文件路径 */ String modName=myEditText.getText().toString(); final String pFile=file.getParentFile().getPath()+/; final String newPath=pFile+modName; /* 判断文件名是否存在 */ if(new File(newPath).exists()

24、 /* 排除修改文件名时没修改直接发送的状况 */ if(!modName.equals(file.getName() /* 弹出Alert警告文件名重复,并确认是否修改 */ new AlertDialog.Builder(EX05_15.this) .setTitle(注意!) .setMessage(文件名已经存在,是否要覆盖?) .setPositiveButton(确定,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog,int which) /* 文件名重复仍然修改会覆盖掉

25、已存的文件 */ file.renameTo(new File(newPath); /* 重新生成文件在表的ListView */ getFileDir(pFile); ) .setNegativeButton(取消,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog,int which) ).show(); else /* 文件名不存在,直接做修改操作 */ file.renameTo(new File(newPath); /* 重新生成文件列表的ListView */ getFil

26、eDir(pFile); ; /* create更改文件名时弹出的Dialog */ AlertDialog renameDialog=new AlertDialog.Builder(EX05_15.this).create(); renameDialog.setView(myView); /* 设定更改文件名按下确认后的Listener */ renameDialog.setButton(确定,listener2); renameDialog.setButton2(取消,new DialogInterface.OnClickListener() public void onClick(Dia

27、logInterface dialog, int which) ); renameDialog.show(); else /* 选择的item为删除文件 */ new AlertDialog.Builder(EX05_15.this).setTitle(注意!) .setMessage(确定要删除文件吗?) .setPositiveButton(确定, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) /* 删除文件 */ file.delete(); get

28、FileDir(file.getParent(); ) .setNegativeButton(取消, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) ).show(); ; /* 选择几个文件时,弹出要处理文件的ListDialog */ String menu=打开文件,更改文件名,删除文件; new AlertDialog.Builder(EX05_15.this) .setTitle(你要做甚么?) .setItems(menu,listener1) .setPositiveButton(取消, new DialogInterface.OnClickListener() public void onClick(DialogI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1