CN105335238B - 进程间通信方法及装置 - Google Patents
进程间通信方法及装置 Download PDFInfo
- Publication number
- CN105335238B CN105335238B CN201410394825.6A CN201410394825A CN105335238B CN 105335238 B CN105335238 B CN 105335238B CN 201410394825 A CN201410394825 A CN 201410394825A CN 105335238 B CN105335238 B CN 105335238B
- Authority
- CN
- China
- Prior art keywords
- callback
- interface
- transmission
- data
- callback interface
- 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
Links
Images
Landscapes
- Telephone Function (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种进程间通信方法及装置,属于操作***领域。所述方法包括:接收方进程创建回调接口;接收方进程向所述发送方进程发送数据获取请求;接收方进程向所述发送方进程提供所述回调接口;接收方进程接收所述发送方进程对所述回调接口提供的传输方法的n次回调。本发明达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
Description
技术领域
本发明涉及操作***领域,特别涉及一种进程间通信方法及装置。
背景技术
在操作***中,每一个应用程序都运行在独立的进程中,不同的进程之间相互独立,从而保证了当其中一个应用程序出现异常时不会影响另一个应用程序的正常运转。但是当两个进程之间需要合作时,就需要使用进程间通信。
安卓(英文:Android)***中基于Binder机制来实现两个进程之间的通信。以两个进程之间传递数据为例,参考图1,接收方进程12和发送方进程14均运行在用户空间,而Binder驱动16运行在内核空间。接收方进程12和发送方进程14两者要实现通信需要遵循相同的协议,该协议在代码上的体现即为两者之间需要实现在Binder驱动16中的接口。在需要进程间通信时,接收方进程12创建一次性的IDemo接口,将该IDemo接口在Binder驱动16中封装为接口对象18,发送方进程14可以调用该接口对象18向接收方进程12传输数据。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种进程间通信方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种进程间通信方法,用于接收方进程,所述方法包括:
创建回调接口,所述回调接口用于实现数据传输且支持发送方进程的多次回调;
向所述发送方进程发送数据获取请求;
向所述发送方进程提供所述回调接口;
接收所述发送方进程对所述回调接口提供的传输方法的n次回调,每次回调用于传输n个数据块中的一块,所述n个数据块是所述发送方进程根据所述数据获取请求将目标数据切割得到的,n≥2。
根据本发明实施例的第二方面,提供一种进程间通信方法,用于发送方进程,所述方法包括:
接收接收方进程发送的数据获取请求;
获取所述接收方进程提供的回调接口,所述回调接口是所述接收方进程创建的用于实现数据传输且支持多次回调的接口;
根据所述数据获取请求将目标数据切割为n个数据块,n≥2;
对所述回调接口提供的传输方法进行n次回调,每次回调用于传输所述n个数据块中的一个。
根据本发明实施例的第三方面,提供一种进程间通信装置,用于接受方进程,所述装置包括:
回调接口创建模块,用于创建回调接口,所述回调接口用于实现数据传输且支持发送方进程的多次回调;
请求发送模块,用于向所述发送方进程发送数据获取请求;
回调接口发送模块,用于向所述发送方进程提供所述回调接口;
数据接收模块,用于接收所述发送方进程对所述回调接口提供的传输方法的n次回调,每次回调用于传输n个数据块中的一块,所述n个数据块是所述发送方进程根据所述数据获取请求将目标数据切割得到的,n≥2。
根据本发明实施例的第四方面,提供一种进程间通信装置,用于发送方进程,所述装置包括:
请求接收模块,用于接收接收方进程发送的数据获取请求;
回调接口获取模块,用于获取所述接收方进程提供的回调接口,所述回调接口是所述接收方进程创建的用于实现数据传输且支持多次回调的接口;
数据切割模块,用于根据所述数据获取请求将目标数据切割为n个数据块,n≥2;
数据回调模块,用于对所述回调接口提供的传输方法进行n次回调,每次回调用于传输所述n个数据块中的一个。
本发明实施例提供的技术方案带来的有益效果是:
通过接收方进程创建回调接口;接收方进程向发送方进程发送数据获取请求;接收方进程向发送方进程提供回调接口;接收方进程接收发送方进程对回调接口提供的传输方法的n次回调,每次回调用于传输目标数据中n个数据块中的一个;解决了由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据的问题,达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术实现进程间通信的方法流程图;
图2是本发明一个实施例提供的进程间通信方法的方法流程图;
图3是本发明另一实施例提供的进程间通信方法的方法流程图;
图4是本发明再一实施例提供的进程间通信方法的方法流程图;
图5是本发明一个实施例提供的进程间通信装置的结构方框图;
图6是本发明另一实施例提供的进程间通信装置的结构方框图;
图7是本发明再一实施例提供的进程间通信装置的结构方框图;
图8是本发明又一实施例提供的进程间通信装置的结构方框图;
图9是本发明一个实施例提供的电子设备的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图2,其示出了本发明一个实施例提供的进程间通信方法的方法流程图。本实施例以该进程间通信方法用于接收方进程来举例说明,该方法包括:
步骤202,创建回调接口,该回调接口用于实现数据传输且支持发送方进程的多次回调;
步骤204,向发送方进程发送数据获取请求;
步骤206,向发送方进程提供回调接口;
步骤208,接收发送方进程对回调接口提供的传输方法的n次回调,每次回调用于传输n个数据块中的一块,该n个数据块是发送方进程根据数据获取请求将目标数据切割得到的,n≥2。
综上所述,本实施例提供的进程间通信方法,通过接收方进程向发送方进程提供回调接口;接收方进程接收发送方进程对回调接口提供的传输方法的n次回调,每次回调用于传输目标数据中n个数据块中的一个;解决了由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据的问题,达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
请参考图3,其示出了本发明另一实施例提供的进程间通信方法的方法流程图。本实施例以该进程间通信方法用于发送方进程来举例说明,该方法包括:
步骤302,接收接收方进程发送的数据获取请求;
步骤304,获取接收方进程提供的回调接口,该回调接口是接收方进程创建的用于实现数据传输且支持多次回调的接口;
步骤306,根据数据获取请求将目标数据切割为n个数据块,n≥2;
步骤308,对回调接口提供的传输方法进行n次回调,每次回调用于传输n个数据块中的一个。
综上所述,本实施例提供的进程间通信方法,通过发送方进程接收接收方进程发送的数据获取请求;发送方进程获取接收方进程提供的回调接口;发送方进程根据数据获取请求将目标数据切割为n个数据块,n≥2;发送方进程对回调接口提供的传输方法进行n次回调,每次回调用于传输n个数据块中的一个;解决了由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据的问题,达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
在实际的操作过程中,接收方进程与发送方进程通过实现相同的IDemo接口进行对应,通过基于IDemo接口中再自定义一套回调接口,该回调接口实现相应的开始传输方法、传输方法和结束传输方法,达到接收方进程与发送方进程通过该回调接口可以进行多次数据传输,将较大的数据在一次进程间通信过程中分批进行传输。下面将采用一个实施例来进行详细说明。
请参考图4,其示出了本发明再一实施例提供的进程间通信方法的方法流程图。本实施例以该进程间通信方法用于接收方进程和发送方进程来举例说明,该接收方进程和发送方进程可以是安卓***中的进程。该方法包括:
步骤401,接收方进程创建回调接口,该回调接口用于实现数据传输且支持发送方进程的多次回调。
接收方进程创建回调接口,该回调接口实现包括但不限于开始传输方法、传输方法和结束传输方法。
需要说明的是,为了使接收方进程和发送方进程能够进行对应,接收方进程与发送方进程都需要实现IDemo接口,根据该IDemo接口进行对应。接收方进程基于IDemo接口创建出新的回调接口,该回调接口用于实现数据传输且支持发送方进程的多次回调。
步骤402,接收方进程向发送方进程发送数据获取请求。
在安卓***中,基于Binder的进程间通信通过Binder驱动在进程双方传输数据。所以,接收方进程通过Binder驱动向发送方进程发送Binder请求,该Binder请求用于表示向发送方进程获取数据。
步骤403,发送方进程接收接收方进程发送的数据获取请求。
发送方进程接收接收方进程通过Binder驱动发送的Binder请求,该Binder请求用于表示获取数据。
发送方进程在接收到该数据获取请求后,将根据该数据获取请求查找需要发送的目标数据。
比如,发送方进程接收到的Binder请求为获取视频A,表示接收方进程请求发送方进程发送视频A的数据,发送方进程将会查找该视频A,视频A即需要发送的目标数据。
步骤404,接收方进程向发送方进程提供回调接口。
接收方进程将创建好的回调接口提供给发送方进程。本步骤具体包括如下子步骤:
一、接收方进程将回调接口在Binder驱动里封装为回调接口对象。
在Binder驱动中,回调接口通过Binder机制被封装成回调接口对象。
二、接收方进程将回调接口对象通过Binder驱动发送给发送方进程。
对应地,发送方进程可以通过Binder驱动获取该回调接口对象。
步骤405,发送方进程获取接收方进程提供的回调接口。
发送方进程接收接收方进程通过Binder驱动发送的回调接口对象,该回调接口对象是接收方进程将回调接口在Binder驱动中封装得到的。
发送方进程可以通过回调该回调接口对象中的开始传输方法、传输方法和结束传输方法,实现进程间的通信。
需要说明的是,上述数据获取请求的发送时机和回调接口对象的发送先后顺序没有严格的限制,亦可以同时进行,对此并不构成限定。
步骤406,发送方进程根据数据获取请求将目标数据切割为n个数据块,n≥2。
发送方进程根据发送方进程发送的数据获取请求,获取目标数据,并将该目标数据切割为n个数据块,n≥2。
由于单次传输的数据量不能超过预定阈值,所以发送方进程需要将目标数据按照预定阀值进行切割,该预定阀值可以是根据***性能设置的。
步骤407,发送方进程对回调接口提供的开始传输方法进行回调,该回调用于触发接收方进程进入准备接收数据状态。
发送方进程回调接收到的回调接口提供的开始传输方法,当接收方进程接收到该回调方法,即知悉发送方进程将要开始传输数据。
步骤408,接收方进程接收发送方进程对回调接口提供的开始传输方法的回调。
步骤409,接收方进程根据开始传输方法的回调进入准备接收数据状态。
接收方进程接收到该回调方法后,准备接收发送方进程传输的数据。
步骤410,发送方进程对回调接口提供的传输方法进行n次回调,每次回调用于传输n个数据块中的一个。
发送方进程通过回调回调接口对象提供的传输方法,将目标数据切割成的n个数据块进行传输,每回调一次传输方法就通过Binder驱动将n个数据块中的一个发送至接收方进程。
步骤411,接收方进程接收发送方进程对回调接口提供的传输方法的n次回调,每次回调用于传输n个数据块中的一块,该n个数据块是发送方进程根据数据获取请求将目标数据切割得到的,n≥2。
接收方进程在接收到数据块后,对接收到的数据块进行处理。
步骤412,发送方进程对回调接口提供的结束传输方法进行回调,该回调用于触发接收方进程结束目标数据的传输。
发送方进程在将n个数据块全部传输结束后,将回调回调接口对象中的结束传输方法,当接收方进程接收到该回调方法后,即知悉数据传输结束。
步骤413,接收方进程接收发送方进程对回调接口提供的结束传输方法的回调。
步骤414,接收方进程根据结束传输方法的回调结束目标数据的传输。
综上所述,本实施例提供的进程间通信方法,通过接收方进程向发送方进程提供回调接口;接收方进程接收发送方进程对回调接口提供的传输方法的n次回调,每次回调用于传输目标数据中n个数据块中的一个;解决了由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据的问题,达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
请参考图5,其示出了本发明一个实施例提供的进程间通信装置的结构方框图。该进程间通信装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或者一部分。该进程间通信装置包括:
接口创建模块520,用于创建回调接口,所述回调接口用于实现数据传输且支持发送方进程的多次回调;
请求发送模块540,用于向所述发送方进程发送数据获取请求;
接口发送模块560,用于向所述发送方进程提供所述回调接口;
数据接收模块580,用于接收所述发送方进程对所述回调接口提供的传输方法的n次回调,每次回调用于传输n个数据块中的一块,所述n个数据块是所述发送方进程根据所述数据获取请求将目标数据切割得到的,n≥2。
综上所述,本实施例提供的进程间通信装置,通过接收方进程向发送方进程提供回调接口;接收方进程接收发送方进程对回调接口提供的传输方法的n次回调,每次回调用于传输目标数据中n个数据块中的一个;解决了由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据的问题,达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
请参考图6,其示出了本发明另一实施例提供的进程间通信装置的结构方框图。该进程间通信装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或者一部分。该进程间通信装置包括:
接口创建模块520,用于创建回调接口,所述回调接口用于实现数据传输且支持发送方进程的多次回调;
请求发送模块540,用于向所述发送方进程发送数据获取请求;
接口发送模块560,用于向所述发送方进程提供所述回调接口;
数据接收模块580,用于接收所述发送方进程对所述回调接口提供的传输方法的n次回调,每次回调用于传输n个数据块中的一块,所述n个数据块是所述发送方进程根据所述数据获取请求将目标数据切割得到的,n≥2。
可选地,接口发送模块560,包括:
接口封装单元561,用于将所述回调接口在Binder驱动里封装为回调接口对象;
接口发送单元562,用于将所述回调接口对象通过所述Binder驱动发送给所述发送方进程。
可选地,请求发送模块540,包括:
请求发送单元541,用于通过Binder驱动向所述发送方进程发送Binder请求,所述Binder请求用于表示获取数据。
可选地,所述装置,还包括:
第一接收模块570A,用于接收所述发送方进程对所述回调接口提供的开始传输方法的回调;
准备接收模块570B,用于根据所述开始传输方法的回调进入准备接收数据状态。
可选地,所述装置,还包括:
第二接收模块590A,用于接收所述发送方进程对所述回调接口提供的结束传输方法的回调;
结束传输模块590B,根据所述结束传输方法的回调结束所述目标数据的传输。
综上所述,本实施例提供的进程间通信装置,通过接收方进程向发送方进程提供回调接口;接收方进程接收发送方进程对回调接口提供的传输方法的n次回调,每次回调用于传输目标数据中n个数据块中的一个;解决了由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据的问题,达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
请参考图7,其示出了本发明再一个实施例提供的进程间通信装置的结构方框图。该进程间通信装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或者一部分。该进程间通信装置包括:
请求接收模块720,用于接收接收方进程发送的数据获取请求;
接口获取模块740,用于获取所述接收方进程提供的回调接口,所述回调接口是所述接收方进程创建的用于实现数据传输且支持多次回调的接口;
数据切割模块760,用于根据所述数据获取请求将目标数据切割为n个数据块,n≥2;
数据回调模块780,用于对所述回调接口提供的传输方法进行n次回调,每次回调用于传输所述n个数据块中的一个。
综上所述,本实施例提供的进程间通信装置,通过发送方进程接收接收方进程发送的数据获取请求;发送方进程获取接收方进程提供的回调接口;发送方进程根据数据获取请求将目标数据切割为n个数据块,n≥2;发送方进程对回调接口提供的传输方法进行n次回调,每次回调用于传输n个数据块中的一个;解决了由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据的问题,达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
请参考图8,其示出了本发明又一实施例提供的进程间通信装置的结构方框图。该进程间通信装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或者一部分。该进程间通信装置包括:
请求接收模块720,用于接收接收方进程发送的数据获取请求;
接口获取模块740,用于获取所述接收方进程提供的回调接口,所述回调接口是所述接收方进程创建的用于实现数据传输且支持多次回调的接口;
数据切割模块760,用于根据所述数据获取请求将目标数据切割为n个数据块,n≥2;
数据回调模块780,用于对所述回调接口提供的传输方法进行n次回调,每次回调用于传输所述n个数据块中的一个。
可选地,接口获取模块740,包括:
对象接收单元741,用于接收所述接收方进程通过Binder驱动发送的回调接口对象,所述回调接口对象是所述接收方进程将所述回调接口在所述Binder驱动中封装得到的。
可选地,请求接收模块720,包括:
请求接收单元721,用于接收所述接收方进程通过Binder驱动发送的Binder请求,所述Binder请求用于表示获取数据。
可选地,所述装置,还包括:
开始回调模块770,用于对所述回调接口提供的开始传输方法进行回调,所述回调用于触发所述接收方进程进入准备接收数据状态。
可选地,所述装置,还包括:
结束回调模块790,用于对所述回调接口提供的结束传输方法进行回调,所述回调用于触发所述接收方进程结束所述目标数据的传输。
综上所述,本实施例提供的进程间通信装置,通过发送方进程接收接收方进程发送的数据获取请求;发送方进程获取接收方进程提供的回调接口;发送方进程根据数据获取请求将目标数据切割为n个数据块,n≥2;发送方进程对回调接口提供的传输方法进行n次回调,每次回调用于传输n个数据块中的一个;解决了由于一次性的IDemo接口单次能够传输的数据不能超过预定阈值,所以两个进程之间在一次进程间通信过程中只能传输很小的数据的问题,达到了由接收方进程向发送方进程提供支持多次回调的回调接口,发送方进程通过该回调接口实现了一次进程间通信过程中将大数据分批进行传输的效果,即不需要多次重建进程间通信,也不会因单次传输的数据量太大而导致传输异常。
需要说明的是:上述实施例提供的进程间通信装置在进程间通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将进程通信装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的进程间通信装置和进程间通信方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图9,其示出了本发明一个实施例提供的电子设备的结构示意图。该电子设备用于实施上述实施例中提供的进程间通信方法。具体来讲:
电子设备900可以包括RF(Radio Frequency,射频)电路910、包括有一个或一个以上计算机可读存储介质的存储器920、输入单元930、显示单元940、传感器950、音频电路960、WiFi(wireless fidelity,无线保真)模块970、包括有一个或者一个以上处理核心的处理器980、以及电源990等部件。本领域技术人员可以理解,图9中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路910可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器980处理;另外,将涉及上行的数据发送给基站。通常,RF电路910包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路910还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备900的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器920还可以包括存储器控制器,以提供处理器980和输入单元930对存储器920的访问。
输入单元930可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元930可包括图像输入设备931以及其他输入设备932。图像输入设备931可以是摄像头,也可以是光电扫描设备。除了图像输入设备931,输入单元930还可以包括其他输入设备932。具体地,其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元940可用于显示由用户输入的信息或提供给用户的信息以及电子设备900的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元940可包括显示面板941,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板941。
电子设备900还可包括至少一种传感器950,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板941的亮度,接近传感器可在电子设备900移动到耳边时,关闭显示面板941和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于电子设备900还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路960、扬声器961,传声器962可提供用户与电子设备900之间的音频接口。音频电路960可将接收到的音频数据转换后的电信号,传输到扬声器961,由扬声器961转换为声音信号输出;另一方面,传声器962将收集的声音信号转换为电信号,由音频电路960接收后转换为音频数据,再将音频数据输出处理器980处理后,经RF电路910以发送给比如另一电子设备,或者将音频数据输出至存储器920以便进一步处理。音频电路960还可能包括耳塞插孔,以提供外设耳机与电子设备900的通信。
WiFi属于短距离无线传输技术,电子设备900通过WiFi模块970可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块970,但是可以理解的是,其并不属于电子设备900的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器980是电子设备900的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行电子设备900的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器980可包括一个或多个处理核心;优选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
电子设备900还包括给各个部件供电的电源990(比如电池),优选的,电源可以通过电源管理***与处理器980逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源990还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,电子设备900还可以包括蓝牙模块等,在此不再赘述。
具体在本实施例中,电子设备900还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于进行本发明实施例提供的进程间通信方法的指令。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”(“a”、“an”、“the”)旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (21)
1.一种进程间通信方法,其特征在于,所述方法包括:
创建回调接口,所述回调接口用于实现数据传输且支持发送方进程的多次回调,所述回调接口提供有开始传输方法、传输方法和结束传输方法,所述回调接口用于指示所述发送方进程在一次进程间通信过程中将数据分批进行传输;
向所述发送方进程发送数据获取请求;
向所述发送方进程提供所述回调接口;
接收所述发送方进程对所述回调接口提供的所述传输方法的n次回调,每次回调用于传输n个数据块中的一块,所述n个数据块是所述发送方进程根据所述数据获取请求将目标数据切割得到的,n≥2。
2.根据权利要求1所述的方法,其特征在于,所述向所述发送方进程提供所述回调接口,包括:
将所述回调接口在Binder驱动里封装为回调接口对象;
将所述回调接口对象通过所述Binder驱动发送给所述发送方进程。
3.根据权利要求1或2所述的方法,其特征在于,所述向所述发送方进程发送数据获取请求,包括:
通过Binder驱动向所述发送方进程发送Binder请求,所述Binder请求用于表示获取所述目标数据。
4.根据权利要求1或2所述的方法,其特征在于,所述接收所述发送方进程对所述回调接口提供的传输方法的n次回调之前,还包括:
接收所述发送方进程对所述回调接口提供的所述开始传输方法的回调;
根据所述开始传输方法的回调进入准备接收数据状态。
5.根据权利要求1或2所述的方法,其特征在于,所述接收所述发送方进程对所述回调接口提供的传输方法的n次回调之后,还包括:
接收所述发送方进程对所述回调接口提供的所述结束传输方法的回调;
根据所述结束传输方法的回调结束所述目标数据的传输。
6.一种进程间通信方法,其特征在于,所述方法包括:
接收接收方进程发送的数据获取请求;
获取所述接收方进程提供的回调接口,所述回调接口是所述接收方进程创建的用于实现数据传输且支持多次回调的接口,所述回调接口提供有开始传输方法、传输方法和结束传输方法,所述回调接口用于指示发送方进程在一次进程间通信过程中将数据分批进行传输;
根据所述数据获取请求将目标数据切割为n个数据块,n≥2;
对所述回调接口提供的所述传输方法进行n次回调,每次回调用于传输所述n个数据块中的一个。
7.根据权利要求6所述的方法,其特征在于,所述获取所述接收方进程提供的回调接口,包括:
接收所述接收方进程通过Binder驱动发送的回调接口对象,所述回调接口对象是所述接收方进程将所述回调接口在所述Binder驱动中封装得到的。
8.根据权利要求6或7所述的方法,其特征在于,所述接收接收方进程发送的数据获取请求,包括:
接收所述接收方进程通过Binder驱动发送的Binder请求,所述Binder请求用于表示获取所述目标数据。
9.根据权利要求6或7所述的方法,其特征在于,所述对所述回调接口提供的传输方法进行n次回调之前,还包括:
对所述回调接口提供的所述开始传输方法进行回调,所述回调用于触发所述接收方进程进入准备接收数据状态。
10.根据权利要求6或7所述的方法,其特征在于,所述对所述回调接口提供的传输方法进行n次回调之后,还包括:
对所述回调接口提供的所述结束传输方法进行回调,所述回调用于触发所述接收方进程结束所述目标数据的传输。
11.一种进程间通信装置,其特征在于,所述装置包括:
接口创建模块,用于创建回调接口,所述回调接口用于实现数据传输且支持发送方进程的多次回调,所述回调接口提供有开始传输方法、传输方法和结束传输方法,所述回调接口用于指示所述发送方进程在一次进程间通信过程中将数据分批进行传输;
请求发送模块,用于向所述发送方进程发送数据获取请求;
接口发送模块,用于向所述发送方进程提供所述回调接口;
数据接收模块,用于接收所述发送方进程对所述回调接口提供的所述传输方法的n次回调,每次回调用于传输n个数据块中的一块,所述n个数据块是所述发送方进程根据所述数据获取请求将目标数据切割得到的,n≥2。
12.根据权利要求11所述的装置,其特征在于,所述接口发送模块,包括:
接口封装单元,用于将所述回调接口在Binder驱动里封装为回调接口对象;
接口发送单元,用于将所述回调接口对象通过所述Binder驱动发送给所述发送方进程。
13.根据权利要求11或12所述的装置,其特征在于,所述请求发送模块,包括:
请求发送单元,用于通过Binder驱动向所述发送方进程发送Binder请求,所述Binder请求用于表示获取所述目标数据。
14.根据权利要求11或12所述的装置,其特征在于,所述装置,还包括:
第一接收模块,用于接收所述发送方进程对所述回调接口提供的所述开始传输方法的回调;
准备接收模块,用于根据所述开始传输方法的回调进入准备接收数据状态。
15.根据权利要求11或12所述的装置,其特征在于,所述装置,还包括:
第二接收模块,用于接收所述发送方进程对所述回调接口提供的所述结束传输方法的回调;
结束传输模块,根据所述结束传输方法的回调结束所述目标数据的传输。
16.一种进程间通信装置,其特征在于,所述装置包括:
请求接收模块,用于接收接收方进程发送的数据获取请求;
接口获取模块,用于获取所述接收方进程提供的回调接口,所述回调接口是所述接收方进程创建的用于实现数据传输且支持多次回调的接口,所述回调接口提供有开始传输方法、传输方法和结束传输方法,所述回调接口用于指示发送方进程在一次进程间通信过程中将数据分批进行传输;
数据切割模块,用于根据所述数据获取请求将目标数据切割为n个数据块,n≥2;
数据回调模块,用于对所述回调接口提供的所述传输方法进行n次回调,每次回调用于传输所述n个数据块中的一个。
17.根据权利要求16所述的装置,其特征在于,所述接口获取模块,包括:
对象接收单元,用于接收所述接收方进程通过Binder驱动发送的回调接口对象,所述回调接口对象是所述接收方进程将所述回调接口在所述Binder驱动中封装得到的。
18.根据权利要求16或17所述的装置,其特征在于,所述请求接收模块,包括:
请求接收单元,用于接收所述接收方进程通过Binder驱动发送的Binder请求,所述Binder请求用于表示获取所述目标数据。
19.根据权利要求16或17所述的装置,其特征在于,所述装置,还包括:
开始回调模块,用于对所述回调接口提供的所述开始传输方法进行回调,所述回调用于触发所述接收方进程进入准备接收数据状态。
20.根据权利要求16或17所述的装置,其特征在于,所述装置,还包括:
结束回调模块,用于对所述回调接口提供的所述结束传输方法进行回调,所述回调用于触发所述接收方进程结束所述目标数据的传输。
21.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如权利要求1至10任一所述的进程间通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410394825.6A CN105335238B (zh) | 2014-08-12 | 2014-08-12 | 进程间通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410394825.6A CN105335238B (zh) | 2014-08-12 | 2014-08-12 | 进程间通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335238A CN105335238A (zh) | 2016-02-17 |
CN105335238B true CN105335238B (zh) | 2020-04-21 |
Family
ID=55285793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410394825.6A Active CN105335238B (zh) | 2014-08-12 | 2014-08-12 | 进程间通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335238B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491350B (zh) * | 2017-09-05 | 2018-08-10 | 武汉斗鱼网络科技有限公司 | 接口任务调用方法及装置 |
CN109117340B (zh) * | 2018-06-29 | 2022-03-29 | Oppo(重庆)智能科技有限公司 | 一种移动终端及其进程间通信的监控方法、存储介质 |
CN109412840A (zh) * | 2018-10-08 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种数据获取方法及sdn控制器 |
CN109995861B (zh) * | 2019-03-29 | 2022-04-01 | 上海势航网络科技有限公司 | 车载***应用与车载***器件的中继通信方法及*** |
CN115202902B (zh) * | 2022-07-01 | 2023-08-22 | 荣耀终端有限公司 | 控制进程交互的方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541558A (zh) * | 2011-12-28 | 2012-07-04 | Tcl集团股份有限公司 | 在基于Android内核的电视***中集成Android应用***的方法 |
CN102654840A (zh) * | 2011-11-30 | 2012-09-05 | 天津书生投资有限公司 | 一种函数回调的方法和*** |
CN102662778A (zh) * | 2012-04-28 | 2012-09-12 | 杭州格畅科技有限公司 | 在线应用平台上应用间通信的回调应答方法、应用及在线应用平台 |
CN103309730A (zh) * | 2012-03-15 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 跨进程回调的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451278B2 (en) * | 2003-02-13 | 2008-11-11 | Silicon Graphics, Inc. | Global pointers for scalable parallel applications |
US8521966B2 (en) * | 2007-11-16 | 2013-08-27 | Vmware, Inc. | VM inter-process communications |
US8893222B2 (en) * | 2012-11-13 | 2014-11-18 | Auckland Uniservices Ltd. | Security system and method for the android operating system |
-
2014
- 2014-08-12 CN CN201410394825.6A patent/CN105335238B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102654840A (zh) * | 2011-11-30 | 2012-09-05 | 天津书生投资有限公司 | 一种函数回调的方法和*** |
CN102541558A (zh) * | 2011-12-28 | 2012-07-04 | Tcl集团股份有限公司 | 在基于Android内核的电视***中集成Android应用***的方法 |
CN103309730A (zh) * | 2012-03-15 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 跨进程回调的方法及装置 |
CN102662778A (zh) * | 2012-04-28 | 2012-09-12 | 杭州格畅科技有限公司 | 在线应用平台上应用间通信的回调应答方法、应用及在线应用平台 |
Non-Patent Citations (1)
Title |
---|
基于监听代理的突发信息柔性回调技术;屈志坚 等;《电力***自动化》;20111110;第35卷(第21期);第63-67页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105335238A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117361B (zh) | 一种小程序的远程调试方法、相关设备及*** | |
EP3525417A1 (en) | Data processing method, device, storage medium, electronic device and server | |
CN105335238B (zh) | 进程间通信方法及装置 | |
EP3553663B1 (en) | Message reminding method for terminal, and terminal | |
CN104967865B (zh) | 视频预览方法和装置 | |
CN106502826B (zh) | 数据备份及传输方法及移动终端 | |
CN104778055B (zh) | 显示进度条的方法和装置 | |
WO2015131735A1 (en) | Method and apparatus for switching real-timeimage in instant messaging | |
CN104581993B (zh) | 无线连接建立的方法、数据传输的方法以及终端 | |
CN112134758B (zh) | 弱网环境监测和通信会话重连的方法和装置 | |
US20150304701A1 (en) | Play control method and device | |
CN104093123A (zh) | 应用程序的信息推送方法、装置和***、移动终端 | |
CN104967634A (zh) | 文件上传方法及装置 | |
US20190191296A1 (en) | Method for Data Migration and Terminal | |
CN112691363A (zh) | 一种云游戏跨终端切换的方法和相关装置 | |
CN113489630A (zh) | 配网方法、装置、存储介质及电子终端 | |
CN109495769B (zh) | 视频通信方法、终端、智能电视、服务器及存储介质 | |
CN111273955B (zh) | 热修复插件优化方法、装置、存储介质及电子设备 | |
CN103177217A (zh) | 一种文件扫描方法、***及客户端和服务器 | |
CN107317828B (zh) | 文件下载方法及装置 | |
CN108476441A (zh) | 小区切换方法和终端设备 | |
CN111083285A (zh) | 一种移动终端通话定位***和方法 | |
CN107426813B (zh) | 网络信息的显示方法及装置 | |
CN106330875B (zh) | 消息显示方法及装置 | |
CN115113950A (zh) | 一种应用产品提示信息的输出方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |