服務(wù)程序調(diào)用方法、系統(tǒng)及其智能設(shè)備的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種服務(wù)程序調(diào)用方法、系統(tǒng)及智能設(shè)備,該服務(wù)程序調(diào)用方法包括:接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求;判斷所述服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用;若已定義為遠(yuǎn)程調(diào)用,則從遠(yuǎn)端調(diào)用所述服務(wù)程序;若未定義為遠(yuǎn)程調(diào)用,則從本地調(diào)用所述服務(wù)程序。本發(fā)明有效地解決了現(xiàn)有技術(shù)的智能設(shè)備由于運(yùn)行服務(wù)程序中大量復(fù)雜的運(yùn)算而導(dǎo)致能耗過(guò)多的技術(shù)問(wèn)題,降低了智能設(shè)備的能耗。
【專(zhuān)利說(shuō)明】服務(wù)程序調(diào)用方法、系統(tǒng)及其智能設(shè)備
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及服務(wù)調(diào)用【技術(shù)領(lǐng)域】,具體是涉及一種服務(wù)程序調(diào)用方法,還涉及一種 服務(wù)程序調(diào)用系統(tǒng)及其智能設(shè)備。
【背景技術(shù)】
[0002] 隨著用戶(hù)終端(如手機(jī)和掌上電腦)以及云終端等智能設(shè)備技術(shù)的高速發(fā)展,智能 設(shè)備也越來(lái)越普及。然而在實(shí)現(xiàn)智能化的同時(shí),另一方面伴隨而來(lái)的是越來(lái)越復(fù)雜的應(yīng)用 程序及其大量復(fù)雜的運(yùn)算,這些大量復(fù)雜的運(yùn)算需要頻繁大量地在智能設(shè)備本地調(diào)用運(yùn)行 一個(gè)或多個(gè)服務(wù)程序進(jìn)行服務(wù),進(jìn)而必然導(dǎo)致智能設(shè)備自身的能耗越來(lái)越大。因此,目前本 領(lǐng)域技術(shù)人員急于解決智能設(shè)備的能耗問(wèn)題。
[0003] 為了降低智能設(shè)備的能耗,現(xiàn)有技術(shù)采用了一種應(yīng)用級(jí)解耦的方式。
[0004] 舉例而言,對(duì)于手機(jī)來(lái)說(shuō),用戶(hù)希望充電次數(shù)和時(shí)間越少越好,即希望降低其能 耗?,F(xiàn)有技術(shù)將本應(yīng)運(yùn)行在手機(jī)端的整個(gè)應(yīng)用程序都部署在云終端進(jìn)行運(yùn)行,而應(yīng)用程序 運(yùn)行時(shí)即可在云終端調(diào)用運(yùn)行相關(guān)的服務(wù)程序進(jìn)行運(yùn)算,手機(jī)僅負(fù)責(zé)輸入和顯示結(jié)果。在 工作時(shí),手機(jī)端將用戶(hù)通過(guò)⑶I (Graphic User Interface,圖形用戶(hù)接口)操作利用網(wǎng)絡(luò) 發(fā)送給云終端,云終端在應(yīng)用程序每次更新屏幕時(shí)候?qū)D像信息傳送回給手機(jī)進(jìn)行顯示。
[0005] 這種應(yīng)用級(jí)解耦的方式雖然在一定程度上可實(shí)現(xiàn)云終端與手機(jī)的無(wú)縫整合,從 用戶(hù)的角度看,應(yīng)用程序仿佛運(yùn)行在手機(jī)上。但是這種解耦方式需要采用VNC (Virtual Network Computing,虛擬網(wǎng)絡(luò)計(jì)算)技術(shù)在手機(jī)與云終端之間進(jìn)行交互,因此雖然在一定 程度上降低了智能設(shè)備的能耗,但容易造成手機(jī)端用戶(hù)的操作延遲增加,界面切換不 順暢。
【發(fā)明內(nèi)容】
[0006] 有鑒于此,本申請(qǐng)?zhí)峁┝艘环N服務(wù)程序調(diào)用方法、系統(tǒng)及智能設(shè)備,以解決現(xiàn)有技 術(shù)的智能設(shè)備由于運(yùn)行服務(wù)程序的大量復(fù)雜運(yùn)算而導(dǎo)致能耗過(guò)多的技術(shù)問(wèn)題。
[0007] 為解決上述問(wèn)題,本申請(qǐng)第一方面提供一種服務(wù)程序調(diào)用方法,所述服務(wù)程序調(diào) 用方法包括:接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求;判斷所述服務(wù)程序是否已定 義為遠(yuǎn)程調(diào)用;若已定義為遠(yuǎn)程調(diào)用,則從遠(yuǎn)端智能設(shè)備調(diào)用所述服務(wù)程序;若未定義為 遠(yuǎn)程調(diào)用,則從本地調(diào)用所述服務(wù)程序。
[0008] 結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述從遠(yuǎn)端智能設(shè)備調(diào)用所述服務(wù) 程序的步驟包括:根據(jù)所述調(diào)用請(qǐng)求產(chǎn)生第一 binder引用并將所述第一 binder引用返回 給所述應(yīng)用程序;將所述服務(wù)程序的識(shí)別信息發(fā)送至遠(yuǎn)端智能設(shè)備,以使遠(yuǎn)端智能設(shè)備產(chǎn) 生與所述服務(wù)程序?qū)?yīng)的第二 binder引用,并存儲(chǔ)所述第二 binder引用與所述服務(wù)程序 的對(duì)應(yīng)關(guān)系;在所述應(yīng)用程序根據(jù)所述第一 binder引用調(diào)用所述服務(wù)程序時(shí),將所述應(yīng)用 程序的調(diào)用信息發(fā)送至所述遠(yuǎn)端智能設(shè)備,以使所述遠(yuǎn)端智能設(shè)備根據(jù)所述調(diào)用信息查找 所述第二 binder引用,根據(jù)所述第二 binder引用調(diào)用所述服務(wù)程序,并返回所述服務(wù)程序 運(yùn)行獲得的數(shù)據(jù)結(jié)果;利用所述第一 binder引用將所述數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序。
[0009] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述從本 地調(diào)用所述服務(wù)程序的步驟包括:根據(jù)所述調(diào)用請(qǐng)求從本地查找與所述服務(wù)程序?qū)?yīng)的第 三binder引用并將所述第三binder引用返回給所述應(yīng)用程序;在所述應(yīng)用程序根據(jù)所述 第三binder引用調(diào)用所述服務(wù)程序時(shí),利用所述第三binder引用將所述服務(wù)程序運(yùn)行獲 得的數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序。
[0010] 結(jié)合第一方面、第一方面的第一種可能或第二種可能的實(shí)現(xiàn)方式,在第三種可能 的實(shí)現(xiàn)方式中,所述接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求的步驟之前還包括:對(duì) 需遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序進(jìn)行動(dòng)態(tài)注冊(cè)及解耦,以定義為遠(yuǎn)程調(diào)用。
[0011] 結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述對(duì)需 遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序進(jìn)行注冊(cè)及解耦的步驟包括:獲取用戶(hù)輸入或 系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng);存儲(chǔ)所述程 序名稱(chēng)和所述服務(wù)名稱(chēng)。所述判斷所述服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用的步驟包括:判斷 是否已存儲(chǔ)有所述服務(wù)程序的服務(wù)名稱(chēng),若已存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為已定義遠(yuǎn)程 調(diào)用,若未存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為未定義遠(yuǎn)程調(diào)用。
[0012] 結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述接收 應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求的步驟之前還包括:獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn) 生的至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng);查找并 刪除所述程序名稱(chēng)和所述服務(wù)名稱(chēng),以動(dòng)態(tài)注消所述至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的 注冊(cè)及解耦。
[0013] 結(jié)合第一方面、第一方面的第一種可能或第二種可能的實(shí)現(xiàn)方式,在第六種可能 的實(shí)現(xiàn)方式中,所述服務(wù)程序?yàn)閼?yīng)用進(jìn)程服務(wù)或系統(tǒng)進(jìn)程服務(wù)。
[0014] 為解決上述問(wèn)題,本申請(qǐng)第二方面提供一種智能設(shè)備,所述智能設(shè)備包括:代理服 務(wù)模塊,用于從遠(yuǎn)端智能設(shè)備調(diào)用服務(wù)程序;管理模塊,用于接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù) 程序的調(diào)用請(qǐng)求并判斷所述服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用;處理模塊,用于在所述管理 模塊判斷到所述服務(wù)程序已定義為遠(yuǎn)程調(diào)用時(shí),通過(guò)所述代理服務(wù)模塊從遠(yuǎn)端智能設(shè)備調(diào) 用所述服務(wù)程序,在所述管理模塊判斷到所述服務(wù)程序未定義為遠(yuǎn)程調(diào)用時(shí),則從本地調(diào) 用所述服務(wù)程序。
[0015] 結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述管理模塊具體用于根據(jù)所述調(diào) 用請(qǐng)求產(chǎn)生與所述代理服務(wù)模塊相對(duì)應(yīng)的第一 binder引用并將所述第一 binder引用返回 給所述應(yīng)用程序。所述代理服務(wù)模塊具體用于將所述服務(wù)程序的識(shí)別信息發(fā)送至遠(yuǎn)端智 能設(shè)備,以使遠(yuǎn)端智能設(shè)備產(chǎn)生與所述服務(wù)程序?qū)?yīng)的第二 binder引用,并存儲(chǔ)所述第二 binder引用與所述服務(wù)程序的對(duì)應(yīng)關(guān)系。所述代理服務(wù)模塊具體還用于在所述應(yīng)用程序根 據(jù)所述第一 binder引用調(diào)用所述服務(wù)程序時(shí),將所述應(yīng)用程序的調(diào)用信息發(fā)送至所述遠(yuǎn) 端智能設(shè)備,以使所述遠(yuǎn)端智能設(shè)備根據(jù)所述調(diào)用信息查找所述第二 binder引用,根據(jù)所 述第二 binder引用調(diào)用所述服務(wù)程序,并返回所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果。所述處 理模塊具體用于利用所述第一 binder引用將所述代理服務(wù)模塊從所述遠(yuǎn)端智能設(shè)備接收 的所述數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序。
[0016] 結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述管理 模塊具體用于在所述管理模塊判斷到所述服務(wù)程序未定義為遠(yuǎn)程調(diào)用時(shí),根據(jù)所述調(diào)用請(qǐng) 求從本地查找與所述服務(wù)程序?qū)?yīng)的第三binder引用并將所述第三binder引用返回給所 述應(yīng)用程序。所述處理模塊具體還用于在所述應(yīng)用程序根據(jù)所述第三binder引用調(diào)用所 述服務(wù)程序時(shí),利用所述第三binder引用將所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回給所 述應(yīng)用程序。
[0017] 結(jié)合第二方面、第二方面的第一種可能或第二種可能的實(shí)現(xiàn)方式,在第三種可能 的實(shí)現(xiàn)方式中,所述智能設(shè)備還包括:注冊(cè)模塊,用于對(duì)需遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程序及對(duì)應(yīng) 的服務(wù)程序進(jìn)行動(dòng)態(tài)注冊(cè)及解耦,以定義為遠(yuǎn)程調(diào)用。
[0018] 結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述注冊(cè) 模塊具體包括:第一獲取單元,用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)應(yīng)用程序的 程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng);第一管理單元,用于存儲(chǔ)所述第一獲取單元獲取 到的所述程序名稱(chēng)和所述服務(wù)名稱(chēng)。其中,所述管理模塊具體用于判斷所述第一管理單元 中是否已存儲(chǔ)有所述服務(wù)程序的服務(wù)名稱(chēng),若所述第一管理單元中已存儲(chǔ)有對(duì)應(yīng)的服務(wù)名 稱(chēng)則判斷為已定義遠(yuǎn)程調(diào)用,若所述第一管理單元中未存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為未 定義遠(yuǎn)程調(diào)用。
[0019] 結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述智能 設(shè)備還包括注銷(xiāo)模塊,所述注銷(xiāo)模塊包括:第二獲取單元,用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn) 生的至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng);第二管 理單元,用于查找并刪除所述第二獲取單元獲取到的所述程序名稱(chēng)和所述服務(wù)名稱(chēng),以動(dòng) 態(tài)注消所述至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的注冊(cè)及解耦。
[0020] 結(jié)合第二方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中, 所述智能設(shè)備為用戶(hù)終端或云終端,所述服務(wù)程序?yàn)閼?yīng)用進(jìn)程服務(wù)或系統(tǒng)進(jìn)程服務(wù),所述 管理模塊為AMS模塊或SM模塊,所述處理模塊為基于binder機(jī)制的binder驅(qū)動(dòng)模塊。
[0021] 為解決上述問(wèn)題,本申請(qǐng)第三方面提供一種服務(wù)程序調(diào)用方法,所述服務(wù)程序調(diào) 用方法包括:接收遠(yuǎn)端智能設(shè)備發(fā)送的需遠(yuǎn)程調(diào)用的服務(wù)程序的識(shí)別信息,并根據(jù)所述服 務(wù)程序的識(shí)別信息在本地確定對(duì)應(yīng)的所述服務(wù)程序,其中,所述服務(wù)程序在遠(yuǎn)端智能設(shè)備 已定義為遠(yuǎn)程調(diào)用,所述遠(yuǎn)端智能設(shè)備根據(jù)所述應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序所發(fā)出的調(diào) 用請(qǐng)求產(chǎn)生所述服務(wù)程序的識(shí)別信息;在接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)所述服務(wù)程序的 調(diào)用信息時(shí),根據(jù)所述調(diào)用信息調(diào)用對(duì)應(yīng)的所述服務(wù)程序,并將所述服務(wù)程序運(yùn)行獲得的 數(shù)據(jù)結(jié)果返回給所述遠(yuǎn)端智能設(shè)備的應(yīng)用程序。
[0022] 結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述服務(wù)程序的識(shí)別信息 在本地確定對(duì)應(yīng)的所述服務(wù)程序的步驟具體包括:根據(jù)所述服務(wù)程序的識(shí)別信息產(chǎn)生與 所述服務(wù)程序?qū)?yīng)的第一 binder引用,并存儲(chǔ)所述第一 binder引用與所述服務(wù)程序的對(duì) 應(yīng)關(guān)系。所述根據(jù)所述調(diào)用信息調(diào)用對(duì)應(yīng)的所述服務(wù)程序,并將所述服務(wù)程序運(yùn)行獲得的 數(shù)據(jù)結(jié)果返回給所述遠(yuǎn)端智能設(shè)備的應(yīng)用程序的步驟具體包括:根據(jù)所述調(diào)用信息查找 所述第一 binder引用,并根據(jù)所述第一 binder引用調(diào)用所述服務(wù)程序;將利用所述第一 binder引用返回的所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給所述遠(yuǎn)端智能設(shè)備,以使所述 遠(yuǎn)端智能設(shè)備利用第二 binder引用將所述數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序。其中,所述遠(yuǎn)端 智能設(shè)備根據(jù)所述調(diào)用請(qǐng)求產(chǎn)生所述第二 binder引用。
[0023] 結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式 中,所述服務(wù)程序?yàn)閼?yīng)用進(jìn)程服務(wù)或系統(tǒng)進(jìn)程服務(wù)。
[0024] 為解決上述問(wèn)題,本申請(qǐng)第四方面提供一種智能設(shè)備,所述智能設(shè)備包括:代理服 務(wù)模塊,用于接收遠(yuǎn)端智能設(shè)備發(fā)送的需遠(yuǎn)程調(diào)用的服務(wù)程序的識(shí)別信息,其中,所述服務(wù) 程序在遠(yuǎn)端智能設(shè)備已定義為遠(yuǎn)程調(diào)用,所述遠(yuǎn)端智能設(shè)備根據(jù)所述應(yīng)用程序調(diào)用對(duì)應(yīng)的 服務(wù)程序所發(fā)出的調(diào)用請(qǐng)求產(chǎn)生所述服務(wù)程序的識(shí)別信息;管理模塊,用于根據(jù)所述代理 服務(wù)模塊接收到的所述服務(wù)程序的識(shí)別信息在本地確定對(duì)應(yīng)的所述服務(wù)程序;處理模塊, 用于在所述代理服務(wù)模塊接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)所述服務(wù)程序的調(diào)用信息時(shí),根 據(jù)所述調(diào)用信息調(diào)用對(duì)應(yīng)的所述服務(wù)程序,并將所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回給 所述遠(yuǎn)端智能設(shè)備的應(yīng)用程序。
[0025] 結(jié)合第四方面,在第一種可能的實(shí)現(xiàn)方式中,所述管理模塊具體用于根據(jù)所述服 務(wù)程序的識(shí)別信息產(chǎn)生與所述服務(wù)程序?qū)?yīng)的第一 binder引用,并存儲(chǔ)所述第一 binder 引用與所述服務(wù)程序的對(duì)應(yīng)關(guān)系。所述處理模塊具體用于在所述代理服務(wù)模塊接收到遠(yuǎn)端 智能設(shè)備發(fā)送的針對(duì)所述服務(wù)程序的調(diào)用信息時(shí),根據(jù)所述調(diào)用信息查找所述第一 binder 引用,并根據(jù)所述第一 binder引用調(diào)用所述服務(wù)程序。所述代理服務(wù)模塊具體用于將所述 處理模塊利用所述第一 binder引用返回的所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給所述 遠(yuǎn)端智能設(shè)備,以使所述遠(yuǎn)端智能設(shè)備利用第二 binder引用將所述數(shù)據(jù)結(jié)果返回給所述 應(yīng)用程序,其中,所述遠(yuǎn)端智能設(shè)備根據(jù)所述調(diào)用請(qǐng)求產(chǎn)生所述第二 binder引用。
[0026] 結(jié)合第四方面或第四方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式 中,所述智能設(shè)備為用戶(hù)終端或云終端,所述服務(wù)程序?yàn)閼?yīng)用進(jìn)程服務(wù)或系統(tǒng)進(jìn)程服務(wù),所 述管理模塊為AMS模塊或SM模塊,所述處理模塊為基于binder機(jī)制的binder驅(qū)動(dòng)模塊。
[0027] 為解決上述問(wèn)題,本申請(qǐng)第五方面提供一種服務(wù)程序調(diào)用系統(tǒng),所述服務(wù)程序調(diào) 用系統(tǒng)包括第一智能設(shè)備和第二智能設(shè)備。所述第一智能設(shè)備包括:第一代理服務(wù)模塊,用 于從所述第二智能設(shè)備調(diào)用服務(wù)程序;第一管理模塊,用于接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù) 程序的調(diào)用請(qǐng)求并判斷所述服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用;第一處理模塊,用于在所述 第一管理模塊判斷到所述服務(wù)程序已定義為遠(yuǎn)程調(diào)用時(shí),根據(jù)所述調(diào)用請(qǐng)求產(chǎn)生所述服務(wù) 程序的識(shí)別信息并通過(guò)所述第一代理服務(wù)模塊發(fā)送給所述第二智能設(shè)備,以通過(guò)所述第一 代理服務(wù)模塊從第二智能設(shè)備調(diào)用所述服務(wù)程序,在所述第一管理模塊判斷到所述服務(wù)程 序未定義為遠(yuǎn)程調(diào)用時(shí),則從本地調(diào)用所述服務(wù)程序。所述第二智能設(shè)備包括:第二代理服 務(wù)模塊,用于接收所述第一代理服務(wù)模塊發(fā)送所述服務(wù)程序的識(shí)別信息;第二管理模塊,用 于根據(jù)所述第二代理服務(wù)模塊接收到的所述服務(wù)程序的識(shí)別信息在本地確定對(duì)應(yīng)的所述 服務(wù)程序;第二處理模塊,用于在所述第二代理服務(wù)模塊接收到所述第一代理服務(wù)模塊發(fā) 送的針對(duì)所述服務(wù)程序的調(diào)用信息時(shí),根據(jù)所述調(diào)用信息調(diào)用對(duì)應(yīng)的所述服務(wù)程序,并將 所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果通過(guò)所述第二代理服務(wù)模塊發(fā)送給所述第一代理服務(wù) 模塊以返回給所述應(yīng)用程序。
[0028] 結(jié)合第五方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一管理模塊具體用于根據(jù)所 述調(diào)用請(qǐng)求產(chǎn)生與所述第一代理服務(wù)模塊相對(duì)應(yīng)的第一 binder引用并將所述第一 binder 引用返回給所述應(yīng)用程序。所述第一代理服務(wù)模塊具體用于將所述服務(wù)程序的識(shí)別信息發(fā) 送至所述第二代理服務(wù)模塊,所述第二管理模塊具體用于根據(jù)所述識(shí)別信息產(chǎn)生與所述服 務(wù)程序?qū)?yīng)的第二binder引用,并存儲(chǔ)所述第二binder引用與所述服務(wù)程序的對(duì)應(yīng)關(guān)系。 所述第一代理服務(wù)模塊具體還用于在所述應(yīng)用程序根據(jù)所述第一 binder引用調(diào)用所述服 務(wù)程序時(shí),將針對(duì)所述應(yīng)用程序的調(diào)用信息發(fā)送至所述第二代理服務(wù)模塊,所述第二處理 模塊具體用于根據(jù)所述服務(wù)程序的調(diào)用信息查找所述第二 binder引用,并根據(jù)所述第二 binder引用調(diào)用所述服務(wù)程序。所述第二代理服務(wù)模塊具體用于將所述第二處理模塊利 用所述第二 binder引用返回的所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給所述第一處理模 塊,所述第一處理模塊具體用于利用所述第一 binder引用將所述第一代理服務(wù)模塊接收 的所述數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序。
[0029] 結(jié)合第五方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述第一 管理模塊具體還用于在所述第一管理模塊判斷到所述服務(wù)程序未定義為遠(yuǎn)程調(diào)用時(shí),根據(jù) 所述調(diào)用請(qǐng)求從本地查找與所述服務(wù)程序?qū)?yīng)的第三binder引用并將所述第三binder 引用返回給所述應(yīng)用程序。所述第一處理模塊具體還用于在所述應(yīng)用程序根據(jù)所述第三 binder引用調(diào)用所述服務(wù)程序時(shí),利用所述第三binder引用將所述服務(wù)程序運(yùn)行獲得的 數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序。
[0030] 結(jié)合第五方面、第五方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí) 現(xiàn)方式中,所述第一智能設(shè)備還包括:注冊(cè)模塊,用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少 一個(gè)應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng),并存儲(chǔ)所述程序名稱(chēng)和所述服務(wù) 名稱(chēng);注銷(xiāo)模塊,用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序 的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng),查找并刪除所述程序名稱(chēng)和所述服務(wù)名稱(chēng),以 動(dòng)態(tài)注消所述至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的注冊(cè)及解耦。其中,所述第一管理模塊 具體用于判斷所述注冊(cè)模塊中是否已存儲(chǔ)有所述服務(wù)程序的服務(wù)名稱(chēng),若所述注冊(cè)模塊中 已存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為已定義遠(yuǎn)程調(diào)用,若所述注冊(cè)模塊中未存儲(chǔ)有對(duì)應(yīng)的服 務(wù)名稱(chēng)則判斷為未定義遠(yuǎn)程調(diào)用。
[0031] 結(jié)合第五方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中, 所述第一智能設(shè)備和所述第二智能設(shè)備的其中之一為用戶(hù)終端、另一為云終端,所述第一 處理模塊和所述第二處理模塊為基于binder機(jī)制的binder驅(qū)動(dòng)模塊。
[0032] 結(jié)合第五方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中, 所述第一管理模塊和所述第二管理模塊均為AMS模塊、或均為SM模塊,所述服務(wù)程序相應(yīng) 地為應(yīng)用進(jìn)程服務(wù)或系統(tǒng)進(jìn)程服務(wù)。
[0033] 本申請(qǐng)?jiān)谥悄茉O(shè)備上設(shè)置代理服務(wù)模塊并對(duì)自身的應(yīng)用程序需要遠(yuǎn)程調(diào)用的服 務(wù)程序預(yù)先進(jìn)行定義,使得應(yīng)用程序在運(yùn)行并需要調(diào)用服務(wù)程序時(shí)通過(guò)代理服務(wù)模塊從遠(yuǎn) 端智能設(shè)備進(jìn)行調(diào)用。本申請(qǐng)可以將需要進(jìn)行大量復(fù)雜運(yùn)算等特定的服務(wù)程序定義到遠(yuǎn)端 智能設(shè)備運(yùn)行,因此有效地解決了自身運(yùn)行服務(wù)程序所需要的能耗問(wèn)題。同時(shí),本申請(qǐng)由 于應(yīng)用程序在智能設(shè)備自身進(jìn)行運(yùn)行而服務(wù)程序在遠(yuǎn)端智能設(shè)備上運(yùn)行,無(wú)需采用現(xiàn)有的 VNC技術(shù)進(jìn)行智能設(shè)備之間的信息交互,因此有效地避免了操作延遲等問(wèn)題,使得操作、顯 示性能更加順暢。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0034] 圖1A是實(shí)現(xiàn)本申請(qǐng)服務(wù)程序調(diào)用方法的服務(wù)程序調(diào)用系統(tǒng)的其中一實(shí)施例結(jié)構(gòu) 示意圖;
[0035] 圖IB是本申請(qǐng)服務(wù)程序調(diào)用方法第一實(shí)施例的流程示意圖;
[0036] 圖2是本申請(qǐng)服務(wù)程序調(diào)用方法第二實(shí)施例的流程示意圖;
[0037] 圖3是本申請(qǐng)智能設(shè)備第一實(shí)施例的結(jié)構(gòu)示意圖;
[0038] 圖4是本申請(qǐng)智能設(shè)備第二實(shí)施例的結(jié)構(gòu)示意圖;
[0039] 圖5是本申請(qǐng)服務(wù)程序調(diào)用方法第三實(shí)施例的流程示意圖;
[0040] 圖6是本申請(qǐng)服務(wù)程序調(diào)用方法第四實(shí)施例的流程示意圖;
[0041] 圖7是本申請(qǐng)智能設(shè)備第三實(shí)施例的結(jié)構(gòu)示意圖;
[0042] 圖8是本申請(qǐng)智能設(shè)備第四實(shí)施例的結(jié)構(gòu)示意圖;
[0043] 圖9是本申請(qǐng)服務(wù)程序調(diào)用系統(tǒng)第一實(shí)施例的結(jié)構(gòu)示意圖;
[0044] 圖10是本申請(qǐng)服務(wù)程序調(diào)用系統(tǒng)第二實(shí)施例的結(jié)構(gòu)示意圖;以及
[0045] 圖11是本申請(qǐng)智能設(shè)備一實(shí)施例的具體結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0046] 以下描述中,為了說(shuō)明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、接口、技術(shù)之 類(lèi)的具體細(xì)節(jié),以便透切理解本申請(qǐng)。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒(méi)有這些具體 細(xì)節(jié)的其它實(shí)施方式中也可以實(shí)現(xiàn)本申請(qǐng)。在其它情況中,省略對(duì)眾所周知的裝置、電路以 及方法的詳細(xì)說(shuō)明,以免不必要的細(xì)節(jié)妨礙本申請(qǐng)的描述。
[0047] 下面結(jié)合附圖和具體的實(shí)施方式進(jìn)行說(shuō)明。
[0048] 請(qǐng)參閱圖1A和圖1B,圖1A是實(shí)現(xiàn)本申請(qǐng)服務(wù)程序調(diào)用方法的服務(wù)程序調(diào)用系統(tǒng) 的其中一實(shí)施例結(jié)構(gòu)示意圖,圖1B是本申請(qǐng)服務(wù)程序調(diào)用方法第一實(shí)施例的流程示意圖。 需要說(shuō)明的是,圖1A中顯示了智能設(shè)備以及遠(yuǎn)端智能設(shè)備的部分結(jié)構(gòu),但不應(yīng)構(gòu)成對(duì)本實(shí) 施例服務(wù)程序調(diào)用方法的限定,在本【技術(shù)領(lǐng)域】人員理解的范圍內(nèi),還可以通過(guò)其他結(jié)構(gòu)的 服務(wù)程序調(diào)用系統(tǒng)實(shí)現(xiàn)本實(shí)施例,在此不作細(xì)述。
[0049] 在本實(shí)施例中,如圖1B所示,本實(shí)施例的服務(wù)程序調(diào)用方法包括但不限于以下步 驟。
[0050] 步驟S100,接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求。與圖1A對(duì)應(yīng)的是,步 驟S100可以由第一管理模塊執(zhí)行,其中,第一管理模塊從應(yīng)用程序進(jìn)程模塊接收應(yīng)用程序 調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求。
[0051] 步驟S101,判斷服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用,若判斷到為已定義為遠(yuǎn)程調(diào)用 時(shí),執(zhí)行步驟S102',若判斷到未定義為遠(yuǎn)程調(diào)用時(shí),執(zhí)行步驟S102"。與圖1A對(duì)應(yīng)的是, 步驟S101可以由第一管理模塊執(zhí)行,也可以由第一處理模塊執(zhí)行,在此不作限定。
[0052] 在步驟S101中,系統(tǒng)可以根據(jù)哈希表等表結(jié)構(gòu)或者其他標(biāo)記的方式判斷該應(yīng)用 程序的調(diào)用請(qǐng)求中所描述的服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用,譬如具體根據(jù)該應(yīng)用程序的 名稱(chēng)、該服務(wù)程序的名稱(chēng)等進(jìn)行判斷,在此不作限定。此外,本實(shí)施例需要調(diào)用的服務(wù)程序 可以為另一應(yīng)用程序的應(yīng)用進(jìn)程服務(wù),也可以為系統(tǒng)進(jìn)程服務(wù),在此不作限定。
[0053] 需要說(shuō)明的是,現(xiàn)有技術(shù)中,智能設(shè)備本地的應(yīng)用程序一般情況下按照系統(tǒng)給出 的預(yù)定運(yùn)行路徑與本地的服務(wù)程序綁定耦合,在應(yīng)用程序需要調(diào)用指定的服務(wù)程序時(shí),將 按照默認(rèn)的預(yù)定運(yùn)行路徑查找調(diào)用已綁定耦合的本地的服務(wù)程序并運(yùn)行該服務(wù)程序以得 到數(shù)據(jù)結(jié)果;而本實(shí)施例的遠(yuǎn)程調(diào)用可以理解為對(duì)應(yīng)用程序和服務(wù)程序之間進(jìn)行解耦處 理,具體可以理解為斷開(kāi)本地的應(yīng)用程序與本地的服務(wù)程序之間的預(yù)定運(yùn)行路徑以取消兩 者之間的綁定關(guān)系,使得應(yīng)用程序需要調(diào)用指定的服務(wù)程序時(shí),不再按照默認(rèn)的預(yù)定運(yùn)行 路徑查找調(diào)用本地的服務(wù)程序,而需要根據(jù)調(diào)用請(qǐng)求進(jìn)行判斷處理。
[0054] 步驟S102',從遠(yuǎn)端智能設(shè)備調(diào)用服務(wù)程序。與圖1A對(duì)應(yīng)的是,步驟S102'可以 由第一代理服務(wù)模塊執(zhí)行,其中,第一代理服務(wù)模塊與遠(yuǎn)端智能設(shè)備的第二代理服務(wù)模塊 之間可以通過(guò)有線或無(wú)線等網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)或按需的連接,在此不作限定。進(jìn)一步而言,遠(yuǎn)端 智能設(shè)備也可以不設(shè)置第二代理服務(wù)模塊,而直接通過(guò)服務(wù)進(jìn)程模塊提供服務(wù)并進(jìn)行相應(yīng) 的復(fù)雜運(yùn)算,最終將運(yùn)算后的數(shù)據(jù)結(jié)果返回給第一服務(wù)代理模塊即可。
[0055] 步驟S102",從本地調(diào)用服務(wù)程序。與圖1A對(duì)應(yīng)的是,步驟S102"可以由第一處 理模塊執(zhí)行,第一處理模塊可以從本地的服務(wù)進(jìn)程模塊(圖1A未示)調(diào)用服務(wù)程序并獲得運(yùn) 算后的數(shù)據(jù)結(jié)果返回給應(yīng)用程序進(jìn)程模塊,在本【技術(shù)領(lǐng)域】人員理解的范圍內(nèi),不作細(xì)述。
[0056] 不難看出,區(qū)別于現(xiàn)有技術(shù)應(yīng)用級(jí)解耦的方式,本實(shí)施例的服務(wù)程序調(diào)用方法雖 然需要進(jìn)行網(wǎng)絡(luò)連接,但與遠(yuǎn)端智能設(shè)備之間僅需要進(jìn)行參數(shù)(譬如函數(shù)計(jì)算所需的參數(shù)) 和數(shù)據(jù)結(jié)果的傳輸,傳輸量小而不會(huì)由于網(wǎng)絡(luò)情況導(dǎo)致傳輸不穩(wěn)定等問(wèn)題,因此可以有效 地降低操作延遲的時(shí)間。
[0057] 本申請(qǐng)對(duì)自身的應(yīng)用程序需要遠(yuǎn)程調(diào)用的服務(wù)程序預(yù)先進(jìn)行定義是否進(jìn)行遠(yuǎn)程 調(diào)用,使得應(yīng)用程序在運(yùn)行并需要調(diào)用服務(wù)程序時(shí)從遠(yuǎn)端智能設(shè)備進(jìn)行調(diào)用相應(yīng)的服務(wù)程 序。本申請(qǐng)可以將需要進(jìn)行大量復(fù)雜運(yùn)算等特定的服務(wù)程序解耦到遠(yuǎn)端智能設(shè)備運(yùn)行,因 此有效地解決了自身運(yùn)行服務(wù)程序所需要的能耗問(wèn)題。同時(shí),本申請(qǐng)由于應(yīng)用程序和服務(wù) 程序分開(kāi)運(yùn)行,無(wú)需采用現(xiàn)有的VNC技術(shù)與遠(yuǎn)端智能設(shè)備之間進(jìn)行信息交互,因此有效地 避免了操作延遲等問(wèn)題,使得操作、顯示性能更加順暢。
[0058] 請(qǐng)參閱圖2,圖2是本申請(qǐng)服務(wù)程序調(diào)用方法第二實(shí)施例的流程示意圖,本實(shí)施例 的服務(wù)程序調(diào)用方法包括但不限于以下步驟。
[0059] 步驟S200,接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求。
[0060] 步驟S201,判斷服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用。若判斷到為已定義為遠(yuǎn)程調(diào)用, 執(zhí)行步驟S202,若判斷未定義為遠(yuǎn)程調(diào)用,則執(zhí)行步驟S206。
[0061] 在步驟S201中,如前所述,系統(tǒng)可以根據(jù)哈希表等表結(jié)構(gòu)或者其他標(biāo)記的方式判 斷該應(yīng)用程序的調(diào)用請(qǐng)求中所描述的服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用,譬如具體根據(jù)該應(yīng) 用程序的名稱(chēng)、該服務(wù)程序的名稱(chēng)等進(jìn)行判斷,在此不作限定。此外,本實(shí)施例需要調(diào)用的 服務(wù)程序可以為另一應(yīng)用程序的應(yīng)用進(jìn)程服務(wù),也可以為系統(tǒng)進(jìn)程服務(wù),在此不作限定。
[0062] 具體而言,本實(shí)施例可以在步驟S200之前預(yù)先進(jìn)行"對(duì)需遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程 序及對(duì)應(yīng)的服務(wù)程序進(jìn)行動(dòng)態(tài)注冊(cè)及解耦"的設(shè)置過(guò)程,以將對(duì)應(yīng)的服務(wù)程序定義為遠(yuǎn)程 調(diào)用。
[0063] 其中,"對(duì)需遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序進(jìn)行動(dòng)態(tài)注冊(cè)及解耦"的 具體過(guò)程包括如下。
[0064] 過(guò)程a,獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的 服務(wù)程序的服務(wù)名稱(chēng)。在過(guò)程a中,用戶(hù)可以自行判斷應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序的運(yùn)算 量和復(fù)雜程度等,如果判斷到服務(wù)程序的運(yùn)算量和復(fù)雜程度過(guò)大,其將導(dǎo)致系統(tǒng)自身的能 耗過(guò)大,則用戶(hù)可以手動(dòng)輸入一個(gè)或多個(gè)應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名 稱(chēng);當(dāng)然,系統(tǒng)自身也可以實(shí)時(shí)檢測(cè)所需要運(yùn)行的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序的運(yùn)算量和 復(fù)雜程度等,如果系統(tǒng)自身判斷到服務(wù)程序的運(yùn)算量和復(fù)雜程度過(guò)大,其將導(dǎo)致系統(tǒng)自身 的能耗過(guò)大,則系統(tǒng)可以通過(guò)自動(dòng)生成或選擇等方式產(chǎn)生一個(gè)或多個(gè)應(yīng)用程序的程序名稱(chēng) 及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng)。
[0065] 過(guò)程b,存儲(chǔ)程序名稱(chēng)和服務(wù)名稱(chēng)。在過(guò)程b中,其中,本實(shí)施例可以存儲(chǔ)于表結(jié)構(gòu) 等哈希表中,當(dāng)然,在其他實(shí)施例中也可以存儲(chǔ)于系統(tǒng)的其他存儲(chǔ)結(jié)構(gòu)中,在此不作限定。 結(jié)合步驟S201而言,在系統(tǒng)判斷調(diào)用請(qǐng)求中所描述的服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用的 過(guò)程中,即可根據(jù)服務(wù)程序的服務(wù)名稱(chēng)從本地的表結(jié)構(gòu)進(jìn)行檢索,如果檢索到相同的服務(wù) 名稱(chēng),則從遠(yuǎn)端智能設(shè)備調(diào)用,反之則從本地調(diào)用。
[0066] 此外,在某些特定的場(chǎng)所或時(shí)間段內(nèi),譬如可以在線充電或者沒(méi)有網(wǎng)絡(luò)可用的情 況下,用戶(hù)也可以對(duì)已進(jìn)行動(dòng)態(tài)注冊(cè)及解耦的應(yīng)用程序及其服務(wù)程序進(jìn)行注銷(xiāo),其具體過(guò) 程包括如下。
[0067] 過(guò)程c,獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的程 序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng)。
[0068] 過(guò)程d,查找并刪除程序名稱(chēng)和服務(wù)名稱(chēng),以動(dòng)態(tài)注消至少一個(gè)已注冊(cè)及解耦的應(yīng) 用程序的注冊(cè)及解耦。
[0069] 值得注意的是,過(guò)程a_過(guò)程d的過(guò)程中,用戶(hù)可以實(shí)時(shí)地、智能地循環(huán)執(zhí)行以進(jìn)行 注冊(cè)或者注銷(xiāo),使得智能設(shè)備可以根據(jù)系統(tǒng)的自身狀況或者所處環(huán)境進(jìn)行智能操作,更加 多樣化和智能化。
[0070] 步驟S202,根據(jù)調(diào)用請(qǐng)求產(chǎn)生第一 binder引用并將第一 binder引用返回給應(yīng)用 程序。
[0071] 在步驟S202中,需要指出的是,本實(shí)施例針對(duì)基于binder機(jī)制(進(jìn)程間通信機(jī)制) 的智能設(shè)備實(shí)現(xiàn)具體的服務(wù)程序調(diào)用方法。其中,第一 binder引用為應(yīng)用程序需要進(jìn)行調(diào) 用服務(wù)程序時(shí),需要與服務(wù)程序的binder實(shí)體之間通信所需要的binder引用,其具體工作 過(guò)程在本【技術(shù)領(lǐng)域】人員理解的范圍內(nèi),不作細(xì)述。
[0072] 現(xiàn)有技術(shù)中,基于Android的智能設(shè)備為了降低系統(tǒng)自身的能耗,還專(zhuān)門(mén)采用到 組件級(jí)解耦的方式來(lái)實(shí)現(xiàn)服務(wù)調(diào)用。具體而言,現(xiàn)有技術(shù)將應(yīng)用程序的activity組件、 service 組件、content provider 組件和 broadcast receiver 組件中的 service 組件和 其它三個(gè)組件之間進(jìn)行解耦,將其運(yùn)行在遠(yuǎn)端智能設(shè)備,而其它部分運(yùn)行在本地。然而在 解耦的過(guò)程中需要將service組件變成樁模塊和服務(wù)模塊,并分別部署在智能設(shè)備和遠(yuǎn)端 智能設(shè)備。在智能設(shè)備的應(yīng)用程序需要調(diào)用服務(wù)程序時(shí),需要通過(guò)本地的樁模塊調(diào)用遠(yuǎn)端 智能設(shè)備的服務(wù)模塊,并返回結(jié)果。進(jìn)一步而言,為了將上述解耦及調(diào)用的過(guò)程自動(dòng)化, 需要將開(kāi)發(fā)者編寫(xiě)的代碼重新編譯,其需要通過(guò)應(yīng)用程序中的AIDL (Android Interface definition language,安卓接口定義語(yǔ)言)文件,將Service組件劃分為樁模塊和服務(wù)模 ±夾,并利用AIDL文件包含的描述Service接口的信息,對(duì)程序源代碼一起進(jìn)行編譯,自動(dòng)生 成通過(guò)Binder機(jī)制調(diào)用Service的代碼框架等。然而,這種解耦方式依賴(lài)于應(yīng)用程序的源 代碼,必須在源代碼基礎(chǔ)上進(jìn)行重新編譯,而當(dāng)前很多應(yīng)用程序并不是開(kāi)源程序,所以不能 適用,同時(shí),這種解耦方式依賴(lài)于應(yīng)用程序?qū)IDL的使用,而很多應(yīng)用程序繞過(guò)了 AIDL直 接使用Android框架所提供的Binder機(jī)制,而導(dǎo)致這種解耦方式無(wú)法用于這些特殊的應(yīng)用 程序。
[0073] 不難看出,本實(shí)施例在基于Android的智能設(shè)備上,只需直接利用現(xiàn)有的binder 機(jī)制,在智能設(shè)備自身和遠(yuǎn)端智能設(shè)備進(jìn)行過(guò)程a-過(guò)程d的動(dòng)態(tài)注冊(cè)解耦及注銷(xiāo)等,即可 在現(xiàn)有的binder機(jī)制上實(shí)現(xiàn)現(xiàn)有應(yīng)用程序從遠(yuǎn)端智能設(shè)備調(diào)用服務(wù)的過(guò)程,從而更加實(shí) 用性。
[0074] 步驟S203,將服務(wù)程序的識(shí)別信息發(fā)送至遠(yuǎn)端智能設(shè)備,以使遠(yuǎn)端智能設(shè)備產(chǎn)生 與服務(wù)程序?qū)?yīng)的第二 binder引用,并存儲(chǔ)第二 binder引用與服務(wù)程序的對(duì)應(yīng)關(guān)系。
[0075] 在步驟S203中,在調(diào)用服務(wù)程序之前,需預(yù)先在遠(yuǎn)端智能設(shè)備存儲(chǔ)第二 binder引 用與服務(wù)程序的對(duì)應(yīng)關(guān)系,以備后續(xù)調(diào)用。
[0076] 步驟S204,在應(yīng)用程序根據(jù)第一 binder引用調(diào)用服務(wù)程序時(shí),將應(yīng)用程序的調(diào)用 信息發(fā)送至遠(yuǎn)端智能設(shè)備,以使遠(yuǎn)端智能設(shè)備根據(jù)調(diào)用信息查找第二 binder引用,根據(jù)第 二 binder引用調(diào)用服務(wù)程序,并返回服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果。
[0077] 在步驟S204中,智能設(shè)備將應(yīng)用程序的調(diào)用信息譬如運(yùn)算參數(shù)和服務(wù)名稱(chēng)等發(fā) 送至遠(yuǎn)端智能設(shè)備。遠(yuǎn)端智能設(shè)備的binder驅(qū)動(dòng)模塊可以驅(qū)動(dòng)管理遠(yuǎn)端智能設(shè)備的服 務(wù)程序?qū)?yīng)的binder實(shí)體接收第二 binder引用傳輸過(guò)來(lái)的運(yùn)算參數(shù)等,使得服務(wù)程序 根據(jù)運(yùn)算參數(shù)運(yùn)行函數(shù)以獲得數(shù)據(jù)結(jié)果,接著遠(yuǎn)端智能設(shè)備的binder驅(qū)動(dòng)模塊利用第二 binder引用將數(shù)據(jù)結(jié)果返回給智能設(shè)備。
[0078] 步驟S205,利用第一 binder引用將數(shù)據(jù)結(jié)果返回給應(yīng)用程序,步驟S205之后,結(jié) 束或等待再次調(diào)用時(shí)返回步驟S200。
[0079] 步驟S206,從本地調(diào)用服務(wù)程序。
[0080] 在步驟S206中,具體可以利用binder機(jī)制進(jìn)行調(diào)用,本實(shí)施例在本地調(diào)用服務(wù)程 序的過(guò)程包括以下。
[0081] 過(guò)程e,根據(jù)調(diào)用請(qǐng)求從本地查找與服務(wù)程序?qū)?yīng)的第三binder引用并將第三 binder引用返回給應(yīng)用程序。
[0082] 過(guò)程f,在應(yīng)用程序根據(jù)第三binder引用調(diào)用服務(wù)程序時(shí),利用第三binder引用 將服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回給應(yīng)用程序。
[0083] 其中,基于binder機(jī)制在本地調(diào)用服務(wù)程序的具體實(shí)現(xiàn)過(guò)程e和過(guò)程f在本技術(shù) 領(lǐng)域人員理解的范圍內(nèi),不作細(xì)述。
[0084] 此外,現(xiàn)有技術(shù)的基于Android的智能設(shè)備上,還采用到方法級(jí)解耦來(lái)調(diào)用服務(wù) 的方式,然而通過(guò)方法級(jí)解耦的方式需要在應(yīng)用程序的開(kāi)發(fā)階段,獲得允許遠(yuǎn)程調(diào)用的服 務(wù)程序(如函數(shù)方法等)的集合,其需要由程序員手動(dòng)標(biāo)注允許遠(yuǎn)程調(diào)用的服務(wù)程序,或通 過(guò)靜態(tài)分析找出服務(wù)程序中合法的可分割點(diǎn)(必須是某個(gè)應(yīng)用程序的入口或者出口),再通 過(guò)動(dòng)態(tài)方法決定計(jì)算成本模型得出合適的遷移點(diǎn)。其次,在服務(wù)程序運(yùn)行時(shí),根據(jù)當(dāng)前運(yùn)行 環(huán)境的不同參數(shù),動(dòng)態(tài)決定服務(wù)程序的運(yùn)行位置。不難看出,這種方法級(jí)解耦的缺點(diǎn)在于需 要對(duì)程序的代碼或者二進(jìn)制碼進(jìn)行修改,所以不適用于不開(kāi)源的應(yīng)用程序,且應(yīng)用程序均 會(huì)一般通過(guò)簽名的方式進(jìn)行完整性保護(hù),對(duì)二進(jìn)制碼進(jìn)行修改會(huì)導(dǎo)致簽名驗(yàn)證失敗,從而 影響應(yīng)用程序的正常運(yùn)行。不難看出,本實(shí)施例針對(duì)基于Android的智能設(shè)備而言,應(yīng)用程 序與服務(wù)程序之間的解耦方式更加透明,可以將目前市場(chǎng)上已有的應(yīng)用程序直接運(yùn)行在現(xiàn) 有的Android的智能設(shè)備上,而不需要對(duì)其進(jìn)行任何改動(dòng)或者重新編譯,這樣提高了本實(shí) 施例服務(wù)程序調(diào)用方法的通用性和兼容性。
[0085] 總而言之,本申請(qǐng)專(zhuān)門(mén)針對(duì)基于Android的智能設(shè)備及其基于binder機(jī)制的服務(wù) 調(diào)用進(jìn)行解耦,只需對(duì)應(yīng)用程序需要遠(yuǎn)程調(diào)用的服務(wù)程序預(yù)先進(jìn)行注冊(cè),使得應(yīng)用程序在 運(yùn)行并需要調(diào)用服務(wù)程序時(shí)通過(guò)現(xiàn)有的binder機(jī)制從遠(yuǎn)端智能設(shè)備進(jìn)行調(diào)用。本申請(qǐng)可 以將需要進(jìn)行大量復(fù)雜運(yùn)算等特定的服務(wù)程序解耦到遠(yuǎn)端智能設(shè)備運(yùn)行,因此有效地解決 了自身運(yùn)行服務(wù)程序所需要的能耗問(wèn)題。同時(shí),本申請(qǐng)服務(wù)程序調(diào)用方法可以兼容使用到 現(xiàn)有的應(yīng)用程序中,無(wú)需進(jìn)行修改編譯等,兼容性能更好而更具實(shí)用性。
[0086] 請(qǐng)結(jié)合前面實(shí)施例參閱圖3,是本申請(qǐng)智能設(shè)備第一實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施 例智能設(shè)備包括但不限于代理服務(wù)模塊30、管理模塊31和處理模塊32。
[0087] 代理服務(wù)模塊30可以與遠(yuǎn)端智能設(shè)備之間進(jìn)行有線或無(wú)線網(wǎng)絡(luò)的實(shí)時(shí)或按需連 接,以用于從遠(yuǎn)端智能設(shè)備調(diào)用服務(wù)程序或進(jìn)行數(shù)據(jù)信息傳輸?shù)?,在本【技術(shù)領(lǐng)域】人員理解 的范圍內(nèi),不作限定。
[0088] 管理模塊31用于接收應(yīng)用程序進(jìn)程模塊中應(yīng)用程序的調(diào)用請(qǐng)求并判斷服務(wù)程序 是否已定義為遠(yuǎn)程調(diào)用。管理模塊31可以根據(jù)哈希表等表結(jié)構(gòu)或者其他標(biāo)記的方式判斷 該應(yīng)用程序的調(diào)用請(qǐng)求中所描述的服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用,譬如具體根據(jù)應(yīng)用程 序的名稱(chēng)、服務(wù)程序的名稱(chēng)等進(jìn)行判斷,在此不作限定。此外,本實(shí)施例需要調(diào)用的服務(wù)程 序可以為另一應(yīng)用程序的應(yīng)用進(jìn)程服務(wù),也可以為系統(tǒng)進(jìn)程服務(wù),在此不作限定。
[0089] 處理模塊32用于在管理模塊31判斷到服務(wù)程序已定義為遠(yuǎn)程調(diào)用時(shí),通過(guò)代理 服務(wù)模塊30從遠(yuǎn)端智能設(shè)備調(diào)用服務(wù)程序,而在管理模塊31判斷到服務(wù)程序未定義為遠(yuǎn) 程調(diào)用時(shí),則從本地調(diào)用服務(wù)程序。
[0090] 不難看出,本實(shí)施例智能設(shè)備與遠(yuǎn)端智能設(shè)備之間僅需要進(jìn)行參數(shù)(譬如函數(shù)計(jì) 算所需的參數(shù))和數(shù)據(jù)結(jié)果的傳輸,傳輸量小而不會(huì)由于網(wǎng)絡(luò)情況導(dǎo)致傳輸不穩(wěn)定等問(wèn)題, 因此可以有效地降低操作延遲的時(shí)間。
[0091] 本申請(qǐng)智能設(shè)備對(duì)自身的應(yīng)用程序需要遠(yuǎn)程調(diào)用的服務(wù)程序預(yù)先進(jìn)行定義,使得 應(yīng)用程序在運(yùn)行并需要調(diào)用服務(wù)程序時(shí)從遠(yuǎn)端智能設(shè)備進(jìn)行調(diào)用。本申請(qǐng)智能設(shè)備可以將 需要進(jìn)行大量復(fù)雜運(yùn)算等特定的服務(wù)程序解耦到遠(yuǎn)端智能設(shè)備運(yùn)行,因此有效地解決了自 身運(yùn)行服務(wù)程序所需要的能耗問(wèn)題。同時(shí),本申請(qǐng)由于應(yīng)用程序和服務(wù)程序分開(kāi)運(yùn)行,無(wú)需 采用現(xiàn)有的VNC技術(shù)與遠(yuǎn)端智能設(shè)備之間進(jìn)行信息交互,因此有效地避免了操作延遲等問(wèn) 題,使得操作、顯示性能更加順暢。
[0092] 請(qǐng)結(jié)合圖2所述實(shí)施例參閱圖4,圖4是本申請(qǐng)智能設(shè)備第二實(shí)施例的結(jié)構(gòu)示意 圖,本實(shí)施例智能設(shè)備包括但不限于代理服務(wù)模塊40、管理模塊41、處理模塊42、注冊(cè)模塊 43和注銷(xiāo)模塊44。
[0093] 如前所述,管理模塊41用于接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求并判 斷服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用;處理模塊42用于在管理模塊41判斷到服務(wù)程序已定 義為遠(yuǎn)程調(diào)用時(shí),通過(guò)代理服務(wù)模塊40從遠(yuǎn)端智能設(shè)備調(diào)用服務(wù)程序,在管理模塊41判斷 到服務(wù)程序未定義為遠(yuǎn)程調(diào)用時(shí),則從本地調(diào)用服務(wù)程序。
[0094] 在本實(shí)施例中,注冊(cè)模塊43用于對(duì)需遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程 序進(jìn)行動(dòng)態(tài)注冊(cè)及解耦,以將對(duì)應(yīng)的服務(wù)程序定義為遠(yuǎn)程調(diào)用。而注冊(cè)模塊43具體可以包 括第一獲取單元431和第一管理單元432。
[0095] 第一獲取單元431用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)應(yīng)用程序的程 序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng)。用戶(hù)可以自行判斷應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序的運(yùn) 算量和復(fù)雜程度等,如果判斷到服務(wù)程序的運(yùn)算量和復(fù)雜程度過(guò)大,其將導(dǎo)致智能設(shè)備自 身的能耗過(guò)大,則用戶(hù)可以手動(dòng)輸入一個(gè)或多個(gè)應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的 服務(wù)名稱(chēng)。當(dāng)然,管理模塊41也可以實(shí)時(shí)檢測(cè)所需要運(yùn)行的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序的 運(yùn)算量和復(fù)雜程度等,如果管理模塊41判斷到服務(wù)程序的運(yùn)算量和復(fù)雜程度過(guò)大,其將導(dǎo) 致系統(tǒng)自身的能耗過(guò)大,則系統(tǒng)可以通過(guò)自動(dòng)生成或選擇等方式產(chǎn)生一個(gè)或多個(gè)應(yīng)用程序 的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng)。
[0096] 第一管理單元432用于存儲(chǔ)第一獲取單元431獲取到的程序名稱(chēng)和服務(wù)名稱(chēng),其 中,第一管理單元432可以為本地的表結(jié)構(gòu)等。相應(yīng)地,在管理模塊41判斷調(diào)用請(qǐng)求中所描 述的服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用的過(guò)程中,即可根據(jù)服務(wù)程序的服務(wù)名稱(chēng)從本地的表 結(jié)構(gòu)進(jìn)行檢索,如果檢索到相同的服務(wù)名稱(chēng),則從遠(yuǎn)端智能設(shè)備調(diào)用,反之則從本地調(diào)用。 具體來(lái)說(shuō),管理模塊41具體用于判斷第一管理單元432中是否已存儲(chǔ)有調(diào)用請(qǐng)求中所描述 的服務(wù)程序的服務(wù)名稱(chēng),若第一管理單元432中已存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為已定義 遠(yuǎn)程調(diào)用,若第一管理單元432中未存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為未定義遠(yuǎn)程調(diào)用。
[0097] 注銷(xiāo)模塊44用于動(dòng)態(tài)注消至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的注冊(cè)及解耦,其 具體可以包括第二獲取單元441和第二管理單元442。
[0098] 第二獲取單元441用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)已注冊(cè)及解耦 的應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng)。
[0099] 第二管理單元442,用于查找并刪除第二獲取單元441獲取到的程序名稱(chēng)和服務(wù) 名稱(chēng),以動(dòng)態(tài)注消至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的注冊(cè)及解耦。其中,第二管理單元 442可以在本地的表結(jié)構(gòu)或其他存儲(chǔ)單元中進(jìn)行查找,在此不作細(xì)述。
[0100] 本實(shí)施例通過(guò)注銷(xiāo)模塊44的作用,可以在某些特定的場(chǎng)所或時(shí)間段內(nèi),譬如在線 充電或者沒(méi)有網(wǎng)絡(luò)可用的情況下,用戶(hù)也可以對(duì)已進(jìn)行動(dòng)態(tài)注冊(cè)及解耦的應(yīng)用程序及其服 務(wù)程序進(jìn)行注銷(xiāo)。
[0101] 結(jié)合注冊(cè)模塊43和注銷(xiāo)模塊44的作用,用戶(hù)可以實(shí)時(shí)地、智能地循環(huán)執(zhí)行以進(jìn)行 注冊(cè)或者注銷(xiāo),使得智能設(shè)備可以根據(jù)系統(tǒng)的自身狀況或者所處環(huán)境進(jìn)行智能操作,更加 多樣化和智能化。
[0102] 值得注意的是,本實(shí)施例針對(duì)基于binder機(jī)制的智能設(shè)備作了進(jìn)一步改進(jìn),具體 來(lái)說(shuō),本實(shí)施例管理模塊41具體用于根據(jù)應(yīng)用程序進(jìn)程模塊中應(yīng)用程序的調(diào)用請(qǐng)求產(chǎn)生 與代理服務(wù)模塊40相對(duì)應(yīng)的第一 binder引用并將第一 binder引用返回給應(yīng)用程序。具 體來(lái)說(shuō),當(dāng)應(yīng)用程序進(jìn)程模塊中應(yīng)用程序需要調(diào)用服務(wù)程序時(shí),管理模塊41將代理服務(wù)模 塊40作為"等效服務(wù)程序"并將"等效服務(wù)程序"對(duì)應(yīng)的第一 binder引用返回給應(yīng)用程序, 而使得在應(yīng)用程序端默認(rèn)其調(diào)用的即是服務(wù)程序。換而言之,代理服務(wù)模塊40需要向管理 模塊41申請(qǐng)注冊(cè)為"等效服務(wù)程序",在管理模塊41確認(rèn)注冊(cè)后產(chǎn)生第一 binder引用并存 儲(chǔ)第一 binder引用與代理服務(wù)模塊40的對(duì)應(yīng)關(guān)系到表結(jié)構(gòu)中。
[0103] 而代理服務(wù)模塊40則可以通過(guò)binder機(jī)制中的binder實(shí)體來(lái)接收應(yīng)用程序通 過(guò)第一 binder引用發(fā)送過(guò)來(lái)運(yùn)算參數(shù)和服務(wù)名稱(chēng)等,在本【技術(shù)領(lǐng)域】人員理解的范圍內(nèi),不 作細(xì)述。
[0104] 代理服務(wù)模塊40具體用于將服務(wù)程序的識(shí)別信息發(fā)送至遠(yuǎn)端智能設(shè)備,以使遠(yuǎn) 端智能設(shè)備產(chǎn)生與服務(wù)程序?qū)?yīng)的第二 binder引用,并存儲(chǔ)第二 binder引用與服務(wù)程序 的對(duì)應(yīng)關(guān)系。值得注意的是,在遠(yuǎn)端智能設(shè)備上,需要另一代理服務(wù)模塊作為智能設(shè)備自身 的應(yīng)用程序在遠(yuǎn)端智能設(shè)備的"等效應(yīng)用程序",也即是說(shuō)在遠(yuǎn)端智能設(shè)備上可以視作"等 效應(yīng)用程序"通過(guò)第二 binder引用調(diào)用遠(yuǎn)端智能設(shè)備自身的服務(wù)程序。
[0105] 代理服務(wù)模塊40具體還用于在應(yīng)用程序根據(jù)第一 binder引用調(diào)用服務(wù)程序時(shí), 將應(yīng)用程序的調(diào)用信息發(fā)送至遠(yuǎn)端智能設(shè)備,以使遠(yuǎn)端智能設(shè)備根據(jù)調(diào)用信息查找第二 binder引用,根據(jù)第二 binder引用調(diào)用服務(wù)程序,并返回服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果。
[0106] 處理模塊42具體用于利用第一 binder引用將代理服務(wù)模塊40從遠(yuǎn)端智能設(shè)備 接收的數(shù)據(jù)結(jié)果返回給應(yīng)用程序。
[0107] 不難看出,本實(shí)施例通過(guò)代理服務(wù)模塊40及另一代理服務(wù)模塊分別實(shí)現(xiàn)"等效服 務(wù)程序"和"等效應(yīng)用程序"的作用,有效地避免了現(xiàn)有技術(shù)在智能設(shè)備需要調(diào)用遠(yuǎn)端智能 設(shè)備的服務(wù)程序時(shí)、需要修改編譯源代碼或分析查找服務(wù)程序的分割點(diǎn)進(jìn)行重新編譯的無(wú) 法實(shí)現(xiàn)和兼容性低的技術(shù)問(wèn)題,本申請(qǐng)?jiān)谥悄茉O(shè)備和遠(yuǎn)端智能設(shè)備都按照現(xiàn)有的binder 機(jī)制進(jìn)行等效調(diào)用,可以有效地提高兼容性能。
[0108] 另一方面,管理模塊41具體用于在管理模塊41判斷到服務(wù)程序未定義為遠(yuǎn)程調(diào) 用時(shí),根據(jù)調(diào)用請(qǐng)求從本地(如本地服務(wù)進(jìn)程模塊)查找與服務(wù)程序?qū)?yīng)的第三binder引 用并將第三binder引用返回給應(yīng)用程序。處理模塊42具體還用于在應(yīng)用程序根據(jù)第三 binder引用調(diào)用服務(wù)程序時(shí),利用第三binder引用將服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回 給應(yīng)用程序。
[0109] 在本實(shí)施例中,不難理解的是,處理模塊42可以為基于binder機(jī)制的binder驅(qū) 動(dòng)模塊,其具體通過(guò)binder驅(qū)動(dòng)模塊實(shí)現(xiàn)應(yīng)用程序進(jìn)程模塊和代理服務(wù)模塊40之間的第 一 binder引用和binder實(shí)體之間的管理通信過(guò)程,在本【技術(shù)領(lǐng)域】人員理解的范圍內(nèi),不作 贅述。
[0110] 值得注意的是,本實(shí)施例的智能設(shè)備可以為用戶(hù)終端(手機(jī)或掌上電腦)而遠(yuǎn)端智 能設(shè)備則對(duì)應(yīng)地可以為云終端,因此可以將運(yùn)算復(fù)雜且運(yùn)算量大的服務(wù)程序運(yùn)行在云終端 上,以降低用戶(hù)終端的能耗。
[0111] 當(dāng)然,智能設(shè)備也可以為云終端而遠(yuǎn)端智能設(shè)備則對(duì)應(yīng)為用戶(hù)終端,舉例而言,如 用戶(hù)不希望將sensor (傳感器)服務(wù)、通信錄服務(wù)和GPS (全球定位系統(tǒng))服務(wù)等服務(wù)程序 運(yùn)行在云終端上。此時(shí),本實(shí)施例可以在云終端上通過(guò)注冊(cè)模塊43注冊(cè)sensor服務(wù)、通信 錄服務(wù)和GPS服務(wù)為遠(yuǎn)程調(diào)用的方式,使得云終端需要這些指定的服務(wù)程序時(shí),在用戶(hù)終 端自身執(zhí)行sensor服務(wù)、通信錄服務(wù)和GPS服務(wù)后將數(shù)據(jù)結(jié)果返回給云終端即可,通過(guò)這 種方式,可以有效地保護(hù)用戶(hù)的個(gè)人信息和隱私,提高了安全性能。
[0112] 此外,需要說(shuō)明的是,服務(wù)程序具體可以包括應(yīng)用進(jìn)程服務(wù)和系統(tǒng)進(jìn)程服務(wù),即相 對(duì)于android的智能設(shè)備來(lái)說(shuō),管理模塊41具體可以為基于binder機(jī)制的AMS(Activity Manager Service,活動(dòng)管理服務(wù))模塊或SM (Service Manager,服務(wù)管理器)模塊,在本技 術(shù)領(lǐng)域人員理解的范圍內(nèi),不作限定。
[0113] 此外,本實(shí)施例的工作過(guò)程在圖4及相關(guān)描述的基礎(chǔ)上,其具體實(shí)現(xiàn)的工作過(guò)程 在本【技術(shù)領(lǐng)域】人員容易結(jié)合理解的范圍內(nèi),在此不作細(xì)述。
[0114] 本申請(qǐng)專(zhuān)門(mén)針對(duì)基于Android的智能設(shè)備及其基于binder機(jī)制的服務(wù)調(diào)用進(jìn)行 解耦,只需對(duì)應(yīng)用程序需要遠(yuǎn)程調(diào)用的服務(wù)程序預(yù)先進(jìn)行注冊(cè),使得應(yīng)用程序在運(yùn)行并需 要調(diào)用服務(wù)程序時(shí)通過(guò)現(xiàn)有的binder機(jī)制從遠(yuǎn)端智能設(shè)備進(jìn)行調(diào)用。本申請(qǐng)可以將需要 進(jìn)行大量復(fù)雜運(yùn)算等特定的服務(wù)程序解耦到遠(yuǎn)端智能設(shè)備運(yùn)行,因此有效地解決了自身運(yùn) 行服務(wù)程序所需要的能耗問(wèn)題。同時(shí),本申請(qǐng)服務(wù)程序調(diào)用方法可以兼容使用到現(xiàn)有的應(yīng) 用程序中,無(wú)需進(jìn)行修改編譯等,兼容性能更好而更具實(shí)用性。此外,本申請(qǐng)還在一定程度 上針對(duì)特殊的服務(wù)程序提供了更加安全的工作模式,保護(hù)了用戶(hù)的個(gè)人信息和隱私。
[0115] 請(qǐng)結(jié)合圖1A參閱圖5,是本申請(qǐng)服務(wù)程序調(diào)用方法第三實(shí)施例的流程示意圖,本 實(shí)施例服務(wù)程序調(diào)用方法的執(zhí)行主體可以為圖1A所示的第二管理模塊、第二處理模塊和 第二代理服務(wù)模塊,具體而言,本實(shí)施例的服務(wù)程序調(diào)用方法包括但不限于以下步驟。
[0116] 步驟S500,接收遠(yuǎn)端智能設(shè)備發(fā)送的需遠(yuǎn)程調(diào)用的服務(wù)程序的識(shí)別信息,并根據(jù) 服務(wù)程序的識(shí)別信息在本地確定對(duì)應(yīng)的服務(wù)程序,其中,服務(wù)程序在遠(yuǎn)端智能設(shè)備已定義 為遠(yuǎn)程調(diào)用,遠(yuǎn)端智能設(shè)備根據(jù)應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序所發(fā)出的調(diào)用請(qǐng)求產(chǎn)生服務(wù) 程序的識(shí)別信息。
[0117] 步驟S501,在接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)服務(wù)程序的調(diào)用信息時(shí),根據(jù)調(diào)用 信息調(diào)用對(duì)應(yīng)的服務(wù)程序,并將服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回給遠(yuǎn)端智能設(shè)備的應(yīng)用 程序。
[0118] 本實(shí)施例服務(wù)程序調(diào)用方法通過(guò)將遠(yuǎn)端智能設(shè)備的服務(wù)程序解耦運(yùn)行在本身的 系統(tǒng)內(nèi),可以有效地降低遠(yuǎn)端智能設(shè)備的能耗。
[0119] 請(qǐng)參閱圖6,是本申請(qǐng)服務(wù)程序調(diào)用方法第四實(shí)施例的流程示意圖,本實(shí)施例服務(wù) 程序調(diào)用方法具體包括以下步驟。
[0120] 步驟S600,接收遠(yuǎn)端智能設(shè)備發(fā)送的需遠(yuǎn)程調(diào)用的服務(wù)程序的識(shí)別信息,其中,月艮 務(wù)程序在遠(yuǎn)端智能設(shè)備已定義為遠(yuǎn)程調(diào)用,遠(yuǎn)端智能設(shè)備根據(jù)應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程 序所發(fā)出的調(diào)用請(qǐng)求產(chǎn)生服務(wù)程序的識(shí)別信息。
[0121] 步驟S601,根據(jù)服務(wù)程序的識(shí)別信息產(chǎn)生與服務(wù)程序?qū)?yīng)的第一 binder引用,并 存儲(chǔ)第一 binder引用與服務(wù)程序的對(duì)應(yīng)關(guān)系。
[0122] 值得注意的是,在步驟S601中,本實(shí)施例針對(duì)基于binder機(jī)制的遠(yuǎn)端智能設(shè)備作 了進(jìn)一步改進(jìn),具體來(lái)說(shuō),本實(shí)施例在遠(yuǎn)端智能設(shè)備需要調(diào)用服務(wù)程序前,為了避免現(xiàn)有技 術(shù)需要對(duì)源代碼等進(jìn)行重新編譯的技術(shù)問(wèn)題,而采用binder進(jìn)制在系統(tǒng)自身進(jìn)行服務(wù)程 序調(diào)用。
[0123] 步驟S602,在接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)服務(wù)程序的調(diào)用信息時(shí),根據(jù)調(diào)用 信息查找第一 binder引用,并根據(jù)第一 binder引用調(diào)用服務(wù)程序。
[0124] 步驟S603,將利用第一 binder引用返回的服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給 遠(yuǎn)端智能設(shè)備,以使遠(yuǎn)端智能設(shè)備利用第二 binder引用將數(shù)據(jù)結(jié)果返回給應(yīng)用程序,其 中,遠(yuǎn)端智能設(shè)備根據(jù)調(diào)用請(qǐng)求產(chǎn)生第二 binder引用。
[0125] 本實(shí)施例服務(wù)程序調(diào)用方法在智能設(shè)備自身和遠(yuǎn)端智能設(shè)備均通過(guò)各自的 binder機(jī)制進(jìn)行服務(wù)程序調(diào)用,無(wú)需修改及編譯應(yīng)用程序的源代碼等,從而適用于現(xiàn)有技 術(shù)的應(yīng)用程序,兼容性更好。
[0126] 請(qǐng)參閱圖7,是本申請(qǐng)智能設(shè)備第三實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例智能設(shè)備包括 但不限于代理服務(wù)模塊70、管理模塊71和處理模塊72。
[0127] 代理服務(wù)模塊70用于接收遠(yuǎn)端智能設(shè)備發(fā)送的需遠(yuǎn)程調(diào)用的服務(wù)程序的識(shí)別信 息。其中,服務(wù)程序在遠(yuǎn)端智能設(shè)備已定義為遠(yuǎn)程調(diào)用,遠(yuǎn)端智能設(shè)備根據(jù)應(yīng)用程序調(diào)用對(duì) 應(yīng)的服務(wù)程序所發(fā)出的調(diào)用請(qǐng)求產(chǎn)生服務(wù)程序的識(shí)別信息。
[0128] 管理模塊71用于根據(jù)代理服務(wù)模塊70接收到的服務(wù)程序的識(shí)別信息在本地確定 對(duì)應(yīng)的服務(wù)程序。
[0129] 處理模塊72用于在代理服務(wù)模塊70接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)服務(wù)程序的 調(diào)用信息時(shí),根據(jù)調(diào)用信息調(diào)用對(duì)應(yīng)的服務(wù)程序,并通過(guò)代理服務(wù)模塊70將服務(wù)程序運(yùn)行 獲得的數(shù)據(jù)結(jié)果返回給遠(yuǎn)端智能設(shè)備的應(yīng)用程序。
[0130] 本實(shí)施例的智能設(shè)備可以作為圖3所示的"遠(yuǎn)端智能設(shè)備",其具體實(shí)現(xiàn)過(guò)程請(qǐng)參 閱相關(guān)實(shí)施例的描述,在此不再贅述。
[0131] 請(qǐng)參閱圖8,是本申請(qǐng)智能設(shè)備第四實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例智能設(shè)備包括 但不限于代理服務(wù)模塊80、管理模塊81、處理模塊82。
[0132] 如前所述,代理服務(wù)模塊80用于接收遠(yuǎn)端智能設(shè)備發(fā)送的需遠(yuǎn)程調(diào)用的服務(wù)程 序的識(shí)別信息。管理模塊81用于根據(jù)代理服務(wù)模塊80接收到的服務(wù)程序的識(shí)別信息在本 地確定對(duì)應(yīng)的服務(wù)程序。處理模塊82用于在代理服務(wù)模塊80接收到遠(yuǎn)端智能設(shè)備發(fā)送的 針對(duì)服務(wù)程序的調(diào)用信息時(shí),根據(jù)調(diào)用信息調(diào)用對(duì)應(yīng)的服務(wù)程序,并將服務(wù)程序運(yùn)行獲得 的數(shù)據(jù)結(jié)果返回給遠(yuǎn)端智能設(shè)備的應(yīng)用程序。
[0133] 需要說(shuō)明的是,本實(shí)施例針對(duì)現(xiàn)有技術(shù)基于Android的智能設(shè)備在調(diào)用服務(wù)程序 時(shí),需要對(duì)應(yīng)用程序或服務(wù)程序進(jìn)行編譯修改的技術(shù)問(wèn)題,本實(shí)施例在智能設(shè)備自身和遠(yuǎn) 端智能設(shè)備均通過(guò)各自的binder機(jī)制進(jìn)行服務(wù)程序調(diào)用。
[0134] 具體而言,管理模塊81具體用于根據(jù)服務(wù)程序的識(shí)別信息產(chǎn)生與服務(wù)程序?qū)?yīng) 的第一 binder引用,并存儲(chǔ)第一 binder引用與服務(wù)程序的對(duì)應(yīng)關(guān)系。
[0135] 處理模塊82具體用于在代理服務(wù)模塊80接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)服務(wù)程 序的調(diào)用信息時(shí),根據(jù)調(diào)用信息查找第一 binder引用,并根據(jù)第一 binder引用調(diào)用服務(wù)程 序。
[0136] 代理服務(wù)模塊80具體用于將處理模塊82利用第一 binder引用返回的服務(wù)程序 運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給遠(yuǎn)端智能設(shè)備,以使遠(yuǎn)端智能設(shè)備利用第二 binder引用將數(shù) 據(jù)結(jié)果返回給應(yīng)用程序,其中,遠(yuǎn)端智能設(shè)備根據(jù)調(diào)用請(qǐng)求產(chǎn)生第二 binder引用。
[0137] 值得注意的是,為了實(shí)現(xiàn)代理服務(wù)模塊80從服務(wù)進(jìn)程模塊中調(diào)用服務(wù)程序而需 要修改編譯等,本實(shí)施例需要通過(guò)管理模塊81對(duì)代理服務(wù)模塊80進(jìn)行處理,使代理服務(wù)模 塊80作為智能設(shè)備自身所運(yùn)行的"等效應(yīng)用程序"來(lái)調(diào)用服務(wù)進(jìn)程模塊中的服務(wù)程序。具 體而言,處理模塊82可以為基于binder機(jī)制的binder驅(qū)動(dòng)模塊,而代理服務(wù)模塊80和服 務(wù)進(jìn)程模塊之間通過(guò)相應(yīng)的第一 binder引用(即Binder引用)與Binder實(shí)體之間進(jìn)行服 務(wù)程序調(diào)用及數(shù)據(jù)傳輸,在本【技術(shù)領(lǐng)域】人員理解的范圍內(nèi),不作細(xì)述。
[0138] 此外,本實(shí)施例的智能設(shè)備可以為用戶(hù)終端,而遠(yuǎn)端智能設(shè)備可以為云終端,此 時(shí),本實(shí)施例可以在用戶(hù)終端上執(zhí)行sensor服務(wù)、通信錄服務(wù)和GPS服務(wù)等服務(wù)后將數(shù)據(jù) 結(jié)果返回給云終端,通過(guò)這種方式,可以有效地保護(hù)用戶(hù)的個(gè)人信息和隱私,提高了安全性 能。當(dāng)然,本實(shí)施例的智能設(shè)備可以為云終端而遠(yuǎn)端智能設(shè)備則對(duì)應(yīng)地可以為用戶(hù)終端,本 實(shí)施例可以將運(yùn)算復(fù)雜且運(yùn)算量大的服務(wù)程序運(yùn)行在云終端上,以降低用戶(hù)終端的能耗。
[0139] 需要說(shuō)明的是,服務(wù)程序可以為應(yīng)用進(jìn)程服務(wù)或系統(tǒng)進(jìn)程服務(wù),相應(yīng)地,管理模塊 81為基于binder機(jī)制的AMS模塊或SM模塊,在此不作限定。
[0140] 請(qǐng)參閱圖9,是本申請(qǐng)服務(wù)程序調(diào)用系統(tǒng)第一實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例服務(wù) 程序調(diào)用系統(tǒng)包括但不限于第一智能設(shè)備和第二智能設(shè)備。
[0141] 具體而言,第一智能設(shè)備包括第一代理服務(wù)模塊90、第一管理模塊91和第一處理 模塊92。
[0142] 第一代理服務(wù)模塊90可以用于從第二智能設(shè)備調(diào)用服務(wù)程序或進(jìn)行數(shù)據(jù)信息傳 輸?shù)取?br>
[0143] 第一管理模塊91用于接收應(yīng)用程序進(jìn)程模塊中應(yīng)用程序的調(diào)用請(qǐng)求并判斷服務(wù) 程序是否已定義為遠(yuǎn)程調(diào)用。
[0144] 第一處理模塊92用于在第一管理模塊91判斷到服務(wù)程序已定義為遠(yuǎn)程調(diào)用時(shí), 根據(jù)調(diào)用請(qǐng)求產(chǎn)生服務(wù)程序的識(shí)別信息并通過(guò)第一代理服務(wù)模塊90發(fā)送給第二智能設(shè) 備,以通過(guò)第一代理服務(wù)模塊90從第二智能設(shè)備調(diào)用服務(wù)程序,在第一管理模塊91判斷到 服務(wù)程序未定義為遠(yuǎn)程調(diào)用時(shí),則從本地調(diào)用服務(wù)程序。
[0145] 相應(yīng)地,第二智能設(shè)備包括第二代理服務(wù)模塊10、第二管理模塊11和第二處理模 塊12。
[0146] 第二代理服務(wù)模塊10用于接收第一代理服務(wù)模塊90發(fā)送服務(wù)程序的識(shí)別信息。
[0147] 第二管理模塊11用于根據(jù)第二代理服務(wù)模塊10接收到的服務(wù)程序的識(shí)別信息在 本地確定對(duì)應(yīng)的服務(wù)程序。
[0148] 第二處理模塊12用于在第二代理服務(wù)模塊10接收到第一代理服務(wù)模塊90發(fā)送 的針對(duì)服務(wù)程序的調(diào)用信息時(shí),根據(jù)調(diào)用信息調(diào)用對(duì)應(yīng)的服務(wù)程序,并將服務(wù)程序運(yùn)行獲 得的數(shù)據(jù)結(jié)果通過(guò)第二代理服務(wù)模塊10發(fā)送給第一代理服務(wù)模塊90以返回給應(yīng)用程序。
[0149] 請(qǐng)結(jié)合圖9參閱圖10,圖10是本申請(qǐng)服務(wù)程序調(diào)用系統(tǒng)第二實(shí)施例的結(jié)構(gòu)示意 圖,本實(shí)施例中的第一智能設(shè)備和第二智能設(shè)備為基于Android的終端設(shè)備,且其對(duì)應(yīng)采 用binder機(jī)制進(jìn)行服務(wù)程序的調(diào)用。
[0150] 為了在binder機(jī)制的Android終端上實(shí)現(xiàn)本申請(qǐng),本實(shí)施例的服務(wù)程序調(diào)用系統(tǒng) 的具體過(guò)程包括以下。
[0151] 在第一管理模塊91判斷到服務(wù)程序已定義為遠(yuǎn)程調(diào)用時(shí)。
[0152] 第一管理模塊91具體用于根據(jù)調(diào)用請(qǐng)求產(chǎn)生與第一代理服務(wù)模塊90相對(duì)應(yīng)的第 一 binder引用并將第一 binder引用返回給應(yīng)用程序。
[0153] 第一代理服務(wù)模塊90具體用于將服務(wù)程序的識(shí)別信息發(fā)送至第二代理服務(wù)模塊 10 ;接著,第二管理模塊11具體用于根據(jù)識(shí)別信息產(chǎn)生與服務(wù)程序?qū)?yīng)的第二 binder引 用,并存儲(chǔ)第二 binder引用與服務(wù)程序的對(duì)應(yīng)關(guān)系。
[0154] 第一代理服務(wù)模塊90具體還用于在應(yīng)用程序根據(jù)第一 binder引用調(diào)用服務(wù)程 序時(shí),將針對(duì)應(yīng)用程序的調(diào)用信息發(fā)送至第二代理服務(wù)模塊10。其中,應(yīng)用程序需要通過(guò) 第一 binder引用調(diào)用服務(wù)程序時(shí),將進(jìn)入第一代理服務(wù)模塊90的處理函數(shù)(On Transact 函數(shù))中,接著第一代理服務(wù)模塊90將調(diào)用信息通過(guò)有線或無(wú)線網(wǎng)絡(luò)原封不動(dòng)地發(fā)送給第 二代理服務(wù)模塊10。之后,第二處理模塊12具體用于根據(jù)服務(wù)程序的調(diào)用信息查找第二 binder引用,并根據(jù)第二 binder引用調(diào)用服務(wù)程序。
[0155] 第二代理服務(wù)模塊10具體用于將第二處理模塊12利用第二 binder引用返回的 服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給第一處理模塊92。相應(yīng)地,第一處理模塊92具體用于 利用第一 binder引用將第一代理服務(wù)模塊90接收的數(shù)據(jù)結(jié)果返回給應(yīng)用程序。
[0156] 在上述過(guò)程中,不難看出,第一代理服務(wù)模塊90在第一智能設(shè)備端相當(dāng)于"等效 服務(wù)程序",即應(yīng)用程序進(jìn)程模塊中應(yīng)用程序視第一代理服務(wù)模塊90為其需要調(diào)用的服務(wù) 程序,使得應(yīng)用程序進(jìn)程模塊與第一代理服務(wù)模塊90之間直接通過(guò)binder機(jī)制進(jìn)行調(diào)用。 同理,第二代理服務(wù)模塊10在第二智能設(shè)備內(nèi)則相當(dāng)于"等效應(yīng)用程序",即第二智能設(shè)備 的服務(wù)進(jìn)程模塊視第二代理服務(wù)模塊10為調(diào)用服務(wù)程序的應(yīng)用程序進(jìn)程模塊中的應(yīng)用程 序,使得第二代理服務(wù)模塊10與第二智能設(shè)備的服務(wù)進(jìn)程模塊之間直接通過(guò)binder機(jī)制 進(jìn)行調(diào)用。進(jìn)一步而言,通過(guò)這種方式,本申請(qǐng)不再依賴(lài)于應(yīng)用程序的源代碼,無(wú)需在源代 碼基礎(chǔ)上進(jìn)行重新編譯,也無(wú)需依賴(lài)于應(yīng)用程序?qū)IDL架構(gòu)的使用;本申請(qǐng)也不需修改服 務(wù)程序的代碼,無(wú)需去解決應(yīng)用程序通過(guò)簽名進(jìn)行完整性保護(hù)的技術(shù)問(wèn)題,因此本申請(qǐng)更 具實(shí)用性和普及性。
[0157] 此外,在第一管理模塊91判斷到服務(wù)程序未定義為遠(yuǎn)程調(diào)用時(shí)。
[0158] 第一管理模塊91具體還用于在第一管理模塊91判斷到服務(wù)程序未定義為遠(yuǎn)程調(diào) 用時(shí),并根據(jù)調(diào)用請(qǐng)求從本地查找與服務(wù)程序?qū)?yīng)的第三binder引用并將第三binder引 用返回給應(yīng)用程序。
[0159] 第一處理模塊92具體還用于在應(yīng)用程序根據(jù)第三binder引用調(diào)用服務(wù)程序時(shí), 利用第三binder引用將服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回給應(yīng)用程序。不難看出,服務(wù)程 序運(yùn)行于本地的服務(wù)進(jìn)程模塊(圖未示)中,而第一管理模塊91、第一處理模塊92和第一智 能設(shè)備內(nèi)部的服務(wù)進(jìn)程模塊之間通過(guò)現(xiàn)有的binder機(jī)制及其Binder引用和binder實(shí)體 進(jìn)行通信,在本【技術(shù)領(lǐng)域】人員理解的范圍內(nèi),不作細(xì)述。
[0160] 如圖10所示,第一智能設(shè)備還包括注冊(cè)模塊93和注銷(xiāo)模塊94。注冊(cè)模塊93用于 對(duì)需遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序進(jìn)行動(dòng)態(tài)注冊(cè)及解耦,以將對(duì)應(yīng)的應(yīng)用程 序定義為遠(yuǎn)程調(diào)用。注銷(xiāo)模塊94用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)已注冊(cè)及 解耦的應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng),查找并刪除程序名稱(chēng)和服務(wù)名 稱(chēng),以動(dòng)態(tài)注消至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的注冊(cè)及解耦。其中,第一管理模塊91 具體用于判斷注冊(cè)模塊93中是否已存儲(chǔ)有服務(wù)程序的服務(wù)名稱(chēng),若注冊(cè)模塊93中已存儲(chǔ) 有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為已定義遠(yuǎn)程調(diào)用,若注冊(cè)模塊93中未存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng) 則判斷為未定義遠(yuǎn)程調(diào)用。
[0161] 具體而言,注冊(cè)模塊93具體包括第一獲取單元931和第一管理單元932。第一獲 取單元931用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的 服務(wù)程序的服務(wù)名稱(chēng);第一管理單元932用于存儲(chǔ)第一獲取單元931獲取到的程序名稱(chēng)和 服務(wù)名稱(chēng)。對(duì)應(yīng)地,第一管理模塊91在判斷調(diào)用請(qǐng)求中所描述的服務(wù)程序是否已注冊(cè)為遠(yuǎn) 程調(diào)用時(shí),即根據(jù)該服務(wù)程序的服務(wù)名稱(chēng)在本地的表結(jié)構(gòu)等存儲(chǔ)單元中進(jìn)行查詢(xún),其具體 實(shí)現(xiàn)過(guò)程在本【技術(shù)領(lǐng)域】人員理解的范圍內(nèi),不作細(xì)述。
[0162] 類(lèi)似地,注銷(xiāo)模塊94包括第二獲取單元941和第二管理單元942。第二獲取單元 941用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的程序名稱(chēng)及 對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng);第二管理單元942用于查找并刪除第二獲取單元941獲取到 的程序名稱(chēng)和服務(wù)名稱(chēng),以動(dòng)態(tài)注消至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的注冊(cè)及解耦。
[0163] 需要說(shuō)明的是,第一獲取單元931和第二獲取單元941均可以為第一智能設(shè)備的 人機(jī)操作界面的輸入窗口等,在本【技術(shù)領(lǐng)域】人員理解的范圍內(nèi),不作贅述。
[0164] 在本實(shí)施例中,第一智能設(shè)備和第二智能設(shè)備的其中之一為用戶(hù)終端、另一為云 終端。當(dāng)然,第一智能設(shè)備和第二智能設(shè)備均可以為手機(jī)等用戶(hù)終端,譬如為近場(chǎng)通信技術(shù) 連接的兩臺(tái)手機(jī)等,在此不作細(xì)述。
[0165] 應(yīng)理解地,第一處理模塊92和第二處理模塊12均可以為基于binder機(jī)制的 binder驅(qū)動(dòng)模塊;第一管理模塊91和第二管理模塊11均可以為AMS模塊、或均為SM模塊, 對(duì)應(yīng)地,服務(wù)程序相應(yīng)地可以為應(yīng)用進(jìn)程服務(wù)或系統(tǒng)進(jìn)程服務(wù)。舉例而言,若服務(wù)程序?yàn)閼?yīng) 用進(jìn)程服務(wù),第一智能設(shè)備具體為手機(jī),第二智能設(shè)備為云終端:則第一管理模塊91和第 二管理模塊11均為AMS模塊,第一代理服務(wù)模塊90為遠(yuǎn)端智能設(shè)備應(yīng)用服務(wù)進(jìn)程在手機(jī) 的代理LPS (Local Proxy Service)進(jìn)程,第二代理服務(wù)模塊10為本地應(yīng)用程序進(jìn)程在云 終端的代理RPS (Remote Proxy Service)進(jìn)程;反之,若服務(wù)程序?yàn)橄到y(tǒng)進(jìn)程服務(wù),第一 智能設(shè)備具體為手機(jī),第二智能設(shè)備為云終端:則第一管理模塊91和第二管理模塊11均 為SM模塊,第一代理服務(wù)模塊90為遠(yuǎn)端智能設(shè)備系統(tǒng)服務(wù)進(jìn)程在本地的代理LPSS(Local Proxy System Service)進(jìn)程,第二代理服務(wù)模塊10為本地應(yīng)用程序進(jìn)程在云終端的代理 RPSS(Remote Proxy System Service)進(jìn)程。當(dāng)然,其具體實(shí)現(xiàn)的方式在本【技術(shù)領(lǐng)域】人員理 解的范圍內(nèi),不作贅述。
[0166] 結(jié)合前面一個(gè)或多個(gè)實(shí)施例不難看出,本申請(qǐng)通過(guò)設(shè)置第一代理服務(wù)模塊90和 第二代理服務(wù)模塊10的方式,可以實(shí)現(xiàn)remote binder (跨網(wǎng)絡(luò)進(jìn)程間通信)機(jī)制進(jìn)行遠(yuǎn) 程調(diào)用服務(wù)。
[0167] 請(qǐng)參閱圖11,是是本申請(qǐng)智能設(shè)備一實(shí)施例的具體結(jié)構(gòu)示意圖,本實(shí)施例智能設(shè) 備包括但不限于包括處理器21、接收器22、發(fā)送器23、隨機(jī)存取存儲(chǔ)器24、只讀存儲(chǔ)器25、 總線26以及網(wǎng)絡(luò)接口單元27。其中,處理器21通過(guò)總線26分別耦接接收器22、發(fā)送器 23、隨機(jī)存取存儲(chǔ)器24、只讀存儲(chǔ)器25以及網(wǎng)絡(luò)接口單元27。
[0168] 在其中一個(gè)具體實(shí)施例中,處理器21用于接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的 調(diào)用請(qǐng)求并判斷調(diào)用請(qǐng)求中所描述的服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用;處理器21在判斷 到服務(wù)程序已定義為遠(yuǎn)程調(diào)用時(shí),根據(jù)調(diào)用請(qǐng)求產(chǎn)生服務(wù)程序的識(shí)別信息并通過(guò)發(fā)送器23 或網(wǎng)絡(luò)接口單元27發(fā)送給遠(yuǎn)端智能設(shè)備。舉例而言,在處理器21判斷到服務(wù)程序已定義 為遠(yuǎn)程調(diào)用時(shí),根據(jù)調(diào)用請(qǐng)求產(chǎn)生相對(duì)應(yīng)的第一 binder引用并將第一 binder引用返回給 應(yīng)用程序;接著,處理器21通過(guò)發(fā)送器23將服務(wù)程序的識(shí)別信息發(fā)送至遠(yuǎn)端智能設(shè)備;而 在應(yīng)用程序根據(jù)第一 binder引用調(diào)用服務(wù)程序時(shí),處理器21將針對(duì)應(yīng)用程序的調(diào)用信息 發(fā)送至遠(yuǎn)端智能設(shè)備;最終,處理器21利用第一 binder引用將接收器22接收的數(shù)據(jù)結(jié)果 返回給應(yīng)用程序。
[0169] 在另一個(gè)具體實(shí)施例中,處理器21用于接收遠(yuǎn)端智能設(shè)備通過(guò)網(wǎng)絡(luò)發(fā)送給接收 器22或網(wǎng)絡(luò)接口單元27的服務(wù)程序的識(shí)別信息;處理器21根據(jù)識(shí)別信息在本地確定對(duì) 應(yīng)的服務(wù)程序;接著在通過(guò)接收器22等接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)服務(wù)程序的調(diào)用 信息時(shí),處理器21根據(jù)調(diào)用信息調(diào)用對(duì)應(yīng)的服務(wù)程序,并將服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果 通過(guò)發(fā)送器23發(fā)送給遠(yuǎn)端智能設(shè)備以返回給應(yīng)用程序。舉例而言,處理器21具體用于根 據(jù)識(shí)別信息產(chǎn)生與服務(wù)程序?qū)?yīng)的第二 binder引用,并存儲(chǔ)第二 binder引用與服務(wù)程序 的對(duì)應(yīng)關(guān)系;接著,處理器21根據(jù)服務(wù)程序的調(diào)用信息查找第二 binder引用,并根據(jù)第二 binder引用調(diào)用服務(wù)程序;發(fā)送器23具體用于將處理器21利用第二 binder引用返回的 服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給遠(yuǎn)端智能設(shè)備。
[0170] 本申請(qǐng)不再依賴(lài)于應(yīng)用程序的源代碼,無(wú)需在源代碼基礎(chǔ)上進(jìn)行重新編譯,也無(wú) 需依賴(lài)于應(yīng)用程序?qū)IDL架構(gòu)的使用;本申請(qǐng)也不需修改服務(wù)程序的代碼,無(wú)需去解決應(yīng) 用程序通過(guò)簽名進(jìn)行完整性保護(hù)的技術(shù)問(wèn)題,因此本申請(qǐng)更具實(shí)用性和普及性。
[0171] 本實(shí)施方式中,處理器31可能是一個(gè)中央處理器CPU,或者是特定集成電路ASIC (Application Specific Integrated Circuit),或者是被配置成實(shí)施本申請(qǐng)實(shí)施方式的一 個(gè)或多個(gè)集成電路。
[0172] 在本申請(qǐng)所提供的幾個(gè)實(shí)施方式中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可 以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施方式僅僅是示意性的,例如,所述模 塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè) 單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一 點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過(guò)一些接口,裝置或 單元的間接耦合或通訊連接,可以是電性,機(jī)械或其它的形式。
[0173] 所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè) 網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施方式方案的 目的。
[0174] 另外,在本申請(qǐng)各個(gè)實(shí)施方式中的各功能單元可以集成在一個(gè)處理單元中,也可 以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的 單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0175] 所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用 時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上 或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式 體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī) 設(shè)備(可以是個(gè)人計(jì)算機(jī),管理服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本申請(qǐng) 各個(gè)實(shí)施方式所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀 存儲(chǔ)器(ROM, Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、磁碟或 者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0176] 以上所述僅為本申請(qǐng)的實(shí)施方式,并非因此限制本申請(qǐng)的保護(hù)范圍,凡是利用本 申請(qǐng)說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的 【技術(shù)領(lǐng)域】,均同理包括在本申請(qǐng)的專(zhuān)利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1. 一種服務(wù)程序調(diào)用方法,其特征在于,所述服務(wù)程序調(diào)用方法包括: 接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求; 判斷所述服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用; 若已定義為遠(yuǎn)程調(diào)用,則從遠(yuǎn)端智能設(shè)備調(diào)用所述服務(wù)程序; 若未定義為遠(yuǎn)程調(diào)用,則從本地調(diào)用所述服務(wù)程序。
2.根據(jù)權(quán)利要求1所述的服務(wù)程序調(diào)用方法,其特征在于,所述從遠(yuǎn)端智能設(shè)備調(diào)用 所述服務(wù)程序的步驟包括: 根據(jù)所述調(diào)用請(qǐng)求產(chǎn)生第一 binder引用并將所述第一 binder引用返回給所述應(yīng)用程 序; 將所述服務(wù)程序的識(shí)別信息發(fā)送至遠(yuǎn)端智能設(shè)備,以使遠(yuǎn)端智能設(shè)備產(chǎn)生與所述服務(wù) 程序?qū)?yīng)的第二 binder引用,并存儲(chǔ)所述第二 binder引用與所述服務(wù)程序的對(duì)應(yīng)關(guān)系; 在所述應(yīng)用程序根據(jù)所述第一 binder引用調(diào)用所述服務(wù)程序時(shí),將所述應(yīng)用程序的 調(diào)用信息發(fā)送至所述遠(yuǎn)端智能設(shè)備,以使所述遠(yuǎn)端智能設(shè)備根據(jù)所述調(diào)用信息查找所述第 二 binder引用,根據(jù)所述第二 binder引用調(diào)用所述服務(wù)程序,并返回所述服務(wù)程序運(yùn)行獲 得的數(shù)據(jù)結(jié)果; 利用所述第一 binder引用將所述數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序。
3.根據(jù)權(quán)利要求2所述的服務(wù)程序調(diào)用方法,其特征在于,所述從本地調(diào)用所述服務(wù) 程序的步驟包括: 根據(jù)所述調(diào)用請(qǐng)求從本地查找與所述服務(wù)程序?qū)?yīng)的第三binder引用并將所述第三 binder引用返回給所述應(yīng)用程序; 在所述應(yīng)用程序根據(jù)所述第三binder引用調(diào)用所述服務(wù)程序時(shí),利用所述第三 binder引用將所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的服務(wù)程序調(diào)用方法,其特征在于,所述接收應(yīng)用程 序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求的步驟之前還包括: 對(duì)需遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序進(jìn)行動(dòng)態(tài)注冊(cè)及解耦,以定義為遠(yuǎn)程 調(diào)用。
5.根據(jù)權(quán)利要求4所述的服務(wù)程序調(diào)用方法,其特征在于: 所述對(duì)需遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序進(jìn)行注冊(cè)及解耦的步驟包括: 獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的 服務(wù)名稱(chēng); 存儲(chǔ)所述程序名稱(chēng)和所述服務(wù)名稱(chēng); 所述判斷所述服務(wù)程序是否已定義為遠(yuǎn)程調(diào)用的步驟包括: 判斷是否已存儲(chǔ)有所述服務(wù)程序的服務(wù)名稱(chēng),若已存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為已 定義遠(yuǎn)程調(diào)用,若未存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為未定義遠(yuǎn)程調(diào)用。
6.根據(jù)權(quán)利要求4所述的服務(wù)程序調(diào)用方法,其特征在于,所述接收應(yīng)用程序調(diào)用對(duì) 應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求的步驟之前還包括: 獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的程序名稱(chēng)及對(duì) 應(yīng)的服務(wù)程序的服務(wù)名稱(chēng); 查找并刪除所述程序名稱(chēng)和所述服務(wù)名稱(chēng),以動(dòng)態(tài)注消所述至少一個(gè)已注冊(cè)及解耦的 應(yīng)用程序的注冊(cè)及解耦。
7.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的服務(wù)程序調(diào)用方法,其特征在于,所述服務(wù)程序包 括應(yīng)用進(jìn)程服務(wù)和系統(tǒng)進(jìn)程服務(wù)。
8. 一種智能設(shè)備,其特征在于,所述智能設(shè)備包括: 代理服務(wù)模塊,用于從遠(yuǎn)端智能設(shè)備調(diào)用服務(wù)程序; 管理模塊,用于接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求并判斷所述服務(wù)程序是 否已定義為遠(yuǎn)程調(diào)用; 處理模塊,用于在所述管理模塊判斷到所述服務(wù)程序已定義為遠(yuǎn)程調(diào)用時(shí),通過(guò)所述 代理服務(wù)模塊從遠(yuǎn)端智能設(shè)備調(diào)用所述服務(wù)程序,在所述管理模塊判斷到所述服務(wù)程序未 定義為遠(yuǎn)程調(diào)用時(shí),則從本地調(diào)用所述服務(wù)程序。
9.根據(jù)權(quán)利要求8所述的智能設(shè)備,其特征在于: 所述管理模塊具體用于根據(jù)所述調(diào)用請(qǐng)求產(chǎn)生與所述代理服務(wù)模塊相對(duì)應(yīng)的第一 binder引用并將所述第一 binder引用返回給所述應(yīng)用程序; 所述代理服務(wù)模塊具體用于將所述服務(wù)程序的識(shí)別信息發(fā)送至遠(yuǎn)端智能設(shè)備,以使遠(yuǎn) 端智能設(shè)備產(chǎn)生與所述服務(wù)程序?qū)?yīng)的第二 binder引用,并存儲(chǔ)所述第二 binder引用與 所述服務(wù)程序的對(duì)應(yīng)關(guān)系; 所述代理服務(wù)模塊具體還用于在所述應(yīng)用程序根據(jù)所述第一 binder引用調(diào)用所述服 務(wù)程序時(shí),將所述應(yīng)用程序的調(diào)用信息發(fā)送至所述遠(yuǎn)端智能設(shè)備,以使所述遠(yuǎn)端智能設(shè)備 根據(jù)所述調(diào)用信息查找所述第二 binder引用,根據(jù)所述第二 binder引用調(diào)用所述服務(wù)程 序,并返回所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果; 所述處理模塊具體用于利用所述第一 binder引用將所述代理服務(wù)模塊從所述遠(yuǎn)端智 能設(shè)備接收的所述數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序。
10.根據(jù)權(quán)利要求9所述的智能設(shè)備,其特征在于: 所述管理模塊具體用于在所述管理模塊判斷到所述服務(wù)程序未定義為遠(yuǎn)程調(diào)用時(shí),根 據(jù)所述調(diào)用請(qǐng)求從本地查找與所述服務(wù)程序?qū)?yīng)的第三binder引用并將所述第三binder 引用返回給所述應(yīng)用程序; 所述處理模塊具體還用于在所述應(yīng)用程序根據(jù)所述第三binder引用調(diào)用所述服務(wù)程 序時(shí),利用所述第三binder引用將所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回給所述應(yīng)用程 序。
11.根據(jù)權(quán)利要求8-10任一項(xiàng)所述的智能設(shè)備,其特征在于,所述智能設(shè)備還包括: 注冊(cè)模塊,用于對(duì)需遠(yuǎn)程調(diào)用服務(wù)的應(yīng)用程序及對(duì)應(yīng)的服務(wù)程序進(jìn)行動(dòng)態(tài)注冊(cè)及解 耦,以定義為遠(yuǎn)程調(diào)用。
12.根據(jù)權(quán)利要求11所述的智能設(shè)備,其特征在于,所述注冊(cè)模塊具體包括: 第一獲取單元,用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)應(yīng)用程序的程序名稱(chēng)及 對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng); 第一管理單元,用于存儲(chǔ)所述第一獲取單元獲取到的所述程序名稱(chēng)和所述服務(wù)名稱(chēng); 其中,所述管理模塊具體用于判斷所述第一管理單元中是否已存儲(chǔ)有所述服務(wù)程序的 服務(wù)名稱(chēng),若所述第一管理單元中已存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為已定義遠(yuǎn)程調(diào)用,若 所述第一管理單元中未存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為未定義遠(yuǎn)程調(diào)用。
13.根據(jù)權(quán)利要求12所述的智能設(shè)備,其特征在于,所述智能設(shè)備還包括注銷(xiāo)模塊,所 述注銷(xiāo)模塊包括: 第二獲取單元,用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)已注冊(cè)及解耦的應(yīng)用程 序的程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng); 第二管理單元,用于查找并刪除所述第二獲取單元獲取到的所述程序名稱(chēng)和所述服務(wù) 名稱(chēng),以動(dòng)態(tài)注消所述至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的注冊(cè)及解耦。
14.根據(jù)權(quán)利要求9或10所述的智能設(shè)備,其特征在于,所述智能設(shè)備為用戶(hù)終端或云 終端,所述服務(wù)程序包括應(yīng)用進(jìn)程服務(wù)和系統(tǒng)進(jìn)程服務(wù),所述管理模塊為AMS模塊或SM模 塊,所述處理模塊為基于binder機(jī)制的binder驅(qū)動(dòng)模塊。
15. 一種服務(wù)程序調(diào)用方法,其特征在于,所述服務(wù)程序調(diào)用方法包括: 接收遠(yuǎn)端智能設(shè)備發(fā)送的需遠(yuǎn)程調(diào)用的服務(wù)程序的識(shí)別信息,并根據(jù)所述服務(wù)程序的 識(shí)別信息在本地確定對(duì)應(yīng)的所述服務(wù)程序,其中,所述服務(wù)程序在遠(yuǎn)端智能設(shè)備已定義為 遠(yuǎn)程調(diào)用,所述遠(yuǎn)端智能設(shè)備根據(jù)所述應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序所發(fā)出的調(diào)用請(qǐng)求產(chǎn) 生所述服務(wù)程序的識(shí)別信息; 在接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)所述服務(wù)程序的調(diào)用信息時(shí),根據(jù)所述調(diào)用信息調(diào) 用對(duì)應(yīng)的所述服務(wù)程序,并將所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回給所述遠(yuǎn)端智能設(shè)備 的應(yīng)用程序。
16.根據(jù)權(quán)利要求15所述的服務(wù)程序調(diào)用方法,其特征在于: 所述根據(jù)所述服務(wù)程序的識(shí)別信息在本地確定對(duì)應(yīng)的所述服務(wù)程序的步驟具體包 括: 根據(jù)所述服務(wù)程序的識(shí)別信息產(chǎn)生與所述服務(wù)程序?qū)?yīng)的第一 binder引用,并存儲(chǔ) 所述第一 binder引用與所述服務(wù)程序的對(duì)應(yīng)關(guān)系; 所述根據(jù)所述調(diào)用信息調(diào)用對(duì)應(yīng)的所述服務(wù)程序,并將所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù) 結(jié)果返回給所述遠(yuǎn)端智能設(shè)備的應(yīng)用程序的步驟具體包括: 根據(jù)所述調(diào)用信息查找所述第一 binder引用,并根據(jù)所述第一 binder引用調(diào)用所述 服務(wù)程序; 將利用所述第一 binder引用返回的所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給所述遠(yuǎn) 端智能設(shè)備,以使所述遠(yuǎn)端智能設(shè)備利用第二 binder引用將所述數(shù)據(jù)結(jié)果返回給所述應(yīng) 用程序,其中,所述遠(yuǎn)端智能設(shè)備根據(jù)所述調(diào)用請(qǐng)求產(chǎn)生所述第二 binder引用。
17.根據(jù)權(quán)利要求15或16所述的服務(wù)程序調(diào)用方法,其特征在于,所述服務(wù)程序包括 應(yīng)用進(jìn)程服務(wù)和系統(tǒng)進(jìn)程服務(wù)。
18. 一種智能設(shè)備,其特征在于,所述智能設(shè)備包括: 代理服務(wù)模塊,用于接收遠(yuǎn)端智能設(shè)備發(fā)送的需遠(yuǎn)程調(diào)用的服務(wù)程序的識(shí)別信息,其 中,所述服務(wù)程序在遠(yuǎn)端智能設(shè)備已定義為遠(yuǎn)程調(diào)用,所述遠(yuǎn)端智能設(shè)備根據(jù)所述應(yīng)用程 序調(diào)用對(duì)應(yīng)的服務(wù)程序所發(fā)出的調(diào)用請(qǐng)求產(chǎn)生所述服務(wù)程序的識(shí)別信息; 管理模塊,用于根據(jù)所述代理服務(wù)模塊接收到的所述服務(wù)程序的識(shí)別信息在本地確定 對(duì)應(yīng)的所述服務(wù)程序; 處理模塊,用于在所述代理服務(wù)模塊接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)所述服務(wù)程序的 調(diào)用信息時(shí),根據(jù)所述調(diào)用信息調(diào)用對(duì)應(yīng)的所述服務(wù)程序,并將所述服務(wù)程序運(yùn)行獲得的 數(shù)據(jù)結(jié)果返回給所述遠(yuǎn)端智能設(shè)備的應(yīng)用程序。
19.根據(jù)權(quán)利要求18所述的智能設(shè)備,其特征在于: 所述管理模塊具體用于根據(jù)所述服務(wù)程序的識(shí)別信息產(chǎn)生與所述服務(wù)程序?qū)?yīng)的第 一 binder引用,并存儲(chǔ)所述第一 binder引用與所述服務(wù)程序的對(duì)應(yīng)關(guān)系; 所述處理模塊具體用于在所述代理服務(wù)模塊接收到遠(yuǎn)端智能設(shè)備發(fā)送的針對(duì)所述 服務(wù)程序的調(diào)用信息時(shí),根據(jù)所述調(diào)用信息查找所述第一 binder引用,并根據(jù)所述第一 binder引用調(diào)用所述服務(wù)程序; 所述代理服務(wù)模塊具體用于將所述處理模塊利用所述第一 binder引用返回的所述 服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給所述遠(yuǎn)端智能設(shè)備,以使所述遠(yuǎn)端智能設(shè)備利用第二 binder引用將所述數(shù)據(jù)結(jié)果返回給所述應(yīng)用程序,其中,所述遠(yuǎn)端智能設(shè)備根據(jù)所述調(diào)用 請(qǐng)求產(chǎn)生所述第二 binder引用。
20.根據(jù)權(quán)利要求18或19所述的智能設(shè)備,其特征在于,所述智能設(shè)備為用戶(hù)終端或 云終端,所述服務(wù)程序?yàn)閼?yīng)用進(jìn)程服務(wù)或系統(tǒng)進(jìn)程服務(wù),所述管理模塊為AMS模塊或SM模 塊,所述處理模塊為基于binder機(jī)制的binder驅(qū)動(dòng)模塊。
21. 一種服務(wù)程序調(diào)用系統(tǒng),其特征在于,所述服務(wù)程序調(diào)用系統(tǒng)包括第一智能設(shè)備和 第二智能設(shè)備: 所述第一智能設(shè)備包括: 第一代理服務(wù)模塊,用于從所述第二智能設(shè)備調(diào)用服務(wù)程序; 第一管理模塊,用于接收應(yīng)用程序調(diào)用對(duì)應(yīng)的服務(wù)程序的調(diào)用請(qǐng)求并判斷所述服務(wù)程 序是否已定義為遠(yuǎn)程調(diào)用; 第一處理模塊,用于在所述第一管理模塊判斷到所述服務(wù)程序已定義為遠(yuǎn)程調(diào)用時(shí), 根據(jù)所述調(diào)用請(qǐng)求產(chǎn)生所述服務(wù)程序的識(shí)別信息并通過(guò)所述第一代理服務(wù)模塊發(fā)送給所 述第二智能設(shè)備,以通過(guò)所述第一代理服務(wù)模塊從所述第二智能設(shè)備調(diào)用所述服務(wù)程序, 在所述第一管理模塊判斷到所述服務(wù)程序未定義為遠(yuǎn)程調(diào)用時(shí),則從本地調(diào)用所述服務(wù)程 序; 所述第二智能設(shè)備包括: 第二代理服務(wù)模塊,用于接收所述第一代理服務(wù)模塊發(fā)送所述服務(wù)程序的識(shí)別信息; 第二管理模塊,用于根據(jù)所述第二代理服務(wù)模塊接收到的所述服務(wù)程序的識(shí)別信息在 本地確定對(duì)應(yīng)的所述服務(wù)程序; 第二處理模塊,用于在所述第二代理服務(wù)模塊接收到所述第一代理服務(wù)模塊發(fā)送的針 對(duì)所述服務(wù)程序的調(diào)用信息時(shí),根據(jù)所述調(diào)用信息調(diào)用對(duì)應(yīng)的所述服務(wù)程序,并將所述服 務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果通過(guò)所述第二代理服務(wù)模塊發(fā)送給所述第一代理服務(wù)模塊以 返回給所述應(yīng)用程序。
22.根據(jù)權(quán)利要求21所述的服務(wù)程序調(diào)用系統(tǒng),其特征在于: 所述第一管理模塊具體用于根據(jù)所述調(diào)用請(qǐng)求產(chǎn)生與所述第一代理服務(wù)模塊相對(duì)應(yīng) 的第一 binder引用并將所述第一 binder引用返回給所述應(yīng)用程序; 所述第一代理服務(wù)模塊具體用于將所述服務(wù)程序的識(shí)別信息發(fā)送至所述第二代理服 務(wù)模塊,所述第二管理模塊具體用于根據(jù)所述識(shí)別信息產(chǎn)生與所述服務(wù)程序?qū)?yīng)的第二 binder引用,并存儲(chǔ)所述第二 binder引用與所述服務(wù)程序的對(duì)應(yīng)關(guān)系; 所述第一代理服務(wù)模塊具體還用于在所述應(yīng)用程序根據(jù)所述第一 binder引用調(diào)用所 述服務(wù)程序時(shí),將針對(duì)所述應(yīng)用程序的調(diào)用信息發(fā)送至所述第二代理服務(wù)模塊,所述第二 處理模塊具體用于根據(jù)所述服務(wù)程序的調(diào)用信息查找所述第二 binder引用,并根據(jù)所述 第二 binder引用調(diào)用所述服務(wù)程序; 所述第二代理服務(wù)模塊具體用于將所述第二處理模塊利用所述第二 binder引用返回 的所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果發(fā)送給所述第一處理模塊,所述第一處理模塊具體用 于利用所述第一 binder引用將所述第一代理服務(wù)模塊接收的所述數(shù)據(jù)結(jié)果返回給所述應(yīng) 用程序。
23.根據(jù)權(quán)利要求22所述的服務(wù)程序調(diào)用系統(tǒng),其特征在于: 所述第一管理模塊具體還用于在所述第一管理模塊判斷到所述服務(wù)程序未定義為遠(yuǎn) 程調(diào)用時(shí),根據(jù)所述調(diào)用請(qǐng)求從本地查找與所述服務(wù)程序?qū)?yīng)的第三binder引用并將所 述第三binder引用返回給所述應(yīng)用程序; 所述第一處理模塊具體還用于在所述應(yīng)用程序根據(jù)所述第三binder引用調(diào)用所述服 務(wù)程序時(shí),利用所述第三binder引用將所述服務(wù)程序運(yùn)行獲得的數(shù)據(jù)結(jié)果返回給所述應(yīng) 用程序。
24.根據(jù)權(quán)利要求21-23任一項(xiàng)所述的服務(wù)調(diào)用系統(tǒng),其特征在于,所述第一智能設(shè)備 還包括: 注冊(cè)模塊,用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)應(yīng)用程序的程序名稱(chēng)及對(duì)應(yīng) 的服務(wù)程序的服務(wù)名稱(chēng),并存儲(chǔ)所述程序名稱(chēng)和所述服務(wù)名稱(chēng); 注銷(xiāo)模塊,用于獲取用戶(hù)輸入或系統(tǒng)檢測(cè)產(chǎn)生的至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的 程序名稱(chēng)及對(duì)應(yīng)的服務(wù)程序的服務(wù)名稱(chēng),查找并刪除所述程序名稱(chēng)和所述服務(wù)名稱(chēng),以動(dòng) 態(tài)注消所述至少一個(gè)已注冊(cè)及解耦的應(yīng)用程序的注冊(cè)及解耦; 其中,所述第一管理模塊具體用于判斷所述注冊(cè)模塊中是否已存儲(chǔ)有所述服務(wù)程序的 服務(wù)名稱(chēng),若所述注冊(cè)模塊中已存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為已定義遠(yuǎn)程調(diào)用,若所述 注冊(cè)模塊中未存儲(chǔ)有對(duì)應(yīng)的服務(wù)名稱(chēng)則判斷為未定義遠(yuǎn)程調(diào)用。
25.根據(jù)權(quán)利要求22或23所述的服務(wù)調(diào)用系統(tǒng),其特征在于,所述第一智能設(shè)備和所 述第二智能設(shè)備的其中之一為用戶(hù)終端、另一為云終端,所述第一處理模塊和所述第二處 理模塊為基于binder機(jī)制的binder驅(qū)動(dòng)模塊。
26.根據(jù)權(quán)利要求22或23所述的服務(wù)調(diào)用系統(tǒng),其特征在于,所述第一管理模塊和所 述第二管理模塊均為AMS模塊、或均為SM模塊,所述服務(wù)程序相應(yīng)地為應(yīng)用進(jìn)程服務(wù)或系 統(tǒng)進(jìn)程服務(wù)。
【文檔編號(hào)】H04L29/08GK104142856SQ201310164835
【公開(kāi)日】2014年11月12日 申請(qǐng)日期:2013年5月7日 優(yōu)先權(quán)日:2013年5月7日
【發(fā)明者】劉宇濤, 吳曉昕, 夏虞斌, 陳海波 申請(qǐng)人:華為技術(shù)有限公司