当前位置:首页 > 通信技术 > 通信网络
[导读] 智能手机普及率的提升,催生了基于智能操作平台的附加产物。而Android平台为开源的手机开发平台,通过对Android平台的设计开发,使智能手机获得增强化的个性服务。提出了基于Android手机

智能手机普及率的提升,催生了基于智能操作平台的附加产物。而Android平台为开源的手机开发平台,通过对Android平台的设计开发,使智能手机获得增强化的个性服务。提出了基于Android手机的无线控制系统,介绍了整体结构框架,分析了各功能模块的具体实现,并在实际设备中进行测试。实现了基于Android手机对设备的远程访问和控制。

引言

近年来,智能手机在全球范围内迅速普及。根据市场研究公司尼尔森发布的《2013移动消费者报告》显示,中国智能手机普及率已达到66%,已超越英国和美国的普及率。随着信息科技的快速发展,人们生活水平的提高,对电子产品的功能要求也越来越高。人们希望通过简单方便的操作,对周围设备进行访问控制。Android是一种开源的手机操作系统,具有强大的应用层API和丰富的传感器功能,其开放的平台有利于开发者开发出各类应用软件,增加手机的个性化服务。本文将Android手机与PC端联系起来,介绍了一种基于Android手机的无线控制系统。在该系统中,Android手机利用周边无线通信资源与其他设备进行交互,可进行无线鼠标控制、无线键盘输入、文件传输操作等。

1 Android的系统架构

Android的系统架构采用了由下至上的分层的结构,使下层为上层提供统一的服务。各层各司其职,本层及以下层发生变化不会影响上层,避免了各层的差异,图1是一张公开的关于Android体系结构架构图:

图1 Android的系统架构

从图中可以看出,Android系统分为四个层面,从底层到高层分别是:

Linux核心层(LINUX KERNEL)

Linux核心层负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。Android的核心系统服务依赖于Linux2.6内核,同时作为硬件和软件层之间的抽象层,隐藏了具体的硬件特性,并为上一层提供统一的标准服务。

库(LIBRARIES)和运行环境层(ANDROID RUNTIME)

库和运行环境层包含了标准C函数库Libc、 OpenSSL、SQLite等以及支持游戏开发2D SGL和3D OpenGL|ES,并负责解释和执行生成的Dalvik格式的字节码。核心库提供了Java编程语言核心库的大多数功能。每一个Android应用程序都在自己的进程中运行,并拥有各自独立的Dalvik虚拟机实例。

应用程序框架层(APPLICATION FRAMEWORK)

普通开发这可以使用Android基本应用程序使用的系统API,Android应用框架中的各个模块都可以被复用,各种服务也可以被复用。该层复用机制使用户可以方便的替换程序组件。

应用程序层(APPLICATIONS)

应用程序层内含有Android内置的Google Maps、E-mail、即时通信工具、浏览器等,开发人员开发的程序也将置于该层,并同内置程序有平等的位置,可以相互调用和替换。这类应用基本都是通过Java语言编写的,能够独立的完成某些功能的应用程序。开发人员可使用应用框架提供的API编写自己的应用程序。

2系统实现

设计原理

基于Android手机的无线控制软件主要运用到Socket通信原理。Socket是通信的基本操作单元,主要有两种操作方式:面向连接和无连接。面向连接的Socket操作使用TCP协议,此模式下必须先连接上目的地的Socket,此操作模式下所有所发信息都会在另一端以同样的顺序被接受,安全性高。无连接的Socket操作无需连接一个目的Socket,只做简单的投出数据报,但是操作数据安全性不高[。

综合考虑本设计采用面向连接的Socket操作,在手机端和PC端建立一个Socket连接,当手机端和PC端之间发送不同的命令时,手机和PC机做出不同的响应,并返回响应的数据。

系统的总体工作流程图如图2所示:

图2 系统总体工作流程

PC端作为服务器先运行起来,通过WIFI或蓝牙设备在指定端口处进行监听。随后启动Android端程序,在Android端输入口令和PC端IP地址,并发送给服务器。当服务器接收的口令和IP地址与预置信息相同,验证信息无误后,返回数据信号,此时允许建立连接。现在便可在PC端和Android端进行无线控制,包括命令传送和文件传输。

为了提高响应速度,该系统在多处使用了子线程。此方法避免了事件间的盲等状态,可异步处理不同事件。如果当前没有处理任务,便可将处理器时间让给其他通信任务。提高了程序的运行效率以及CPU的利用率,同时减少服务器响应时间。

Android手机端设计

在Android手机端运行该软件XXX Client后,进入鼠标界面ControlAcTIvity,该界面同鼠标相对应,有左键、滚标、右键。在用该手机进行控制PC端之前,还需对手机进行通信设置,此时进入菜单栏,选择connecTIons,进入连接设置界面,新添加一个WIFI连接。在Android端输入用户名、服务端IP和端口号,通过服务器验证后,便和PC端建立好Socket连接。

当服务端和客户端建立好Socket连接后,他们之间可以相互发送命令和接受命令,目前支持图3中所示的控制命令。

图3 基于Android的无线控制系统支持命令

AuthentificationAction:认证命令。客户端向服务端发送认证的密码。

AuthentificationResponseAction:认证响应命令。服务端验证客户端是否正确的,返回验证的结果。

FileExploreRequestAction:打开文件命令。客户端请求打开服务端文件的命令。客户端发送这个命令请求打开服务端的文件。

FileExploreResponseAction:服务端响应客户端打开文件的命令。

KeyboardAction:键盘命令。

MouseClickAction:鼠标点击命令。

MouseMoveAction:鼠标移动命令。

MouseWheelAction:鼠标滚轮命令。

连接好Android端和PC端后通信,返回至鼠标界面,鼠标点击事件通过客户端发送特定的命令到服务端,触发MouseClickAction事件,服务端通过Java中专门控制鼠标键盘的Robot类[6],将事件发送到Android端,从而实现Android端对PC端鼠标控制。

鼠标滑轮事件MouseWheelAction和键盘事件KeyboardAction命令均需要用到Robot类向服务端发送事件,该命令同MouseClickAction触发事件相似,从而实现鼠标滚标事件和键盘事件。

除了鼠标点击和鼠标滚标外的黑色区域是一个ControlView。当手指在ControlView里面移动时,触发事件onTouchMoveMouseMove,根据moveXFinal和moveYFinal计算出鼠标移动距离,并发送到服务端:

dos.writeByte(MOUSE_MOVE);

dos.writeShort(this.moveX);

dos.writeShort(this.moveY);

当服务端接收到该命令时,会触发moveMouse方法,然后通过服务端的Robot类,向系统发送移动事件。

文件传输功能在FileExplorerActivity中实现,客户端向服务端发送请求打开目录命令,服务端返回文件列表的响应命令。当客户端点击的文件不是一个目录,而是一个文件时,服务端就执行打开该文件的命令。

3 系统测试

该系统采用了C/S的结构来进行通信实现,Android端和PC端通过Socket进行网络连接通信。Android端做成APP模式,运行时通过WIFI或蓝牙连接服务端,在PC端使用Java的OSGi框架。在Android手机上经过反复测试,手机连接Server的时间小于3s,PC端对手机控制命令的响应时间小于5s,并能实现手机端对PC端的访问控制、文件操作。Android端鼠标界面、访问控制和文件操作过程如图4所示。

4 结语

智能手机在世界范围内的快速普及,加上科学技术的高速发展,让人们对智能手机的功能要求越发靠近日常生活。该系统在运行方面基本能完成所要求操作,但设计界面还不够完善,在常规使用中应有合适的操作界面,同时还应完善操作功能,如在本地进行新增、修改、删除的操作。为便于未来用户使用,该系统有待于今后深入探讨和研究。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