CN113778714A - 一种Linux兼容Android的共享剪切板方法及装置 - Google Patents
一种Linux兼容Android的共享剪切板方法及装置 Download PDFInfo
- Publication number
- CN113778714A CN113778714A CN202111067657.6A CN202111067657A CN113778714A CN 113778714 A CN113778714 A CN 113778714A CN 202111067657 A CN202111067657 A CN 202111067657A CN 113778714 A CN113778714 A CN 113778714A
- Authority
- CN
- China
- Prior art keywords
- clipboard
- linux
- data
- android
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000008569 process Effects 0.000 claims abstract description 79
- 230000008859 change Effects 0.000 claims abstract description 56
- 230000001360 synchronised effect Effects 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 31
- 230000006399 behavior Effects 0.000 claims description 24
- 238000012544 monitoring process Methods 0.000 claims description 19
- 230000009131 signaling function Effects 0.000 claims description 18
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims 1
- 230000010076 replication Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000026676 system process Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种Linux兼容Android的共享剪切板方法及装置,Android系统启用第一服务进程,第一服务进程监测Android系统剪切板数据变化;当Android系统剪切板数据变化时,将获得的Android系统剪切板内容写入Linux的剪切板;Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化;当Linux系统剪切板数据变化时,将获得的Linux系统剪切板内容写入Android的剪切板。Android系统和Linux系统相互共享剪切板,使得剪切板内容同步。
Description
技术领域
本发明涉及计算机操作系统领域,尤其涉及一种Linux兼容Android的共享剪切板方法及装置。
背景技术
用户在使用桌面操作系统环境时,复制文字和粘贴文字是常用操作,非常方便。但由于Linux兼容Android的环境中Android系统和Linux系统是相互独立的,两个系统的剪切板也是独立的,因此Android应用只能使用Android系统的剪切板,Linux系统的应用只能使用Linux系统的剪切板,无法从Android应用复制文字然后粘贴到Linux应用或者从Linux应用里复制文字然后粘贴到Android应用,两个系统应用的剪切板内容不能互通。
发明内容
为了解决如何在Linux兼容Android环境中,从Android应用复制文字然后粘贴到Linux应用或者从Linux应用里复制文字然后粘贴到Android应用的问题,本发明提供了一种Linux兼容Android的共享剪切板方法及装置。
一方面,本发明提供一种Linux兼容Android的共享剪切板方法,所述方法为:
Android系统启用第一服务进程,第一服务进程监测Android系统剪切板数据变化;当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字发送给Linux;
Linux接收数据包并解析,将获得的Android系统剪切板内容写入Linux的剪切板;
Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化;当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若是,则提取剪切板内容,将剪切板内容封装后通过套接字发送给Android;
Android接收数据包并解析,将获得的Linux系统剪切板内容写入Android的剪切板。
进一步地,所述方法中的当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字发送给Linux,具体为:
当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,如果不是,则不予处理;如果是,获取Android系统剪切板数据的对象,通过对象获得剪切板内容,将剪切板内容封装成数据结构体,再将数据结构体转换成数据流,通过套接字发送给Linux。
进一步地,所述方法中的Linux接收数据包并解析,将获得的Android系统剪切板内容写入Linux的剪切板,具体为:
Linux接收数据包,将数据包反序列后转换成数据结构体;
Linux剪切板的信号函数发出剪切板内容变化的信号,触发与信号函数关联的槽函数,槽函数通过调用剪切板的更新文本函数,将数据结构体的内容写入Linux的剪切板。
进一步地,所述方法还包括:
当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若不是,则表示Linux与Android的剪切板数据已经同步。
进一步地,Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化,具体为:
第二服务进程获得Linux系统剪切板对象,通过监听剪切板对象来监视剪切板内容变化,每当剪切板内容改变时,剪切板的信号函数发送数据变化信号。
另一方面,本发明提供一种Linux兼容Android的共享剪切板装置,所述装置包括:
存储器,用于存储程序;
处理器,用于执行所述存储器中存储的程序,当所述存储器中存储的程序被执行时,所述处理器用于:
Android系统启用第一服务进程,第一服务进程监测Android系统剪切板数据变化;当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字发送给Linux;
Linux接收数据包并解析,将获得的Android系统剪切板内容写入Linux的剪切板;
Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化;当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若是,则提取剪切板内容,将剪切板内容封装后通过套接字发送给Android;
Android接收数据包并解析,将获得的Linux系统剪切板内容写入Android的剪切板。
进一步地,所述处理器用于:
当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,如果不是,则不予处理;如果是,获取Android系统剪切板数据的对象,通过对象获得剪切板内容,将剪切板内容封装成数据结构体,再将数据结构体转换成数据流,通过套接字发送给Linux。
进一步地,所述处理器用于:
Linux接收数据包,将数据包反序列后转换成数据结构体;
Linux剪切板的信号函数发出剪切板内容变化的信号,触发与信号函数关联的槽函数,槽函数通过调用剪切板的更新文本函数,将数据结构体的内容写入Linux的剪切板。
进一步地,所述处理器用于:
当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若不是,则表示Linux与Android的剪切板数据已经同步。
进一步地,所述处理器用于:
第二服务进程获得Linux系统剪切板对象,通过监听剪切板对象来监视剪切板内容变化,每当剪切板内容改变时,剪切板的信号函数发送数据变化信号。
本发明与现有技术相比,具有以下优点:
在Android系统内监听Android剪切板的数据变化,当数据改变时,将剪切板内容发送给Linux系统的进程,Linux系统进程将接收到的数据写入Linux系统剪切板。同理Linux系统内监听Linux剪切板的数据变化,当数据改变时,将剪切板内容发送给Android系统的进程,Android系统进程将接收到的数据写入Android系统剪切板,这样便达到了两个系统的剪切板内容互通,保持同步的目的。
附图说明
图1是本发明实施例提供的一种Linux兼容Android的共享剪切板方法示意图;
图2是本发明实施例提供的一种Linux兼容Android的共享剪切板装置组成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
对于在Linux操作系统上兼容运行Android的环境来说,Android运行环境是运行在容器中的。
通过容器技术可以在Linux系统运行一个新的Linux系统(包括其他基于Linux系统定制的系统,如Android),容器使得客户机系统和主机系统相互隔离。与传统的基于虚拟机技术的方案不同,在容器技术中,客户系统与主机系统共享CPU、内存、存储等资源,资源开销很低。此外,通过适当的配置,还能使客户系统直接访问主机的硬件资源,进一步提升客户系统的性能。
图1是本发明实施例提供的一种Linux兼容Android的共享剪切板方法示意图,所述方法为:
Android系统启用第一服务进程,第一服务进程监测Android系统剪切板数据变化;当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字发送给Linux;
Linux接收数据包并解析,将获得的Android系统剪切板内容写入Linux的剪切板;
Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化;当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若是,则提取剪切板内容,将剪切板内容封装后通过套接字发送给Android;
Android接收数据包并解析,将获得的Linux系统剪切板内容写入Android的剪切板。
在Android系统内监听Android剪切板的数据变化,当数据改变时,将Android剪切板内容写入Linux系统剪切板的过程如下。
1、Linux系统启动服务进程,并启动本地套接字服务端。
在Linux系统上启动一个后台服务进程,在此服务进程启动一个unix socketserver(即本地套接字服务端,用于Linux进程间通信),此套接字服务端指定了一个固定路径作为通信桥梁,Android侧的进程就可以使用这个固定路径连接上它并发送数据包给这个套接字服务端了。unix socket server启动以后就会等待Android侧的进程连接到它,如果没有任何连接,它就一直阻塞,等待连接。当Android侧的进程连接上它并向它发送数据包时,阻塞就被解除,继续执行相应的数据处理逻辑。
2、Android系统内部监听系统剪切板对象。
Android系统里启动一个服务进程AppService,此服务是Android系统与Linux系统通信的中间层,它专门处理Linux系统发送过来的请求以及向Linux发送请求和数据。在AppService里创建一个专用于处理剪切板逻辑的管理类ClipDataManager,在ClipDataManager里通过调用Context.getSystemService获取到Android框架层的服务ClipboardManager,调用ClipboardManager的addPrimaryClipChangedListener函数给系统剪切板添加监听,并将监听对象设置为ClipDataManager本身,当系统剪切板数据变化时,ClipboardManager就会马上通知ClipDataManager,执行ClipDataManager的接口函数onPrimaryClipChanged。
3、ClipDataManager获取剪切板内容,封装并序列化,发送给Linux系统。
当系统剪切板数据变化时,ClipDataManager执行回调接口onPrimaryClipChanged,由于Linux系统发送剪切板数据过来要求Android系统同步也会导致其剪切板数据变化,所以在ClipDataManager的回调接口onPrimaryClipChanged里,首先判断是否为同步Linux剪切板数据所产生的,如果是则不需要再次同步给Linux系统,所以不处理;如果不是就表示用户复制文字所产生的变化,于是调用ClipboardManager对象的getPrimaryClip函数获取系统剪切板数据的对象ClipData,通过ClipData就获得了剪切板内的内容。将剪切板内容封装到一个数据结构体SetClipboard里,结构体如下:
message SetClipboard{
required string content=1;
}
其中content就是剪切板内容。SetClipboard结构体封装好以后,调用protobuffer库,将SetClipboard数据结构转换成为高效可网络传输的数据流,然后通过unix socket server指定的路径创建一个socket客户端,连接到socket服务端,将序列化后的数据流发送给Linux系统的socket服务端。
4、Socket服务端接收数据,反序列化为结构体。
Linux系统的socket server接收到socket客户端的连接请求,阻塞被解除,读取socket客户端发送过来的数据流,将接收到的数据流保存到一个内部缓冲区,然后调用protobuffer库对数据流进行反序列化,让其转换成为可识别的数据结构体SetClipboard。在后台进程里有一个消息处理中心HandlerCenter,它专门处理Android系统发过来的各种数据请求,把结构体SetClipboard传递给HandlerCenter,HandlerCenter就获取了Android系统需要Linux系统同步剪切板内容,于是将数据结构体SetClipboard交给专门处理剪切板逻辑的类ClipboardHandler来处理。
5、ClipboardHandler设置Linux剪切板内容。
ClipboardHandler首先创建一个设置剪切板的信号函数signSetText和一个执行设置内容的槽函数setClipboardText,把信号函数signSetText和槽函数setClipboardText关联起来,当ClipboardHandler发出剪切板内容变化的信号时,槽函数setClipboardText会马上执行。槽函数setClipboardText调用QApplication的clipboard函数得到剪切板对象QClipboard,QApplication是QT平台的内置类,表示应用上下文环境,QClipboard是QT平台提供的剪切板类,可用于获取剪切板内容或设置剪切板内容,QT是一个跨平台的C++应用和UI开发库。调用QClipboard的setText函数并将数据结构体SetClipboard的content作为参数传入,系统的剪切板内容便被设置为Android发送过来的内容。当用户在Linux应用里粘贴文字时,正是从QClipboard里获取的内容,这样Android剪切板内容便同步到了Linux系统剪切板。
Linux系统内监听Linux剪切板的数据变化,当数据改变时,将Linux剪切板内容写入Android系统剪切板的过程如下。
1、Android系统启动服务进程,并启动本地套接字服务端。
在Android系统上里注册一个系统广播接收器,用于接收系统开机广播。当Android系统启动后就会发出一个启动完成的广播,广播接收器接收到此广播后启动一个服务进程AppService,AppService是Android系统和Linux系统通信的中间层。在此服务里启动一个socket服务端,此套接字服务端指定了一个固定路径作为通信桥梁,Linux侧的进程就可以使用这个固定路径连接上它并发送数据包给这个套接字服务端了。unix socketserver启动以后就会等待Linux侧的进程连接到它,如果没有任何连接,它就一直阻塞,等待连接。当Linux侧的进程连接上它并向它发送数据包时,阻塞就被解除,继续执行相应的数据处理逻辑。
2、Linux系统内监听系统剪切板对象。
在Linux系统后台服务进程里有一个专门处理剪切板逻辑的类ClipboardHandler,在CllipboardHandler里调用QApplication::clipboard()可获得Linux系统剪切板对象QClipboard,通过监听QClipboard对象可监视剪切板内容变化,每当剪切板内容改变时,会发送一个dataChanged的信号出来。首先在ClipboardHandler里创建一个槽函数clipboardChanged,将QClipboard对象的dataChanged信号函数和ClipboardHandler的槽函数clipboardChanged关联起来,代码如下:
connect(QApplication::clipboard(),SIGNAL(dataChanged()),ClipboardHandler,SLOT(clipboardChanged()));
当Linux系统剪切板数据改变时,就会执行ClipboardHandler的槽函数clipboardChanged。
3、ClipboardHandler获取剪切板内容,封装并序列化,发送给Android系统。
Linux系统剪切板改变时会发出dataChanged信号,ClipboardHandler执行槽函数clipboardChanged,在此槽函数里首先判断是否为同步Android剪切板数据导致发出的dataChanged信号,如果是则表示两个系统的剪切板数据已经同步了,不需要让Android系统再次执行同步操作,所以不处理;如果不是则表示用户复制文字所产生的变化,通过剪切板对象QClipboard获取其内容得到剪切板数据,将剪切板数据封装到数据结构体SetClipboard。SetClipboard结构体封装好以后,调用protobuffer库(google提供的序列化数据结构的开源库)将SetClipboard数据结构转换成为高效可网络传输的数据流,然后通过unix socket server指定的路径创建一个socket客户端,连接到socket服务端,将序列化后的数据流发送给Android系统的socket服务端。
4、Socket服务端接收数据,反序列化为结构体。
AppService的socket服务端接收到socket客户端的连接请求后,阻塞被解除,读取socket客户端发送过来的数据流,将接收到的数据流保存到一个内部缓冲区,然后调用protobuffer库对数据流进行反序列化,让其转换成为可识别的数据结构体SetClipboard。AppService的ClipDataManager是专门处理剪切板逻辑的类,于是将结构体SetClipboard传递给ClipDataManager处理。
5、ClipDataManager设置Android剪切板内容。
首先在ClipDataManager里通过调用Context.getSystemService获取到Android框架层的服务ClipboardManager,然后新创建一个剪切板数据对象ClipData,通过调用ClipData对象的setPrimaryClip函数并将数据结构体SetClipboard的content作为参数传入,调用ClipboardManager的setPrimaryClip函数并将ClipData对象作为参数输入,这样Android系统的剪切板内容便被设置为Linux发送过来的数据。当用户在Android app里粘贴文字时,会从ClipData里获取内容,这样Linux剪切板内容便同步到了Android系统剪切板。
图2是本发明实施例提供的一种Linux兼容Android的共享剪切板装置组成示意图,所述装置包括:
存储器,用于存储程序;
处理器,用于执行所述存储器中存储的程序,当所述存储器中存储的程序被执行时,所述处理器用于:
Android系统启用第一服务进程,第一服务进程监测Android系统剪切板数据变化;当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字发送给Linux;
Linux接收数据包并解析,将获得的Android系统剪切板内容写入Linux的剪切板;
Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化;当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若是,则提取剪切板内容,将剪切板内容封装后通过套接字发送给Android;
Android接收数据包并解析,将获得的Linux系统剪切板内容写入Android的剪切板。
进一步地,所述处理器用于:
当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,如果不是,则不予处理;如果是,获取Android系统剪切板数据的对象,通过对象获得剪切板内容,将剪切板内容封装成数据结构体,再将数据结构体转换成数据流,通过套接字发送给Linux。
进一步地,所述处理器用于:
Linux接收数据包,将数据包反序列后转换成数据结构体;
Linux剪切板的信号函数发出剪切板内容变化的信号,触发与信号函数关联的槽函数,槽函数通过调用剪切板的更新文本函数,将数据结构体的内容写入Linux的剪切板。
进一步地,所述处理器用于:
当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若不是,则表示Linux与Android的剪切板数据已经同步。
进一步地,所述处理器用于:
第二服务进程获得Linux系统剪切板对象,通过监听剪切板对象来监视剪切板内容变化,每当剪切板内容改变时,剪切板的信号函数发送数据变化信号。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种Linux兼容Android的共享剪切板方法,其特征在于,所述方法为:
Android系统启用第一服务进程,第一服务进程监测Android系统剪切板数据变化;当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字发送给Linux;
Linux接收数据包并解析,将获得的Android系统剪切板内容写入Linux的剪切板;
Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化;当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若是,则提取剪切板内容,将剪切板内容封装后通过套接字发送给Android;
Android接收数据包并解析,将获得的Linux系统剪切板内容写入Android的剪切板。
2.如权利要求1所述的Linux兼容Android的共享剪切板方法,其特征在于,所述方法中的当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字发送给Linux,具体为:
当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,如果不是,则不予处理;如果是,获取Android系统剪切板数据的对象,通过对象获得剪切板内容,将剪切板内容封装成数据结构体,再将数据结构体转换成数据流,通过套接字发送给Linux。
3.如权利要求2所述的Linux兼容Android的共享剪切板方法,其特征在于,所述方法中的Linux接收数据包并解析,将获得的Android系统剪切板内容写入Linux的剪切板,具体为:
Linux接收数据包,将数据包反序列后转换成数据结构体;
Linux剪切板的信号函数发出剪切板内容变化的信号,触发与信号函数关联的槽函数,槽函数通过调用剪切板的更新文本函数,将数据结构体的内容写入Linux的剪切板。
4.如权利要求1所述的Linux兼容Android的共享剪切板方法,其特征在于,所述方法还包括:
当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若不是,则表示Linux与Android的剪切板数据已经同步。
5.如权利要求1所述的Linux兼容Android的共享剪切板方法,其特征在于,Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化,具体为:
第二服务进程获得Linux系统剪切板对象,通过监听剪切板对象来监视剪切板内容变化,每当剪切板内容改变时,剪切板的信号函数发送数据变化信号。
6.一种Linux兼容Android的共享剪切板装置,其特征在于,所述装置包括:
存储器,用于存储程序;
处理器,用于执行所述存储器中存储的程序,当所述存储器中存储的程序被执行时,所述处理器用于:
Android系统启用第一服务进程,第一服务进程监测Android系统剪切板数据变化;当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字发送给Linux;
Linux接收数据包并解析,将获得的Android系统剪切板内容写入Linux的剪切板;
Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化;当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若是,则提取剪切板内容,将剪切板内容封装后通过套接字发送给Android;
Android接收数据包并解析,将获得的Linux系统剪切板内容写入Android的剪切板。
7.如权利要求6所述的Linux兼容Android的共享剪切板装置,其特征在于,所述处理器用于:
当Android系统剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,如果不是,则不予处理;如果是,获取Android系统剪切板数据的对象,通过对象获得剪切板内容,将剪切板内容封装成数据结构体,再将数据结构体转换成数据流,通过套接字发送给Linux。
8.如权利要求6所述的Linux兼容Android的共享剪切板装置,其特征在于,所述处理器用于:
Linux接收数据包,将数据包反序列后转换成数据结构体;
Linux剪切板的信号函数发出剪切板内容变化的信号,触发与信号函数关联的槽函数,槽函数通过调用剪切板的更新文本函数,将数据结构体的内容写入Linux的剪切板。
9.如权利要求6所述的Linux兼容Android的共享剪切板装置,其特征在于,所述处理器用于:
当Linux系统剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若不是,则表示Linux与Android的剪切板数据已经同步。
10.如权利要求6所述的Linux兼容Android的共享剪切板装置,其特征在于,所述处理器用于:
第二服务进程获得Linux系统剪切板对象,通过监听剪切板对象来监视剪切板内容变化,每当剪切板内容改变时,剪切板的信号函数发送数据变化信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111067657.6A CN113778714B (zh) | 2021-09-13 | 2021-09-13 | 一种Linux兼容Android的共享剪切板方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111067657.6A CN113778714B (zh) | 2021-09-13 | 2021-09-13 | 一种Linux兼容Android的共享剪切板方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113778714A true CN113778714A (zh) | 2021-12-10 |
CN113778714B CN113778714B (zh) | 2024-01-09 |
Family
ID=78842998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111067657.6A Active CN113778714B (zh) | 2021-09-13 | 2021-09-13 | 一种Linux兼容Android的共享剪切板方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113778714B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385304A (zh) * | 2022-03-23 | 2022-04-22 | 麒麟软件有限公司 | 安卓应用调用Linux截图工具的方法 |
CN114416292A (zh) * | 2021-12-31 | 2022-04-29 | 北京字节跳动网络技术有限公司 | 定位设备串口的虚拟化方法、设备、装置、介质及产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022398A (zh) * | 2007-03-21 | 2007-08-22 | 中国科学院计算技术研究所 | 在多节点智能网络应用服务系统中实现剪贴板共享的方法 |
CN104820552A (zh) * | 2015-04-29 | 2015-08-05 | 努比亚技术有限公司 | 移动终端的分屏显示方法及移动终端 |
CN105808320A (zh) * | 2016-03-11 | 2016-07-27 | 四川安嵌科技有限公司 | 基于Linux容器的设备虚拟化系统及方法 |
CN106302123A (zh) * | 2016-08-17 | 2017-01-04 | 广州视睿电子科技有限公司 | 一种数据提取、粘贴处理的方法、装置及其系统 |
CN109710331A (zh) * | 2018-12-27 | 2019-05-03 | 武汉益模科技股份有限公司 | 一种从网页上调用本地应用程序的方法 |
US20200026536A1 (en) * | 2018-07-19 | 2020-01-23 | Citrix Systems, Inc. | Systems and methods for user interface detection |
CN111625371A (zh) * | 2019-12-03 | 2020-09-04 | 蘑菇车联信息科技有限公司 | 一种文本传输方法、装置、pc端、移动终端及系统 |
US20200326998A1 (en) * | 2019-04-11 | 2020-10-15 | Dell Products L.P. | Two-way clipboard exchange in virtual console |
CN112463402A (zh) * | 2020-11-03 | 2021-03-09 | 浙江华途信息安全技术股份有限公司 | 一种基于macOS操作系统的剪切板控制方法和系统 |
CN112764946A (zh) * | 2021-01-08 | 2021-05-07 | 重庆创通联智物联网有限公司 | 跨进程数据传输方法、装置、电子设备和存储介质 |
-
2021
- 2021-09-13 CN CN202111067657.6A patent/CN113778714B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022398A (zh) * | 2007-03-21 | 2007-08-22 | 中国科学院计算技术研究所 | 在多节点智能网络应用服务系统中实现剪贴板共享的方法 |
CN104820552A (zh) * | 2015-04-29 | 2015-08-05 | 努比亚技术有限公司 | 移动终端的分屏显示方法及移动终端 |
CN105808320A (zh) * | 2016-03-11 | 2016-07-27 | 四川安嵌科技有限公司 | 基于Linux容器的设备虚拟化系统及方法 |
CN106302123A (zh) * | 2016-08-17 | 2017-01-04 | 广州视睿电子科技有限公司 | 一种数据提取、粘贴处理的方法、装置及其系统 |
US20200026536A1 (en) * | 2018-07-19 | 2020-01-23 | Citrix Systems, Inc. | Systems and methods for user interface detection |
CN109710331A (zh) * | 2018-12-27 | 2019-05-03 | 武汉益模科技股份有限公司 | 一种从网页上调用本地应用程序的方法 |
US20200326998A1 (en) * | 2019-04-11 | 2020-10-15 | Dell Products L.P. | Two-way clipboard exchange in virtual console |
CN111625371A (zh) * | 2019-12-03 | 2020-09-04 | 蘑菇车联信息科技有限公司 | 一种文本传输方法、装置、pc端、移动终端及系统 |
CN112463402A (zh) * | 2020-11-03 | 2021-03-09 | 浙江华途信息安全技术股份有限公司 | 一种基于macOS操作系统的剪切板控制方法和系统 |
CN112764946A (zh) * | 2021-01-08 | 2021-05-07 | 重庆创通联智物联网有限公司 | 跨进程数据传输方法、装置、电子设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
SAGAR PATNI: ""A zero-copy fast channel for inter-guest and guest-host communication using VirtIO-serial"", 《2015 1ST INTERNATIONAL CONFERENCE ON NEXT GENERATION COMPUTING TECHNOLOGIES(NGCT)》, pages 6 - 9 * |
WINCER: ""Linux与Android同步剪贴板的通用方案"", pages 1 - 5, Retrieved from the Internet <URL:《https://blog.itswincer.com/posts/d691e748/》> * |
黄永正: ""Android平台App开发辅助工具的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2018, pages 138 - 1832 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416292A (zh) * | 2021-12-31 | 2022-04-29 | 北京字节跳动网络技术有限公司 | 定位设备串口的虚拟化方法、设备、装置、介质及产品 |
CN114416292B (zh) * | 2021-12-31 | 2024-05-28 | 北京字节跳动网络技术有限公司 | 定位设备串口的虚拟化方法、设备、装置、介质及产品 |
CN114385304A (zh) * | 2022-03-23 | 2022-04-22 | 麒麟软件有限公司 | 安卓应用调用Linux截图工具的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113778714B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200387405A1 (en) | Communication Method and Apparatus | |
US10120705B2 (en) | Method for implementing GPU virtualization and related apparatus, and system | |
US10862982B2 (en) | Cloud-scale heterogeneous datacenter management infrastructure | |
WO2020048391A1 (zh) | 基于多租户技术的web服务的部署、调用方法和装置 | |
US12061566B2 (en) | IO processing method and apparatus | |
WO2017206422A1 (zh) | 一种网络设备中的远程过程调用方法及网络设备 | |
US8838770B2 (en) | Handling a service request in a hybrid computer system | |
CN113778714A (zh) | 一种Linux兼容Android的共享剪切板方法及装置 | |
US20030145230A1 (en) | System for exchanging data utilizing remote direct memory access | |
TW200847026A (en) | Abstracting operating environment from operating system | |
US11809901B2 (en) | Migrating the runtime state of a container between two nodes | |
US10404797B2 (en) | Supporting multiple clipboard items in a virtual desktop infrastructure environment | |
WO2022267427A1 (zh) | 虚拟机迁移方法、系统及电子设备 | |
CN113778280B (zh) | 一种Linux兼容Android的显示消息通知方法及装置 | |
WO2023082716A1 (zh) | 在Linux系统中操作安卓应用的方法、装置和设备 | |
WO2023093016A1 (zh) | 云端代码开发系统、方法、装置、设备及存储介质 | |
EP4379554A1 (en) | Data processing method and apparatus, and device, storage medium and program product | |
CN112905304A (zh) | 一种虚拟机间通信方法、装置、物理主机及介质 | |
CN114697194B (zh) | 阻塞式事件通知方法及装置 | |
Zhang et al. | Workload adaptive shared memory management for high performance network i/o in virtualized cloud | |
US10353700B1 (en) | Code base sharing between standalone and web-based versions of an application via an emulated network communication channel | |
WO2021254214A1 (zh) | 安卓应用程序迁移的方法和装置 | |
CN115580667B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN112134938B (zh) | 一种消息处理方法、装置、终端及计算机可读存储介质 | |
Ren et al. | An efficient and transparent approach for adaptive intra-and inter-node virtual machine communication in virtualized clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |