需要源码可以滴滴我
目录
摘要
近些年来,智能手机的快速发展和普及使其成为当代人们生活的必需品之一,使得越来越多的人面向智能手机开发应用程序。本文针对使用搭载Android操作系统手机的用户的需求,设计一款无线鼠标APP。通过对应用商店已有的类似APP的调查研究,并结合Android开发和软件开发的相关技术与方法来实现这一目标。本文首先简述了无线鼠标APP的开发背景、现状及其使用意义,然后给出了初步的开发方案并对项目的关键原理与技术——Socket和Android开发进行简单介绍,为项目后续实际开发提供了理论基础和技术参考。
关键词: Android APP;无线鼠标;软件开发
一、前言
(一)项目背景
近些年来,智能手机的快速发展和普及使其成为当代人们生活的必需品之一。由此催生了大量的智能手机应用程序,这些应用程序的功能涵盖了人们的社交、娱乐、工作等各个方面。鼠标和键盘则是人们使用计算机不可或缺的输入设备,鼠标和键盘经历了从有线到无线的转变,提升了不少使用体验。倘若能把两者结合到同一个智能手机应用程序上,使得智能手机既能模拟鼠标,又能模拟键盘、触控板,对计算机进行各种输入操作,且有着良好的使用体验,那么一定能受到人们的欢迎。相较于鼠标、键盘、遥控笔等需要额外携带的设备,不收费的手机应用程序更易被人们接受,且应用程序改进与迭代较为容易。
(二)Android开发现状
Android是由谷歌于2007年推出的操作系统,主要使用于移动设备,例如智能手机和平板电脑。在2017年谷歌宣布Kotlin正式成为Android官方支持开发语言之前,Android应用程序主要是用Java编写的。Android目前是市场占有率最高的智能手机操作系统,有着强大的开发者社区和成熟的技术支持,但其设备的碎片化是最为人们所诟病的问题。搭载Android的设备,如屏幕大小、颜色深度、键盘值和内存都有很大差别。鉴于和Android兼容的手机众多,以及不同配置文件、配置和Android API的选择,开发者需要为各种设备开发不同的程序版本,这导致一个项目往往会有许多可执行文件。这通常被称为设备碎片化,会使得经营成本大幅增加,因为其牵扯到软件的开发、测试、签署、交付和维护。碎片化限制了Java应用程序设备的兼容性[10]。因此,这就要求Android开发者要针对不同尺寸、搭载不同版本Android手机操作系统的手机做好适配工作,保证程序能在大多数设备上运行。
(三)设计并实现无线鼠标APP的意义
近些年,移动开发的热度较之前稍有减弱,市场上移动开发程序员的缺口也越来越小,但移动开发的地位依然重要。和其它移动终端操作系统相比,Android平台的开放性和便捷性优势巨大,且发展速度丝毫没有减缓的趋势,市场占有率居高不下。熟悉掌握Android平台应用程序的开发流程和方法有助于提高自身竞争力和扩展知识面。Android平台无线鼠标应用的设计与实现的技术核心是socket编程和Android开发,在开发这样一款无线鼠标应用的过程,可以熟悉这些关键技术方面的有关知识,并增长软件开发的经验。
二、无线鼠标APP现状
方剑、李晓蕾在《基于Android平台的手机虚拟键鼠的设计与实现》[1]中采用面向对象的分析与设计方法,阐述了基于Android平台的虚拟键盘键鼠应用程序的开发方法和过程。实现了键盘助手、鼠标助手、PPT助手以及远程连接PC四项功能。而在各大Android应用商店中也有不少Android无线鼠标应用,这些APP实现的功能都大同小异,除了基本的模拟键盘、鼠标、触控板功能以外,还有各自的特色,比如自动搜索附近的WiFi网络、保存连接记录、截屏等。我们也需要在实现模拟鼠标、键盘等基本功能的基础上,充分考虑人们日常使用情况,提供一些人性化且富有实用性的功能,让我们的无线鼠标APP有与众不同之处。
三、设计方案
李杜和裘杰在其各自的硕士论文中给出的无线鼠标APP的设计方案是一致的,核心是Scoket网络编程,采用客户机/服务器的工作模式。大致的工作过程为:智能手机和计算机连接到同一个无线局域网(WLAN),智能手机上的无线鼠标APP通过指定IP地址和端口号建立socket通信连接,APP负责接收用户在手机上的鼠标键盘操作,传输给socket,计算机上的服务端则负责读取socket的内容,并按照相关指令在计算机上进行对应的鼠标键盘动作。而市面上已经存在的无线鼠标APP也大致如此,它们都采用了固定端口号,只要求用户输入计算机IP的方式来建立socket连接。因此在本项目中,工作分为两部分:为PC编写一个服务端程序;编写Android智能手机上的APP。
(一)服务端
运行在PC上的服务端程序使用Eclipse集成开发环境以及Java编程语言进行开发,主要功能是根据PC的IP地址以及给定的端口号创建一个套接字,然后监听来自客户端APP的请求来执行对应的鼠标、键盘操作。服务端的关键是实现socket的多线程处理,因为要模拟键盘的组合键功能,仅使用一个线程会造成阻塞,导致不可预见的错误和功能缺失。
(二)客户端
1.基于Android开发客户端APP
本项目的主体任务便是Android无线鼠标APP的设计与实现,集成开发环境选择官方Google推崇的Android Stduio,编程语言仍然是Java,只不过需要借助Android SDK来进行开发。初步设想的APP基本功能如下:
·支持鼠标光标移动
·支持鼠标左右键点击
·支持鼠标中键滚动和点击
·支持双点触控,实现上下左右滚动
·模拟标准的PC键盘敲击
·模拟大面积的触控板
APP主界面采用目前主流的底部导航栏切换选项卡的方式来实现鼠标、键盘等功能之间的切换,初始设想界面如图3.1所示,图中还包含了用于展示点击操作反馈的水波效果。作为本APP特色之一的仿PC键盘初步界面如图3.2所示。
图 3.1 主界面 图 3.2 键盘
无线鼠标APP工作流程大致为:提示用户输入服务端显示的PC主机IP地址以建立socket连接,然后进入主界面,监听用户对鼠标、键盘、触控的点击、双击、滑动等操作,发送不同的控制指令到运行在PC上的服务端程序,以达到无线鼠标、键盘的效果。
2.Android APP性能优化
在开发过程中将基本功能开发完成后,需要对APP性能进行优化,因为一部手机的软硬件资源是有限的,任何一个开发者都应当注意对自己开发的APP进行性能优化。张晟的《Android开发的性能优化》[7]中提出,注重 Android 开发性能优化分析,有利于优化 Android 系统实际应用中的服务功能,为其未来更好的推广使用打下坚实的基础。还能提高开发问题处理效率,促进Android开发能够达到预期效果,还能改善用户体验。Android开发性能优化主要有以下几点:
·保持内存的高效使用
·了解Android开发中的内存管理原理, 优化管理方式
·提高Lint工具利用效率,实现开发中 资源及冗余UI布局优化
·注重UI卡顿分析,优化UI性能
·加强Android内存泄漏性能分析与优化
四、涉及的技术与原理
基于Andorid平台的无线鼠标APP的主要功能是模拟触控板、鼠标以及键盘,实现对PC的控制、输入操作。主要使用的技术是Socket编程和Android开发。
(一)Socket
与HTTP请求/响应的工作模式不同。Socket通信是采用客户机/服务器(Client/Server)的工作模式,利用Socket网络通信接口来实现客户机和服务器的通信。Socket接口是TCP/IP网络API,它在OSI(Open System Interconnection,开放式系统互联参考模型)模型中主要集中在传输层和会话层。Socket通常也称为“套接字”,用于描述IP地址和端口,是一个通信连接句柄。应用程序的通信是通过“套接字”向网络发出请求或者应答网络请求[3]。Socket类型主要有流式套接字(Stream Socket)、数据报套接字(Datagram Socket)和原始套接字(Raw Socket)3种。
(二)Android开发
Android开发指的是Android平台上应用程序的制作,和一般的软件开发流程相同,都包含需求分析、概要设计、详细设计、编码、测试等过程。在2013年谷歌推出新的Android开发环境——Android Studio之前,Android主要的开发环境是Eclipse+ADT,开发语言是主要是Java(Kotlin也已正式成为Google官方支持的Androd开发语言)。
·应用程序常用基础组件如按钮(Button)、文本框(TextView)、编辑框
(EditView)等已经集成在Android SDK中,在开发时可以直接使用,还可以根据不同需求在这些组件基础之上设计自定义组件。
·与其他运行在Java虚拟机(JVM)上的Java应用程序不同,Android应用程序原本运行在Dalvik虚拟机上,Android4.4之后Google使用ART(Android Runtime)模式来代替Dalvik模式,相比Dalvik,ART能显著提升系统性能、提高应用程序运行速度、延长电池续航、支持更低水平的硬件。
·Android平台还集成了其它许多必备功能,譬如浏览器、SQLite数据库、多媒体、GPS、蓝牙、网络等,这使得开发者能够利用Android开发平台开发出各式各样的应用程序。
五、总结
本文对无线鼠标APP项目背景、现状、设计方案、涉及的技术与原理等方面进行了概述。主要概述内容为:
·无线鼠标APP的需求背景及其使用价值。
·无线鼠标APP的研究与应用商店中的情况。
·无线鼠标APP的界面设计、功能实现、用户体验等解决方案与构想。
·无线鼠标APP设计与实现中的核心技术——Scoket编程。
通过对以上内容的研究和概述,有助于明确无线鼠标APP项目的实施办法
和开发方向,为之后实际进行操作提供理论和技术指导。最为重要的是避免和其它无线鼠标APP严重同质化,尽量加入新的功能以及带给用户独特的体验。
文献综述参考文献
[1]方剑,李晓蕾. 基于Android平台的手机虚拟键鼠的设计与实现[J]. 硅谷,2013,6(11):25+13.
[2]何进,谢松巍.基于Socket的TCP/IP网络通讯模式研究[J].计算机应用研究,2001,(08):134-135
[3]李杜. 基于Android平台的无线鼠标设计与实现[D].兰州大学,2012.
[4]罗仕鉴,龚蓉蓉,朱上上. 面向用户体验的手持移动设备软件界面设计[J]. 计算机辅助设计
与图形学学报,2010,22(06):1033-1041.
[5]罗亚非. 基于TCP的Socket多线程通信[J]. 电脑知识与技术,2009,5(03):563-565+598.
[6]裘杰. 利用Android手机仿真PC鼠标的设计与实现[D].电子科技大学,2014.
[7]张晟. Android开发的性能优化[J]. 电子技术与软件工程,2017,(05):68.
[8]Abhijit A.Sawant,Dr. B. B.Meshram. Network programming in Java using Socket[J],International Journal of Engineering Research and Applications, Vol.3(1),2013,2248-9622.
[9]Limi Kalita. Socket Programming [J],International Journal of Computer Science and Information Technologies,Vol. 5(3) , 2014, 4802-4807.
[10]Richa Sharma. Development Platforms for Mobile Applications:Status and Trends[J]. International Journal of Computers & Technology,Vol.3(1),2012,2277-3061.