一种基于Android的无线数字图像传输系统的制作方法

文档序号:16631540发布日期:2019-01-16 06:37阅读:255来源:国知局
一种基于Android的无线数字图像传输系统的制作方法

本发明是一种利用android系统实现服务器与多个客户端之间的无线图像互传的设计。此发明属于电子信息科学技术领域。



背景技术:

传统的教学与会议模式多数都是主讲人与听讲人之间一对多的模式,这种模式的弊端是很明显的,首先听讲人可能由于自身视力原因无法看清主讲人所演讲的远端ppt内容,其次是这种单一的听讲模式使得主讲人与听讲人之间,听讲人与听讲人之间无法共享彼此的本地文件。本发明则以ftp服务器作为枢纽,以c/s架构将听讲人与主讲人联系在了小世界网络里,方便网络内的所有人共享彼此文件,极大地提升了演讲的效率,具有一定的实用意义。

android是以linux为基础的半开源操作系统,其开源性及稳定性吸引了越来越多的移动设备。基于ieee802.11的无线网络迅速发展,在局域网内,2.4ghzism(industrysciencemedicine)频段具有良好的抗干扰能力,适用于小范围内的数据传输。



技术实现要素:

本发明所研究的无线数字图像传输系统是建立在以ftp服务器为枢纽,以c/s为运行架构,在同一网段内,一台android设备做服务器,多个android设备做客户端,通过无线模块自动组建局域网,服务器端在播放大量连续的图像文件的同时能够对屏幕进行截图并将相应文件存储到ftp服务器上,客户端能够通过下载服务器上文件来同步查看图像文件,还可查看过往文件。这样就能够实现多个终端同步浏览,可应用于现代多媒体教学和小型会议中。其具体的实施方案如下:一种基于android的无线数字图像传输系统包括服务器端的图像采集处理单元、服务器的搭建和配置单元、服务器与客户端的通信单元、客户数据处理单元、客户端图像文件的显示单元。

所述服务器端的图像采集处理单元用于对android设备显示图像进行全屏截取,然后根据相应格式进行压缩,并保存在ftp服务器配置的对应文件夹下以备后续处理。

所述服务器的搭建和配置单元用于搭建ftp服务器并进行管理员登录信息、普通用户登录信息、客户端最大连接数等相关参数的配置,并对已截取好的图像文件进行保存以备后续各个客户端进行存取操作。

所述服务器与客户端的通信单元用于实现ftp服务器与客户端之间的文件的上传和下载,并通过socket来实现多个客户端对于服务器的签到功能。

所述客户数据处理单元用于对客户端的登录信息进行增删改查,并对客户端登录时的个人信息进行校验。

所述客户端图像文件的显示单元用于对客户端下载到本地的图像文件进行显示,并对要上传到服务器端的图像文件进行预览。

作为一种设计方案,所述服务器端的图像采集处理单元包括自定义view截屏按钮、framebuffer图像获取、截屏图像的压缩存储。通过点击android设备上的自定义悬浮按钮来启动一个intent用于触发截屏事件,截屏事件由activity下开启的子线程来进行,获取到的截屏图像经转换和压缩等过程以png格式的图像保存在服务器端以供后续使用。

作为一种设计方案,所述服务器的搭建和配置单元包括ftp服务器的搭建、配置文件的导入。ftp服务器主要是通过compile(‘libs/ftpserver-core-1.0.6.jar’)将构建ftp服务器的第三方库导入进来,再通过相关对象的构造来搭建起ftp服务器的基本框架。ftp服务器配置文件的参数可以人为设定,并通过xml文件的格式导入到ftp服务器框架内。

作为一种设计方案,所述服务器与客户端的通信单元包括ftp服务器与客户端的上传下载通信连接、服务器与客户端的socket连接。ftp客户端对象是通过导入ftp4j包后创建的,客户端对象可以通过用户名和密码的方式登录到ftp服务器上来对图像进行下载,ftp服务器同时支持图像和文本文件的传输,传输的数据格式是文件格式。ftp服务器与客户端之间也可通过socket进行连接,本发明中ftp客户端就是将本地的ip地址以字符串的形式通过socket与ftp服务器进行连接,数据传输的媒介是inputstream和outputstream。

作为一种设计方案,所述客户数据处理单元包括各个客户端的登录信息的录入、客户端登录时与数据库数据的比对。客户端的用户名和密码可以通过contentvalues对象以键值对的形式存储在android设备内置的sqlite数据库中,管理员可以通过登录服务器来对客户端信息进行增删改查。客户端在登录时需要通过contentresolver对象来访问服务器,然后服务器通过数据库的比对结果来返回客户端的登录判断结果,从而确认客户端信息。

作为一种设计方案,所述客户端图像文件的显示单元包括本地图像文件上传时的预览、服务器端文件下载到客户端时的显示。当客户端进行上传时,会打开默认保存在相册中的本地文件,并通过intent打开系统默认软件来对图像文件进行预览。当客户端下载服务器端文件时,需要在界面的imageview中通过setimageresource方法将下载好的图像文件进行显示。

