本發(fā)明涉及應(yīng)用定制領(lǐng)域,并且更具體地,涉及一種用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的設(shè)備、方法以及移動(dòng)終端。
背景技術(shù):
目前,隨著移動(dòng)終端的使用日益頻繁,用戶對(duì)于移動(dòng)終端上的各種類型應(yīng)用的更新速度以及定制顯示出了極大地需求。另一方面,各個(gè)提供商也加快了對(duì)于各種類型的應(yīng)用進(jìn)行開(kāi)發(fā)和更新的速度,以滿足用戶對(duì)于應(yīng)用的新穎性、安全性、可用性、便利性以及適配性的需求。然而,即使各個(gè)提供商加快了對(duì)于應(yīng)用的開(kāi)發(fā)和更新速度,但是仍然無(wú)法達(dá)到發(fā)現(xiàn)錯(cuò)誤立即更新版本的程度。另一方面,部分錯(cuò)誤可能只涉及部分類型的移動(dòng)終端,而其它類型的移動(dòng)終端運(yùn)行相同的操作系統(tǒng)以及系統(tǒng)應(yīng)用不會(huì)出現(xiàn)問(wèn)題。
此外,在應(yīng)用僅存在較小缺陷的情況下,立即更新版本的方式也是不合適的。在這種情況下,部分用戶可能會(huì)面臨系統(tǒng)安全漏洞、可用性降低、便利性缺失以及無(wú)法適配最新應(yīng)用的情況。或者,大部分用戶都將面臨應(yīng)用問(wèn)題所帶來(lái)的體驗(yàn)降低的情況。
部分用戶對(duì)于修改提供商所開(kāi)發(fā)的應(yīng)用以滿足定制需求顯示出了很大的興趣。這類用戶通常需要對(duì)已有的應(yīng)用進(jìn)行修改,從而實(shí)現(xiàn)部分功能的修改、替代或刪除。另一方面,這種定制也是源自提供商對(duì)于應(yīng)用開(kāi)發(fā)的不同理解。例如,提供商固執(zhí)地將某些應(yīng)用的執(zhí)行過(guò)程設(shè)置為固定的順序,而沒(méi)有考慮部分用戶希望以不同順序來(lái)執(zhí)行應(yīng)用的需求。
為此,當(dāng)新的應(yīng)用發(fā)布且發(fā)現(xiàn)存在問(wèn)題或無(wú)法滿足用戶需求時(shí),需要對(duì)應(yīng)用進(jìn)行動(dòng)態(tài)定制而無(wú)需等待下一次版本更新。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問(wèn)題,本發(fā)明提供了一種用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的設(shè)備,所述設(shè)備包括:
運(yùn)行單元,用于為一個(gè)或多個(gè)應(yīng)用提供運(yùn)行環(huán)境,并且對(duì)所述一個(gè)或多個(gè)應(yīng)用的運(yùn)行進(jìn)行監(jiān)控,以確定是否存在能夠觸發(fā)適配單元對(duì)所述一個(gè)或多個(gè)應(yīng)用中的目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的事件;
判斷單元,當(dāng)確定存在能夠觸發(fā)適配單元進(jìn)行動(dòng)態(tài)定制的事件時(shí),判斷所述目標(biāo)應(yīng)用是否需要基于所述事件進(jìn)行動(dòng)態(tài)定制,以及如果所述目標(biāo)應(yīng)用需要基于所述事件進(jìn)行動(dòng)態(tài)定制,則將所述事件推送給適配單元;
適配單元,根據(jù)所述事件確定所述目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容;以及
動(dòng)態(tài)定制單元,根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代所述修改內(nèi)容,以使得運(yùn)行單元繼續(xù)運(yùn)行所述目標(biāo)應(yīng)用。
優(yōu)選地,所述一個(gè)或多個(gè)應(yīng)用中的每個(gè)應(yīng)用為:微信應(yīng)用、通訊錄應(yīng)用、瀏覽器應(yīng)用、撥號(hào)應(yīng)用、相機(jī)應(yīng)用、游戲應(yīng)用、學(xué)習(xí)應(yīng)用或工具應(yīng)用。
優(yōu)選地,其中所述目標(biāo)應(yīng)用包括:內(nèi)容存在缺陷的應(yīng)用、用戶希望修改的應(yīng)用和/或運(yùn)行出現(xiàn)故障的應(yīng)用。
優(yōu)選地,所述事件包括:目標(biāo)應(yīng)用中特定功能的啟動(dòng)、目標(biāo)應(yīng)用中特定部分的運(yùn)行和/或目標(biāo)應(yīng)用特定參數(shù)的賦值。
優(yōu)選地,所述修改內(nèi)容為:目標(biāo)應(yīng)用中存在缺陷的內(nèi)容、目標(biāo)應(yīng)用中運(yùn)行故障的內(nèi)容或目標(biāo)應(yīng)用中用戶希望修改的內(nèi)容。
優(yōu)選地,所述根據(jù)所述事件確定所述目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容包括:根據(jù)目標(biāo)應(yīng)用的標(biāo)識(shí)確定與所述目標(biāo)內(nèi)容相對(duì)應(yīng)的一個(gè)或多個(gè)修改內(nèi)容,并且從一個(gè)或多個(gè)修改內(nèi)容選擇與所述事件相對(duì)應(yīng)的修改內(nèi)容。
優(yōu)選地,還包括存儲(chǔ)單元,用于預(yù)先存儲(chǔ)與目標(biāo)應(yīng)用相對(duì)應(yīng)的一個(gè)或多個(gè)動(dòng)態(tài)定制內(nèi)容。
優(yōu)選地,其中對(duì)于需要?jiǎng)討B(tài)定制的目標(biāo)應(yīng)用,其修改內(nèi)容與動(dòng)態(tài)定制內(nèi)容一一對(duì)應(yīng)。
優(yōu)選地,所述根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代所述修改內(nèi)容包括:以補(bǔ)丁或插件的形式將所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容替代所述修改內(nèi)容。
優(yōu)選地,所述運(yùn)行單元繼續(xù)運(yùn)行所述目標(biāo)應(yīng)用包括:所述運(yùn)行單元在所述事件處,運(yùn)行所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容而不是所述修改內(nèi)容。
根據(jù)本發(fā)明的另一方面,提供一種移動(dòng)終端,包括或用于執(zhí)行如上所述的用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的設(shè)備。
根據(jù)本發(fā)明的另一方面,提供一種用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的方法,所述方法包括:
為一個(gè)或多個(gè)應(yīng)用提供運(yùn)行環(huán)境,并且對(duì)所述一個(gè)或多個(gè)應(yīng)用的運(yùn)行進(jìn)行監(jiān)控,以確定是否存在能夠觸發(fā)對(duì)所述一個(gè)或多個(gè)應(yīng)用中的目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的事件;
當(dāng)確定存在能夠觸發(fā)動(dòng)態(tài)定制的事件時(shí),判斷所述目標(biāo)應(yīng)用是否需要基于所述事件進(jìn)行動(dòng)態(tài)定制;
如果所述目標(biāo)應(yīng)用需要基于所述事件進(jìn)行動(dòng)態(tài)定制,則根據(jù)所述事件確定所述目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容;以及
根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代所述修改內(nèi)容,以使得繼續(xù)運(yùn)行所述目標(biāo)應(yīng)用。
優(yōu)選地,所述一個(gè)或多個(gè)應(yīng)用中的每個(gè)應(yīng)用為:微信應(yīng)用、通訊錄應(yīng)用、瀏覽器應(yīng)用、撥號(hào)應(yīng)用、相機(jī)應(yīng)用、游戲應(yīng)用、學(xué)習(xí)應(yīng)用或工具應(yīng)用。
優(yōu)選地,其中所述目標(biāo)應(yīng)用包括:內(nèi)容存在缺陷的應(yīng)用、用戶希望修改的應(yīng)用和/或運(yùn)行出現(xiàn)故障的應(yīng)用。
優(yōu)選地,所述事件包括:目標(biāo)應(yīng)用中特定功能的啟動(dòng)、目標(biāo)應(yīng)用中特定部分的運(yùn)行和/或目標(biāo)應(yīng)用特定參數(shù)的賦值。
優(yōu)選地,所述修改內(nèi)容為:目標(biāo)應(yīng)用中存在缺陷的內(nèi)容、目標(biāo)應(yīng)用中運(yùn)行故障的內(nèi)容或目標(biāo)應(yīng)用中用戶希望修改的內(nèi)容。
優(yōu)選地,所述根據(jù)所述事件確定所述目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容包括:根據(jù)目標(biāo)應(yīng)用的標(biāo)識(shí)確定與所述目標(biāo)內(nèi)容相對(duì)應(yīng)的一個(gè)或多個(gè)修改內(nèi)容,并且從一個(gè)或多個(gè)修改內(nèi)容選擇與所述事件相對(duì)應(yīng)的修改內(nèi)容。
優(yōu)選地,還包括預(yù)先存儲(chǔ)與目標(biāo)應(yīng)用相對(duì)應(yīng)的一個(gè)或多個(gè)動(dòng)態(tài)定制內(nèi)容。
優(yōu)選地,其中對(duì)于需要?jiǎng)討B(tài)定制的目標(biāo)應(yīng)用,其修改內(nèi)容與動(dòng)態(tài)定制內(nèi)容一一對(duì)應(yīng)。
優(yōu)選地,所述根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代所述修改內(nèi)容包括:以補(bǔ)丁或插件的形式將所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容替代所述修改內(nèi)容。
優(yōu)選地,所述繼續(xù)運(yùn)行所述目標(biāo)應(yīng)用包括:在所述事件處,運(yùn)行所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容而不是所述修改內(nèi)容。
附圖說(shuō)明
通過(guò)參考下面的附圖,可以更為完整地理解本發(fā)明的示例性實(shí)施方式:
圖1為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的設(shè)備的硬件結(jié)構(gòu)示意圖;
圖2為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的動(dòng)態(tài)定制設(shè)備的存儲(chǔ)結(jié)構(gòu)示意圖;
圖3為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的設(shè)備的結(jié)構(gòu)示意圖;
圖4為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的實(shí)例示意圖;以及
圖5為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的方法的流程圖。
具體實(shí)施方式
現(xiàn)在參考附圖介紹本發(fā)明的示例性實(shí)施方式,然而,本發(fā)明可以用許多不同的形式來(lái)實(shí)施,并且不局限于此處描述的實(shí)施方式,提供這些實(shí)施方式是為了詳盡地且完全地公開(kāi)本發(fā)明,并且向所屬技術(shù)領(lǐng)域的技術(shù)人員充分傳達(dá)本發(fā)明的范圍。對(duì)于表示在附圖中的示例性實(shí)施方式中的術(shù)語(yǔ)并不是對(duì)本發(fā)明的限定。在附圖中,相同的單元/元件使用相同的附圖標(biāo)記。
除非另有說(shuō)明,此處使用的術(shù)語(yǔ)(包括科技術(shù)語(yǔ))對(duì)所屬技術(shù)領(lǐng)域的技術(shù)人員具有通常的理解含義。另外,可以理解的是,以通常使用的詞典限定的術(shù)語(yǔ),應(yīng)當(dāng)被理解為與其相關(guān)領(lǐng)域的語(yǔ)境具有一致的含義,而不應(yīng)該被理解為理想化的或過(guò)于正式的意義。
圖1為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的設(shè)備100的硬件結(jié)構(gòu)示意圖。設(shè)備100能夠根據(jù)預(yù)先設(shè)置的動(dòng)態(tài)定制內(nèi)容來(lái)對(duì)用戶終端內(nèi)各種類型的應(yīng)用進(jìn)行動(dòng)態(tài)定制。動(dòng)態(tài)定制可以包括對(duì)應(yīng)用漏洞和問(wèn)題的修改,并且還可以包括對(duì)應(yīng)用進(jìn)行個(gè)性化修改。動(dòng)態(tài)定制的一種應(yīng)用是修復(fù)應(yīng)用漏洞的代碼、插件或組件。動(dòng)態(tài)定制是一種快速且低成本修復(fù)應(yīng)用版本缺陷或?qū)?yīng)用進(jìn)行個(gè)性化修改的手段。應(yīng)用的動(dòng)態(tài)定制部分不會(huì)作為常規(guī)補(bǔ)丁隨系統(tǒng)自動(dòng)更新,一般情況下由云端服務(wù)器通過(guò)網(wǎng)絡(luò)或者其他途徑來(lái)通知用戶有關(guān)動(dòng)態(tài)定制部分的消息。用戶可以在應(yīng)用供應(yīng)商的網(wǎng)站上免費(fèi)下載動(dòng)態(tài)定制部分,或應(yīng)用供應(yīng)商通過(guò)云端服務(wù)器將動(dòng)態(tài)定制部分推送給用戶。和升級(jí)應(yīng)用版本相比,動(dòng)態(tài)定制的主要優(yōu)勢(shì)是不會(huì)使設(shè)備當(dāng)前正在運(yùn)行的業(yè)務(wù)中斷,即在不重啟設(shè)備的情況下,可以對(duì)設(shè)備當(dāng)前應(yīng)用版本的缺陷進(jìn)行修復(fù)或?qū)?yīng)用進(jìn)行個(gè)性化修改。
此外,由于應(yīng)用版本的升級(jí)通常不會(huì)很頻繁,即兩個(gè)相鄰版本之間通常需要間隔一個(gè)月以上,在這種情況下,用戶無(wú)法通過(guò)軟件版本更新來(lái)及時(shí)解決目前出現(xiàn)的問(wèn)題。為此,動(dòng)態(tài)定制能夠解決應(yīng)用版本更新后較短時(shí)間內(nèi)(即,應(yīng)用的下一更新版本發(fā)布之前)出現(xiàn)的故障。此外,對(duì)于應(yīng)用提供商不再更新的應(yīng)用(例如,windows XP系統(tǒng)),在某些情況下,用戶需要對(duì)應(yīng)用進(jìn)行更新或修改。動(dòng)態(tài)定制還可以實(shí)現(xiàn)對(duì)應(yīng)用提供商不再更新的應(yīng)用進(jìn)行更新、修改或定制,從而滿足用戶對(duì)于應(yīng)用更新的需要。此外,在用戶需要對(duì)應(yīng)用進(jìn)行定制的情況中,動(dòng)態(tài)定制通過(guò)修復(fù)的方式來(lái)實(shí)現(xiàn)對(duì)應(yīng)用的修改從而滿足用戶的定制需求。
如圖1所示,設(shè)備100包括:處理器101,通信總線102,通信接口103、I/O接口104和存儲(chǔ)器105。優(yōu)選地,處理器101可以是一個(gè)通用中央處理器(CPU),微處理器,特定應(yīng)用集成電路(application-specific integrated circuit,ASIC),或一個(gè)或多個(gè)用于控制本發(fā)明方案程序執(zhí)行的集成電路。
優(yōu)選地,通信總線102可包括一通路,在上述組件之間傳送信息。通信接口104,使用任何收發(fā)器一類的裝置,用于與其他設(shè)備或通信網(wǎng)絡(luò)通信,如以太網(wǎng),無(wú)線接入網(wǎng)(RAN),無(wú)線局域網(wǎng)(Wireless LocalArea Networks,WLAN)等。
優(yōu)選地,存儲(chǔ)器105可以是只讀存儲(chǔ)器(read-only memory,ROM)或可存儲(chǔ)靜態(tài)信息和指令的其他類型的靜態(tài)存儲(chǔ)設(shè)備,隨機(jī)存取存儲(chǔ)器(random access memory,RAM)或者可存儲(chǔ)信息和指令的其他類型的動(dòng)態(tài)存儲(chǔ)設(shè)備,也可以是電可擦可編程只讀存儲(chǔ)器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只讀光盤(Compact Disc Read-Only Memory,CD-ROM)或其他光盤存儲(chǔ)、光碟存儲(chǔ)(包括壓縮光碟、激光碟、光碟、數(shù)字通用光碟、藍(lán)光光碟等)、磁盤存儲(chǔ)介質(zhì)或者其他磁存儲(chǔ)設(shè)備、或者能夠用于攜帶或存儲(chǔ)具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由計(jì)算機(jī)存取的任何其他介質(zhì),但不限于此。存儲(chǔ)器可以是獨(dú)立存在,通過(guò)總線與處理器相連接。存儲(chǔ)器也可以和處理器集成在一起。
其中,存儲(chǔ)器105用于存儲(chǔ)執(zhí)行本發(fā)明方案的應(yīng)用程序代碼,并由處理器101來(lái)控制執(zhí)行。所述處理器101用于執(zhí)行存儲(chǔ)器105中存儲(chǔ)的應(yīng)用的代碼。在具體實(shí)施方式中,處理器101可以包括一個(gè)或多個(gè)CPU,每個(gè)CPU可以是一個(gè)單核(single-core)處理器,也可以是一個(gè)多核(multi-Core)處理器。這里的處理器可以指一個(gè)或多個(gè)設(shè)備、電路、和/或用于處理數(shù)據(jù)(例如計(jì)算機(jī)程序指令)的處理核。
在具體實(shí)現(xiàn)中,作為一種實(shí)施方式,設(shè)備100還可以包括輸入/輸出(I/O)接口104。例如,輸出設(shè)備可以是液晶顯示器(liquid crystal display,LCD),發(fā)光二級(jí)管(light emitting diode,LED)顯示設(shè)備,陰極射線管(cathode ray tube,CRT)顯示設(shè)備,或投影儀(projector)等。輸入設(shè)備可以是鼠標(biāo)、鍵盤、觸摸屏設(shè)備或傳感設(shè)備等。優(yōu)選地,設(shè)備100可以是一個(gè)通用計(jì)算機(jī)設(shè)備或者是一個(gè)專用計(jì)算機(jī)設(shè)備。在具體實(shí)現(xiàn)中,設(shè)備100可以是臺(tái)式機(jī)、便攜式電腦、網(wǎng)絡(luò)服務(wù)器、掌上電腦(Personal Digital Assistant,PDA)、移動(dòng)手機(jī)、平板電腦、無(wú)線終端設(shè)備、通信設(shè)備、嵌入式設(shè)備等設(shè)備。本發(fā)明實(shí)施方式不限定設(shè)備的類型。
優(yōu)選地,設(shè)備100用于為一個(gè)或多個(gè)應(yīng)用提供運(yùn)行環(huán)境,并且對(duì)所述一個(gè)或多個(gè)應(yīng)用的運(yùn)行進(jìn)行監(jiān)控,以確定是否存在能夠觸發(fā)適配單元對(duì)所述一個(gè)或多個(gè)應(yīng)用中的目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的事件。通常,設(shè)備100上的應(yīng)用可以用于訂購(gòu)商品、預(yù)定火車票、預(yù)定飛機(jī)票、預(yù)定餐館或建立約車業(yè)務(wù)等。為此,設(shè)備100上可以運(yùn)行購(gòu)物應(yīng)用、訂票應(yīng)用、訂餐應(yīng)用和約車應(yīng)用。此外,設(shè)備100上運(yùn)行的應(yīng)用還可以是微信應(yīng)用、通訊錄應(yīng)用、瀏覽器應(yīng)用、撥號(hào)應(yīng)用、相機(jī)應(yīng)用、游戲應(yīng)用、學(xué)習(xí)應(yīng)用或工具應(yīng)用等。
優(yōu)選地,為了能夠?qū)?yīng)用進(jìn)行動(dòng)態(tài)定制,設(shè)備100要確定何時(shí)進(jìn)行介入以及對(duì)應(yīng)用中的哪些部分進(jìn)行定制。為此,設(shè)備100需要對(duì)其上運(yùn)行的一個(gè)或多個(gè)應(yīng)用進(jìn)行實(shí)時(shí)監(jiān)控,以確定進(jìn)行動(dòng)態(tài)定制的時(shí)機(jī)。通常,在運(yùn)行中,一個(gè)或多個(gè)應(yīng)用中的特定應(yīng)用會(huì)出現(xiàn)進(jìn)行動(dòng)態(tài)定制的時(shí)機(jī)。這種時(shí)機(jī)的出現(xiàn)通常是以特定事件的觸發(fā)為基礎(chǔ)。例如,設(shè)備100確定一個(gè)或多個(gè)應(yīng)用中的購(gòu)物應(yīng)用(目標(biāo)應(yīng)用)在運(yùn)行時(shí)觸發(fā)了進(jìn)行動(dòng)態(tài)定制的事件,并且這種動(dòng)態(tài)定制是針對(duì)購(gòu)物應(yīng)用的定制。這種定制例如是對(duì)特定種類物品的比價(jià)功能。優(yōu)選地,目標(biāo)應(yīng)用可以是內(nèi)容存在缺陷的應(yīng)用、用戶希望修改的應(yīng)用和/或運(yùn)行出現(xiàn)故障的應(yīng)用。通常,當(dāng)應(yīng)用的內(nèi)容存在缺陷時(shí),用戶需要對(duì)缺陷進(jìn)行修復(fù)。當(dāng)一些用戶希望對(duì)應(yīng)用進(jìn)行定制以增加或修改特定功能時(shí),也需要對(duì)應(yīng)用進(jìn)行修改?;蛘撸鼮閲?yán)重的情況是,應(yīng)用的運(yùn)行已經(jīng)出現(xiàn)故障并且重新啟動(dòng)也無(wú)法避免故障時(shí),需要對(duì)應(yīng)用進(jìn)行修復(fù)。
優(yōu)選地,觸發(fā)對(duì)目標(biāo)應(yīng)用進(jìn)行定制的事件可以包括:目標(biāo)應(yīng)用中特定功能的啟動(dòng)、目標(biāo)應(yīng)用中特定部分的運(yùn)行和/或目標(biāo)應(yīng)用特定參數(shù)的賦值。例如,當(dāng)目標(biāo)應(yīng)用中特定功能存在缺陷或會(huì)觸發(fā)運(yùn)行故障時(shí),它的啟動(dòng)會(huì)觸發(fā)應(yīng)用故障。為此,將目標(biāo)應(yīng)用中特定功能的啟動(dòng)作為觸發(fā)對(duì)目標(biāo)應(yīng)用進(jìn)行定制的事件。即,在目標(biāo)應(yīng)用中特定功能將啟動(dòng)時(shí),對(duì)其進(jìn)行定制,例如利用正確/無(wú)缺陷的部分來(lái)進(jìn)行替代?;蛘撸?dāng)用戶希望目標(biāo)應(yīng)用中特定部分進(jìn)行修改以滿足個(gè)性化需求時(shí),見(jiàn)目標(biāo)應(yīng)用中特定部分的運(yùn)行作為觸發(fā)對(duì)目標(biāo)應(yīng)用進(jìn)行定制的事件。即,在目標(biāo)應(yīng)用中特定功能運(yùn)行時(shí),對(duì)其中的一個(gè)或多個(gè)部分(還未開(kāi)始運(yùn)行的部分)進(jìn)行個(gè)性化修改。又或者,當(dāng)目標(biāo)應(yīng)用特定參數(shù)值被修改為預(yù)定值時(shí),會(huì)觸發(fā)對(duì)目標(biāo)應(yīng)用的定制。例如,當(dāng)判斷語(yǔ)句中的入口參數(shù)為1(例如,是),不對(duì)目標(biāo)應(yīng)用進(jìn)行定制,而當(dāng)判斷語(yǔ)句中的入口參數(shù)為0(例如,否),則對(duì)目標(biāo)應(yīng)用進(jìn)行定制。
優(yōu)選地,當(dāng)確定存在能夠觸發(fā)動(dòng)態(tài)定制的事件時(shí),設(shè)備100判斷所述目標(biāo)應(yīng)用是否需要基于所述事件進(jìn)行動(dòng)態(tài)定制,以及如果目標(biāo)應(yīng)用需要基于所述事件進(jìn)行動(dòng)態(tài)定制,則將所述事件推送給適配單元以進(jìn)行定制。通常,在確定存在能夠觸發(fā)動(dòng)態(tài)定制的事件時(shí),設(shè)備100可以根據(jù)實(shí)際情況或預(yù)先設(shè)置來(lái)確定是否需要基于所述事件進(jìn)行動(dòng)態(tài)定制。這是因?yàn)?,在某些情況下,即使已經(jīng)滿足了觸發(fā)動(dòng)態(tài)定制的事件,但是并不觸發(fā)動(dòng)態(tài)定制。而僅在目標(biāo)應(yīng)用需要基于事件進(jìn)行動(dòng)態(tài)定制,才進(jìn)行動(dòng)態(tài)定制。
優(yōu)選地,設(shè)備100根據(jù)事件確定目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容。優(yōu)選地,修改內(nèi)容可以時(shí)目標(biāo)應(yīng)用中存在缺陷的內(nèi)容、目標(biāo)應(yīng)用中運(yùn)行故障的內(nèi)容或目標(biāo)應(yīng)用中用戶希望修改的內(nèi)容。其中根據(jù)所述事件確定所述目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容包括,根據(jù)目標(biāo)應(yīng)用的標(biāo)識(shí)確定與目標(biāo)內(nèi)容相對(duì)應(yīng)的一個(gè)或多個(gè)修改內(nèi)容,并且從一個(gè)或多個(gè)修改內(nèi)容選擇與事件相對(duì)應(yīng)的修改內(nèi)容。優(yōu)選地,目標(biāo)應(yīng)用可能存在一個(gè)或多個(gè)修改內(nèi)容并且這些修改修改內(nèi)容與目標(biāo)應(yīng)用相關(guān)聯(lián)。進(jìn)一步,根據(jù)觸發(fā)動(dòng)態(tài)定制的事件的不同,可能會(huì)觸發(fā)針對(duì)一個(gè)或多個(gè)修改內(nèi)容中不同修改內(nèi)容的定制。因此,設(shè)備100基于事件從一個(gè)或多個(gè)修改內(nèi)容選擇相對(duì)應(yīng)的修改內(nèi)容,并且利用與修改內(nèi)容想對(duì)應(yīng)的動(dòng)態(tài)定制內(nèi)容來(lái)進(jìn)行定制。設(shè)備100預(yù)先存儲(chǔ)與目標(biāo)應(yīng)用相對(duì)應(yīng)的一個(gè)或多個(gè)動(dòng)態(tài)定制內(nèi)容。優(yōu)選地,對(duì)于需要?jiǎng)討B(tài)定制的目標(biāo)應(yīng)用,其修改內(nèi)容與動(dòng)態(tài)定制內(nèi)容一一對(duì)應(yīng)。
優(yōu)選地,設(shè)備100根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代修改內(nèi)容,以使得運(yùn)行單元繼續(xù)運(yùn)行目標(biāo)應(yīng)用。優(yōu)選地,根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代所述修改內(nèi)容包括:以補(bǔ)丁或插件的形式將所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容替代所述修改內(nèi)容。其中運(yùn)行單元繼續(xù)運(yùn)行所述目標(biāo)應(yīng)用包括,所述運(yùn)行單元在所述事件處,運(yùn)行所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容而不是所述修改內(nèi)容。
根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,可以使用黑魔法(BM,Black Magic)為Android應(yīng)用提供動(dòng)態(tài)擴(kuò)展和修復(fù)能力的技術(shù),如:云修復(fù)、云廣告、模塊解耦、黑科技等。BM由BMAndroidRuntime(運(yùn)行環(huán)境)、BMActivityThread(活動(dòng)線程)、BlackMagic.apk(安裝包)和BMagic文件四部分組成。其中BMAndroidRuntime負(fù)責(zé)提供核心能力,BMActivityThread負(fù)責(zé)構(gòu)建運(yùn)行環(huán)境,BlackMagic.apk負(fù)責(zé)提供核心接口(BMCore)以及身份認(rèn)證等管理機(jī)制,而最終的功能特性由BMagic文件提供。
優(yōu)選地,BMAndroidRuntime是專門為BM提供改造Java類和方法的能力(如:鉤子Hook)的定制安卓運(yùn)行環(huán)境ART。BMActivityThread用于提供一套判斷和啟動(dòng)BM的機(jī)制,從而將BlackMagic對(duì)第三方應(yīng)用的性能影響降低到最小,目前所測(cè)量的實(shí)際延遲僅為1ms。目前采用通過(guò)路徑快速判斷目標(biāo)應(yīng)用是否需要BM支持的方式來(lái)決定是否對(duì)目標(biāo)應(yīng)用加載BM文件以進(jìn)行能力擴(kuò)展。
BlackMagic.apk是一個(gè)非常普通的App,但是必須使用提供商簽名,否則無(wú)法工作。BlackMagic.apk內(nèi)部攜帶基礎(chǔ)的BM文件所需要的接口。這種接口是一個(gè)API最小集合,即BMCore,用于確保BM對(duì)目標(biāo)應(yīng)用的內(nèi)存占用量最低。同時(shí)也確保在加載BM文件的時(shí)候?qū)δ繕?biāo)應(yīng)用性能影響最小。
BMCore是一個(gè)Jar包,用于開(kāi)發(fā)人員開(kāi)發(fā)BM文件時(shí)使用。Jar包中提供常用的基本應(yīng)用程序接口API,使得BM文件能夠動(dòng)態(tài)修改Java類和方法以及Hook某些方法。BM文件會(huì)由BlackMagic.apk內(nèi)部集成,便于版本控制和減少BM文件大小?;贐MCore可以開(kāi)發(fā)更多的通用基礎(chǔ)庫(kù)以及擴(kuò)展庫(kù)。其中擴(kuò)展庫(kù)不是具體功能,而是為實(shí)現(xiàn)某些具體功能提供一些必要能力,可以各種模塊所共享。
BM文件是實(shí)現(xiàn)業(yè)務(wù)功能的主體,并且每一個(gè)BM文件都是由多個(gè)BMagic和BMagicKnife組成。其中,一個(gè)BMagic可以包括多個(gè)BMagicKnif。BMagic是對(duì)要進(jìn)行Hook的類的抽象,并且BMagicKnife是對(duì)要進(jìn)行Hook的方法的一個(gè)抽象,因此它們之間是映射關(guān)系。某個(gè)具體的功能是由多個(gè)BMagic通過(guò)BMagicKnife獲取到信息后以共享的方式實(shí)現(xiàn)的。
優(yōu)選地,根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,如上所述的設(shè)備100可以被包括在移動(dòng)終端中,或由移動(dòng)終端來(lái)執(zhí)行。
圖2為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的動(dòng)態(tài)定制設(shè)備的存儲(chǔ)結(jié)構(gòu)200的示意圖。如圖2所示,動(dòng)態(tài)定制設(shè)備中會(huì)存儲(chǔ)各種類型的應(yīng)用并且利用應(yīng)用控制器進(jìn)行管理和控制。此外,在應(yīng)用執(zhí)行過(guò)程中所生成的業(yè)務(wù)數(shù)據(jù)和用戶數(shù)據(jù)也一并存儲(chǔ)在動(dòng)態(tài)定制設(shè)備中。此外,用于對(duì)修改內(nèi)容進(jìn)行替代的動(dòng)態(tài)定制內(nèi)容也會(huì)被預(yù)先存儲(chǔ)在動(dòng)態(tài)定制設(shè)備中。
圖3為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的設(shè)備300的結(jié)構(gòu)示意圖。設(shè)備300能夠根據(jù)預(yù)先設(shè)置的動(dòng)態(tài)定制內(nèi)容來(lái)對(duì)用戶終端內(nèi)各種類型的應(yīng)用進(jìn)行動(dòng)態(tài)定制。動(dòng)態(tài)定制可以包括對(duì)應(yīng)用漏洞和問(wèn)題的修改,并且還可以包括對(duì)應(yīng)用進(jìn)行個(gè)性化修改。動(dòng)態(tài)定制的一種應(yīng)用是修復(fù)應(yīng)用漏洞的代碼、插件或組件。動(dòng)態(tài)定制是一種快速且低成本修復(fù)應(yīng)用版本缺陷或?qū)?yīng)用進(jìn)行個(gè)性化修改的手段。應(yīng)用的動(dòng)態(tài)定制部分不會(huì)作為常規(guī)補(bǔ)丁隨系統(tǒng)自動(dòng)更新,一般情況下由云端服務(wù)器通過(guò)網(wǎng)絡(luò)或者其他途徑來(lái)通知用戶有關(guān)動(dòng)態(tài)定制部分的消息。用戶可以在應(yīng)用供應(yīng)商的網(wǎng)站上免費(fèi)下載動(dòng)態(tài)定制部分,或應(yīng)用供應(yīng)商通過(guò)云端服務(wù)器將動(dòng)態(tài)定制部分推送給用戶。和升級(jí)應(yīng)用版本相比,動(dòng)態(tài)定制的主要優(yōu)勢(shì)是不會(huì)使設(shè)備當(dāng)前正在運(yùn)行的業(yè)務(wù)中斷,即在不重啟的情況下,可以對(duì)當(dāng)前應(yīng)用版本的缺陷進(jìn)行修復(fù)或?qū)?yīng)用進(jìn)行個(gè)性化修改。
如圖3所示,設(shè)備300包括:運(yùn)行單元301、判斷單元302、適配單元303、動(dòng)態(tài)定制單元304以及存儲(chǔ)單元305。優(yōu)選地,運(yùn)行單元301用于為一個(gè)或多個(gè)應(yīng)用提供運(yùn)行環(huán)境,并且對(duì)所述一個(gè)或多個(gè)應(yīng)用的運(yùn)行進(jìn)行監(jiān)控,以確定是否存在能夠觸發(fā)適配單元對(duì)所述一個(gè)或多個(gè)應(yīng)用中的目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的事件。通常,各種類型的應(yīng)用可以用于訂購(gòu)商品、預(yù)定火車票、預(yù)定飛機(jī)票、預(yù)定餐館或建立約車業(yè)務(wù)等。為此,用戶可以運(yùn)行購(gòu)物應(yīng)用、訂票應(yīng)用、訂餐應(yīng)用和約車應(yīng)用。此外,用戶所運(yùn)行的應(yīng)用還可以是微信應(yīng)用、通訊錄應(yīng)用、瀏覽器應(yīng)用、撥號(hào)應(yīng)用、相機(jī)應(yīng)用、游戲應(yīng)用、學(xué)習(xí)應(yīng)用或工具應(yīng)用等。
優(yōu)選地,為了能夠?qū)?yīng)用進(jìn)行動(dòng)態(tài)定制,設(shè)備200要確定何時(shí)進(jìn)行介入以及對(duì)應(yīng)用中的哪些部分進(jìn)行定制。為此,運(yùn)行單元301需要對(duì)其上運(yùn)行的一個(gè)或多個(gè)應(yīng)用進(jìn)行實(shí)時(shí)監(jiān)控,以確定進(jìn)行動(dòng)態(tài)定制的時(shí)機(jī)。通常,在運(yùn)行中,一個(gè)或多個(gè)應(yīng)用中的特定應(yīng)用會(huì)出現(xiàn)進(jìn)行動(dòng)態(tài)定制的時(shí)機(jī)。這種時(shí)機(jī)的出現(xiàn)通常是以特定事件的觸發(fā)為基礎(chǔ)。例如,運(yùn)行單元301確定一個(gè)或多個(gè)應(yīng)用中的購(gòu)物應(yīng)用(目標(biāo)應(yīng)用)在運(yùn)行時(shí)觸發(fā)了進(jìn)行動(dòng)態(tài)定制的事件,并且這種動(dòng)態(tài)定制是針對(duì)購(gòu)物應(yīng)用的定制。這種定制例如是對(duì)特定種類物品的比價(jià)功能。優(yōu)選地,目標(biāo)應(yīng)用可以是內(nèi)容存在缺陷的應(yīng)用、用戶希望修改的應(yīng)用和/或運(yùn)行出現(xiàn)故障的應(yīng)用。通常,當(dāng)應(yīng)用的內(nèi)容存在缺陷時(shí),用戶需要對(duì)缺陷進(jìn)行修復(fù)。當(dāng)一些用戶希望對(duì)應(yīng)用進(jìn)行定制以增加或修改特定功能時(shí),也需要對(duì)應(yīng)用進(jìn)行修改。或者,更為嚴(yán)重的情況是,應(yīng)用的運(yùn)行已經(jīng)出現(xiàn)故障并且重新啟動(dòng)也無(wú)法避免故障時(shí),需要對(duì)應(yīng)用進(jìn)行修復(fù)。
優(yōu)選地,觸發(fā)對(duì)目標(biāo)應(yīng)用進(jìn)行定制的事件可以包括:目標(biāo)應(yīng)用中特定功能的啟動(dòng)、目標(biāo)應(yīng)用中特定部分的運(yùn)行和/或目標(biāo)應(yīng)用特定參數(shù)的賦值。例如,當(dāng)目標(biāo)應(yīng)用中特定功能存在缺陷或會(huì)觸發(fā)運(yùn)行故障時(shí),它的啟動(dòng)會(huì)觸發(fā)應(yīng)用故障。為此,將目標(biāo)應(yīng)用中特定功能的啟動(dòng)作為觸發(fā)對(duì)目標(biāo)應(yīng)用進(jìn)行定制的事件。即,在目標(biāo)應(yīng)用中特定功能將啟動(dòng)時(shí),對(duì)其進(jìn)行定制,例如利用正確/無(wú)缺陷的部分來(lái)進(jìn)行替代?;蛘撸?dāng)用戶希望目標(biāo)應(yīng)用中特定部分進(jìn)行修改以滿足個(gè)性化需求時(shí),見(jiàn)目標(biāo)應(yīng)用中特定部分的運(yùn)行作為觸發(fā)對(duì)目標(biāo)應(yīng)用進(jìn)行定制的事件。即,在目標(biāo)應(yīng)用中特定功能運(yùn)行時(shí),對(duì)其中的一個(gè)或多個(gè)部分(還未開(kāi)始運(yùn)行的部分)進(jìn)行個(gè)性化修改。又或者,當(dāng)目標(biāo)應(yīng)用特定參數(shù)值被修改為預(yù)定值時(shí),會(huì)觸發(fā)對(duì)目標(biāo)應(yīng)用的定制。例如,當(dāng)判斷語(yǔ)句中的入口參數(shù)為1(例如,是),不對(duì)目標(biāo)應(yīng)用進(jìn)行定制,而當(dāng)判斷語(yǔ)句中的入口參數(shù)為0(例如,否),則對(duì)目標(biāo)應(yīng)用進(jìn)行定制。
優(yōu)選地,當(dāng)確定存在能夠觸發(fā)動(dòng)態(tài)定制的事件時(shí),判斷單元302判斷所述目標(biāo)應(yīng)用是否需要基于所述事件進(jìn)行動(dòng)態(tài)定制,以及如果目標(biāo)應(yīng)用需要基于所述事件進(jìn)行動(dòng)態(tài)定制,則將所述事件推送給適配單元以進(jìn)行定制。通常,在確定存在能夠觸發(fā)動(dòng)態(tài)定制的事件時(shí),判斷單元302可以根據(jù)實(shí)際情況或預(yù)先設(shè)置來(lái)確定是否需要基于所述事件進(jìn)行動(dòng)態(tài)定制。這是因?yàn)?,在某些情況下,即使已經(jīng)滿足了觸發(fā)動(dòng)態(tài)定制的事件,但是并不觸發(fā)動(dòng)態(tài)定制。而僅在目標(biāo)應(yīng)用需要基于事件進(jìn)行動(dòng)態(tài)定制,才進(jìn)行動(dòng)態(tài)定制。
優(yōu)選地,適配單元303根據(jù)事件確定目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容。優(yōu)選地,修改內(nèi)容可以時(shí)目標(biāo)應(yīng)用中存在缺陷的內(nèi)容、目標(biāo)應(yīng)用中運(yùn)行故障的內(nèi)容或目標(biāo)應(yīng)用中用戶希望修改的內(nèi)容。其中根據(jù)所述事件確定所述目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容包括,根據(jù)目標(biāo)應(yīng)用的標(biāo)識(shí)確定與目標(biāo)內(nèi)容相對(duì)應(yīng)的一個(gè)或多個(gè)修改內(nèi)容,并且從一個(gè)或多個(gè)修改內(nèi)容選擇與事件相對(duì)應(yīng)的修改內(nèi)容。優(yōu)選地,目標(biāo)應(yīng)用可能存在一個(gè)或多個(gè)修改內(nèi)容并且這些修改修改內(nèi)容與目標(biāo)應(yīng)用相關(guān)聯(lián)。進(jìn)一步,根據(jù)觸發(fā)動(dòng)態(tài)定制的事件的不同,可能會(huì)觸發(fā)針對(duì)一個(gè)或多個(gè)修改內(nèi)容中不同修改內(nèi)容的定制。因此,適配單元303基于事件從一個(gè)或多個(gè)修改內(nèi)容選擇相對(duì)應(yīng)的修改內(nèi)容,并且利用與修改內(nèi)容想對(duì)應(yīng)的動(dòng)態(tài)定制內(nèi)容來(lái)進(jìn)行定制。設(shè)備300預(yù)先存儲(chǔ)與目標(biāo)應(yīng)用相對(duì)應(yīng)的一個(gè)或多個(gè)動(dòng)態(tài)定制內(nèi)容。優(yōu)選地,對(duì)于需要?jiǎng)討B(tài)定制的目標(biāo)應(yīng)用,其修改內(nèi)容與動(dòng)態(tài)定制內(nèi)容一一對(duì)應(yīng)。
優(yōu)選地,動(dòng)態(tài)定制單元304根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代修改內(nèi)容,以使得運(yùn)行單元繼續(xù)運(yùn)行目標(biāo)應(yīng)用。優(yōu)選地,根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代所述修改內(nèi)容包括:以補(bǔ)丁或插件的形式將所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容替代所述修改內(nèi)容。其中運(yùn)行單元繼續(xù)運(yùn)行所述目標(biāo)應(yīng)用包括,所述運(yùn)行單元在所述事件處,運(yùn)行所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容而不是所述修改內(nèi)容。
優(yōu)選地,存儲(chǔ)單元305存儲(chǔ)各種類型的應(yīng)用。此外,在應(yīng)用執(zhí)行過(guò)程中所生成的業(yè)務(wù)數(shù)據(jù)和用戶數(shù)據(jù)也一并存儲(chǔ)在存儲(chǔ)單元305中。此外,用于對(duì)修改內(nèi)容進(jìn)行替代的動(dòng)態(tài)定制內(nèi)容也會(huì)被預(yù)先存儲(chǔ)在存儲(chǔ)單元305中。
圖4為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的實(shí)例示意圖。通常,當(dāng)監(jiān)控到目標(biāo)應(yīng)用中特定功能的啟動(dòng)、目標(biāo)應(yīng)用中特定部分的運(yùn)行和/或目標(biāo)應(yīng)用特定參數(shù)的賦值時(shí),判斷目標(biāo)應(yīng)用是否需要基于事件進(jìn)行動(dòng)態(tài)定制。如圖4所示,當(dāng)目標(biāo)應(yīng)用的部分A運(yùn)行結(jié)束后,能夠觸發(fā)動(dòng)態(tài)定制的事件出現(xiàn)。此時(shí),本發(fā)明判斷目標(biāo)應(yīng)用是否需要基于事件進(jìn)行動(dòng)態(tài)定制。如果需要基于事件進(jìn)行動(dòng)態(tài)定制,則將事件推送給適配單元。隨后,適配單元根據(jù)事件確定目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容,例如如圖4所示的動(dòng)態(tài)定制內(nèi)容。隨后,運(yùn)行單元運(yùn)行動(dòng)態(tài)定制內(nèi)容而不運(yùn)行修改內(nèi)容(部分B),以使得運(yùn)行單元能夠繼續(xù)運(yùn)行目標(biāo)應(yīng)用而不會(huì)出現(xiàn)故障或完成個(gè)性化定制。另一方面,如果不需要基于事件進(jìn)行動(dòng)態(tài)定制,則繼續(xù)執(zhí)行部分B。最后,在執(zhí)行部分B或動(dòng)態(tài)定制內(nèi)容后,運(yùn)行單元繼續(xù)執(zhí)行部分C。
圖5為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的用于對(duì)目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的方法500的流程圖。方法500能夠根據(jù)預(yù)先設(shè)置的動(dòng)態(tài)定制內(nèi)容來(lái)對(duì)用戶終端內(nèi)各種類型的應(yīng)用進(jìn)行動(dòng)態(tài)定制。動(dòng)態(tài)定制可以包括對(duì)應(yīng)用漏洞和問(wèn)題的修改,并且還可以包括對(duì)應(yīng)用進(jìn)行個(gè)性化修改。動(dòng)態(tài)定制的一種應(yīng)用是修復(fù)應(yīng)用漏洞的代碼、插件或組件。動(dòng)態(tài)定制是一種快速且低成本修復(fù)應(yīng)用版本缺陷或?qū)?yīng)用進(jìn)行個(gè)性化修改的手段。應(yīng)用的動(dòng)態(tài)定制部分不會(huì)作為常規(guī)補(bǔ)丁隨系統(tǒng)自動(dòng)更新,一般情況下由云端服務(wù)器通過(guò)網(wǎng)絡(luò)或者其他途徑來(lái)通知用戶有關(guān)動(dòng)態(tài)定制部分的消息。用戶可以在應(yīng)用供應(yīng)商的網(wǎng)站上免費(fèi)下載動(dòng)態(tài)定制部分,或應(yīng)用供應(yīng)商通過(guò)云端服務(wù)器將動(dòng)態(tài)定制部分推送給用戶。和升級(jí)應(yīng)用版本相比,動(dòng)態(tài)定制的主要優(yōu)勢(shì)是不會(huì)使設(shè)備當(dāng)前正在運(yùn)行的業(yè)務(wù)中斷,即在不重啟的情況下,可以對(duì)當(dāng)前應(yīng)用版本的缺陷進(jìn)行修復(fù)或?qū)?yīng)用進(jìn)行個(gè)性化修改。
如圖5所示,方法500從步驟501處開(kāi)始。優(yōu)選地,在步驟501,為一個(gè)或多個(gè)應(yīng)用提供運(yùn)行環(huán)境,并且對(duì)所述一個(gè)或多個(gè)應(yīng)用的運(yùn)行進(jìn)行監(jiān)控,以確定是否存在能夠觸發(fā)適配單元對(duì)所述一個(gè)或多個(gè)應(yīng)用中的目標(biāo)應(yīng)用進(jìn)行動(dòng)態(tài)定制的事件。通常,各種類型的應(yīng)用可以用于訂購(gòu)商品、預(yù)定火車票、預(yù)定飛機(jī)票、預(yù)定餐館或建立約車業(yè)務(wù)等。為此,用戶可以運(yùn)行購(gòu)物應(yīng)用、訂票應(yīng)用、訂餐應(yīng)用和約車應(yīng)用。此外,用戶所運(yùn)行的應(yīng)用還可以是微信應(yīng)用、通訊錄應(yīng)用、瀏覽器應(yīng)用、撥號(hào)應(yīng)用、相機(jī)應(yīng)用、游戲應(yīng)用、學(xué)習(xí)應(yīng)用或工具應(yīng)用等。
優(yōu)選地,為了能夠?qū)?yīng)用進(jìn)行動(dòng)態(tài)定制,方法500要確定何時(shí)進(jìn)行介入以及對(duì)應(yīng)用中的哪些部分進(jìn)行定制。為此,方法500需要對(duì)其上運(yùn)行的一個(gè)或多個(gè)應(yīng)用進(jìn)行實(shí)時(shí)監(jiān)控,以確定進(jìn)行動(dòng)態(tài)定制的時(shí)機(jī)。通常,在運(yùn)行中,一個(gè)或多個(gè)應(yīng)用中的特定應(yīng)用會(huì)出現(xiàn)進(jìn)行動(dòng)態(tài)定制的時(shí)機(jī)。這種時(shí)機(jī)的出現(xiàn)通常是以特定事件的觸發(fā)為基礎(chǔ)。例如,方法500確定一個(gè)或多個(gè)應(yīng)用中的購(gòu)物應(yīng)用(目標(biāo)應(yīng)用)在運(yùn)行時(shí)觸發(fā)了進(jìn)行動(dòng)態(tài)定制的事件,并且這種動(dòng)態(tài)定制是針對(duì)購(gòu)物應(yīng)用的定制。這種定制例如是對(duì)特定種類物品的比價(jià)功能。優(yōu)選地,目標(biāo)應(yīng)用可以是內(nèi)容存在缺陷的應(yīng)用、用戶希望修改的應(yīng)用和/或運(yùn)行出現(xiàn)故障的應(yīng)用。通常,當(dāng)應(yīng)用的內(nèi)容存在缺陷時(shí),用戶需要對(duì)缺陷進(jìn)行修復(fù)。當(dāng)一些用戶希望對(duì)應(yīng)用進(jìn)行定制以增加或修改特定功能時(shí),也需要對(duì)應(yīng)用進(jìn)行修改?;蛘?,更為嚴(yán)重的情況是,應(yīng)用的運(yùn)行已經(jīng)出現(xiàn)故障并且重新啟動(dòng)也無(wú)法避免故障時(shí),需要對(duì)應(yīng)用進(jìn)行修復(fù)。
優(yōu)選地,觸發(fā)對(duì)目標(biāo)應(yīng)用進(jìn)行定制的事件可以包括:目標(biāo)應(yīng)用中特定功能的啟動(dòng)、目標(biāo)應(yīng)用中特定部分的運(yùn)行和/或目標(biāo)應(yīng)用特定參數(shù)的賦值。例如,當(dāng)目標(biāo)應(yīng)用中特定功能存在缺陷或會(huì)觸發(fā)運(yùn)行故障時(shí),它的啟動(dòng)會(huì)觸發(fā)應(yīng)用故障。為此,將目標(biāo)應(yīng)用中特定功能的啟動(dòng)作為觸發(fā)對(duì)目標(biāo)應(yīng)用進(jìn)行定制的事件。即,在目標(biāo)應(yīng)用中特定功能將啟動(dòng)時(shí),對(duì)其進(jìn)行定制,例如利用正確/無(wú)缺陷的部分來(lái)進(jìn)行替代。或者,當(dāng)用戶希望目標(biāo)應(yīng)用中特定部分進(jìn)行修改以滿足個(gè)性化需求時(shí),見(jiàn)目標(biāo)應(yīng)用中特定部分的運(yùn)行作為觸發(fā)對(duì)目標(biāo)應(yīng)用進(jìn)行定制的事件。即,在目標(biāo)應(yīng)用中特定功能運(yùn)行時(shí),對(duì)其中的一個(gè)或多個(gè)部分(還未開(kāi)始運(yùn)行的部分)進(jìn)行個(gè)性化修改。又或者,當(dāng)目標(biāo)應(yīng)用特定參數(shù)值被修改為預(yù)定值時(shí),會(huì)觸發(fā)對(duì)目標(biāo)應(yīng)用的定制。例如,當(dāng)判斷語(yǔ)句中的入口參數(shù)為1(例如,是),不對(duì)目標(biāo)應(yīng)用進(jìn)行定制,而當(dāng)判斷語(yǔ)句中的入口參數(shù)為0(例如,否),則對(duì)目標(biāo)應(yīng)用進(jìn)行定制。
優(yōu)選地,在步驟502,當(dāng)確定存在能夠觸發(fā)動(dòng)態(tài)定制的事件時(shí),判斷所述目標(biāo)應(yīng)用是否需要基于所述事件進(jìn)行動(dòng)態(tài)定制,以及如果目標(biāo)應(yīng)用需要基于所述事件進(jìn)行動(dòng)態(tài)定制,則將所述事件推送給適配單元以進(jìn)行定制。通常,在確定存在能夠觸發(fā)動(dòng)態(tài)定制的事件時(shí),方法500可以根據(jù)實(shí)際情況或預(yù)先設(shè)置來(lái)確定是否需要基于所述事件進(jìn)行動(dòng)態(tài)定制。這是因?yàn)?,在某些情況下,即使已經(jīng)滿足了觸發(fā)動(dòng)態(tài)定制的事件,但是并不觸發(fā)動(dòng)態(tài)定制。而僅在目標(biāo)應(yīng)用需要基于事件進(jìn)行動(dòng)態(tài)定制,才進(jìn)行動(dòng)態(tài)定制。
優(yōu)選地,在步驟503,根據(jù)事件確定目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容。優(yōu)選地,修改內(nèi)容可以時(shí)目標(biāo)應(yīng)用中存在缺陷的內(nèi)容、目標(biāo)應(yīng)用中運(yùn)行故障的內(nèi)容或目標(biāo)應(yīng)用中用戶希望修改的內(nèi)容。其中根據(jù)所述事件確定所述目標(biāo)應(yīng)用中需要?jiǎng)討B(tài)定制的修改內(nèi)容包括,根據(jù)目標(biāo)應(yīng)用的標(biāo)識(shí)確定與目標(biāo)內(nèi)容相對(duì)應(yīng)的一個(gè)或多個(gè)修改內(nèi)容,并且從一個(gè)或多個(gè)修改內(nèi)容選擇與事件相對(duì)應(yīng)的修改內(nèi)容。優(yōu)選地,目標(biāo)應(yīng)用可能存在一個(gè)或多個(gè)修改內(nèi)容并且這些修改修改內(nèi)容與目標(biāo)應(yīng)用相關(guān)聯(lián)。進(jìn)一步,根據(jù)觸發(fā)動(dòng)態(tài)定制的事件的不同,可能會(huì)觸發(fā)針對(duì)一個(gè)或多個(gè)修改內(nèi)容中不同修改內(nèi)容的定制。因此,方法500基于事件從一個(gè)或多個(gè)修改內(nèi)容選擇相對(duì)應(yīng)的修改內(nèi)容,并且利用與修改內(nèi)容想對(duì)應(yīng)的動(dòng)態(tài)定制內(nèi)容來(lái)進(jìn)行定制。方法500預(yù)先存儲(chǔ)與目標(biāo)應(yīng)用相對(duì)應(yīng)的一個(gè)或多個(gè)動(dòng)態(tài)定制內(nèi)容。優(yōu)選地,對(duì)于需要?jiǎng)討B(tài)定制的目標(biāo)應(yīng)用,其修改內(nèi)容與動(dòng)態(tài)定制內(nèi)容一一對(duì)應(yīng)。
優(yōu)選地,在步驟504,根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代修改內(nèi)容,以使得運(yùn)行單元繼續(xù)運(yùn)行目標(biāo)應(yīng)用。優(yōu)選地,根據(jù)預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容來(lái)替代所述修改內(nèi)容包括:以補(bǔ)丁或插件的形式將所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容替代所述修改內(nèi)容。其中運(yùn)行單元繼續(xù)運(yùn)行所述目標(biāo)應(yīng)用包括,所述運(yùn)行單元在所述事件處,運(yùn)行所述預(yù)先存儲(chǔ)的動(dòng)態(tài)定制內(nèi)容而不是所述修改內(nèi)容。
優(yōu)選地,方法500會(huì)促使存儲(chǔ)單元存儲(chǔ)各種類型的應(yīng)用、在應(yīng)用執(zhí)行過(guò)程中所生成的業(yè)務(wù)數(shù)據(jù)和用戶數(shù)據(jù)、以及用于對(duì)修改內(nèi)容進(jìn)行替代的動(dòng)態(tài)定制內(nèi)容。
已經(jīng)通過(guò)參考少量實(shí)施方式描述了本發(fā)明。然而,本領(lǐng)域技術(shù)人員所公知的,正如附帶的專利權(quán)利要求所限定的,除了本發(fā)明以上公開(kāi)的其他的實(shí)施方式等同地落在本發(fā)明的范圍內(nèi)。
通常地,在權(quán)利要求中使用的所有術(shù)語(yǔ)都根據(jù)他們?cè)诩夹g(shù)領(lǐng)域的通常含義被解釋,除非在其中被另外明確地定義。所有的參考“一個(gè)/所述/該[裝置、組件等]”都被開(kāi)放地解釋為所述裝置、組件等中的至少一個(gè)實(shí)例,除非另外明確地說(shuō)明。這里公開(kāi)的任何方法的步驟都沒(méi)必要以公開(kāi)的準(zhǔn)確的順序運(yùn)行,除非明確地說(shuō)明。