基于Android的个人云盘系统的设计与实现毕业论文
2021-04-13 21:14:38
摘 要
由于移动终端本身的存储资源十分有限,而且存储数据的安全性也较低。本文通过研究基于安卓的个人云盘设计,让用户可将数据通过网络存放于云端,通过客户端与服务器之间的交互来获取服务器中存储的文件信息,而且用户可以按照个人需求,管理存在服务器端的文件:用户可以随时从云端下载文件、可以将文件上传到云端、可进行文件夹新建等操作。其中,文件的上传与下载是通过文件流的操作来实现,在此基础上又加入了DES加密技术,可以对重要文件进行加密,从而让用户的文件更加安全,有效的防止了数据泄露的发生。通过本文的研究可以对云存储和Android系统这两大热点技术相结合进行更深入的探索,有着很高的研究价值和现实意义。
关键词:文件上传;文件下载;文件夹新建;DES加密
Abstract
Since the mobile terminal itself has very limited storage resources, the security of the stored data is also low. This article researches the design of personal cloud-based disks based on Android, allowing users to store data on the cloud through the network. Through the interaction between the client and the server to obtain the file information stored in the server, the user can manage the presence server according to individual needs. Side files: Users can download files from the cloud at any time, upload files to the cloud, and create new folders. Among them, file uploading and downloading is achieved through file stream operations. Based on this, DES encryption technology is added to encrypt important files so that users' files are more secure and data leakage is effectively prevented. . Through the research of this paper, we can explore the two hot technologies of cloud storage and Android system in more depth and have high research value and practical significance.
Keywords: File Upload; File Download; New Folder Creation; DES Encryption
目 录
1 绪论 1
1.1选题背景 1
1.2国内外研究现状 1
1.2.1Android发展现状 1
1.2.2云存储的发展现状 2
1.2主要研究内容 2
2 相关技术介绍 4
2.1 Android操作系统 4
2.2 数据解析技术 5
2.3 HTTP通信技术 6
2.4 DES加密解密技术 6
2.4.1 DES算法简介 6
2.4.2 DES算法流程 6
3 设计与实现 8
3.1 总体需求分析 8
3.2各部分设计与实现 8
3.2.1 登录模块 8
3.2.2 主界面设计 10
3.2.3 文件管理模块 12
4功能测试 18
4.1登录模块测试 18
4.2主界面展示 18
4.3文件操作测试 19
4.3.1文件夹新建 19
4.3.2文件上传 20
4.3.3文件下载 21
4.3.4文件加密 22
4.3兼容性测试 22
5总结和展望 24
5.1论文工作总结 24
5.2研究工作展望 24
参考文献 26
致谢 27
第1章 绪论
1.1选题背景
随着互联网时代的到来,移动终端的用户数量增长越来越迅猛,移动终端设备的功能也越来越丰富多彩。因为移动终端的便携性,人们己开始渐渐的习惯于将数据存放在移动终端设备上,产生的数据量也在快速地增加,而移动终端本身存储资源不足对其产生了一定的限制,而且存储数据的安全性也较低。本文的研究正是基于安卓的个人云盘设计,就能够很好的解决这些问题了。用户不用把数据都存放在移动终端,可以通过网络用云端实现存储,再通过客户端来操控存储在云端的数据,而且可以插入加密技术,这样就可以让云端数据的安全性能更有保障,用户只要将文件下载到本地就可以随时随地的再次获取文件信息了,正是通过这种方式,为用户提供了十分方便而高效的文件存储方式。
云存储技术是当今世界正在蓬勃发展的一种新兴的网络存储的技术,他不仅能够对外提供数据存储的功能,而且还能对外界提供业务的访问功能。通过利用云存储技术,我们就可以为移动终端的数据存储提供一种十分有效的方式,而且能很好的满足用户在移动终端上存储资源的需求。
当今世界,云盘应用已经是非常常见了,无论我们身处何地,只要身边有互联网,就可以进入云盘系统,而且可以按照我们的需求对已存储的云盘文件或者数据进行增删改查操作,这样一来文件的获取就变得十分容易了,而且用户十分在意的便携性能也可以得到大大的提升。随着近两年安卓卓和i0S两大系统的移动端云盘的飞速发展,用户对云端数据的获取也越来越容易、操作也越来越简单。当今,我国的手机网民的规模已经达到了7.53亿,手机网民占比已经达到了97.5%,这些数据表明了:将数据云存储技术拓展到移动应用中去,将会有着良好的生存与发展空间。考虑到云盘开发的开源特性、开发成本和推广渠道等等因素,开发者在考虑客户端的开发时,一般就会选用Android平台了。
综上所述,云存储技术其实就是相当于构建了一个信息共享的存储池,从而为众多的用户提供一种十分有效而且实用的数据存储的服务。本文的研究将云存储技术和Android系统这两大热点技术相结合,而且进行了较为深入的探索,有着十分重要的现实意义。
1.2国内外研究现状
1.2.1Android发展现状
谷歌公司推出了Android这个具有开放性的嵌入式的操作系统平台。随后Android便在全世界以非常之快的速度被开发和运用,而且多种多样的创意将会被应用到Android应用程序的开发中去。自从7453Android系统推出以来,Android便开始以着非常明显且迅速之优势逐步扩大着市场的份额,安卓的发展如日中天,尤其是在国外的很多地区,其发展速度更是迅猛。跟据一家市场研究公司发布的一份报告所示,Android智能手机的销售量早已经占领了全国的移动电话销售的28%的份额,而为我们所熟知的苹果手机则稍逊一等,不过也紧紧跟随其市场份额,占Android系统的市场份额的21%。基于Android平台应用软件的发展即将进入到一个快速飞速发展的阶段,而且安卓平台的发展会影响到多个行业,而不仅仅只是手机行业。所以,日前,很多厂商都在努力研发,希望有所创新,开发出能够领先潮流的应用app,就是为了能在Android发展的关键时期能够抢占高地,并能一举击败其他的公司进而而占领更多的市场份额。
1.2.2云存储的发展现状
不论是我们熟知的一些大型公司还是一些新型的创业公司都在凭借着自己的能力,努力专研,积极向企业提供比较前端的云存储的技术与服务,并始终专注于产品的研发与用户的体验,在云存储服务上已经取得了一个又一个的比较优秀的成果。
比如说,用户通过Google Docs能够完成文档编辑,并可以将修改完成了的文档保存个人存储的空间中。无论我们在哪里,我们只需要打开保存有文档信息的云存储系统即可访问到已经编辑的文档,而且可以进行文档的共享等多种操作。苹果公司也不甘示弱,推出了我们熟知的iCloud云服务系统,该云盘系统包含了云计算云存储等多种功能,当我们使用苹果手机的时候,我们只要已经将信息传到iCloud云系统中了,就可以随时随地的访问到这些文件了,而且通常iCloud还有自动备份的功能,可以将手机文档、图片、联系人、音乐等重要信息保存到云盘系统之中,即使手机丢失用户只要在另一台苹果手机中登录iCloud账号就可以再次获取这些信息了,用户体验感大大提升。
国外云存储技术蓬勃发展,当然国内云存储也不甘示弱,也呈现出了百家争鸣的状态,其中发展迅猛的有我们熟知的百度云盘、360云盘等等。在这些系统刚刚推出之时,广大用户都反映希望能够很快体验此项技术,并在体验之后获得了很多好评,而且它们都拥有庞大的客户群,可以经常为云盘系统所存在的一些不足提供建议及反馈。所以,即使国内的云存储技术相对国外起步稍晚,但是云存储技术有着很好的发展前景。
1.2主要研究内容
基于Andriod的个人云盘系统的设计与实现,重点在于实现云存储,即通过云为用户提供相较于移动终端更多的存储空间,让用户可以仅通过云盘客户端控制操作存储在云端服务器的文件,只要能够连接到网络,用户就可以随时随地的登录云盘系统,并访问到服务器端,进行文件与数据的存储。
本课题通过设计个人云盘系统,深入的理解了云、网络数据存储技术还有DES加密等概念。明确个人云盘系统如何设计及设计方案,并能在客户端实现文件的上传与下载功能。本文通过云盘客户端进行设计并实现基于Android的可加密云盘系统的基本功能,并进行系统性能测试,即针对主流厂家主流机型的不同Android版本的手机进行兼容性测试。系统使用C/S模式。客户端的作用是负责与用户进行交互,读取用户的需求信息,最终需要实现用户的登录,文件的上传,下载等等操作。服务器端实际上就是一个存储了文件信息的数据库,客户端会与服务器进行交互,在用户有所需求时向服务器发出特定的操作请求,然后服务器就会分析请求的内容对此作出相应的响应,并将特定信息返回给客户端。正是通过客户端与服务器的不断交互,最终才实现了个人云盘的海量存储与文件管理操作。
第2章 相关技术介绍
2.1 Android操作系统
Android操作系统最早是由Andy Rubin开发出来的,刚开始主要只能是支持手机,但经过后期的发展拓展到了多种设备中。Android一词的之前的涵义是指“机器人”,下面对Android平台的开发的四大组件分别进行描述:
- 活动(Activity)
在安卓操作平台中,活动是所有程序能够运行的关键所在,所有的程序和流程都是借助了Activity才得以运行,可以说活动是在安卓开发过程中运用的最频繁、最根本的模块之一了,活动其实和网页很类似,我们可以在活动中安插许多控件,通过多种控件实现页面功能的实现,一般一个最终版本的应用程序是由多个活动相互配合实现的,通过多个Activity之间的交互来实现各种各样的功能最终满足用户的需求。
(2)服务(Service)
需要注意的是,服务这个组件是不可以仅通过自己而运行的,它只能通过与别的控件进行交互然后在后台运行。服务是没有用户页面的,它可以运行很长时间。
(3)广播接收器(Broadcast Receiver)
广播接收器(Broadcast Receiver)这一组建的作用就是:对发送来的Broadcast信息进行筛选再接受并响应。这一组件就可以来让系统对根据某种需求一个外部某一事件做出相应的一系列响应。但是,需要注意的是广播接收器这一组件,是不能生成用户界面的,所以,对于用户来讲广播接收器的作用是抽象而看不到的。
Android系统的四层架构分别有:应用程序层、应用程序框架层、系统运行库层和Linux内核层,它的架构图如图2.1所示。
图2.1 Android系统架构图
2.2 数据解析技术
通常来讲,Android客户端可以接收到的、来自服务器端发来的数据有XML或是JSON这两种格式。但是相比而言,XML格式的数据结构会相对复杂一些,而且解析的速度会比较慢;然而,JSON格式的数据更为简单易用,并且在在其作为数据传输载体的时候,数据的传输量相比而言会更小。因此,比较而言在客户端和服务器之间的交互与通信的过程中,一般我们会选用JSON这种数据传输格式为最常用的数据格式。而本系统的设计也采用了JSON这种方式。
在JSON语言中一切都要看做对象。所以任何类型都是可以通过 JSON 这种形式来表示的,例如我们所熟知的:数字类型、字符串类型、数组类型、对象类型等等。但是后两者相比而言是比较特殊的两种类型。对象类型在JSON语言中使用时是使用花括弧包裹起来的,数据结构表示为键值对的结构。在面向对象的语言当中,键名可以使用整数抑或是是字符串这种类型来表示,而且值的类型可以是开发者想使用的任意的类型。但是,数组类型在 JSON语言中使用时是用方括号包裹起来的,数据的结构为索引结构。在JSON语言当中,数组类型是也可以像对象那样使用键值对结构的,但是索引这种结构还是使用的相对比较多。
2.3 HTTP通信技术
Hyper Text Transfer Protocol缩写为HTTP,意思是超文本传输协议。该协议对web是通过怎么样的方式向服务器请求万维网文档,以及服务器是通过怎么样的方式再把文档传送给浏览器这些做出了详细地定义。总而言之,HTTP是一种十分可靠而实用的网络协议。
如果要使超文本传输成为一次事务,则必须通过经过以下四个流程:(1)首先,客户端与服务器之间必须建立一个连接;(2)然后,需要根据客户的具体需求,从客户端发送一个请求给服务器,发送的请求可以是包含了用户需求的某种信息,请求方式的格式可以是统一资源定位符这种格式;(3)于是,在当服务器端接收到了来自于客户端的某种请求以后,就会对此做出对应的响应,响应的格式可能为一个状态行、包括信息的协议的版本号、一个成功或者错误的代码信息、后边是MIME信息包括服务器的信息,或者实体信息等等;(4)然后,客户端需要把从服务器返回来的信息通过页面的形式展示给用户。(5)最后,不要忘记客户端需要断开与服务器之间的连接。
2.4 DES加密解密技术
2.4.1 DES算法简介
DES加密算法的密码体制是对称的,又被称为美国的数据加密标准,因为它是由美国的IBM公司研制出来的算法。 该算法主要是指:首先将明文按照64位进行分组,同样,密钥的长度也是64位,但是实际上却是只让56位参与DES运算,这种方式的意图是为了提升安全和保密性能。然后,分组以后的明文组还有56位的密钥组,需要按照位替代的方法或者交换的方法来形成密文。在DES加密算法中,所需要的入口参数共有三种:分别是加密解密时候所使用的密钥、加密解密时候的数据和工作模式。而且当模式被设置为加密模式的时候,即可用加密的密钥来对上述已经按照64位分组的明文组,进行加密,这样便可以完成加密操作了;同样的,当模式设置为解密模式的时候,就可以通过使用解密的密钥完成解密操作了。
2.4.2 DES算法流程
DES加密的算法过程是这个样字的:首先,需要将64位的明文数据输入到加密系统,而且要对其IP进行初次置换;然后,在交换了IP之后明文数据需要被分成左和右两个部分,每一个部分就变成了32位,图中将这两个部分用L0,R0表示;紧接着,通过密钥的控制将这些数据进行了16次的运算;在16次的运算之后,再将左右两个部分进行交换,这样就可以得到64个密文数据了。其实,DES加密算法和解密算法的流程很是类似,唯一的差别就在于:加密解密算法中使用的密钥的顺序是完全相反的。加密算法每一次产生密钥的过程是循环左移,但是解密算法每一次产生密钥的过程是循环右移。进行DES加密过程的流程框图如图2.2所示。