国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      消息交互方法及裝置的制作方法

      文檔序號(hào):6443884閱讀:159來源:國(guó)知局
      專利名稱:消息交互方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及消息交互方法及裝置。
      背景技術(shù)
      一款移動(dòng)終端上運(yùn)行的軟件(如手機(jī)軟件等)發(fā)布之后,通??梢杂袃煞N方式實(shí)現(xiàn)功能的擴(kuò)展,一種是程序的更新升級(jí),另一種就是通過發(fā)布一系列的插件,通過插件與主程序的集成達(dá)到更新升級(jí)的目的。例如,針對(duì)手機(jī)中的瀏覽器而言,需要為其實(shí)現(xiàn)網(wǎng)站排名的功能,此時(shí)就可以為開發(fā)一個(gè)小插件,該插件的功能就是統(tǒng)計(jì)當(dāng)前瀏覽網(wǎng)頁(yè)的排名。具體實(shí)現(xiàn)時(shí),該插件需要獲取瀏覽器用戶當(dāng)前瀏覽的網(wǎng)站地址信息,然后通過自身的功能得到網(wǎng)站的排名信息,再發(fā)送給瀏覽器。可見,在此過程中,插件與瀏覽器之間需要交互一些信息,但是,瀏覽器與插件又是各自獨(dú)立的應(yīng)用程序,因此,就需要解決瀏覽器與插件之間的相互通信問題?,F(xiàn)有的android移動(dòng)終端操作系統(tǒng)提供了 Intent消息機(jī)制,通過Intent的描述信息找到負(fù)責(zé)的相應(yīng)組件,并將intent傳給調(diào)用組件,Intent不但用于應(yīng)用程序內(nèi)部的調(diào)用交互,也可以用于不同的應(yīng)用程序間交互。但是,Intent的機(jī)制是單向的,也即,當(dāng)程序發(fā)送一個(gè)請(qǐng)求,卻不能得到響應(yīng),這極大的阻礙了不同程序間的相互通信。此外,在其他的實(shí)現(xiàn)方式下,瀏覽器主程序還可以使用Service組件,將自身服務(wù)提供給插件程序調(diào)用。Service是一個(gè)應(yīng)用程序的組件,運(yùn)行在后臺(tái),執(zhí)行一些耗時(shí)長(zhǎng)的操作,他沒有用戶界面。其他的應(yīng)用程序組件可以啟動(dòng)服務(wù),服務(wù)一旦啟動(dòng),即使用戶切換到另一個(gè)應(yīng)用程序,該服務(wù)也能繼續(xù)在后臺(tái)運(yùn)行。但是,插件功能是一個(gè)相對(duì)獨(dú)立的特殊要求,而Service組件是系統(tǒng)通用的,雖然Service服務(wù)滿足能夠此特殊要求,但是實(shí)現(xiàn)時(shí)的復(fù)雜程度大大提高,維護(hù)成本過高。

      發(fā)明內(nèi)容
      本發(fā)明提供了消息交互方法及裝置,便于實(shí)現(xiàn)主程序與插件之間的雙向相互通信,從而有效地提高了軟件的效率,提高了插件的管理及通信的可控性。本發(fā)明提供了如下方案一種消息交互方法,用于第一程序與第二程序之間進(jìn)行消息交互,預(yù)先將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶,并在調(diào)用接口中為同一程序的不同方法定義相同的反射函數(shù),當(dāng)?shù)谝怀绦蛐枰{(diào)用第二程序的指定方法時(shí),所述消息交互方法包括所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息,所述反射請(qǐng)求信息用于指明請(qǐng)求調(diào)用的方法,以及調(diào)用該方法時(shí)需要傳入的參數(shù);所述第二程序解析所述反射請(qǐng)求信息,基于所述傳入的參數(shù)調(diào)用所述請(qǐng)求調(diào)用的方法并將返回值通過所述調(diào)用接口返回給第一程序,以便所述第一程序利用所述返回值進(jìn)行相應(yīng)的處理。
      其中,所述第一程序?yàn)橹鞒绦?,第二程序?yàn)椴寮换蛘?,所述第一程序?yàn)椴寮龅诙绦驗(yàn)橹鞒绦?;或者,所述第一程序?yàn)橐徊寮?,所述第二程序?yàn)榱硪徊寮?。其中,所述預(yù)先將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶包括預(yù)先在所述第一程序及所述第二程序的配置文件中配置相同的User Id。優(yōu)選地,所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息之前,還包括獲取所述第二程序的對(duì)象;確定所述對(duì)象所屬的類;獲取對(duì)象的指定方法,并執(zhí)行通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息及其后續(xù)步驟。其中,所述方法應(yīng)用于移動(dòng)終端中。其中,所述移動(dòng)終端的操作系統(tǒng)為Android系統(tǒng)。一種消息交互裝置,用于第一程序與第二程序之間進(jìn)行消息交互,預(yù)先將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶,并在調(diào)用接口中為同一程序的不同方法定義相同的反射函數(shù),當(dāng)?shù)谝怀绦蛐枰{(diào)用第二程序的指定方法時(shí),所述消息交互裝置包括調(diào)用單元,用于所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息,所述反射請(qǐng)求信息用于指明請(qǐng)求調(diào)用的方法,以及調(diào)用該方法時(shí)需要傳入的參數(shù);響應(yīng)單元,用于所述第二程序解析所述反射請(qǐng)求信息,基于所述傳入的參數(shù)調(diào)用所述請(qǐng)求調(diào)用的方法并將返回值通過所述調(diào)用接口返回給第一程序,以便所述第一程序利用所述返回值進(jìn)行相應(yīng)的處理。其中,所述第一程序?yàn)橹鞒绦?,第二程序?yàn)椴寮换蛘?,所述第一程序?yàn)椴寮龅诙绦驗(yàn)橹鞒绦?;或者,所述第一程序?yàn)橐徊寮?,所述第二程序?yàn)榱硪徊寮?。其中,通過在所述第一程序及所述第二程序的配置文件中配置相同的User Id,實(shí)現(xiàn)將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶。優(yōu)選地,還包括對(duì)象獲取單元,用于所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息之前,獲取所述第二程序的對(duì)象;類確定單元,用于確定所述對(duì)象所屬的類;方法獲取單元,用于獲取對(duì)象的指定方法,并觸發(fā)執(zhí)行通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息及其后續(xù)步驟。其中,所述裝置應(yīng)用于移動(dòng)終端中。其中,所述移動(dòng)終端的操作系統(tǒng)為Android系統(tǒng)。根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開了以下技術(shù)效果在本發(fā)明中,通過為主程序及插件配置相同的進(jìn)程用戶,并為不同的方法提供統(tǒng)一的接口,從而不需要通過復(fù)雜的Service機(jī)制即可實(shí)現(xiàn)主程序與插件之間的雙向相互通信,有效地提高了軟件的效率,提高了插件的管理及通信的可控性。


      為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實(shí)施例提供的方法的流程圖;圖2是本發(fā)明實(shí)施例提供的裝置的示意圖。
      具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。為了實(shí)現(xiàn)主程序與插件之間的雙向通信,同時(shí)降低實(shí)現(xiàn)上的復(fù)雜程度,本發(fā)明實(shí)施例提供了一種消息交互方法,在該方法中,首先需要滿足以下兩個(gè)前提第一,移動(dòng)終端的操作系統(tǒng)(例如Android系統(tǒng))為每個(gè)應(yīng)用程序分配了一個(gè)單獨(dú)的用戶空間,配置文件中的User Id對(duì)應(yīng)了一個(gè)進(jìn)程用戶,在通常情況下,不同的進(jìn)程用戶之間是禁止數(shù)據(jù)相互訪問的。因此,在本發(fā)明實(shí)施例中,首先需要將主程序及其各個(gè)插件配置為相同的進(jìn)程用戶,這樣,由于主程序與插件屬于相同的進(jìn)程用戶,因此,也就為主程序與插件之間的數(shù)據(jù)相互訪問提供的基礎(chǔ)。具體實(shí)現(xiàn)時(shí),為了達(dá)到上述目的,可以在主程序及插件的配置文件中,將各自的User Id配置為相同的值。第二,各個(gè)插件、主程序之間想要雙向自由通信,就必須都有統(tǒng)一的接口。然而插件、主程序間的方法調(diào)用是通過反射完成的,并且在傳統(tǒng)的實(shí)現(xiàn)方式下,調(diào)用不同的方法 (這里的“方法”是Java編程中的概念)都需要不同的反射函數(shù),而且插件中的各個(gè)方法都不相同,因此接口就無法統(tǒng)一起來,也即,當(dāng)主程序需要調(diào)用插件中的不同方法時(shí),需要通過各自獨(dú)立的接口進(jìn)行調(diào)用,反過來也是如此。為了解決上述問題,在本發(fā)明實(shí)施例中,提出了以下方案程序之間調(diào)用不同的方法都用同一個(gè)反射函數(shù),而這個(gè)反射函數(shù)定義在接口中,并且調(diào)用程序方和被調(diào)用程序方都要實(shí)現(xiàn)此接口。具體的,調(diào)用方接口利用反射機(jī)制調(diào)用被調(diào)用方的同一個(gè)接口實(shí)現(xiàn)。被調(diào)用方接口解析調(diào)用方的反射調(diào)用請(qǐng)求,返回執(zhí)行正確的方法。具體做法可以如下程序A如果需要調(diào)用程序B的多個(gè)方法中的某一方法,只需調(diào)用B中實(shí)現(xiàn)的一個(gè)反射請(qǐng)求信息管理方法即可。程序B中的反射請(qǐng)求信息管理方法接收到A的反射請(qǐng)求信息(包括請(qǐng)求的方法具體是哪個(gè),以及調(diào)用該方法時(shí)需要傳入的參數(shù)等),首選需要解析程序A發(fā)過來的請(qǐng)求,然后調(diào)用程序B中正確的方法,并將返回值通過相同的接口返回給程序A。程序B中的反射請(qǐng)求信息管理方法可以是Object handleRequestCall (CalIRequest request)。該方法負(fù)責(zé)解析發(fā)送過來的請(qǐng)求,并解析requset中的信息,調(diào)用正確的方法。需要說明的是,在本發(fā)明實(shí)施例中使用了反射機(jī)制,為了便于理解,下面對(duì)反射機(jī)制進(jìn)行簡(jiǎn)單地介紹。所謂反射機(jī)制,就是指在運(yùn)行狀態(tài)(相對(duì)于編譯狀態(tài))中,對(duì)于任意一個(gè)類,該機(jī)制都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法;這種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能就稱為Java語言的反射機(jī)制。Java反射機(jī)制主要提供了以下功能在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類;在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象;在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法;在運(yùn)行時(shí)調(diào)用任意一個(gè)對(duì)象的方法,生成動(dòng)態(tài)代理。正是由于Java的反射機(jī)制具有上述特點(diǎn)及功能,使得本發(fā)明實(shí)施例的實(shí)現(xiàn)成為可能。另外需要說明的是,在上述描述中,程序A作為調(diào)用程序方,程序B作為被調(diào)用程序方,具體實(shí)現(xiàn)時(shí)可以為程序A是主程序,程序B是某插件,或者,程序A是某插件,程序B 是主程序,或者,程序A是主程序的某插件,程序B是主程序的另一插件等等。也就是說,在本發(fā)明實(shí)施例中,無論是主程序調(diào)用插件,還是插件調(diào)用主程序,還是主程序中的一插件調(diào)用另一插件,都可以使用同樣的方法來實(shí)現(xiàn),從而實(shí)現(xiàn)了主程序與插件之間的雙向相互通信。并且在具體實(shí)現(xiàn)時(shí),只需要為主程序及其各個(gè)插件配置相同的進(jìn)程用戶,并且實(shí)現(xiàn)統(tǒng)一的接口即可,因此,實(shí)現(xiàn)過程相對(duì)簡(jiǎn)單,降低了實(shí)現(xiàn)上的復(fù)雜性。綜上可見,本發(fā)明實(shí)施例提供了一種消息交互方法,該方法用于第一程序與第二程序之間進(jìn)行消息交互,具體實(shí)現(xiàn)時(shí),需要預(yù)先將第一程序及第二程序配置為相同的進(jìn)程用戶,并在調(diào)用接口中為同一程序的不同方法定義相同的反射函數(shù),當(dāng)?shù)谝怀绦蛐枰{(diào)用第二程序的指定方法時(shí),參見圖1,該消息交互方法可以包括以下步驟SlOl :所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息,所述反射請(qǐng)求信息用于指明請(qǐng)求調(diào)用的方法,以及調(diào)用該方法時(shí)需要傳入的參數(shù);也就是說,當(dāng)?shù)谝怀绦蛐枰{(diào)用第二程序中的某方法時(shí),就可以首先找到該第二程序的調(diào)用接口,然后通過該調(diào)用接口發(fā)出反射請(qǐng)求信息。其中,由于同一程序的各個(gè)方法均需要通過統(tǒng)一的接口進(jìn)行調(diào)用,因此,在發(fā)出反射請(qǐng)求信息時(shí),除了需要傳入相關(guān)參數(shù)之外,還需要指明請(qǐng)求調(diào)用的方法是該第二程序的哪一方法。具體實(shí)現(xiàn)時(shí),第一程序中的Activity可以使用LocalActivityManager獲取第二程序的Acivity對(duì)象mActiviy,明確要調(diào)用的對(duì)象所屬的類是主程序的某插件,還是主程序,然后用Method method = Class. getMethod得到對(duì)象的指定方法,之后就可以創(chuàng)建請(qǐng)求反射的息對(duì)象cal IRequest,對(duì)象中包含的信息具體有需要請(qǐng)求調(diào)用的方法具體是哪個(gè),以及調(diào)用插件程序方法時(shí)需要傳入哪些參數(shù)。S102:所述第二程序解析所述反射請(qǐng)求信息,基于所述傳入的參數(shù)調(diào)用所述請(qǐng)求調(diào)用的方法并將返回值通過所述調(diào)用接口返回給第一程序,以便所述第一程序利用所述返回值進(jìn)行相應(yīng)的處理。第二程序接收到第一程序的反射請(qǐng)求信息之后,就可以根據(jù)反射請(qǐng)求信息中包含的信息,基于傳入的參數(shù)調(diào)用具體的方法,得到處理處理,并將處理結(jié)果返回給第一程序。 具體可以使用 Object obj = method, invoke (mActiviy, callRequest),這里返回的 0bject 對(duì)象就是反射方法傳回來的返回值,該返回值可以供第二程序進(jìn)行后續(xù)的相應(yīng)處理時(shí)使用。在以上描述中,可以包括以下情況第一程序?yàn)橹鞒绦?,第二程序?yàn)椴寮换蛘撸?第一程序?yàn)椴寮?,第二程序?yàn)橹鞒绦?;或者,第一程序?yàn)橐徊寮?,第二程序?yàn)榱硪徊寮???傊?,通過本發(fā)明實(shí)施例,不需要通過復(fù)雜的Service機(jī)制即可實(shí)現(xiàn)主程序與插件之間的雙向相互通信,有效地提高了軟件的效率,提高了插件的管理及通信的可控性。
      與本發(fā)明實(shí)施例提供的消息交互方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種消息交互裝置,在該消息交互裝置中,預(yù)先將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶,并在調(diào)用接口中為同一程序的不同方法定義相同的反射函數(shù),當(dāng)?shù)谝怀绦蛐枰{(diào)用第二程序的指定方法時(shí),參見圖2,該裝置可以包括調(diào)用單元201,用于所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息,所述反射請(qǐng)求信息用于指明請(qǐng)求調(diào)用的方法,以及調(diào)用該方法時(shí)需要傳入的參數(shù);響應(yīng)單元202,用于所述第二程序解析所述反射請(qǐng)求信息,基于所述傳入的參數(shù)調(diào)用所述請(qǐng)求調(diào)用的方法并將返回值通過所述調(diào)用接口返回給第一程序,以便所述第一程序利用所述返回值進(jìn)行相應(yīng)的處理。其中,所述第一程序?yàn)橹鞒绦?,第二程序?yàn)椴寮换蛘?,所述第一程序?yàn)椴寮?,所述第二程序?yàn)橹鞒绦?;或者,所述第一程序?yàn)橐徊寮龅诙绦驗(yàn)榱硪徊寮?。具體實(shí)現(xiàn)時(shí),通過在所述第一程序及所述第二程序的配置文件中配置相同的User Id,實(shí)現(xiàn)將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶。具體實(shí)現(xiàn)時(shí),該裝置還可以包括對(duì)象獲取單元,用于所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息之前,獲取所述第二程序的對(duì)象;類確定單元,用于確定所述對(duì)象所屬的類;方法獲取單元,用于獲取對(duì)象的指定方法,并觸發(fā)執(zhí)行通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息及其后續(xù)步驟。在本發(fā)明實(shí)施例提供的消息交互裝置中,通過為主程序及插件配置相同的進(jìn)程用戶,并為不同的方法提供統(tǒng)一的接口,從而不需要通過復(fù)雜的Service機(jī)制即可實(shí)現(xiàn)主程序與插件之間的雙向相互通信,有效地提高了軟件的效率,提高了插件的管理及通信的可控性。通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備 (可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置或系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置及系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。以上對(duì)本發(fā)明所提供的消息交互方法及裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)
      8明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
      及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
      權(quán)利要求
      1.一種消息交互方法,用于第一程序與第二程序之間進(jìn)行消息交互,其特征在于,預(yù)先將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶,并在調(diào)用接口中為同一程序的不同方法定義相同的反射函數(shù),當(dāng)?shù)谝怀绦蛐枰{(diào)用第二程序的指定方法時(shí),所述消息交互方法包括所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息,所述反射請(qǐng)求信息用于指明請(qǐng)求調(diào)用的方法,以及調(diào)用該方法時(shí)需要傳入的參數(shù);所述第二程序解析所述反射請(qǐng)求信息,基于所述傳入的參數(shù)調(diào)用所述請(qǐng)求調(diào)用的方法并將返回值通過所述調(diào)用接口返回給第一程序,以便所述第一程序利用所述返回值進(jìn)行相應(yīng)的處理。
      2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述第一程序?yàn)橹鞒绦颍诙绦驗(yàn)椴寮?;或者,所述第一程序?yàn)椴寮?,所述第二程序?yàn)橹鞒绦?;或者,所述第一程序?yàn)橐徊寮龅诙绦驗(yàn)榱硪徊寮?br> 3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述預(yù)先將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶包括預(yù)先在所述第一程序及所述第二程序的配置文件中配置相同的User Id。
      4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息之前,還包括獲取所述第二程序的對(duì)象;確定所述對(duì)象所屬的類;獲取對(duì)象的指定方法,并執(zhí)行通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息及其后續(xù)步驟。
      5.根據(jù)權(quán)利要求I至4任一項(xiàng)所述的方法,其特征在于,所述方法應(yīng)用于移動(dòng)終端中。
      6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述移動(dòng)終端的操作系統(tǒng)為Android系統(tǒng)。
      7.一種消息交互裝置,用于第一程序與第二程序之間進(jìn)行消息交互,其特征在于,預(yù)先將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶,并在調(diào)用接口中為同一程序的不同方法定義相同的反射函數(shù),當(dāng)?shù)谝怀绦蛐枰{(diào)用第二程序的指定方法時(shí),所述消息交互裝置包括調(diào)用單元,用于所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息, 所述反射請(qǐng)求信息用于指明請(qǐng)求調(diào)用的方法,以及調(diào)用該方法時(shí)需要傳入的參數(shù);響應(yīng)單元,用于所述第二程序解析所述反射請(qǐng)求信息,基于所述傳入的參數(shù)調(diào)用所述請(qǐng)求調(diào)用的方法并將返回值通過所述調(diào)用接口返回給第一程序,以便所述第一程序利用所述返回值進(jìn)行相應(yīng)的處理。
      8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一程序?yàn)橹鞒绦?,第二程序?yàn)椴寮?;或者,所述第一程序?yàn)椴寮?,所述第二程序?yàn)橹鞒绦?;或者,所述第一程序?yàn)橐徊寮?,所述第二程序?yàn)榱硪徊寮?br> 9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,通過在所述第一程序及所述第二程序的配置文件中配置相同的User Id,實(shí)現(xiàn)將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶。
      10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括對(duì)象獲取單元,用于所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息之前,獲取所述第二程序的對(duì)象;類確定單元,用于確定所述對(duì)象所屬的類;方法獲取單元,用于獲取對(duì)象的指定方法,并觸發(fā)執(zhí)行通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息及其后續(xù)步驟。
      11.根據(jù)權(quán)利要求7至10任一項(xiàng)所述的裝置,其特征在于,所述裝置應(yīng)用于移動(dòng)終端中。
      12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述移動(dòng)終端的操作系統(tǒng)為Android系統(tǒng)。
      全文摘要
      本發(fā)明公開了消息交互方法及裝置,用于第一程序與第二程序之間進(jìn)行消息交互,預(yù)先將所述第一程序及所述第二程序配置為相同的進(jìn)程用戶,并在調(diào)用接口中為同一程序的不同方法定義相同的反射函數(shù),當(dāng)?shù)谝怀绦蛐枰{(diào)用第二程序的指定方法時(shí),所述消息交互方法包括所述第一程序通過所述調(diào)用接口,向所述第二程序發(fā)送反射請(qǐng)求信息,所述反射請(qǐng)求信息用于指明請(qǐng)求調(diào)用的方法,以及調(diào)用該方法時(shí)需要傳入的參數(shù);所述第二程序解析所述反射請(qǐng)求信息,基于所述傳入的參數(shù)調(diào)用所述請(qǐng)求調(diào)用的方法并將返回值通過所述調(diào)用接口返回給第一程序。通過本發(fā)明,便于實(shí)現(xiàn)主程序與插件之間的雙向相互通信,從而提高了軟件的效率,提高了插件的管理及通信的可控性。
      文檔編號(hào)G06F9/54GK102591724SQ20111044884
      公開日2012年7月18日 申請(qǐng)日期2011年12月28日 優(yōu)先權(quán)日2011年12月28日
      發(fā)明者江洋 申請(qǐng)人:奇智軟件(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1