ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:343.28KB ,
资源ID:20677867      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20677867.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于 android 数据备份恢复的一种实现Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于 android 数据备份恢复的一种实现Word下载.docx

1、 执行备份或恢复操作 ),通过 FileInputStream 和 FileOutputStream 对数据库文件进行 read/write。如果是本地备份则将自身的数据库文件写到 SDCard;如果是本地恢复将 SDCard 中对应的文件写到 Contacts 应用对应的路径下,用以覆盖原始数据库文件。用 Environment.getExternalStorageDirectory() 方法获取 SD 卡的路径 , 卡存储空间大小及已占用空间获取方法 : /* 获取存储卡路径 */ File sdcardDir=Environment.getExternalStorageDirectory

2、(); /*StatFs 看文件系统空间使用情况 */ StatFs statFs=new StatFs(sdcardDir.getPath(); /*Block 的 size*/ Long blockSize=statFs.getBlockSize(); /* 总 Block 数量 */ Long totalBlocks=statFs.getBlockCount(); /* 已使用的 Block 数量 */ Long availableBlocks=statFs.getAvailableBlocks();序列图如下所示:图 4. 本地备份恢复序列图本地备份恢复客户端的实现:如下图给出了 Ba

3、ckupRestoreActivity 和 ContactsReceiver 的类图,以及他们工作机制中涉及到的类的结构。图 5. 本地备份恢复类图 Intent 在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调 用者之间的解耦 . 此处的 IntentFilter 起动态注册 action, 使之用于接收同 action 的广播消息 IntentFilter commandFilter = newIntentFilter(); commandFilter.addAction(signal); registerReceiver(BroadcastReceiver,

4、 commandFilter); BroadcastReceiver 用来接收和响应广播消息 Handler 主要接受子线程发送的数据 , 并用此数据配合主线程更新 UI. ContactsReceiver 调用 Thread 开启一个线程 , 用以接收由 BackupRestoreActivity 发出的备份 / 恢复信号。 NetToolHandler(用于网络备份恢复)定义了一些用来和服务器进行交互的方法;IHttpResponse 是在 NetToolHandler 中定义的一个内部接口,主要用来回调 NetToolHandler 中返回的信息,根据返回的信息进行下一步操作。用户选择本

5、地备份或者本地恢复,ContactsReceiver 则收到广播消息后,根据信号判断操作的类别是备份还是恢复,然后启动一个线程,在线程中调用 Handler,通过 Handler 去处理读写数据。网络备份恢复服务器端设计与实现网络备份通过 WiFi 或者 GPRS 在手机端与服务器进行连接,服务器提供相应的接口,用于上传或下载文件。服务器端用例分析1) 备份数据上传:响应客户端的 backup 功能。文件通过 HTTP 请求提交到服务器,服务器接收文件并保存,序列图表示如下:图 6. 网络备份恢复上传序列图说明:如果 Servlet 检查到输入参数不合法,会中断服务并通知客户端。接口定义:UR

6、L:https:/:/upload?uuid=&name=md5= 8b1a9fbf5e111296a827abf8c47804d7&offset=desc=size=deviceid=,HTTP 正文为上传的内容表 1. 备份数据上传参数表提交项关键字作用格式uuid方便上载失败后断点续传 , 客户端生成文件名name上传文件名MD5 校验码md5用于对上载文件作完整性校验。16 进制格式,共 32 位长偏移量offset断点续传的偏移量。长整数,最小为 0,最大为文件字节数。文件描述信息desc除用户名外的文件描述。不能大于 256 个字符,否则抛出 400 错误文件大小size用于断点续

7、传功能建立文件时使用。长整数设备 iddeviceid用于一个用户多个设备进行网络备份恢复的依据必须使用 POST 方式提交,且只允许上传一个文件offset:客户端应从 offset( 包含 offset) 开始上传文件。offset=0 时,忽略 offset 参数。如果是续传文件,应先用 uploadquery 接口查询文件已上传部分的大小,以获取 offset 的值表 2. 备份数据上传返回值成功HTTP 头HTTP Body200空失败(包含公共错误)HTTP 头错误码HTTP Body (Xml 格式的错误消息)CodeMessage400MSG-1001文件上传失败2) 备份数据

8、下载:响应客户端的网络恢复功能。根据文件名将用户请求的文件传递给客户端。序列图表示如下:图 7. 网络备份恢复下载序列图流程描述如下: 客户端向服务器发送 requestDownload 请求,请求中包含文件的 uuid 和断点续传的起始点。 Servlet 调用 downloadSavedFile 接口 , 传递文件 uuid 和 range 参数。 数据库存取返回自 range 开始的字节流,字节流返回给前面的 servlet。/fileDownload? uuid=range= &参数含义同备份数据上传;客户端应从 range ( 包含 range) 开始下载,range =0 时,忽略

9、 range 参数。表 3. 备份数据下载返回值:200/201要下载的文件流 , 新下载返回的是 200 否则返回 201失败MSG-1002无法下载3) 新建手机备份存储空间:当客户端第一次访问备份服务器时,系统会返回找不到个人网络备份存储空间错误,客户端软件提示用户是否新建备份空间,用户确认建立个人网络备份空间,系统才会为其建立存储空间。服务器会用 deviceid 为标识为对应的手机的分配固定大小的空间。服务器端使用 adapter 模式来连接多种不同文件存储媒体。图 8. 网络备份恢复创建存储空间序列图/createspace?参数含义同备份数据上传。表 4. 创建存储空间返回值:M

10、SG-1003备份空间已建立MSG-1004新建备份空间失败4) 查询已上传部分的大小:当文件上传中断时,可以查询已上传部分的大小,然后断点续传余下部分。图 9. 网络备份恢复查询已上传部分序列图/uploadquery?表 5. 查询文件已上传部分返回值:正整数(文件已上传部分的大小)MSG-1005文件已上传完成服务器端的实现: 1) 包文件设计如下所示:图 10. 网络备份恢复包文件设计图 com.bakrestore.server.dao 下面主要存放 DAO 接口,DAO 主要用来解偶业务方法和数据源,即在业务核心方法和具体数据源之间再增加一层,用来连接业务方法和数据源。 com.b

11、akrestore.server.model 主要存放一些持久化类 com.bakrestore.server.service 主要存放业务逻辑类 com.bakrestore.server.web 主要用来存放接口类,用来响应手机终端。在 spring 的配置文件:applicationContext.xml 中,该文件中定义了 Spring 要管理的所有的 Beans, 用 Beans 的形式来管理所有的对象以及他们之间的赋值依赖的。在此配置文件中主要定义了 dao,model,service 下面的类。示例代码如下:清单 1. spring 的配置文件 property name=con

12、figLocation value=classpath:com/bakrestore/server/dao/ibatis/sql/sql-map-config.xml /dataSource ref=lobHandler/beanuserSpaceDAOcom.bakrestore.server.dao.ibatis.UserSpaceDAOImpl/userFileDAOcom.bakrestore.server.dao.ibatis.UserFileDAOImpladddbdaocom.bakrestore.server.dao.ibatis.AddDbDAOImpl addDbServi

13、cecom.bakrestore.server.service.impl.AddDbServiceImplfileContentServicefileServicecom.bakrestore.server.service.impl.FileServiceImplspaceServicecom.bakrestore.server.service.impl.SpaceServiceImplspaceMaxSize$UserSpaceMaxSize在 SpringDispatcher-servlet.xml 配置一个视图解析器,其次将手机端的请求与相应的进行映射以便程序在执行过程中可以依据映射找到

14、所需 Controller,相应的 Controller 与 applicationContext.xml 所定义的 beans 进行交互。清单 2. 配置一个视图解析器createspace name=/createspace parent=pimcom.bakrestore.server.web.CreateSpaceControllerdownload/downloadcom.bakrestore.server.web.DownloadController uploadquery/uploadquerycom.bakrestore.server.web.UploadQueryContro

15、llerupload/uploadcom.bakrestore.server.web.UploadControllersizeMax$UploadFileSizeMaxuploadFileTempFolder$UploadFileTempFolder2) 持久化类设计如下所示:在 com.bakrestore.server.model 文件夹中包含 FileNode, FolderNode,UserFile,DatabaseFileContent,FileSystemFileContent,UserFileContent,UserSpace 的一些类 , 他们的作用是: DatabaseFil

16、eContent:用数据库存储文件内容的文件内容实体类 FileSystemFileContent:用文件系统的保存文件内容 实体类 FileNode:文件结点,与 FolderNode 一起构成了文件目录树 FolderNode:目录节点 UserFile:用户文件或文件夹实体类 UserFileContent:用户文件内容实体类 , 抽象类 UserSpace:用户备份空间实体类类图以及他们工作机制如下所示:图 11. 网络备份恢复持久化类设计图3) 应用类 :应用类主要用来响应手机发出的 HTTP 请求信号,在 com.bakrestore.server.web 文件夹主要包含 Crea

17、teSpaceController,DownloadController,ErrorCode,BaseController,RequestParamater,UploadController,UploadQueryController 等一些控制器,他们的作用分别是: CreateSpaceController:创建用户空间 DownloadController:用以文件下载 ErrorCode:错误消息封装类 BaseController:备份恢复系统中 Controller 的公共类,定义了通用的变量和方法 RequestParamater:参数解析类 UploadController:文

18、件上传服务类 UploadQueryController:查询已上传文件部分的大小以下是他们之间的工作机制:图 12. 网络备份恢复应用类设计图4) DAO 类在 dao 文件夹包含 PbsDataAccessException,UserFileContentDAO,UserFileDAO,UserSpaceDAO 四个 interface,他们的作用分别是: PbsDataAccessException:数据库操作异常,所有对数据库的操作都要抛出此异常 UserFileContentDAO:对文件内容存取的 DAO 接口 UserFileDAO:对文件信息存取的 DAO 接口 UserSpa

19、ceDAO:对备份空间信息存取的 DAO 接口以下是他们之间的工作机制:图 13. 网络备份恢复 DAO 类设计图5) 业务逻辑类在 service 文件夹包含 FileContentService,FileService,SpaceService 三个 interface,他们的作用分别是: FileContentService:对文件内容进行操作的接口 FileService:对文件进行操作维护的接口 SpaceService:对手机备份空间进行维护的接口图 14. 网络备份恢复业务逻辑类设计图6) 数据库层设计数据库层设计及相互关系表示如下:图 15. 数据库关系图表 6. 用户存储空间

20、表 UserSpace字段名类型描述备注idInteger存储空间 ID主键,系统生成userID用户 IDFK( 逻辑外键 )deviceIDVarchar(16)FKrootPathVarchar(256)根文件夹仅当文件存储在文件系统时有效spaceTypeChar(1)0- 设备备份空间,1- 普通备份空间maxSize最大空间大小usedSize已使用空间大小directionStructLONGTEXT目录结构 xmldirectionStructMD5Char(32)目录结构 xml 的 MD5 验证码createSystemTimeDateTime创建时间系统生成表 7. 用户上传的文件表 UserFileVarchar(32)文件 IDuserSpaceIDFK, 用户存储空间表的主键fileNameVarchar(128)modifySystemTime修改时间

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1