APP下载

基于Android的网盘移动客户端平台

2018-05-09

视听 2018年4期
关键词:网盘文件夹调用

(广西广播电视技术中心)

1 引言

在今天,随着网络技术的成熟和广泛应用,智能手机可实现信息的快速准确输入,并通过网络与管理系统进行数据交互,手机由单一的通信终端发展成为互联网终端,越来越多的互联网应用被移植到智能手机中,使人类的生活更加信息智能化。一直以来,原来的web网盘系统都只能通过电脑终端访问,有明显的约束性。本项目研发的基于Android的网盘移动客户端平台,就是通过Web Service接口实现与web系统的数据交互和同步,用户能够随时随地使用安卓手机登录本客户端对文件进行上传、下载、删除、移动、复制、在线阅读等操作,实现了真正的掌上移动办公。

2 关键技术简介

2.1 JAVA

Java是一种跨平台、面向对象的高级语言,是现在最流行的网络编程语言。具有平台无关、分布式、安全性、多线程等特殊的优点。它是纯面向对象的语言,支持对象和类的概念,支持类的单继承。Java引入了“包”这个概念,通过包管理程序中的类。 用Java编写的程序,可以运行在任何平台和设备上,真正实现“一次编写,到处运行”。

2.2 Web Service

Web Service是为不同平台、不同语言开发的应用之间的交互而设计的远程调用技术,是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,通过SOAP在Web上提供软件服务,使用WSDL文件进行说明,并通过UDDI进行注册,采用XML格式封装数据,能够实现跨语言、跨网络,跨平台的互操作性。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。本项目研发的基于Android的网盘移动客户端平台与web项目的数据交互就是通过Web Service接口实现的。

2.3 Android系统

Android是一种基于Linux的自由及开放源代码的操作系统,该系统有四大组件,一是活动(Activity),它是所有Android应用的门面,用于存放在应用中所有看得到的东西。二是服务(Service),运行在程序后台,并且可以和其他组件进行交互。三是广播接收器(Broadcast Receiver),负责广播接收和发送。四是内容提供器(Content Provider),为应用程序之间提供共享数据功能。除了四大组件,还有丰富的系统控件、地理位置定位以及强大的多媒体功能等特色,Android是目前全球最受欢迎的智能手机平台。

3 需求分析

要实现用户登录、上传、下载、删除、移动、复制、在线阅读等功能,具体功能如下:

1.登录:用于给用户进行登录,用户必须输入正确的用户名和密码,才能够进行登录,用户可以选择自动登录和记住密码功能。

2.上传:用于可以打开目录选择文件进行上传,也可以在别的app里选择文件分享到网盘app进行上传。

3.下载:用户可以选择文件进行下载。

4.删除:用户可以对文件和文件夹进行删除

5.移动:用户可以对文件进行移动,即把文件从一个文件夹移动到另一个文件夹。

6.复制:用户可以对文件进行复制,即把文件从一个文件夹复制到另一个文件夹。

7.在线阅读:用户可以在线打开常用文件。

4 系统设计与实现

4.1 系统设计

4.1.1 系统流程图

图1 网盘app流程图

用户访问系统可以进行登录、上传、下载、删除、移动、复制、在线阅读等功能,系统的流程图如图1所示。

4.1.2 系统事件跟踪图

为了能够更清晰地表现出整个过程,画出事件跟踪图,如图2所示。

4.2 关键技术的实现

4.2.1 调用Web Service接口

Web Service接口通过IIS服务发布之后,客户端通过httpsoap方式访问,服务端按SOAP消息执行相应的Web服务,并将数据以结构化的JSON格式返回给客户端, 客户端通过GSON库快速解析JSON数据,最后把数据渲染到可视化界面。

4.2.2 RecyclerView滚动控件

RecyclerView是 增 强 版 的ListView,优化了ListView中存在的各种不足之处,它比ListView更加强大、更加灵活、扩展性更好,运行效率更高。因此本客户端选择使用RecyclerView来显示文件列表。由于数据无法直接传递给RecyclerView,所以需要借助适配器来完成,适配器的实现类RecyclerView.Adapter可以通过泛型来指定要适配的数据类型。可以通过调用setAdapter()方法将构建好的适配器对象传递到RecyclerView。到此,RecyclerView和数据之间的关联成功建立。

