一種跨進程交互方法及相關(guān)終端設(shè)備的制作方法
【專利摘要】本發(fā)明涉及計算機進程交互領(lǐng)域,公開了一種跨進程交互方法及相關(guān)終端設(shè)備。其中,該方法包括:第一進程創(chuàng)建與第二進程之間的跨進程交互連接;第一進程接收到數(shù)據(jù)對象并將該數(shù)據(jù)對象封裝為數(shù)據(jù)操作對象;第二進程向第一進程發(fā)送獲取所述數(shù)據(jù)操作對象的請求;及第一進程根據(jù)上述請求生成相應(yīng)的數(shù)據(jù)操作對象集合并將該數(shù)據(jù)對象集合發(fā)送至第二進程。實施本發(fā)明可以實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)與信息圖形之間跨進程交互,使得計算機系統(tǒng)在面對大量數(shù)據(jù)改變的操作時,也可以流暢快速地繪圖與處理用戶的操作。
【專利說明】一種跨進程交互方法及相關(guān)終端設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,尤其涉及一種跨進程交互方法及相關(guān)終端設(shè)備。
【背景技術(shù)】
[0002]人機交互(Human-Computer Interaction, HCI)通常是指人與計算機之間使用某種對話語言,以一定的交互方式,為完成確定任務(wù)的人與計算機之間的信息交換過程。計算機的大部分信息的展示,都是以圖形的方式呈現(xiàn)的,圖形是人機交互的主要表現(xiàn)形式,其對數(shù)據(jù)有更直觀的描述。例如,代表各種程序入口的桌面圖標、代表對話信息的列表框、代表警告與提示信息的彈出框、代表即時通訊新消息的閃動并提示的消息框等圖形。
[0003]現(xiàn)有的計算機系統(tǒng)中,繪圖、播放動畫等圖形操作往往需要大量的時間進行處理,而且會耗費大量的資源(如內(nèi)存),相對而言,該圖形操作所需的網(wǎng)絡(luò)數(shù)據(jù)資源較少,而且僅需要對網(wǎng)絡(luò)數(shù)據(jù)輕量的邏輯處理。然而,由于網(wǎng)絡(luò)常常存在不穩(wěn)定的狀況,盡管網(wǎng)絡(luò)數(shù)據(jù)的處理不會耗費過多的網(wǎng)絡(luò)資源,但是往往會導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)的處理消耗大量的時間。因此,由于網(wǎng)絡(luò)數(shù)據(jù)進程與信息圖形繪制進程之間無法跨進程處理,當面對大量的網(wǎng)絡(luò)數(shù)據(jù)改變操作時,圖形的處理能力往往制約整個計算機系統(tǒng)性能的瓶頸。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例所要解決的技術(shù)問題是提供一種跨進程交互方法及相關(guān)終端設(shè)備,可以實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)與信息圖形之間跨進程交互,使得計算機系統(tǒng)在面對大量數(shù)據(jù)改變的操作時,也可以流暢快速地繪圖與處理用戶的操作。
[0005]本發(fā)明實施例第一方面提供一種跨進程交互方法,包括:
第一進程創(chuàng)建與第二進程之間的跨進程交互連接;
第一進程接收到數(shù)據(jù)對象并將該數(shù)據(jù)對象封裝為數(shù)據(jù)操作對象;
第二進程向第一進程發(fā)送獲取所述數(shù)據(jù)操作對象的請求;及
第一進程根據(jù)上述請求生成相應(yīng)的數(shù)據(jù)操作對象集合并將該數(shù)據(jù)對象集合發(fā)送至第
二進程。
[0006]本發(fā)明實施例第二方面提供的一種終端設(shè)備,包括:
數(shù)據(jù)操作模塊,用于為第一進程創(chuàng)建與第二進程之間的跨進程交互連接,為該第一進程接收數(shù)據(jù)對象并將該數(shù)據(jù)對象封裝為數(shù)據(jù)操作對象;及
圖形繪制模塊,用于為第二進程向第一進程發(fā)送獲取所述數(shù)據(jù)操作對象的請求,使得所述數(shù)據(jù)操作模塊根據(jù)上述請求生成相應(yīng)的數(shù)據(jù)操作對象集合,并接收來自所述數(shù)據(jù)操作模塊的數(shù)據(jù)操作對象集合。
[0007]本發(fā)明實施例所述的跨進程交互方法中,使用不同的進程區(qū)分數(shù)據(jù)操作與圖形繪制,使得數(shù)據(jù)操作進程與圖形繪制進程之間實現(xiàn)跨進程交互連接,簡化了跨進程通信過程中通道建立過程,提高了數(shù)據(jù)處理效率。而且,基于該數(shù)據(jù)操作進程與圖形繪制進程之間實現(xiàn)跨進程交互通信,并利用數(shù)據(jù)操作對象列表來緩沖數(shù)據(jù)操作,即使計算機系統(tǒng)在面對大量的網(wǎng)絡(luò)數(shù)據(jù)改變操作時,也可以流暢有效地繪制圖形和處理用戶的操作,而且能保證動畫的平順播放。
【專利附圖】
【附圖說明】
[0008]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0009]圖1是本發(fā)明實施例提供的一種跨進程交互方法的流程圖。
[0010]圖2是本發(fā)明實施例提供的另一種跨進程交互方法的流程圖。
[0011]圖3是圖2中所述跨進程交互方法中步驟S207的流程圖。
[0012]圖4是本發(fā)明實施例提供的一種終端設(shè)備的結(jié)構(gòu)圖。
[0013]圖5是本發(fā)明實施例提供的一種終端設(shè)備的具體功能模塊圖。
【具體實施方式】
[0014]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0015]本發(fā)明實施例提供了一種跨進程交互方法及相關(guān)終端設(shè)備中,使用不同的進程區(qū)分數(shù)據(jù)操作與圖形繪制,使得數(shù)據(jù)操作進程與圖形繪制進程之間實現(xiàn)跨進程交互連接,簡化了跨進程通信過程中通道建立過程,提高了數(shù)據(jù)處理效率。而且,基于該數(shù)據(jù)操作進程與圖形繪制進程之間實現(xiàn)跨進程交互通信,即使計算機系統(tǒng)在面對大量的網(wǎng)絡(luò)數(shù)據(jù)改變操作時,也可流暢有效地繪制圖形和處理用戶的操作,而且能保證動畫的平順播放。以下分別進行詳細說明。
[0016]請參閱圖1,圖1是本發(fā)明實施例提供的一種跨進程交互方法的流程圖。在本發(fā)明實施例中,所述跨進程可為數(shù)據(jù)操作進程與圖形繪制進程之間的跨進程交互,可以理解,該跨進程也可以為其他兩個進程之間的跨進程交互操作,并不限定于所述數(shù)據(jù)操作進程與圖形繪制進程之間的跨進程交互,本實施例僅以此為例加以說明。
[0017]所述數(shù)據(jù)操作進程與圖形繪制進程交互通信在終端設(shè)備中完成,本實施例中,終端設(shè)備可以是裝載有控制軟件的,并且具有計算能力的電腦、智能手機、電視機以及各種家庭智能設(shè)備、商用智能設(shè)備、辦公智能設(shè)備、移動互聯(lián)網(wǎng)設(shè)備(Mobile Internet Devices,MID)等,本發(fā)明實施例不作具體限定。
[0018]如圖1所示,所述跨進程交互方法至少包括如下步驟。
[0019]S101、第二進程向第一進程發(fā)送跨進程交互連接請求。
[0020]在本發(fā)明實施例中,所述第一進程可為數(shù)據(jù)操作進程,所述第二進程可為圖形繪制進程,該第一進程與第二進程可通過socket實現(xiàn)跨進程交互連接。所述socket作為跨進程通信方式,是一種基于文件的本地socket連接,其不但可用于單機內(nèi)的進程間通信,還可用于不同終端設(shè)備之間的進程間通信。[0021]S102、根據(jù)所述跨進程交互連接請求,第一進程創(chuàng)建與第二進程之間的跨進程交互連接。
[0022]在本發(fā)明實施例中,當所述數(shù)據(jù)操作進程接收到所述圖形繪制進程的跨進程交互連接請求時,該數(shù)據(jù)操作進程反饋跨進程交互連接響應(yīng),建立從該數(shù)據(jù)操作進程到所述圖形繪制進程的通信通道,并可根據(jù)所述請求的類型加載相應(yīng)的服務(wù)模塊。該數(shù)據(jù)操作進程與圖形繪制進程之間通過socket進行跨進程交互連接,并根據(jù)連接啟動的方式以及本地socket要連接的目標,,所述第一進程與第二進程之間通過socket跨進程交互連接的過程包括:
第一進程監(jiān)聽:該第一進程監(jiān)聽是否有其他進程的連接請求;具體為,該第一進程創(chuàng)建socket,并綁定具有文件描述符的文件,并監(jiān)聽是否有其他對應(yīng)于該文件描述符的本地socket連接請求;
第二進程請求:所述第二進程socket發(fā)出連接請求;具體為,第二進程創(chuàng)建socket,并綁定與所述第一進程的文件描述符相對應(yīng)的文件,該第二進程的socket描述其要連接的第一進程的socket,指出該第一進程socket的文件路徑,然后向第一進程socket發(fā)出連接請求;
第一進程響應(yīng)所述連接請求以確認連接:所述第一進程socket監(jiān)聽到或接收到第二進程socket的連接請求,并響應(yīng)該連接請求以建立一個新的路徑,把第一進程socket的描述發(fā)給第二進程,若該第二進程確認了該描述,則所述第一進程與第二進程之間建立socket跨進程交互連接以接收/發(fā)送數(shù)據(jù)。
[0023]S103、接收到新數(shù)據(jù)對象并將其封裝為數(shù)據(jù)操作對象。
[0024]在本發(fā)明實施例中,當用戶進行數(shù)據(jù)操作或者接收到服務(wù)器的新數(shù)據(jù)對象時,所述數(shù)據(jù)操作進程將獲得的新數(shù)據(jù)對象封裝成對應(yīng)的數(shù)據(jù)操作對象。其中,所述用戶進行數(shù)據(jù)操作主要指用戶主動添加、刪除一條信息的操作。請參閱表1,將一條包括發(fā)送者和信息內(nèi)容的信息封裝成如表1所示的格式的數(shù)據(jù)操作對象。
[0025]表1:由一條信息封裝成數(shù)據(jù)操作對象的格式
【權(quán)利要求】
1.一種跨進程交互方法,其特征在于,包括: 第一進程創(chuàng)建與第二進程之間的跨進程交互連接; 第一進程接收到數(shù)據(jù)對象并將該數(shù)據(jù)對象封裝為數(shù)據(jù)操作對象; 第二進程向第一進程發(fā)送獲取所述數(shù)據(jù)操作對象的請求;及 第一進程根據(jù)上述請求生成相應(yīng)的數(shù)據(jù)操作對象集合并將該數(shù)據(jù)對象集合發(fā)送至第二進程。
2.根據(jù)權(quán)利要求1所述的跨進程交互方法,其特征在于,在第一進程創(chuàng)建與第二進程之間的跨進程交互連接的步驟之前,所述方法還包括:第二進程向第一進程發(fā)送跨進程交互連接請求,其中,所述第一進程與第二進程之間通過socket跨進程交互連接。
3.根據(jù)權(quán)利要求2所述的跨進程交互方法,其特征在于,在第二進程向第一進程發(fā)送跨進程交互連接請求的步驟之前,所述方法還包括:第一進程注冊socket監(jiān)聽器,以監(jiān)聽是否有socket連接請求。
4.根據(jù)權(quán)利要求3所述的跨進程交互方法,其特征在于,所述第一進程與第二進程之間通過socket跨進程交互連接,包括: 第一進程監(jiān)聽:該第一進程監(jiān)聽是否有其他進程的連接請求,其中,該第一進程創(chuàng)建socket,并綁定具有文件描述符的文件,并監(jiān)聽是否有其他對應(yīng)于該文件描述符的本地socket連接請求; 第二進程請求:所述第二進程socket發(fā)出連接請求,其中,所述第二進程創(chuàng)建socket,并綁定與所述第一進程的文件·描述符相對應(yīng)的文件,該第二進程的socket描述其要連接的第一進程的socket,指出該第一進程socket的文件路徑,并向該第一進程socket發(fā)出連接請求;及 第一進程響應(yīng)所述連接請求以確認連接:所述第一進程socket監(jiān)聽到或接收到第二進程socket的連接請求,并響應(yīng)該連接請求以建立一個新的路徑,把第一進程socket的描述發(fā)給第二進程,若該第二進程確認了該描述,則所述第一進程與第二進程之間建立socket跨進程交互連接以接收/發(fā)送數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的跨進程交互方法,其特征在于,所述第二進程向第一進程發(fā)送獲取所述數(shù)據(jù)操作對象的請求包括: 當所述第二進程接收到來自所述第一進程的具有數(shù)據(jù)操作對象的通知時,判斷當前是否有動畫在運行,若當前沒有動畫在運行,則直接向所述第一進程請求獲取數(shù)據(jù)操作對象;若判斷當前有動畫正在運行,則等到該動畫結(jié)束時再向所述第一進程請求獲取數(shù)據(jù)操作對象。
6.根據(jù)權(quán)利要求1所述的跨進程交互方法,其特征在于,在第一進程根據(jù)上述請求生成相應(yīng)的數(shù)據(jù)操作對象集合并將該數(shù)據(jù)對象集合發(fā)送至第二進程的步驟之后,所述方法還包括:第二進程根據(jù)接收到的數(shù)據(jù)操作對象集合進行動畫處理操作。
7.根據(jù)權(quán)利要求6所述的跨進程交互方法,其特征在于,所述第二進程根據(jù)接收到的數(shù)據(jù)操作對象集合進行動畫處理操作,包括: 將桌面上的圖形信息放入臨時的內(nèi)存隊列中; 遍歷所述數(shù)據(jù)操作對象集合; 遍歷桌面上的圖標序列與內(nèi)存隊列;執(zhí)行動畫預(yù)處理; 按照優(yōu)化級別執(zhí)行動畫操作;及 清空所述內(nèi)容隊列。
8.根據(jù)權(quán)利要求7所述的跨進程交互方法,其特征在于,所述遍歷所述數(shù)據(jù)操作對象集合包括: 所述第二進程對所述數(shù)據(jù)操作對象集合進行遍歷,當遍歷到數(shù)據(jù)操作對象的操作為添加時,將操作中的數(shù)據(jù)對象轉(zhuǎn)換成圖標,并將其插入到內(nèi)存隊列中;當遍歷到數(shù)據(jù)操作對象的操作為刪除時,所述第二進程給即將刪除的圖標打上一個即將被刪除的標記,并暫時保留在內(nèi)存隊列中。
9.根據(jù)權(quán)利要求7所述的跨進程交互方法,其特征在于,所述遍歷桌面上的圖標序列與內(nèi)存隊列包括: 所述第二進程同時遍歷桌面上的圖標序列和內(nèi)存隊列,為內(nèi)存隊列中新增加的圖標設(shè)置插入動畫,為內(nèi)存隊列中標記為刪除的圖標設(shè)置刪除動畫,為內(nèi)存隊列中的原有圖標中相對于圖標序列中圖標的位置發(fā)生變化的圖標設(shè)置位移動畫。
10.根據(jù)權(quán)利要求9所述的跨進程交互方法,其特征在于,所述執(zhí)行動畫預(yù)處理的步驟,包括: 如果存在刪除動畫,則所有的刪除動畫操作最先執(zhí)行,并同時進行; 如果存在位移動畫,則所有的位移動畫在刪除動畫操作之后同時執(zhí)行;及 如果存在添加動畫,則 所有的添加動畫在位移動畫操作之后同時執(zhí)行。
11.一種終端設(shè)備,其特征在于,包括: 數(shù)據(jù)操作模塊,用于為第一進程創(chuàng)建與第二進程之間的跨進程交互連接,為該第一進程接收數(shù)據(jù)對象并將該數(shù)據(jù)對象封裝為數(shù)據(jù)操作對象;及 圖形繪制模塊,用于為第二進程向第一進程發(fā)送獲取所述數(shù)據(jù)操作對象的請求,使得所述數(shù)據(jù)操作模塊根據(jù)上述請求生成相應(yīng)的數(shù)據(jù)操作對象集合,并接收來自所述數(shù)據(jù)操作模塊的數(shù)據(jù)操作對象集合。
12.根據(jù)權(quán)利要求11所述的終端設(shè)備,其特征在于,所述數(shù)據(jù)操作模塊還包括數(shù)據(jù)收發(fā)單元,該數(shù)據(jù)收發(fā)單元用于為第一進程注冊socket監(jiān)聽器,以監(jiān)聽是否有socket連接請求。
13.根據(jù)權(quán)利要求12所述的終端設(shè)備,其特征在于,所述數(shù)據(jù)收發(fā)單元還用于接收第二進程發(fā)送的跨進程交互連接請求,并根據(jù)上述跨進程交互連接請求,創(chuàng)建所述第一進程與第二進程之間的跨進程交互連接,其中,所述第一進程與第二進程之間通過socket跨進程交互連接。
14.根據(jù)權(quán)利要求12所述的終端設(shè)備,其特征在于,所述數(shù)據(jù)操作模塊還包括數(shù)據(jù)操作單元,該數(shù)據(jù)操作單元用于將所述數(shù)據(jù)對象封裝為對應(yīng)的數(shù)據(jù)操作對象。
15.根據(jù)權(quán)利要求14所述的終端設(shè)備,其特征在于,所述數(shù)據(jù)操作單元用于處理該數(shù)據(jù)操作對象以形成對應(yīng)的數(shù)據(jù)操作對象集合,并通過所述數(shù)據(jù)收發(fā)單元將該數(shù)據(jù)操作對象集合發(fā)送至所述圖形繪制模塊。
16.根據(jù)權(quán)利要求12所述的終端設(shè)備,其特征在于,所述圖形繪制模塊還包括數(shù)據(jù)接收單元,該數(shù)據(jù)接收單元用于接收從所述數(shù)據(jù)收發(fā)單元發(fā)送的數(shù)據(jù)操作對象及打包后形成的相應(yīng)的數(shù)據(jù)操作對象集合。
17.根據(jù)權(quán)利要求16所述的終端設(shè)備,其特征在于,所述圖形繪制模塊還包括圖形處理單元,該圖形處理單元用于將桌面上的圖形信息放入臨時的內(nèi)存隊列中。
18.根據(jù)權(quán)利要求17所述的終端設(shè)備,其特征在于,所述圖形繪制模塊還包括適配器單元,該適配器單元用于遍歷所述數(shù)據(jù)操作對象集合,當遍歷到數(shù)據(jù)操作對象的操作為添加時,將操作中的數(shù)據(jù)對象轉(zhuǎn)換成圖標,并將其插入到內(nèi)存隊列中;當遍歷到數(shù)據(jù)操作對象的操作為刪除時,所述第二進程給即將刪除的圖標打上一個即將被刪除的標記,并暫時保留在內(nèi)存隊列中。
19.根據(jù)權(quán)利要求17所述的終端設(shè)備,其特征在于,所述圖形處理單元還用于遍歷桌面上的圖標序列與內(nèi)存隊列,該圖形處理單元同時遍歷桌面的圖標序列和內(nèi)存隊列,為內(nèi)存隊列中新增加的圖標設(shè)置插入動畫,為內(nèi)存隊列中標記為刪除的圖標設(shè)置刪除動畫,為內(nèi)存隊列中的原有圖標中相對于圖標序列中圖標的位置發(fā)生變化的圖標設(shè)置位移動畫。
20.根據(jù)權(quán)利要求17所述的終端設(shè)備,其特征在于,所述圖形處理單元還用于執(zhí)行動畫預(yù)處理操作,所述動畫預(yù)處理操作包括: 如果存在刪除動畫,則所有的刪除動畫操作最先執(zhí)行,并同時進行; 如果存在位移動畫,則所有的位移動畫在刪除動畫操作之后同時執(zhí)行;及 如果存在添加動畫,則所有的添加動畫在位移動畫操作之后同時執(zhí)行。
21.根據(jù)權(quán)利要求20所述的終端設(shè)備,其特征在于,所述圖形處理單元進一步用于根據(jù)優(yōu)先級別執(zhí)行動畫處理操作,并在上述動畫處理操作執(zhí)行完成之后,清空所述臨時的內(nèi)存隊列?!?br>
【文檔編號】G06F9/54GK103853621SQ201210515439
【公開日】2014年6月11日 申請日期:2012年12月5日 優(yōu)先權(quán)日:2012年12月5日
【發(fā)明者】丁尋 申請人:騰訊科技(深圳)有限公司