FileLock设计文档

原创 2016年05月31日 14:42:12

FileLock Design Doc

1. 设计说明

1.1 软件功能描述

1.1.1 两个主要功能
  1. 加密 : 选择文件对文件进行加密保存到指定位置 , 并删除原文件
  2. 解密: 对加密的文件进行解密并还原到文件原位置 , 并删除密文

以下所说的加密和解密均为该两个过程的简写

1.1.2 软件界面
  • Folder Reader 界面 : 从SDCard开始浏览文件 , 一个简单的文件浏览器 , 长按条目可进行加密过程
  • Box Folder 界面 : 浏览已经被加锁的文件 , 点击列表项选择需要解密的文件 , 选择进行解密文件
1.1.3 过程
  1. 打开浏览文件 : 点开APP进入Folder Reader界面 , 点击文件夹可浏览文件
  2. 选择加密 : 长按列表中某文件 , 弹出是否加密文件对话框 , 选择确定 , 则进入保险箱Box Folder界面进行加密 . 加密完成后 , 显示以加密的文件
  3. 进入保险箱 : 在Folder Reader连续点击三次右上角保险箱图片则也可进入保险箱界面
  4. 选择解密 : 在Box Folder界面 , 点击选择解密的列表项 , 弹出是否解密文件对话框 , 同意则开始解密 , 解密完成后仍在Box Folder界面

1.2 运行环境

1.2.1 软件运行环境
分类 名称 版本 语种
操作系统 Android 2.3及以上版本 中文
1.2.2 软件开发环境
分类 名称 版本 语种
操作系统 Windows 10 中文
开发软件 Android Studio 2.1 英文
其他环境 JDK 1.8
版本控制 Git

1.3 设计思想

1.3.1 软件功能结构图

软件结构

1.4 关键技术

1.4.1 加密算法的选择

对已知的加密方式进行对比 , 选择DES加密 , 该加密的优点

  1. Java本身有很好的加密支持
  2. 对大文件的加密 , 加密速度快
1.4.2 进入保险箱界面的方式

由于滑动进入在ListView下的子父组件之间的冲突 , 选择点击三次保险箱图标来进入保险箱

1.4.3 对以加密的文件进行包装的JavaBean
public class FileLock {
    private String _id;
    // 文件名
    private String filename;
    // 文件原路径
    private String filepath;
    // 加密后文件路径
    private String lockpath;

    get and set ...
}
  1. 根据数据库中的filename来显示以加密的文件列表
  2. 根据filepath和lockpath来解密文件并还原位置

2. 模块设计说明

2.1 项目包结构

  • com.sheep3.activity : Activity类
  • com.sheep3.bean : JavaBean包装类
  • com.sheep3.dao : SQLite数据库操作类
  • com.sheep3.util : 文件处理异步任务类以及文件大小获取的工具类

2.2 分层模块

2.2.1 表现层

MainActivity

方法 功能
onCreate 初始化界面 , 并添加各组件的监听器
inflateListView 通过传入的File数组 , 刷新文件列表
onResume 刷新界面
属性 说明
currentParent 当前文件列表的父文件
currentFiles 当前文件列表
checkedFile 选中的文件
COUNT_TO_BOX 记录点击保险箱图片的次数
各组件

BoxActivity

方法 功能
onCreate 初始化界面并添加各组件监听器
inflateListView 刷新列表
属性 说明
currentFiles 已加密的文件列表
checkedFile 选中的加密文件
2.2.2 子线程逻辑层

class DesUtil extends AsyncTask\

2.2.3 SQLite数据库持久层

FileDbDao

这里写图片描述

方法 功能
saveFileLock 保存一个FileLock
getAll 获取所有的FileLock
getFileLockByName 根据filename字段的值找FileLock
delectFileLock 根据filename字段的值删除FileLock
属性 说明
fileDbOpenHelper 自己的SQLiteOpenHelper接口实现
db SQLiteDatabase实例
2.2.4 模型–JavaBean

FileLock

这里写图片描述

版权声明:本文为博主原创文章,欢迎转载,转载需注明出处~

相关文章推荐

FileLock的疑惑和一些理解

最近碰到一个项目,有多个进程,同时操作同一目录的同一文件,笔者使用java语言。由于文件比较小,所以上线后并没有碰到什么问题。但是,我不禁想到一些问题:不同进程对同一个文件进行操作,如何保证数据的正确...

详解进程文件锁FileLock

import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile;...

ER/Studio生成数据库设计文档

ER/Studio
  • arcdhb
  • arcdhb
  • 2016-04-10 23:03
  • 1214

文档型数据库设计模式-如何存储树形数据

在数据库中存储树形结构的数据,这是一个非常普遍的需求,典型的比如论坛系统的版块关系。在传统的关系型数据库中,就已经产生了各种解决方案。 此文以存储树形结构数据为需求,分别描述了利用关系型数据库和...

Editlog的接口规范设计文档(HDFS-1580:Add interface for generic Write Ahead Logging mechanism)

转帖请注明本空间地址:http://blog.csdn.net/chenpingbupt  原文请参: https://issues.apache.org/jira/browse/HDFS-1...

软件工程文档中的数据库模型设计

背景:软件工程文档之《数据库设计说明书》的结构设计部分要明确规划出数据库的概念结构设计、逻辑结构设计、物理结构设计,就是设计数据库的概念模型、逻辑模型、物理模型,那么,何为数据库的概念模型、逻辑模型、...

C++/C课程设计(1)课题要求文档

原文取自个人博客:www.jycoder.com

字符驱动设计文档

在linux2.6内核中,使用cdev结构体描述一个字符设备 Linux用户程序通过设备文件(设备节点)来使驱动操作字符设备。 设备文件在啊?字符设备通过字符设备文件来存取。字符设备文件通过主设备...
  • whyzl
  • whyzl
  • 2011-08-19 16:12
  • 347

郑州大学毕业设计(论文)LaTeX模版(文档类)

郑州大学毕业设计(论文) LATEX\LaTeX 模版(文档类)花了几天时间,做了一个郑州大学毕业论文的LaTex模板(文档类),这里分享给大家,让大家集中更多的精力在文章的内容上,而不是格式上。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)