4.2.3 TBS(腾讯浏览服务)

本客户端通过集成TBS的SDK实现在线打开常用文件的功能,具有速度快、兼容好、更安全、更稳定等优点。 客户端首先本地判断文件是否能够打开,再调用Web Service接口请求服务器上的文件进行缓存,最后加载浏览插件打开文件。

4.2.4 AsyncTask线程

发起网络请求是一个耗时的操作,为了避免主线程被阻塞而影响用户对软件的正常使用,应该将这类耗时操作放到子线程里运行。AsyncTask是一个非常好用的工具类,它将异步消息处理机制完美封装,更加方便地实现了在子线程中对UI进行操作。由于AsyncTask是一个抽象类,因此必须要创建子类去继承它才可以使用,同时还需要重写里面的方法才能完成对任务的定制。通常需要重写的方法有以下四个:

1.nPreExecute() :此方法会在后台任务执行前被调用,用于进行一些初始化工作。

2.doInBackground(Params… params) :此方法的所有代码都在子线程中执行,我们应该在这里去处理所有的耗时任务。

3.onProgressUpdate(Progress…): 由publishProgress内部调用,表示任务进度更新。

4.onPostExecute(Result result):此方法会在后台任务执行完毕后被调用,参数即为后台任务的返回结果,可以利用结果来更新UI。

4.2.5 上传和下载文件

上传和下载都需要访问手机存储权限。

图2 网盘app事件跟踪图

上传是采用分片上传的方法,结合Web Service接口实现将文件上传到web服务器的功能。上传可分为本地上传和分享上传。本地上传通过调用手机的文件管理器打开本地目录选择文件上传。分享上传使用Intent.ACTION_SEND来实现接收分享功能,通过编写接收分享的接口来实现文件的上传,该功能可以在别的app里选择文件,然后通过分享功能把文件分享到本客户端进行上传。

下载是通过调用手机的下载管理器进行文件下载,通过广播监听下载情况并发送广播告知用户是否完成下载。

4.2.6 SharedPreferences存储

SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。它使用键值对的方式存储数据,支持多种不同的数据类型存储。本客户端使用SharedPreferences来实现自动登录和记住密码功能的功能,结合AES加密算法来存储用户名和密码,保证了信息安全。

4.3 系统功能的实现

4.3.1 登录

用户登录主要是对用户输入的用户名密码进行验证,如果用户选择自动登录和记住密码,下次打开app时就直接跳过登录页面。

4.3.2 主界面

主界面是用户登录以后进入的界面,用于展示文件列表,用户可以在这个界面对文件进行各种文件操作,比如上传、下载、删除等。用户点击文件夹可以进入该文件夹,点击上级文件或按返回键可以返回上级文件夹。

点击复选框可以批量对文件进行相应的操作。点击“全选”按钮可以选择所有文件,点击“取消”则取消选择所有文件。

只有文件被选中的时候顶部的操作菜单才会显示,否则不显示。用户选中文件进行复制或者移动时,可以选择粘贴到那个文件夹,过程如图3所示,图3(1)是未选中文件时显示的界面,图3(2)是选中文件时显示的界面,图3(3)是移动或复制文件时显示的界面。

4.3.3 左滑菜单

当用户想要切换账号或者退出时,可以左滑选择注销或者退出,注销则返回到登录页,退出则是退出该应用。

5 项目总结

本系统是一个将各种最热门的IT技术进行有机整合而实现的一个网盘手机客户端,可以提供一种全新的在线使用网盘的体验,大大提高了工作的灵活性。

图3 文件移动或复制的过程图

猜你喜欢

网盘文件夹调用
核电项目物项调用管理的应用研究
网易网盘消逝谁是“凶手”?
LabWindows/CVI下基于ActiveX技术的Excel调用
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
网盘存储服务商的版权义务探析
基于系统调用的恶意软件检测技术研究
网盘关停
挂在墙上的文件夹
不容忽视的空文件夹