20169205 项目进度一 文件资源管理器开发详细计划
所用知识
Android基本组件
1.1 Android四大基本组件介绍
1、Activity
activity代表了界面,一个程序可能在好几个界面里切换,这时每个界面都对应一个activity。
2、Broadcast Receivers
Broadcast Receivers用来提醒用户一些信息,可以启动一个Activity来显示信息。
3、Service
后台运行的服务程序。
4、Content Provide
包装数据以供其他程序使用,其他程序使用ContentResolver 便可以与ContentProvider合作管理进程间数据交互。它是两个程序间数据交换的唯一途径。
1.2 所用组件
软件采用了Activity组件,使用了intent类来实现Activity之间的跳转。实现方法:
Intent intent = new Intent(mainActivity.this,otherActivity.class);
startActivity(intent);
//mainActivity为此刻所在的Activity,otherActivity为跳转的目的Activity
UI设计
2.1 UI设计的基本知识
在Android应用程序开发过程中,主要就是对界面UI的设计与控制,android中的UI元素包括:Activity、View、ViewGroup和布局。Activity不是View但是包括View,View是常说的“组件”或者“控件”。
1、View
在Andorid应用程序中,UI元素称为View,它们都继承了android.view.View类。View有众多的子类,包括ViewGroup、基础控件、高级控件和布局。
基础控件主要包括:Button、ImageButton、ToggleButton、TextView、RadioButton、CheckBox、ImageView、ProgressBar、SeekBar等。
高级控件都直接或者间接的继承了android.view.ViewGroup类,常用的高级控件主要包括:AutoCompleteTextView、Spinner、ListView、GridView、Gallery等。
2、布局管理
布局是指导把各个UI元素在手机屏幕上进行布置。常用的布局包括以下个:
1) FrameLayout(框架布局),通常也叫做帧布局。
2) LinerLayout(线性布局),让所有的UI无成为单一方向的布局。
3) AbsoluteLayout(绝对布局),让所有的UI元素准确的(x ,y)坐标 值进行放置。
4) RelativeLayout(相对布局),将子元素的放置位置与其它元素的位置 相关放置。
5) TableLayout(表格布局),将子元素的位置分配到行或者列中。
2.2 所用UI元素
1、基础控件:Button、TextView、ProgressBar,EditText等。
2、高级控件:ListView
3、布局:LinerLayout(线性布局)、AbsoluteLayout(绝对布局)。
3 数据相关
3.1 文件读写
采用文件读写方式读取SD卡中的文件,并获得文件的绝对路径、文件名、类型等相关信息。
3.2 文件信息存储
采用数据库存储SD卡中文件的信息(绝对路径、文件名、类型) 。
4 多线程
在扫描SD卡中文件信息时采用多线程加快扫描速度。方法如下:
File file[] = new File(“/storage/sdcard0”).listFiles();
If(file[i].isFile())//是文件{
}else if(file[i].isDirectory(){//是文件夹
new Thread(new Runnable() { //开启线程,加快扫描
public void run() {
//扫描当前文件夹
}
}).start();
}
数据结构设计
封装软件运行模式
封装提示信息
封装文件和文件夹信息
文件与文件夹有许多信息是相同的,因此,给它们定义一个基类:
系统功能类的设计
为了提升代码的可维护性, 应该尽量地把功能代码从UI界面中剥离出来。
使用第三方组件,简化主Activity代码
使用Butter Knife简化Android开发: http://jakewharton.github.io/butterknife/
分离UI与功能代码
将功能代码从Fragment中抽取为独立的类,采用“Inject”的方式关联
搜索功能必须采用异步调用方式实现
分离SearchFolderAsyncTask与UI
为了把SearchFolderAsyncTask类与UI界面(FileExplorerFragment)分 离,特定义以下接口,让FileExplorerFragment实现它
阶段开发计划
时间 | 计划 | 任务成员 | 成果 |
---|---|---|---|
第十二周 | 完成数据结构和框架设计 | 20169205 | 项目详细计划文档 |
第十三周 | 底层公共模块开发与设计 | 20169202、20169204 | 接口设计文档 |
第十四周 | 逻辑功能模块设计与开发 | 20169205、20169207 | 功能说明文档 |
第十五周 | 测试与交付 | 20169221 | 用户使用文档 |