西南科技大学本科生毕业论文 I
基于Andro i d的WiF i文件传输系统的设
计与实现
摘要随着智能手机的普及越来多的人会使用手机来分享文件。虽然目前应用市场上有很多文件分享的软件但其传输的方式都存在一定的缺陷。本系统就是根据目前Andro id应用市场上各种文件传输软件的优缺点使用W iF i直连和SOCKET通信来传输文件解决了蓝牙传输速度慢NFC传输数据小 网络传输需要流量或网络连接WiFi热点传输时不能使用WiFi上网等问题。本系统包含了文件的搜索管理删除文件/消息传输等功能。最多支持9个文件同时发送在连接设备后可以浏览对方设备的文件目录。
本文首先介绍了选题背景和现状然后详细阐述了系统中使用的关键技术的发展和相关知识。通过对系统的运行测试得出可以发现系统运行流畅多文件传输稳定传输速度也很快满足用户需求具有一定的商业价值及较强的使用推广价值。
关键词WiFi直连 SOCKET通信文件搜索
西南科技大学本科生毕业论文 II
Design and Implementation of WiFi-Direct File
Transfer System on Android Platform
AbstractWith the popularity of smart phones,more and more people will use mobile phones to share files,although there are a lot of documents on the market share of the software,but the way they are transferred to determine the existence of a certain.This system is designed to the advantages and disadvantages of the Android Market on a variety of file transfer software, using WiFi-Direct connection and socket communication to achieve the file transmission to solve the Bluetooth transmission speed is slow, small NFC data transmission, the transmission network to network traffic or connection,WiFi hotspots transmission cannot use WiFi Internet access and other issues. This application contains the file search,management, delete, file /message transfer and other functions. Supports up to 9 files at the same time, in connection with the device,you can browse the file directory of the other equipment.
This paper firstly introduces the background and current situation of the selected topic,and then describes the development of key technologies and related knowledge in detail. Through the operation test of the system obtained can be found: the operation of the system is very stable smooth,multi document transmission is relatively stable, transmission speed is faster,basically meet the needs of users,has a commercial value and good popularization and use value.
KeyWo rds:Wifi-Direct, socket communication,high-spe ed transmission
西南科技大学本科生毕业论文 III
目 录
第1章绪论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.1引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.2选题的目的及意义. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.3国内外相关研究. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
第2章系统需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.1应用需求概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.2用户类与特征. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.3系统功能性需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.4系统非功能性需求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
第3章系统概要设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
3.1应用模块划分及模块功能介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
3.2应用的数据存储. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
3.3数据库设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
3.3.1 Andro id数据库介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
3.3.2本系统数据库设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
3.4 Andro id开发相关技术介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
3.4.1 Andro id的发展历史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
3.4.2 Andro id系统结构介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.4.3 Andro id四大组件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
第4章系统详细设计及实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
4.1开发工具和软件平台. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
4.2传输记录模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
4.2.1查看传输记录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
4.3数据库操作模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
4.4文件管理模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
4.4.1选择要发送的文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
4.4.2移除要发送的文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
4.4.3查看文件属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.4.4打开音乐视频等文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
西南科技大学本科生毕业论文 IV
4.4.5遍历手机文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
4.5设备连接管理模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
4.5.1连接其他设备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
4.5.2重命名本机设备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
4.6文件/数据传输模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
4.6.1设置同时发送文件最大个数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.6.2发送文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
4.6.3文件/数据传输性能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
4.7应用UI设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
4.7.1应用界面框架结构设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
4.7.2主界面的设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
4.7.3UI控件的使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
第5章系统测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
5.1测试环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
5.2模块功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
5.2.1设置同时传输文件最大个数功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
5.2.2重命名本机设备功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
5.2.3选择要发送的文件功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
5.2.4移除要发送的文件功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
5.2.5发送文件功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
5.2.6查看传输记录功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
5.2.7打开本机音乐视频等文件功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
5.2.8查看文件属性功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
5.2.9连接设备功能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
5.3非功能性测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
5.3.1连文件传输性能测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
5.3.2系统兼容性测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
致谢. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
西南科技大学本科生毕业论文
第1章绪论
1.1引言
随着近几年移动行业的飞速发展手机已进入智能时代。现在的手机智能平台主要包括Andro id IO SWin10移动版而用户最多的还是Andorid和IO S 平台所以熟悉这些智能平台的应用开发是必须的。在日常生活中朋友之间经常会分享手机中的一些新鲜的好玩的有趣的事情但是目前的手机端分享方式都存在一些弊端。如常见的网络分享这必须要求用户双方都连接互联网条件比较苛刻。而蓝牙分享虽然不需要联网但是传输速度比较慢。针对传输速度慢的问题想到了WiF i热点传输 的确这个传输速度明显快于蓝牙但是利用WiF i热点传输时又有一个问题来了如果要在这时用WiF i上网呢这就办不到了。针对各种分享方式的弊端需要找到一种新的分享来解决这些问题。而新的Wifi直连技术则能很好地解决上面的那些弊端具有不需联网传输速度快传输文件的时候还能WiF i上网的优点。如今的Andro id手机中进入WiF i高级设置里面就可以看到有WiF iD irect WiF i直连这个东西但是官方并没有开发对应的app来传输文件而系统已经对WiF i直连这个技术进行了支持并封装了相应的api给开发者使用。
1.2选题的目的及意义
根据目前Andro id手机平台的各种分享方式的弊端找到一种新的分享文件的方式从而解决NFC传输的数据小蓝牙分享速度慢网络分享需联网WiFi 热点分享时不能用WiF i上网的问题。本应用就是利用WiF i直连技术来解决目前的一些文件分享方式存在的弊端从而让Andro id智能手机用户能够更高效方便的分享文件。实现在高速分享文件的同时利用WiF i高速上网。
1.3国内外相关研究
2010年10月Wi-Fi Alliance wi-fi联盟发布Wi-Fi Direct白皮书 白皮书中介绍了有关于这种技术的基本信息、这种技术的特点和这种技术的功能Wi-Fi D ire ct标准是指允许无线网络中的设备无需通过无线路由器即可相互连接。与蓝牙技术类似这种标准允许无线设备以点对点形式互连而且在传输速度与传输距离方面则比蓝牙有大幅提升[1] 。
按照定义Wi-F i C ERTIFIEDWi-F i Direct设备是支持对等连接的设备这种
1
西南科技大学本科生毕业论文
设备既支持基础设施网络也支持P2P连接。Wi-F i Direct设备能够作为典型的站点STA加入基础设施网络而且必须支持Wi-F i Protected Setup加入者功能。
Wi-Fi Direct设备通过组建小组以一对一或一对多的拓扑形式来建立连接小组的工作形式与基础设施BSS类似。由一部Wi-Fi Direct设备负责整个小组包括控制哪部设备加入、小组何时启动和终止等。这种设备对于传统客户设备而言就是一部接入点能够提供基础设施接入点所提供的部分服务[2] 。
最初Wi-Fi Alliance®联盟的这一新标准原名为“Wi-Fi peer-to-peer” 而最终定名为W iF iD ire ct面向各种W i-F i设备从电脑到手机、到电脑外设到家电等等。符合该标准的设备无需热点和路由器就可以方便的和其他设备实现直接连接传输数据或共享应用。Wi-Fi Direct可以支持一对一直连也可以实现多台设备同时连接并且Wi-Fi Direct标准将会支持所有的Wi-Fi设备从11a/b/g 至11n不同标准的Wi-Fi设备之间也可以直接互联。
由于WiF iD irect支持设备间的直接连接所以又称为WiF iP2p。 P2P架构中定义了三个组件 笔者将其称为“一个设备 两种角色” 分别如下。
· P2P Device 它是P2P架构中角色的实体 可把它当做一个WiFi设备。
· P2P Group Owner Group Owner GO 是一种角色 其作用类似于
Infrastructure BS S中的AP。
· P2P Client 另外一种角色 其作用类似于Infrastructure BSS中的STA。
实际上 P2P技术模仿了Infrastructure BS S网络结构。在组建P2P Group即P2P Network 之前 智能终端都是一个一个的P2P Device。 当这些P2P Device 设备之间完成P2P协商后 其中将有一个并且只能有一个Device来扮演GO的角色即充当AP 而其他Device来扮演C lient的角色。
P2P设备之间想要互相发现对方则需要P2P Discovery的支持.
P2P Discovery的作用很简单就是使多个P2P Device能够互相发现并构建一个Gro up。 根据规范 它包括四个主要技术子项。
· Device Discovery 用于P2P设备搜索周围其他支持P2P的设备。
· Service Discovery 该Device Discovery基础上 P2P还支持搜索指定的服务。 这部分功能属于可选项 笔者觉得它和2.2.5节中提到的Bonjo ur类似。
· Group Formation 用于决定两个P2P Device谁来扮演GO 谁来扮演Client。
· P2P Invitation 用于激活一个Pers istent Group或者用于邀请一个C lient
2
西南科技大学本科生毕业论文
加入一个当前已存在的Gro up。
3
西南科技大学本科生毕业论文
第2章系统需求分析
2.1应用需求概述
根据本应用的目标可以列出这些需求
1)能够选择要发送的文件也能移除不想发的文件
2)能够发送文件核心需求要能成功发送/接受文件
3)简单的文件管理浏览删除文件等
4)重命名本机设备基本需求方面手机在传文件时能够分辨设备
5)查看文件传输记录核心需求记录接受/发送了哪些文件
6)查看正在传输的文件状态核心需求
系统功能结构如图2-1所示。
图2-1应用功能结构图
2.2用户类与特征
APP用户此类用户主要是使用应用来分享文件并且实时查看传输记录也可以查看传输的历史记录。 同时亦可以使用应用来对本机设备进行简单的管理如重命名本机设备查看本机设备上的一些文件属性等等还是可以预览该文件。
2.3系统功能性需求分析
根据对市场上其它分享应用的调查和分析可以列出应用程序的功能用例
4
西南科技大学本科生毕业论文
系统用例图如图2-2所示
图2-2系统用例图
2.4系统非功能性需求
开作为一款实用的分享程序除了基本的功能之外应用还应该满足一些非
5
LOCVPS发来了新的洛杉矶CN2线路主机上线通知,基于KVM架构,目前可与香港云地、香港邦联机房XEN架构主机一起适用7折优惠码,优惠后最低美国洛杉矶CN2线路KVM架构2GB内存套餐月付38.5元起。LOCPVS是一家成立较早的国人VPS服务商,目前提供洛杉矶MC、洛杉矶C3、和香港邦联、香港沙田电信、香港大埔、日本东京、日本大阪、新加坡、德国和荷兰等机房VPS主机,基于KVM或者XEN架构。...
美得云成立于2021年,是一家云产品管理服务商(cloud)专业提供云计算服务、DDOS防护、网络安全服务、国内海外数据中心托管租用等业务、20000+用户的选择,43800+小时稳定运行香港特价将军澳CTG+CN2云服务器、采用高端CPU 优质CN2路线 SDD硬盘。香港CTG+CN22核2G3M20G数据盘25元点击购买香港CTG+CN22核2G5M30G数据盘39元点击购买香港CTG+CN...
在之前几个月中也有陆续提到两次HostYun主机商,这个商家前身是我们可能有些网友熟悉的主机分享团队的,后来改名称的。目前这个品牌主营低价便宜VPS主机,这次有可以看到推出廉价版本的美国CN2 GIA VPS主机,月费地址15元,适合有需要入门级且需要便宜的用户。第一、廉价版美国CN2 GIA VPS主机方案我们可看到这个类型的VPS目前三网都走CN2 GIA网络,而且是原生IP。根据信息可能后续...