CN113778714B - 一种Linux兼容Android的共享剪切板方法及装置 - Google Patents

一种Linux兼容Android的共享剪切板方法及装置 Download PDF

Info

Publication number
CN113778714B
CN113778714B CN202111067657.6A CN202111067657A CN113778714B CN 113778714 B CN113778714 B CN 113778714B CN 202111067657 A CN202111067657 A CN 202111067657A CN 113778714 B CN113778714 B CN 113778714B
Authority
CN
China
Prior art keywords
data
linux
android
clipboard
shear plate
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.)
Active
Application number
CN202111067657.6A
Other languages
English (en)
Other versions
CN113778714A (zh
Inventor
李志法
姚宏亮
张耀斌
鄢来标
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jide System Technology Co ltd
Original Assignee
Beijing Jide System Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jide System Technology Co ltd filed Critical Beijing Jide System Technology Co ltd
Priority to CN202111067657.6A priority Critical patent/CN113778714B/zh
Publication of CN113778714A publication Critical patent/CN113778714A/zh
Application granted granted Critical
Publication of CN113778714B publication Critical patent/CN113778714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Abstract

本发明公开了一种Linux兼容Android的共享剪切板方法及装置,Android系统启用第一服务进程,第一服务进程监测Android系统剪切板数据变化;当Android系统剪切板数据变化时,将获得的Android系统剪切板内容写入Linux的剪切板;Linux系统启用第二服务进程,第二服务进程监测Linux系统剪切板数据变化;当Linux系统剪切板数据变化时,将获得的Linux系统剪切板内容写入Android的剪切板。Android系统和Linux系统相互共享剪切板,使得剪切板内容同步。

Description

一种Linux兼容Android的共享剪切板方法及装置
技术领域
本发明涉及计算机操作系统领域,尤其涉及一种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 (4)

1.一种Linux兼容Android的共享剪切板方法,其特征在于,所述方法为:
Linux启动后台服务进程,并在所述后台服务进程启动本地套接字服务端;所述本地套接字服务端用于所述Linux的进程间通信;
指定所述本地套接字服务端与所述Android的进程进行数据传输的固定路径;所述固定路径在所述本地套接字服务端启动后被确定;所述固定路径是由所述Android的进程激活的;当所述固定路径未被所述Android的进程激活时,所述固定路径无法进行数据传输;当所述固定路径被所述Android的进程激活时,数据可从所述Android发送至所述本地套接字服务端;
Android启用第一服务进程,第一服务进程监测Android剪切板数据变化;当Android剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字从所述固定路径发送给Linux;所述第一服务进程用于处理所述Linux发送过来的请求以及向所述Linux发送请求和数据;
其中,所述第一服务进程监测Android剪切板数据变化,包括:
在所述第一服务进程创建管理类进程Clip Data Manager;所述管理类进程Clip DataManager用于处理所述剪切板逻辑变化;
在所述管理类进程Clip Data Manager里调用用Context.get System Service获取到Android框架层的服务Clipboard Manager,调用Clipboard Manager的add Primary ClipChanged Listener函数给系统剪切板添加监听,并将监听对象设置为Clip Data Manager本身,当系统剪切板数据变化时,Clipboard Manager通知Clip Data Manager,执行ClipData Manager的接口函数on Primary Clip Changed,以确定所述Android剪切板数据发生变化;
其中,所述当Android剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,若是,提取剪切板内容,将剪切板内容封装后通过套接字从所述固定路径发送给Linux,具体为:
当Android剪切板数据变化时,第一服务进程判断是否为用户复制行为导致的数据变化,如果不是,则不予处理;如果是,获取Android剪切板数据的对象,通过对象获得剪切板内容,将剪切板内容封装成数据结构体,再将数据结构体转换成数据流,通过套接字从所述固定路径发送给Linux的所述本地套接字服务端;所述如果不是表征所述Android剪切板数据变化是由所述Linux发送剪切板数据至所述Android进行数据同步;
其中,所述获取Android剪切板数据的对象,通过对象获得剪切板内容,将剪切板内容封装成数据结构体,再将数据结构体转换成数据流,通过套接字从所述固定路径发送给Linux,包括:
调用所述Clip Data Manager的get Primary Clip函数获取Android剪切板数据的对象Clip Data,通过Clip Data获取剪切板内容;
将剪切板内容封装到一个数据结构体SetClipboard里,得到数据结构体;所述数据结构体的具体形式为:
message Set Clipboard{
required string content=1;
};所述content为所述剪切板内容;
调用protobuffer库,将所述Set Clipboard数据结构转换成为高效可网络传输的数据流;
通过所述本地套接字服务端指定的所述固定路径创建一个socket客户端;
将所述Android连接到socket服务端;
将所述高效可网络传输的数据流发送给Linux的socket服务端;
Linux接收数据包并解析,将获得的Android剪切板内容写入Linux的剪切板;
Linux启用第二服务进程,第二服务进程监测Linux剪切板数据变化;当Linux剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若是,则提取剪切板内容,将剪切板内容封装后通过套接字发送给Android;
Android接收数据包并解析,将获得的Linux剪切板内容写入Android的剪切板。
2.如权利要求1所述的Linux兼容Android的共享剪切板方法,其特征在于,所述方法中的Linux接收数据包并解析,将获得的Android剪切板内容写入Linux的剪切板,具体为:
Linux接收数据包,将数据包反序列后转换成数据结构体;
Linux剪切板的信号函数发出剪切板内容变化的信号,触发与信号函数关联的槽函数,槽函数通过调用剪切板的更新文本函数,将数据结构体的内容写入Linux的剪切板。
3.如权利要求1所述的Linux兼容Android的共享剪切板方法,其特征在于,所述方法还包括:
当Linux剪切板数据变化时,第二服务进程判断是否为用户复制行为导致的数据变化,若不是,则表示Linux与Android的剪切板数据已经同步。
4.如权利要求1所述的Linux兼容Android的共享剪切板方法,其特征在于,Linux启用第二服务进程,第二服务进程监测Linux剪切板数据变化,具体为:
第二服务进程获得Linux剪切板对象,通过监听剪切板对象来监视剪切板内容变化,每当剪切板内容改变时,剪切板的信号函数发送数据变化信号。
CN202111067657.6A 2021-09-13 2021-09-13 一种Linux兼容Android的共享剪切板方法及装置 Active CN113778714B (zh)

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 CN113778714A (zh) 2021-12-10
CN113778714B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385304B (zh) * 2022-03-23 2022-07-08 麒麟软件有限公司 安卓应用调用Linux截图工具的方法

Citations (8)

* Cited by examiner, † Cited by third party
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 武汉益模科技股份有限公司 一种从网页上调用本地应用程序的方法
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 重庆创通联智物联网有限公司 跨进程数据传输方法、装置、电子设备和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10901763B2 (en) * 2018-07-19 2021-01-26 Citrix Systems, Inc. Systems and methods for user interface detection
US10824486B1 (en) * 2019-04-11 2020-11-03 Dell Products L.P. Two-way clipboard exchange in virtual console

Patent Citations (8)

* Cited by examiner, † Cited by third party
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 武汉益模科技股份有限公司 一种从网页上调用本地应用程序的方法
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 (2)

* Cited by examiner, † Cited by third party
Title
"A zero-copy fast channel for inter-guest and guest-host communication using VirtIO-serial";Sagar Patni;《2015 1st International Conference on Next Generation Computing Technologies(NGCT)》;第6-9页 *
"Android平台App开发辅助工具的研究与实现";黄永正;《中国优秀硕士学位论文全文数据库 信息科技辑》(2018年第04期);第I138-1832页 *

Also Published As

Publication number Publication date
CN113778714A (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
US10831574B2 (en) Remote procedure call method for network device and network device
US7231638B2 (en) Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data
WO2021042840A1 (zh) 数据处理方法、装置、服务器和计算机可读存储介质
US20150067146A1 (en) Custom correlation of a distributed business transaction
US11860796B2 (en) Execution space agnostic device drivers
US8286194B2 (en) Coupling state aware systems
US7640549B2 (en) System and method for efficiently exchanging data among processes
US11500666B2 (en) Container isolation method and apparatus for netlink resource
WO2023082716A1 (zh) 在Linux系统中操作安卓应用的方法、装置和设备
WO2014206089A1 (zh) 同步终端镜像的方法、装置、终端及服务器
CN113778714B (zh) 一种Linux兼容Android的共享剪切板方法及装置
CN110764935A (zh) 一种基于实时操作系统的任务间消息高效传递方法
WO2023046141A1 (zh) 一种数据库网络负载性能的加速框架、加速方法及设备
CN112905304A (zh) 一种虚拟机间通信方法、装置、物理主机及介质
CN113778280B (zh) 一种Linux兼容Android的显示消息通知方法及装置
KR20120072134A (ko) 가상 데스크톱 가속 장치 및 방법
CN116719771A (zh) 一种核间通信调度方法、系统及装置
CN114697194B (zh) 阻塞式事件通知方法及装置
EP4318236A1 (en) Management method and system for computing node
CN112306633B (zh) 一种获取不同虚拟化资源的系统及方法
CN112134938B (zh) 一种消息处理方法、装置、终端及计算机可读存储介质
CN111182047B (zh) 用于在跨网络的大数据平台之间转移文件的方法和系统
CN115225482A (zh) 一种基于Kubernetes进行Pod容器网络配置的方法及装置
CN113986466A (zh) 一种面向云计算的gpu虚拟化系统和方法
CN107463438B (zh) 用于多Openstack环境的信息处理方法、装置和系统

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