,該回調(diào)接口用于實現(xiàn)數(shù)據(jù)傳輸且支持發(fā)送方進(jìn)程的多次回調(diào)。
[0054]接收方進(jìn)程創(chuàng)建回調(diào)接口,該回調(diào)接口實現(xiàn)包括但不限于開始傳輸方法、傳輸方法和結(jié)束傳輸方法。
[0055]需要說明的是,為了使接收方進(jìn)程和發(fā)送方進(jìn)程能夠進(jìn)行對應(yīng),接收方進(jìn)程與發(fā)送方進(jìn)程都需要實現(xiàn)IDemo接口,根據(jù)該IDemo接口進(jìn)行對應(yīng)。接收方進(jìn)程基于IDemo接口創(chuàng)建出新的回調(diào)接口,該回調(diào)接口用于實現(xiàn)數(shù)據(jù)傳輸且支持發(fā)送方進(jìn)程的多次回調(diào)。
[0056]步驟402,接收方進(jìn)程向發(fā)送方進(jìn)程發(fā)送數(shù)據(jù)獲取請求。
[0057]在安卓系統(tǒng)中,基于Binder的進(jìn)程間通信通過Binder驅(qū)動在進(jìn)程雙方傳輸數(shù)據(jù)。所以,接收方進(jìn)程通過Binder驅(qū)動向發(fā)送方進(jìn)程發(fā)送Binder請求,該Binder請求用于表示向發(fā)送方進(jìn)程獲取數(shù)據(jù)。
[0058]步驟403,發(fā)送方進(jìn)程接收接收方進(jìn)程發(fā)送的數(shù)據(jù)獲取請求。
[0059]發(fā)送方進(jìn)程接收接收方進(jìn)程通過Binder驅(qū)動發(fā)送的Binder請求,該Binder請求用于表示獲取數(shù)據(jù)。
[0060]發(fā)送方進(jìn)程在接收到該數(shù)據(jù)獲取請求后,將根據(jù)該數(shù)據(jù)獲取請求查找需要發(fā)送的目標(biāo)數(shù)據(jù)。
[0061]比如,發(fā)送方進(jìn)程接收到的Binder請求為獲取視頻A,表示接收方進(jìn)程請求發(fā)送方進(jìn)程發(fā)送視頻A的數(shù)據(jù),發(fā)送方進(jìn)程將會查找該視頻A,視頻A即需要發(fā)送的目標(biāo)數(shù)據(jù)。
[0062]步驟404,接收方進(jìn)程向發(fā)送方進(jìn)程提供回調(diào)接口。
[0063]接收方進(jìn)程將創(chuàng)建好的回調(diào)接口提供給發(fā)送方進(jìn)程。本步驟具體包括如下子步驟:
[0064]一、接收方進(jìn)程將回調(diào)接口在Binder驅(qū)動里封裝為回調(diào)接口對象。
[0065]在Binder驅(qū)動中,回調(diào)接口通過Binder機(jī)制被封裝成回調(diào)接口對象。
[0066]二、接收方進(jìn)程將回調(diào)接口對象通過Binder驅(qū)動發(fā)送給發(fā)送方進(jìn)程。
[0067]對應(yīng)地,發(fā)送方進(jìn)程可以通過Binder驅(qū)動獲取該回調(diào)接口對象。
[0068]步驟405,發(fā)送方進(jìn)程獲取接收方進(jìn)程提供的回調(diào)接口。
[0069]發(fā)送方進(jìn)程接收接收方進(jìn)程通過Binder驅(qū)動發(fā)送的回調(diào)接口對象,該回調(diào)接口對象是接收方進(jìn)程將回調(diào)接口在Binder驅(qū)動中封裝得到的。
[0070]發(fā)送方進(jìn)程可以通過回調(diào)該回調(diào)接口對象中的開始傳輸方法、傳輸方法和結(jié)束傳輸方法,實現(xiàn)進(jìn)程間的通信。
[0071]需要說明的是,上述數(shù)據(jù)獲取請求的發(fā)送時機(jī)和回調(diào)接口對象的發(fā)送先后順序沒有嚴(yán)格的限制,亦可以同時進(jìn)行,對此并不構(gòu)成限定。
[0072]步驟406,發(fā)送方進(jìn)程根據(jù)數(shù)據(jù)獲取請求將目標(biāo)數(shù)據(jù)切割為η個數(shù)據(jù)塊,η > 2。
[0073]發(fā)送方進(jìn)程根據(jù)發(fā)送方進(jìn)程發(fā)送的數(shù)據(jù)獲取請求,獲取目標(biāo)數(shù)據(jù),并將該目標(biāo)數(shù)據(jù)切割為η個數(shù)據(jù)塊,η >2。
[0074]由于單次傳輸?shù)臄?shù)據(jù)量不能超過預(yù)定閾值,所以發(fā)送方進(jìn)程需要將目標(biāo)數(shù)據(jù)按照預(yù)定閥值進(jìn)行切割,該預(yù)定閥值可以是根據(jù)系統(tǒng)性能設(shè)置的。
[0075]步驟407,發(fā)送方進(jìn)程對回調(diào)接口提供的開始傳輸方法進(jìn)行回調(diào),該回調(diào)用于觸發(fā)接收方進(jìn)程進(jìn)入準(zhǔn)備接收數(shù)據(jù)狀態(tài)。
[0076]發(fā)送方進(jìn)程回調(diào)接收到的回調(diào)接口提供的開始傳輸方法,當(dāng)接收方進(jìn)程接收到該回調(diào)方法,即知悉發(fā)送方進(jìn)程將要開始傳輸數(shù)據(jù)。
[0077]步驟408,接收方進(jìn)程接收發(fā)送方進(jìn)程對回調(diào)接口提供的開始傳輸方法的回調(diào)。
[0078]步驟409,接收方進(jìn)程根據(jù)開始傳輸方法的回調(diào)進(jìn)入準(zhǔn)備接收數(shù)據(jù)狀態(tài)。
[0079]接收方進(jìn)程接收到該回調(diào)方法后,準(zhǔn)備接收發(fā)送方進(jìn)程傳輸?shù)臄?shù)據(jù)。
[0080]步驟410,發(fā)送方進(jìn)程對回調(diào)接口提供的傳輸方法進(jìn)行η次回調(diào),每次回調(diào)用于傳輸η個數(shù)據(jù)塊中的一個。
[0081]發(fā)送方進(jìn)程通過回調(diào)回調(diào)接口對象提供的傳輸方法,將目標(biāo)數(shù)據(jù)切割成的η個數(shù)據(jù)塊進(jìn)行傳輸,每回調(diào)一次傳輸方法就通過Binder驅(qū)動將η個數(shù)據(jù)塊中的一個發(fā)送至接收方進(jìn)程。
[0082]步驟411,接收方進(jìn)程接收發(fā)送方進(jìn)程對回調(diào)接口提供的傳輸方法的η次回調(diào),每次回調(diào)用于傳輸η個數(shù)據(jù)塊中的一塊,該η個數(shù)據(jù)塊是發(fā)送方進(jìn)程根據(jù)數(shù)據(jù)獲取請求將目標(biāo)數(shù)據(jù)切割得到的,η >2。
[0083]接收方進(jìn)程在接收到數(shù)據(jù)塊后,對接收到的數(shù)據(jù)塊進(jìn)行處理。
[0084]步驟412,發(fā)送方進(jìn)程對回調(diào)接口提供的結(jié)束傳輸方法進(jìn)行回調(diào),該回調(diào)用于觸發(fā)接收方進(jìn)程結(jié)束目標(biāo)數(shù)據(jù)的傳輸。
[0085]發(fā)送方進(jìn)程在將η個數(shù)據(jù)塊全部傳輸結(jié)束后,將回調(diào)回調(diào)接口對象中的結(jié)束傳輸方法,當(dāng)接收方進(jìn)程接收到該回調(diào)方法后,即知悉數(shù)據(jù)傳輸結(jié)束。
[0086]步驟413,接收方進(jìn)程接收發(fā)送方進(jìn)程對回調(diào)接口提供的結(jié)束傳輸方法的回調(diào)。
[0087]步驟414,接收方進(jìn)程根據(jù)結(jié)束傳輸方法的回調(diào)結(jié)束目標(biāo)數(shù)據(jù)的傳輸。
[0088]綜上所述,本實施例提供的進(jìn)程間通信方法,通過接收方進(jìn)程向發(fā)送方進(jìn)程提供回調(diào)接口 ;接收方進(jìn)程接收發(fā)送方進(jìn)程對回調(diào)接口提供的傳輸方法的η次回調(diào),每次回調(diào)用于傳輸目標(biāo)數(shù)據(jù)中η個數(shù)據(jù)塊中的一個;解決了由于一次性的IDemo接口單次能夠傳輸?shù)臄?shù)據(jù)不能超過預(yù)定閾值,所以兩個進(jìn)程之間在一次進(jìn)程間通信過程中只能傳輸很小的數(shù)據(jù)的問題,達(dá)到了由接收方進(jìn)程向發(fā)送方進(jìn)程提供支持多次回調(diào)的回調(diào)接口,發(fā)送方進(jìn)程通過該回調(diào)接口實現(xiàn)了一次進(jìn)程間通信過程中將大數(shù)據(jù)分批進(jìn)行傳輸?shù)男Ч?,即不需要多次重建進(jìn)程間通信,也不會因單次傳輸?shù)臄?shù)據(jù)量太大而導(dǎo)致傳輸異常。
[0089]請參考圖5,其示出了本發(fā)明一個實施例提供的進(jìn)程間通信裝置的結(jié)構(gòu)方框圖。該進(jìn)程間通信裝置可以通過軟件、硬件或者兩者的結(jié)合實現(xiàn)成為電子設(shè)備的全部或者一部分。該進(jìn)程間通信裝置包括:
[0090]接口創(chuàng)建模塊520,用于創(chuàng)建回調(diào)接口,所述回調(diào)接口用于實現(xiàn)數(shù)據(jù)傳輸且支持發(fā)送方進(jìn)程的多次回調(diào);
[0091]請求發(fā)送模塊540,用于向所述發(fā)送方進(jìn)程發(fā)送數(shù)據(jù)獲取請求;
[0092]接口發(fā)送模塊560,用于向所述發(fā)送方進(jìn)程提供所述回調(diào)接口 ;
[0093]數(shù)據(jù)接收模塊580,用于接收所述發(fā)送方進(jìn)程對所述回調(diào)接口提供的傳輸方法的η次回調(diào),每次回調(diào)用于傳輸η個數(shù)據(jù)塊中的一塊,所述η個數(shù)據(jù)塊是所述發(fā)送方進(jìn)程根據(jù)所述數(shù)據(jù)獲取請求將目標(biāo)數(shù)據(jù)切割得到的,η > 2。
[0094]綜上所述,本實施例提供的進(jìn)程間通信裝置,通過接收方進(jìn)程向發(fā)送方進(jìn)程提供回調(diào)接口 ;接收方進(jìn)程接收發(fā)送方進(jìn)程對回調(diào)接口提供的傳輸方法的η次回調(diào),每次回調(diào)用于傳輸目標(biāo)數(shù)據(jù)中η個數(shù)據(jù)塊中的一個;解決了由于一次性的IDemo接口單次能夠傳輸?shù)臄?shù)據(jù)不能超過預(yù)定閾值,所以兩個進(jìn)程之間在一次進(jìn)程間通信過程中只能傳輸很小的數(shù)據(jù)的問題,達(dá)到了由接收方進(jìn)程向發(fā)送方進(jìn)程提供支持多次回調(diào)的回調(diào)接口,發(fā)送方進(jìn)程通過該回調(diào)接口實現(xiàn)了一次進(jìn)程間通信過程中將大數(shù)據(jù)分批進(jìn)行傳輸?shù)男Ч床恍枰啻沃亟ㄟM(jìn)程間通信,也不會因單次傳輸?shù)臄?shù)據(jù)量太大而導(dǎo)致傳輸異常。
[0095]請參考圖6,其示出了本發(fā)明另一實施例提供的進(jìn)程間通信裝置的結(jié)構(gòu)方框圖。該進(jìn)程間通信裝置可以通過軟件、硬件或者兩者的結(jié)合實現(xiàn)成為電子設(shè)備的全部或者一部分。該進(jìn)程間通信裝置包括:
[0096]接口創(chuàng)建模塊520,用于創(chuàng)建回調(diào)接口,所述回調(diào)接口用于實現(xiàn)數(shù)據(jù)傳輸且支持發(fā)送方進(jìn)程的多次回調(diào);
[0097]請求發(fā)送模塊540,用于向所述發(fā)送方進(jìn)程發(fā)送數(shù)據(jù)獲取請求;
[0098]接口發(fā)送模塊560,用于向所述發(fā)送方進(jìn)程提供所述回調(diào)接口 ;
[0099]數(shù)據(jù)接收模塊580,用于接收所述發(fā)送方進(jìn)程對所述回調(diào)接口提供的傳輸方法的η次回調(diào),每次回調(diào)用于傳輸η個數(shù)據(jù)塊中的一塊,所述η個數(shù)據(jù)塊是所述發(fā)送方進(jìn)程根據(jù)所述數(shù)據(jù)獲取請求將目標(biāo)數(shù)據(jù)切割得到的,η > 2。
[0100]可選地,接口發(fā)送模塊560,包括:
[0101]接口封裝單元561,用于將所述回調(diào)接口在Binder驅(qū)動里封裝為回調(diào)接口對象;
[0102]接口發(fā)送單元562,用于將所述回調(diào)接口對象通過所述Binder驅(qū)動發(fā)送給所述發(fā)送方進(jìn)程。
[0103]可選地,請求發(fā)送模塊540,包括:
[0104]請求發(fā)送單元541,用于通過Binder驅(qū)動向所述發(fā)送方進(jìn)程發(fā)送Binder請求,所述Binder請求用于表示獲取數(shù)據(jù)。
[0105]可選地,所述裝置,還包括:
[0106]第一接收模塊570A,用于接收所述發(fā)送方進(jìn)程對所述回調(diào)接口提供的開始傳輸方法的回調(diào);
[0107]準(zhǔn)備接收模塊570B,用于根據(jù)所述開始傳輸方法的回調(diào)進(jìn)入準(zhǔn)備接收數(shù)據(jù)狀態(tài)。
[0108]可選地,所述裝置,還包括:
[0109]第二接收模塊590A,用于接收所述發(fā)送方進(jìn)程對所述回調(diào)接口提供的結(jié)束傳輸方法的回調(diào);
[0110]結(jié)束傳輸模塊590B,根據(jù)所述結(jié)束傳輸方法的回調(diào)結(jié)束所述目標(biāo)數(shù)據(jù)的傳輸。
[0111]綜上所述,本實施例提供的進(jìn)程間通信裝置,通過接收方進(jìn)程向發(fā)送方進(jìn)程提供回調(diào)接口 ;接收方進(jìn)程接收發(fā)送方進(jìn)程對回調(diào)接口提供的傳輸方法的η次回調(diào),每次回調(diào)用于傳輸目標(biāo)數(shù)據(jù)中η個數(shù)據(jù)塊中的一個;解決了由于一次性的IDemo接口單次能夠傳輸?shù)臄?shù)據(jù)不能超過預(yù)定閾值,所以兩個進(jìn)程之間在一次進(jìn)程間通信過程中只能傳輸很小的數(shù)據(jù)的問題,達(dá)到了由接收方進(jìn)程向發(fā)送方進(jìn)程提供支持多次回調(diào)的回調(diào)接口,發(fā)送方進(jìn)程通過該回調(diào)接口實現(xiàn)了一次進(jìn)程