采用上述设计方案后,本发明的有益效果是:

本发明可以实现在小世界网络下,服务器与多个客户端的图像文件共享的功能,客户端既可以同步下载服务器端的图像文件用于显示,又可以将本地图像文件上传到服务器上用于其余客户端的共享,十分适用于由多人组成的小中型会议和教学场合。而且由于ftp服务器与客户端的文件传输是以文件的形式进行,所以在不同屏幕分辨率的android设备上不存在适配问题。

附图说明

图1是本发明提供的一种基于android的无线数字图像传输单元的设计的结构示意图;

图2是服务器端的图像采集处理单元的工作流程图;

图3是ftp服务器的主界面图;

图4是服务器端与客户端的通信结构示意图;

图5是客户数据录入过程和比对过程的结构示意图;

图6是客户端上传本地图像文件时预览过程的界面显示图;

图7a是服务器端截取的图像文件显示图;

图7b是客户端同步读取服务器端图像文件的界面显示图;

图8a是一种基于android的无线数字图像传输单元的设计的服务器端的程序框图;

图8b是一种基于android的无线数字图像传输单元的设计的客户端的程序框图;

具体实施方式

以下内容将结合附图和一些实例来对发明内容进行进一步解释说明,但这些实例和附图的用途和目的仅用来例举本发明,并非对本发明的实际保护范围构成任何形式的任何限定,更非将本发明的保护范围局限于此。

如图1所示,一种基于android的无线数字图像传输单元的设计包括服务器端的图像采集处理单元、服务器的搭建和配置单元、服务器与客户端的通信单元、客户数据处理单元、客户端图像文件的显示单元。

所述服务器端的图像采集处理单元用于对android设备framebuffer中的缓存图像进行全屏截取,然后根据相应格式进行压缩转换,并通过程序设计将图像文件保存在ftp服务器配置的对应文件夹下以供后续处理。

所述服务器的搭建和配置单元,用于搭建ftp服务器的整体框架,并将管理员登录信息、普通用户登录信息、客户端最大连接数、图像最大传输速率等参数以配置文件的方式导入到ftp服务器中,从而完善了ftp服务器的构建。

所述服务器与客户端的通信单元,用于实现ftp服务器与客户端之间的文件的上传与下载,并可通过socket来实现多个客户端分时登录到服务器时的签到功能。

所述客户数据处理单元,用于对客户端的登录信息进行提前录入,也可用于管理员登录对客户端的登录信息进行增删改查,并对客户端登录时的个人信息进行校验。

所述客户端图像文件的显示单元,用于对从服务器端下载到本地的图像文件进行显示,并对客户端要上传至服务器端的图像文件进行预览。

图2是服务器端图像采集处理单元的工作流程图。android是工作在保护模式下的,用户进程无法使用显卡直接进行写屏,因此android抽象出framebuffer设备共用户态进程进行屏幕的操作,用户可以将framebuffer看成是一块内存,既可以向其写数据也可以从中读取数据。android4.0下framebuffer的设备节点为/dev/graphics/fb0,服务器端的设备需要root后再根据pixelformat将设备节点的图像缓存进行bgra转化,bgr分别为蓝绿红,a为透明度,转化后的图像,即可保存在对应配置的文件夹下。图像文件的截取是通过自定义view实现的,自定义view是通过继承linearlayout实现的,其表现形式为一个位于左上角的图标,用户可以通过点击此图标来开启一个延时启动的截屏线程,延时的作用是为了在截取图像文件的过程中将左上角的截屏图标进行显隐,从而得到完整图像文件。

图3是ftp服务器的主界面图。由图可知,截屏按钮位于左上角并以图标的形式存在,ftp服务器主界面包含三个按钮,第一个按钮用于新建一个ftp服务器的对象,并将配置文件进行导入,整个过程是在子线程中完成的,ftpserver.start()开启服务器后,会通过handler通知主线程显示一个toast用来通知用户ftp服务器开启,当用户再次点击的时候也会通过handler通知用户服务器已开启。第二个按钮用于关闭ftp服务器,通知方式与开启ftp服务器类似。第三个按钮用于获取客户端的连接数和ip地址,用户可以通过将ip地址作为签到的唯一表示符以字符串的形式发送到服务器,服务器在获取到字符串后会通知ui线程添加到listview中,listview的显示在子activity中。

图4是服务器端与客户端的通信结构示意图。通信结构主要分为两个部分,第一个是ftp服务器与客户端的图像文件上传下载的通信部分,客户端可以通过ftpclient.connect(服务器端ip,端口号)、ftpclient.login(用户名,密码)和配置好的本地文件夹登录到ftp服务器端并通过ftpclient.download()来对图像文件进行下载。同时在登录后也可用ftpclient.upload()来上传本地图像文件。第二个就是socket通信部分,服务器与客户端分别创建serversocket对象和socket对象,二者通过tcp/ip协议下的三次握手过程完成连接,并通过bufferreader和printwriter来对数据进行读写。

图5是客户数据录入过程和比对过程的结构示意图。录入和比对过程都是以内容提供器作为依托,内容提供器(contentprivider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。管理员可以通过contentvalues.put()方法将客户端的用户名和密码以键值对的形式添加到内容提供器中,并且也可以通过contentresolver.delete()、contentresolver.update()来对已添加的客户端数据进行删除和更新操作。客户端在登录的过程中是通过contentresolver.query()来访问内容提供器的uri从而实现对内容提供器下的数据库的查询功能,具体的查询工作是有cursor对象完成的,cursor对象使用结束后要在程序中手动关闭,否则会出现内存泄漏的情况。

图6是客户端上传本地图片时预览过程的界面显示图,由图可知,预览过程是在相册软件中打开的,上传的本地文件库默认为系统相册。

图7a和图7b分别是服务器截取图像文件的界面图和客户端同步读取图像文件的界面图。由图可知,服务器端在截图的过程中通过一个延时执行的线程实现了隐藏按钮的功能,所以客户端的同步读取过程并没有截到截屏按钮,从而保证了图像文件的完整性。而且经检测,同步过程基本保持在一秒以内,基本符合教学和会议的情景需求。

图8a是一种基于android的无线数字图像传输单元的设计的服务器端的程序框图;由图可知,整个程序框图是由四部分部分组成。第一部分是截屏文件的获取与处理,第二部分是ftp服务器的搭建,第三部分是socket通信单元中服务器的搭建,第四部分是在内容提供器中将客户端的登录信息录入的过程。

第一部分的主要思路是指在服务器端系统初始化后,首先通过createview()将截屏按钮布局在主界面上并通过setonclicklistener来实现对截屏按钮的监听,如果未触发,则回到上一步等待触发,如果触发,则通过getandsavecurrentimage()来所实现对framebuffer中的缓存图像数据进行获取、压缩、转换并以png的格式保存在配置文件夹下,图像文件保存的路径是通过handler以字符串的形式显示在ui线程中的listview中的。

第二部分的主要思路是通过对start按钮的监听来控制是否创建ftp服务器,如果按钮被触发,系统会通过serverfactory.createserver()来创建ftp服务器并将相应配置文件进行导入,之后通过startftpserver(ip)来开启ftp服务器。

第三部分的主要思路是服务器端可以通过新建一个serversocket对象来构建一个socket服务端,并且通过bufferreader将socket客户端传来的ip地址以字符串的形式显示在子acitivity的界面上。

第四部分的主要思路是contentprivider的创建,服务器通过继承contentprivider类并实现query、insert、update、delete、gettype方法来完成构建内容提供器的工作。服务器端主要完成的工作是通过contentvalues将客户端用户名和密码以键值对的形式录入到内容提供器的数据库内。

图8b是一种基于android的无线数字图像传输单元的设计的客户端的程序框图;由图可知,客户端系统初始化后,用户会通过loginactivity进行登录,通过与服务器端数据库的比对来判断是为有效数据,如果不符合,则无法登录,用户需检查登录信息是否正确,如果符合,则会登录到ftp服务器进行后续操作,整个后续操作由四部分组成。第一部分是对要上传的图像文件的预览过程,第二部分是ftp客户端同步读取ftp服务器的图像文件的过程,第三部分是获取ftp服务器上所有文件的过程,第四部分是socket通信单元中客户端的搭建。

第一部分的主要思路是通过点击主acitivity的第一个按钮可以触发一个intent用于打开系统相册并对多个图像文件进行预览,点击具体的图像文件的同时会将图像文件的本地保存路径作为参数传入ftpclient.upload()方法中,从而实现图像文件的上传。需要注意的是,本地文件的真实保存路径与用户看到的文件路径并不是相同的,需要通过getrealpathfromuri()方法来进行转化。

第二部分的主要思路是在ftp服务器端截取图片后会以从1开始的递增序列为编号保存在配置的服务器端文件夹下,用户通过点击第二个按钮可以从服务器端也以递增序号为顺序来获取图像文件,同步过程就是这样实现的。之后客户端会将本地文件路径传入imageview的setimageresource()方法用于在imageview中显示。

第三部分的主要思路是ftp客户端在登录到服务器后会通过ftpfile[]list=client.list("/")将服务器端的所有文件以list的形式显示出来,通过对列表里具体item的点击即可实现对具体文件的下载。其主要作用就是通过一人上传多人下载这种模式来实现小范围的多人共享。

第四部分的主要思路是客户端可以通过创建一个socket对象来构建一个socket客户端,并通过printwriter将自身ip地址作为唯一标识发送到服务器端用于实现签到功能。

经过实验测试后,此程序基本满足本发明的所有要求。

以上就是本发明对具体实施方式的详尽介绍。

应当理解,这些实例的用途仅用于说明本发明而非意欲限制本发明的保护范围。此外,也应理解,在阅读了本发明对技术内容之后,本领域技术人员可以对本发明做各种改动或变型,所有的这些等价形式同样落于本申请所附权利要求书所限定的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1