论文部分内容阅读
摘 要:Wi-Fi Direct技术是近年新兴的近距离无线通信技术,该技术无需Wi-Fi熱点即可实现设备之间的互联互通,在近距离无线通信技术中具有显著的优势和广阔的应用前景。本文设计并实现了基于Wi-Fi Direct技术的文件共享系统应用,具有传输速率高、覆盖距离大、便捷易用、功能设计完善以及拓展性强等特点,具有很强的应用价值。
关键词:Wi-Fi Direct;Android;信息共享
1 概述
早期的信息共享,要么通过将设备接入局域网,要么通过第三方存储介质,或使用红外技术、蓝牙技术、NFC[1]等近距离无线技术[2],然而这些技术要么设置步骤繁琐、要么数据传输速率低,覆盖面积小、要么需要路由器作为接入设备,不能满足日益增长的用户需求。Wi-Fi Direct技术是在Wi-Fi技术的基础上推出的,具有传统的Wi-Fi技术优势,无需AP,即可端对端组网、共享信息。本文设计的基于Wi-Fi Direct信息共享系统利用该技术优势,实现用户组网快捷、无需AP设备直接彼此互联、具有传输速率高、覆盖距离大等优点。
2 系统设计
本应用是在Android系统[3]上实现的,应用的整体架构自上而下设计为上层应用层、中间信息处理层、下层传输层和底层硬件管理层。
上层应用层,设计为人机接口功能,为用户操作的各项功能提供承托平台,包含用户管理模块、消息管理模块、通知管理模块和文件管理模块。该层以简洁流畅的人机界面设计呈现给用户,便于用户快速调用所需功能,使用应用。
中间信息处理层,设计为信息处理功能,用于对传输信息进行诸如加密解密、CRC校验、数据压缩处理等功能。同时,该层还包含自定义的通信协议和网络发现服务协议的封装和解析还原功能。
下层传输层,设计为应用的信息传输功能,包含网络发现服务模块和传输管理等模块。通过合理选择TCP、UDP传输方案,将各种上层协议封装好的数据信息传输小组内其他设备,同时对接收的数据信息通过观察者模式告知上层应用框架,分发消息。
底层硬件管理层,设计为Wi-Fi Direct管理功能,用于向wpa_supplicant进程发送相应命令,调用Wi-Fi Direct的各项功能,监听Wi-Fi Direct驱动通过wpa_supplicant发出的各种事件,再通过Android Intent广播机制告知上层框架。
3 关键层次的实现
区别于基于其他技术的同类应用,基于Wi-Fi Direct文件共享系统最大的特点就是利用Wi-Fi Direct技术优势,即建立连接方便快捷,无需AP,传输速率高、覆盖面积广等特点。因此,操作Android系统底层Wi-Fi Direct功能的底层硬件管理模块是本系统的关键部分。
底层硬件管理层主要用于对本地Wi-Fi Direct硬件的调用和通信,是整个系统的核心也是上层部分功能实现的底层硬件基础,用于加载、激活底层Wi-Fi Direct硬件驱动,按需求操作Wi-Fi Direct各项功能,以及接收底层Wi-Fi Direct驱动的传出事件并通知上层应用执行相应处理。Android操作系统对Wi-Fi Direct功能的硬件驱动支持出现在Android 4.0及后续版本,由于Android系统为了维持API的稳定性以及对硬件访问权限的控制[4],Wi-Fi Direct的激活和关闭方式不同于传统的Wi-Fi操作,必须通过发送Action为Settings.ACTION_WIRELESS_SETTINGS的Intent,打开Wi-Fi设置界面启动或关闭Wi-Fi Direct功能,对于系统的独立性和便捷性、及用户体验都有极大的影响。为了能够实现直接激活和关闭Wi-Fi Direct底层硬件功能,本层采用Java反射机制,直接解析Android应用程序框架层中的wifip2pManager类,访问相应功能API,反射机制实现保护API调用代码如下:
void enableWifiP2p() {
Helper.useMethod(helper.getManager(), "enableP2p",
new Class[] { Channel.class },
new Object[] { helper.getChannel() });
}
void disableWifiP2p() {
Helper.useMethod(helper.getManager(), "disableP2p",
new Class[] { Channel.class },
new Object[] { helper.getChannel() });
}
enableWifiP2p()函数用于激活Wi-Fi Direct功能,disableWifiP2p()函数用于关闭Wi-Fi Direct功能,通过这两个函数,使本系统无需跳转到设置界面即可启动Wi-Fi Direct功能,提升了用户体验。
4 测试验证
本系统性能基本都符合设计预期,同其他无线个域网技术相比,采用Wi-Fi Direct实现信息传输和共享,无论在应用便携性和无需依赖无线热点方面以及在传输距离、速率等各项性能上都远远超过当前主流的无线技术和方案,如蓝牙、Wi-Fi等,足以可见Wi-Fi Direct技术的设计优势和应用前景。
[参考文献]
[1]桑亚楼.NFC技术及其应用.移动通信,2008(3):26~27.
[2]石明明,鲁周迅.三种无线通信协议综述.通信技术,2011,Vol44(07):72~73.
[3]胡伟.Android系统架构及其驱动研究.广州广播电视大学学报,2010,Vol10(04):97~98.
[4]金泰延,等.Android框架揭秘.北京:人民邮电出版社,2012.
关键词:Wi-Fi Direct;Android;信息共享
1 概述
早期的信息共享,要么通过将设备接入局域网,要么通过第三方存储介质,或使用红外技术、蓝牙技术、NFC[1]等近距离无线技术[2],然而这些技术要么设置步骤繁琐、要么数据传输速率低,覆盖面积小、要么需要路由器作为接入设备,不能满足日益增长的用户需求。Wi-Fi Direct技术是在Wi-Fi技术的基础上推出的,具有传统的Wi-Fi技术优势,无需AP,即可端对端组网、共享信息。本文设计的基于Wi-Fi Direct信息共享系统利用该技术优势,实现用户组网快捷、无需AP设备直接彼此互联、具有传输速率高、覆盖距离大等优点。
2 系统设计
本应用是在Android系统[3]上实现的,应用的整体架构自上而下设计为上层应用层、中间信息处理层、下层传输层和底层硬件管理层。
上层应用层,设计为人机接口功能,为用户操作的各项功能提供承托平台,包含用户管理模块、消息管理模块、通知管理模块和文件管理模块。该层以简洁流畅的人机界面设计呈现给用户,便于用户快速调用所需功能,使用应用。
中间信息处理层,设计为信息处理功能,用于对传输信息进行诸如加密解密、CRC校验、数据压缩处理等功能。同时,该层还包含自定义的通信协议和网络发现服务协议的封装和解析还原功能。
下层传输层,设计为应用的信息传输功能,包含网络发现服务模块和传输管理等模块。通过合理选择TCP、UDP传输方案,将各种上层协议封装好的数据信息传输小组内其他设备,同时对接收的数据信息通过观察者模式告知上层应用框架,分发消息。
底层硬件管理层,设计为Wi-Fi Direct管理功能,用于向wpa_supplicant进程发送相应命令,调用Wi-Fi Direct的各项功能,监听Wi-Fi Direct驱动通过wpa_supplicant发出的各种事件,再通过Android Intent广播机制告知上层框架。
3 关键层次的实现
区别于基于其他技术的同类应用,基于Wi-Fi Direct文件共享系统最大的特点就是利用Wi-Fi Direct技术优势,即建立连接方便快捷,无需AP,传输速率高、覆盖面积广等特点。因此,操作Android系统底层Wi-Fi Direct功能的底层硬件管理模块是本系统的关键部分。
底层硬件管理层主要用于对本地Wi-Fi Direct硬件的调用和通信,是整个系统的核心也是上层部分功能实现的底层硬件基础,用于加载、激活底层Wi-Fi Direct硬件驱动,按需求操作Wi-Fi Direct各项功能,以及接收底层Wi-Fi Direct驱动的传出事件并通知上层应用执行相应处理。Android操作系统对Wi-Fi Direct功能的硬件驱动支持出现在Android 4.0及后续版本,由于Android系统为了维持API的稳定性以及对硬件访问权限的控制[4],Wi-Fi Direct的激活和关闭方式不同于传统的Wi-Fi操作,必须通过发送Action为Settings.ACTION_WIRELESS_SETTINGS的Intent,打开Wi-Fi设置界面启动或关闭Wi-Fi Direct功能,对于系统的独立性和便捷性、及用户体验都有极大的影响。为了能够实现直接激活和关闭Wi-Fi Direct底层硬件功能,本层采用Java反射机制,直接解析Android应用程序框架层中的wifip2pManager类,访问相应功能API,反射机制实现保护API调用代码如下:
void enableWifiP2p() {
Helper.useMethod(helper.getManager(), "enableP2p",
new Class[] { Channel.class },
new Object[] { helper.getChannel() });
}
void disableWifiP2p() {
Helper.useMethod(helper.getManager(), "disableP2p",
new Class[] { Channel.class },
new Object[] { helper.getChannel() });
}
enableWifiP2p()函数用于激活Wi-Fi Direct功能,disableWifiP2p()函数用于关闭Wi-Fi Direct功能,通过这两个函数,使本系统无需跳转到设置界面即可启动Wi-Fi Direct功能,提升了用户体验。
4 测试验证
本系统性能基本都符合设计预期,同其他无线个域网技术相比,采用Wi-Fi Direct实现信息传输和共享,无论在应用便携性和无需依赖无线热点方面以及在传输距离、速率等各项性能上都远远超过当前主流的无线技术和方案,如蓝牙、Wi-Fi等,足以可见Wi-Fi Direct技术的设计优势和应用前景。
[参考文献]
[1]桑亚楼.NFC技术及其应用.移动通信,2008(3):26~27.
[2]石明明,鲁周迅.三种无线通信协议综述.通信技术,2011,Vol44(07):72~73.
[3]胡伟.Android系统架构及其驱动研究.广州广播电视大学学报,2010,Vol10(04):97~98.
[4]金泰延,等.Android框架揭秘.北京:人民邮电出版社,2012.