亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

應(yīng)用程序運行控制的方法及裝置的制造方法

文檔序號:10593892閱讀:380來源:國知局
應(yīng)用程序運行控制的方法及裝置的制造方法
【專利摘要】本發(fā)明提供了應(yīng)用程序運行控制的方法及裝置,該方法包括:響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模塊;基于獲取到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息;根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與目標(biāo)應(yīng)用程序的所需資源對應(yīng)的原生應(yīng)用程序的所需資源,以運行目標(biāo)應(yīng)用程序。通過本發(fā)明,實現(xiàn)了目標(biāo)應(yīng)用程序獨立于原生應(yīng)用程序在終端設(shè)備中正常的運行,在保證目標(biāo)應(yīng)用程序與原生應(yīng)用程序分別獨立運行互不干擾的同時,實現(xiàn)了目標(biāo)應(yīng)用程序具有原生應(yīng)用程序的所有功能的目的。
【專利說明】
應(yīng)用程序運行控制的方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體而言,本發(fā)明涉及一種應(yīng)用程序運行控制的方法,及一種應(yīng)用程序運行控制的裝置?!颈尘凹夹g(shù)】
[0002]隨著時代的發(fā)展,各種終端設(shè)備已成為人們生活中必不可少的工具,各種功能強大的終端操作系統(tǒng)及終端應(yīng)用程序不斷涌現(xiàn),為用戶帶來了更加便捷的體驗?,F(xiàn)有技術(shù)中, 應(yīng)用程序在終端設(shè)備的系統(tǒng)環(huán)境中僅可以唯一的形式安裝并運行,如對于一種即時通信類應(yīng)用程序,在一臺終端設(shè)備中僅可以安裝并運行一個該即時通信類應(yīng)用程序,用戶僅可以通過唯一的賬號登錄并對其執(zhí)行相關(guān)操作。但是,隨著即時通信類應(yīng)用程序的普及,越來越多的用戶希望在一臺終端設(shè)備中通過多個賬號登錄一種即時通信類應(yīng)用程序以實現(xiàn)對不同好友信息的區(qū)分管理及交流?,F(xiàn)有技術(shù)中,具有通過多個域賬號在不同操作系統(tǒng)之間的切換來實現(xiàn)在一臺終端設(shè)備中通過多個賬號登錄一種即時通信類應(yīng)用程序的解決方案。但是,該方案需要最高系統(tǒng)級別的權(quán)限且基于多操作系統(tǒng)才可以實現(xiàn),并不具有普適性。
[0003]現(xiàn)有技術(shù)中,利用沙箱技術(shù)或通過修改Android底層機制,使得目標(biāo)應(yīng)用程序可實現(xiàn)原生應(yīng)用程序的全部功能及相應(yīng)服務(wù),但是,在沙箱中運行的目標(biāo)應(yīng)用程序依賴于原生應(yīng)用程序的運行,無法獨立于原生應(yīng)用程序獨自運行于終端設(shè)備中,且修改Android底層機制的方式大大增加了技術(shù)實現(xiàn)的難度,尤其是在底層實現(xiàn)的編程問題上,開發(fā)者需要考慮到諸如資源重定向、包管理服務(wù),活動組件鑒權(quán)等問題,程序?qū)崿F(xiàn)難度大,出錯機率高,一旦應(yīng)用程序的版本出現(xiàn)更迭,還容易因應(yīng)用程序的資源調(diào)度設(shè)計而引發(fā)潛在的問題,導(dǎo)致雙開的目的不能得到很好的滿足。
[0004]因此,需要一種控制目標(biāo)應(yīng)用程序運行的解決方案,使得目標(biāo)應(yīng)用程序可實現(xiàn)原生應(yīng)用程序的全部功能及相應(yīng)服務(wù),且目標(biāo)應(yīng)用程序完全獨立于原生應(yīng)用程序運行于終端設(shè)備中,以解決現(xiàn)有技術(shù)中在一臺終端設(shè)備中僅可以安裝并運行一個應(yīng)用程序,用戶僅可以通過唯一的賬號登錄并對其執(zhí)行相關(guān)操作的問題。
【發(fā)明內(nèi)容】

[0005]為克服上述技術(shù)問題或者至少部分地解決上述技術(shù)問題,特提出以下技術(shù)方案:
[0006]本發(fā)明的實施例提出了一種應(yīng)用程序運行控制的方法,包括:
[0007]響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模塊;
[0008]基于獲取到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息;
[0009]根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與目標(biāo)應(yīng)用程序的所需資源對應(yīng)的原生應(yīng)用程序的所需資源,以運行目標(biāo)應(yīng)用程序。
[0010]優(yōu)選地,其中,通過創(chuàng)建獨立的進程來運行目標(biāo)應(yīng)用程序。
[0011]優(yōu)選地,重設(shè)模塊用于調(diào)用鉤子函數(shù);[〇〇12]其中,鉤子函數(shù)用于:
[0013]掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱;
[0014]掛鉤原生應(yīng)用程序的簽名。
[0015]優(yōu)選地,獲取目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱的方式,包括:
[0016]通過鉤子函數(shù)對目標(biāo)應(yīng)用程序的進程進行監(jiān)控以掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱。
[0017]優(yōu)選地,基于獲取到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息,包括:
[0018]基于鉤子函數(shù)掛鉤到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,確定原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱;
[0019]基于原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息。
[0020]優(yōu)選地,原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序資源名稱的對應(yīng)規(guī)則,包括:[〇〇21]目標(biāo)應(yīng)用程序與原生應(yīng)用程序調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系。
[0022]優(yōu)選地,目標(biāo)應(yīng)用程序的配置信息,包括環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息中的至少一項。[〇〇23] 可選地,該方法還包括:
[0024]基于原生應(yīng)用程序的升級安裝文件,根據(jù)掛鉤到的原生應(yīng)用程序的簽名,升級目標(biāo)應(yīng)用程序。
[0025]本發(fā)明的另一實施例提出了一種應(yīng)用程序運行控制的裝置,包括:
[0026]啟動模塊,用于響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中, 包括加載重設(shè)模塊;
[0027]修改模塊,用于基于獲取到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息;
[0028]調(diào)用模塊,用于根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與目標(biāo)應(yīng)用程序的所需資源對應(yīng)的原生應(yīng)用程序的所需資源,以運行目標(biāo)應(yīng)用程序。
[0029]優(yōu)選地,其中,通過創(chuàng)建獨立的進程來運行目標(biāo)應(yīng)用程序。
[0030]優(yōu)選地,重設(shè)模塊用于調(diào)用鉤子函數(shù);
[0031]其中,鉤子函數(shù)用于:
[0032]掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱;[〇〇33]掛鉤原生應(yīng)用程序的簽名。
[0034]優(yōu)選地,獲取目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱的方式,包括:
[0035]通過鉤子函數(shù)對目標(biāo)應(yīng)用程序的進程進行監(jiān)控以掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱。
[0036]優(yōu)選地,修改模塊,包括:
[0037]確定單元,用于基于鉤子函數(shù)掛鉤到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,確定原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱;
[0038]修改單元,用于基于原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息。
[0039]優(yōu)選地,原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序資源名稱的對應(yīng)規(guī)則,包括:
[0040]目標(biāo)應(yīng)用程序與原生應(yīng)用程序調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系。
[0041]優(yōu)選地,目標(biāo)應(yīng)用程序的配置信息,包括環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息中的至少一項。
[0042]可選地,該裝置還包括:
[0043]升級模塊,用于基于原生應(yīng)用程序的升級安裝文件,根據(jù)掛鉤到的原生應(yīng)用程序的簽名,升級目標(biāo)應(yīng)用程序。
[0044]本發(fā)明的實施例中,提出了一種應(yīng)用程序運行控制的方案,響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模塊,加載重設(shè)模塊能夠及時攔截目標(biāo)應(yīng)用程序調(diào)用的資源請求,為后續(xù)獲取目標(biāo)應(yīng)用程序調(diào)用資源提供了必要的前提保障;接著,根據(jù)原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,精確地獲取對應(yīng)原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,使目標(biāo)應(yīng)用程序能夠精確調(diào)用所需資源, 并將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息,根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與目標(biāo)應(yīng)用程序的所需資源對應(yīng)的原生應(yīng)用程序的所需資源,以運行目標(biāo)應(yīng)用程序,實現(xiàn)了目標(biāo)應(yīng)用程序獨立于原生應(yīng)用程序在終端設(shè)備中正常的運行, 在保證目標(biāo)應(yīng)用程序與原生應(yīng)用程序分別獨立運行互不干擾的同時,實現(xiàn)了目標(biāo)應(yīng)用程序具有原生應(yīng)用程序的所有功能的目的;進一步地,突破了原生應(yīng)用程序在同一終端設(shè)備中僅可使用唯一的賬戶進行登錄使用的局限,提高了用戶體驗。
[0045]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到?!靖綀D說明】
[0046]本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
[0047]圖1為本發(fā)明中一個實施例的應(yīng)用程序運行控制的方法的流程圖;
[0048]圖2為本發(fā)明中一個優(yōu)選實施例的應(yīng)用程序運行控制的方法的流程圖;
[0049]圖3為本發(fā)明中另一實施例的應(yīng)用程序運行控制的裝置的結(jié)構(gòu)示意圖;
[0050]圖4為本發(fā)明中另一優(yōu)選實施例的應(yīng)用程序運行控制的裝置的結(jié)構(gòu)示意圖?!揪唧w實施方式】
[0051]下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0052]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“親接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。[〇〇53]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
[0054]本發(fā)明下述實施例描述的應(yīng)用程序運行控制方法所實施的應(yīng)用場景,是安裝在移動終端上的基于Android操作系統(tǒng)的運行環(huán)境。
[0055]圖1為本發(fā)明中一個實施例的應(yīng)用程序運行控制的方法的流程圖。
[0056]本發(fā)明的實施例中,各步驟所執(zhí)行的內(nèi)容概述如下:步驟S110:響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模塊;步驟S120:基于獲取到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息;步驟S130:根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與目標(biāo)應(yīng)用程序的所需資源對應(yīng)的原生應(yīng)用程序的所需資源,以運行目標(biāo)應(yīng)用程序。
[0057]本發(fā)明的實施例中,提出了一種應(yīng)用程序運行控制的方法,響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模塊,加載重設(shè)模塊能夠及時攔截目標(biāo)應(yīng)用程序調(diào)用的資源請求,為后續(xù)獲取目標(biāo)應(yīng)用程序調(diào)用資源提供了必要的前提保障;接著,根據(jù)原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,精確地獲取對應(yīng)原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,使目標(biāo)應(yīng)用程序能夠精確調(diào)用所需資源, 并將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息,根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與目標(biāo)應(yīng)用程序的所需資源對應(yīng)的原生應(yīng)用程序的所需資源,以運行目標(biāo)應(yīng)用程序,實現(xiàn)了目標(biāo)應(yīng)用程序獨立于原生應(yīng)用程序在終端設(shè)備中正常的運行, 在保證目標(biāo)應(yīng)用程序與原生應(yīng)用程序分別獨立運行互不干擾的同時,實現(xiàn)了目標(biāo)應(yīng)用程序具有原生應(yīng)用程序的所有功能的目的;進一步地,突破了原生應(yīng)用程序在同一終端設(shè)備中僅可使用唯一的賬戶進行登錄使用的局限,提高了用戶體驗。以下針對各個步驟的具體實現(xiàn)做進一步的說明:
[0058]步驟S110:響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模塊。
[0059]優(yōu)選地,其中,通過創(chuàng)建獨立的進程來運行目標(biāo)應(yīng)用程序。
[0060]優(yōu)選地,重設(shè)模塊用于調(diào)用鉤子函數(shù);其中,鉤子函數(shù)用于:[0061 ]掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱;[〇〇62]掛鉤原生應(yīng)用程序的簽名。
[0063]具體地,在終端設(shè)備中,響應(yīng)于用戶啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中,啟動目標(biāo)應(yīng)用程序包括加載重設(shè)模塊。[〇〇64] Android操作系統(tǒng)有其不同于其他操作系統(tǒng)的原理,Android為開發(fā)者提供四大組件,具體指Activity、Service、Broadcast Receiver以及Content Provider等組件。 Android應(yīng)用程序以APK安裝包的形式提供給用戶進行安裝,APK安裝包中,具有用于封裝實現(xiàn)各個組件的程序代碼的classes, dex代碼文件以及用于表達應(yīng)用程序所用的各個組件的注冊信息以及權(quán)限申請信息等內(nèi)容的Androidmanifest.xml配置文件。在應(yīng)用程序運行的過程中,為屏蔽用戶調(diào)用遠(yuǎn)程服務(wù)端主機上的對象,必須提供某種方式來模擬本地對象,這種本地對象稱為存根(stub),存根負(fù)責(zé)接收本地方法的調(diào)用,并將它們委派給各自的具體實現(xiàn)對象,存根代表參與分布式對象的通信的客戶端側(cè)對象,因此在本發(fā)明的實施例中,封裝目標(biāo)應(yīng)用程序APK安裝包的同時,封裝存根對象的代碼文件,同時為實現(xiàn)目標(biāo)應(yīng)用程序獨立于原生應(yīng)用程序在終端設(shè)備中運行,還封裝了實現(xiàn)重設(shè)模塊功能的相關(guān)文件。[〇〇65] Android對進程的管理,以包名為單位,每個應(yīng)用程序分配一個唯一的包名,由于應(yīng)用程序的安裝過程就是 PackageManagerService(PMS)解析 4]1(11'〇1(111^111€681:.11111文件的過程,而本發(fā)明中目標(biāo)應(yīng)用程序的包名不同于原生應(yīng)用程序的包名,同時,重設(shè)模塊可實現(xiàn)掛鉤原生應(yīng)用程序的簽名文件,因此,當(dāng)本地已安裝原生應(yīng)用程序的情況下,目標(biāo)應(yīng)用程序也可同時安裝在本地,并可得到目標(biāo)應(yīng)用程序的相關(guān)屬性信息,實現(xiàn)通過 ActivityManagerService(AMS)正常運行目標(biāo)應(yīng)用程序。
[0066]這里需要補充的是:術(shù)語“鉤子”涵蓋了用于通過攔截在軟件組件之間傳遞的函數(shù)調(diào)用、消息、或事件來改變或增加操作系統(tǒng)、應(yīng)用程序、或其他軟件組件的行為的技術(shù)。而處理這種被攔截的函數(shù)調(diào)用、事件或消息的代碼就被稱為鉤子hook函數(shù)。鉤子通常用于各種目標(biāo),包括對功能進行調(diào)試和對功能進行擴展。其示例可以包括在鍵盤或鼠標(biāo)事件傳遞到應(yīng)用程序之前攔截它們,或者攔截系統(tǒng)調(diào)用(system call)、或者系統(tǒng)函數(shù)行為、函數(shù)執(zhí)行結(jié)果等,以監(jiān)視或修改應(yīng)用程序或其他組件的功能等等。本實施例即可采用鉤子hook函數(shù)接管目標(biāo)應(yīng)用程序運行時所需的安裝自校驗操作。
[0067]例如,在終端設(shè)備中,響應(yīng)于用戶啟動目標(biāo)應(yīng)用程序Appl’的操作指令,如檢測到用戶雙擊Appl ’的圖標(biāo)的操作,Appl ’的圖標(biāo)可以與原生目標(biāo)應(yīng)用程序Appl的圖標(biāo)不同,隨后通過創(chuàng)建獨立的進程來運行Appl’,同時該進程間的通信機制克隆Appl進程間通信機制, 使得該進程間的通信機制與Appl進程間通信機制相同,并加載重設(shè)模塊,用于調(diào)用鉤子函數(shù)和加載Android系統(tǒng)所需的必要API (Applicat1n Programming Interface,應(yīng)用程序編程接口);Appl’在運行過程中,當(dāng)Appl’請求調(diào)用相關(guān)資源時,鉤子函數(shù)可及時攔截該調(diào)用請求,并掛鉤Appl’調(diào)用資源的資源名稱;鉤子函數(shù)的還可以用于掛鉤Appl的數(shù)字簽名。 [〇〇68]步驟S120:基于獲取到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息。
[0069]優(yōu)選地,獲取目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱的方式,包括:
[0070]通過鉤子函數(shù)對目標(biāo)應(yīng)用程序的進程進行監(jiān)控以掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱。
[0071]優(yōu)選地,目標(biāo)應(yīng)用程序的配置信息,包括但不限于環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息中的至少一項。
[0072]優(yōu)選地,原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序資源名稱的對應(yīng)規(guī)則,包括:目標(biāo)應(yīng)用程序與原生應(yīng)用程序調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系。
[0073]具體地,基于通過鉤子函數(shù)對目標(biāo)應(yīng)用程序的進程進行監(jiān)控以掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系,將目標(biāo)應(yīng)用程序的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息修改為與原生應(yīng)用程序?qū)?yīng)的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息。
[0074]在一優(yōu)選實施例中,如圖2所示,步驟S120基于獲取到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息,具體包括步驟S210和步驟 S220;步驟S210:基于鉤子函數(shù)掛鉤到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,確定原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱;步驟S220:基于原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息。[〇〇75]例如,在終端設(shè)備中,在目標(biāo)應(yīng)用程序Appl’的運行過程中,通過鉤子函數(shù)對已創(chuàng)建的Appl’的進程進行監(jiān)控,當(dāng)Appl’請求調(diào)用資源時,鉤子函數(shù)可掛鉤Appl’調(diào)用資源的資源名稱,得到Appl’調(diào)用資源的資源名稱如1.(:〇111.4.111111_〇11”;預(yù)定4??1與4??1’調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系,如Appl’調(diào)用資源的資源名稱為Appl調(diào)用相同資源的資源名稱加上“ _cm”,例如Appl與Appl’調(diào)用相同資源,若Appl調(diào)用資源的資源名稱為“A”,則 Appl’調(diào)用資源的資源名稱為“A_cm” ;基于已獲取到的Appl’調(diào)用資源的資源名稱“A.com.A.mm_cm”,根據(jù)Appl與Appl’調(diào)用相同資源的資源名稱-對應(yīng)的關(guān)系,可確定Appl調(diào)用相同資源的資源名稱為“A.com.A.mm”,將Appl’的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息中調(diào)用資源的名稱“A.com.A.修改為“A.com.A.mm”,使得修改后的Appl’的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息與Appl對應(yīng)的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息相同。
[0076]通過本實施例,通過原生應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用相同資源的資源名稱對應(yīng)規(guī)則,確定原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,基于原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息;因此,目標(biāo)應(yīng)用程序的運行并不依賴于原生目標(biāo)應(yīng)用程序安裝包的包名,在無法獲取到原生應(yīng)用程序安裝包包名的情況下,通過本實施例的方式,在安裝目標(biāo)應(yīng)用程序的過程中,修改目標(biāo)應(yīng)用程序的配置信息時,可自動根據(jù)目標(biāo)應(yīng)用程序的包名添加對應(yīng)的包名信息,目標(biāo)應(yīng)用程序仍可在終端設(shè)備中成功安裝并運行。
[0077]步驟S130:根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與目標(biāo)應(yīng)用程序所需資源相應(yīng)的原生應(yīng)用程序的資源,以運行目標(biāo)應(yīng)用程序。
[0078]具體地,根據(jù)目標(biāo)應(yīng)用程序修改后的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息,調(diào)用與目標(biāo)應(yīng)用程序所需資源相應(yīng)的原生應(yīng)用程序的資源,以運行目標(biāo)應(yīng)用程序,其中,目標(biāo)應(yīng)用程序所需資源與相應(yīng)的原生應(yīng)用程序的資源指向相同資源。
[0079]例如,接上例,Android系統(tǒng)中的資源包括ActivityManagerService資源、 PackageManagerService資源、Activity組件、Service組件、Broadcast Receiver組件和Content Provider組件等;根據(jù)Appl’修改后的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息,若通過名稱為“A.com.A.的方法可確定名稱為“A.com.A.mm”的方法調(diào)用的資源為六〇1:;[¥;^71&11^861561^;[〇6資源,貝1|通過4。。1’的進程調(diào)用與4。。1’所需資源相應(yīng)的六口口1 的ActivityManagerService資源,以運行Appl ’。
[0080]在一優(yōu)選實施例中,該方法還包括步驟S140(圖中未示出);步驟S140:基于原生應(yīng)用程序的升級安裝文件,根據(jù)掛鉤到的原生應(yīng)用程序的簽名,升級目標(biāo)應(yīng)用程序。
[0081]例如,在終端設(shè)備中,用戶在使用Appl’的過程中檢測到Appl存在更新版本,如 V5.0版本,當(dāng)檢測到對Appl’的更新操作,如檢測到用戶點擊Appl’的版本更新按鈕的操作, 可從網(wǎng)絡(luò)端發(fā)送請求并獲取到Appl的升級安裝文件,根據(jù)已掛鉤到的Appl的數(shù)字簽名信息,在升級過程中,通過Appl’的重設(shè)模塊,根據(jù)Appl與Appl’調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系,修改Appl的升級安裝文件中Appl調(diào)用資源的資源名稱,實現(xiàn)將Appl’升級至 Appl的V5.0版本。
[0082]在一具體應(yīng)用場景中,用戶可以同時運行兩個如“微信”的應(yīng)用程序,其中一個“微信”A是通過運行騰訊官方下載的微信安裝包創(chuàng)建的,另一個“微信”B是通過本發(fā)明的實施方式創(chuàng)建的,兩個“微信”進程分別用于登錄不同的微信賬號,互不影響,可同時與外界進行通信,甚至兩個不同賬號之間也可直接進行通信,B可實現(xiàn)A中的所有功能,且當(dāng)用戶卸載A 后,并不影響B(tài)的正常運行。[〇〇83] 在另一具體應(yīng)用場景中,用戶可以同時運行兩個如“outlook”的應(yīng)用程序,其中一個outlookC是通過運行outlook官方下載的安裝包創(chuàng)建的,另一個outlookD是通過本發(fā)明的實施方式創(chuàng)建的;由于outlook依賴于其系統(tǒng)設(shè)置里的賬戶信息,通過本發(fā)明的實施方式創(chuàng)建的〇此1〇〇1^應(yīng)用程序,在創(chuàng)建過程中還需要在0的4]1(11'〇1(11]^111€681:.11111配置文件中增加相應(yīng)的賬戶信息標(biāo)識字符串,用于避免與C中賬戶信息對應(yīng)的字符串產(chǎn)生沖突,在運行D 的過程中,可通過D的重設(shè)模塊,掛鉤D的賬戶信息,并通過D的Andro i dman ifest.xml配置文件中賬戶信息標(biāo)識的字符串獲取運行D的賬戶信息,如“XXX0163.com”,隨后將掛鉤D的賬戶信息修改為“XXX0163.com”,實現(xiàn)D的正常運行。
[0084]圖3為本發(fā)明中另一實施例的應(yīng)用程序運行控制的裝置的結(jié)構(gòu)示意圖。
[0085]本發(fā)明的實施例中,各模塊所執(zhí)行的內(nèi)容概述如下:響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動模塊310啟動目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模塊;基于獲取到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,修改模塊320將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息;根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用模塊330調(diào)用與目標(biāo)應(yīng)用程序的所需資源對應(yīng)的原生應(yīng)用程序的所需資源,以運行目標(biāo)應(yīng)用程序。
[0086]本發(fā)明的實施例中,提出了一種應(yīng)用程序運行控制的裝置,響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模塊,加載重設(shè)模塊能夠及時攔截目標(biāo)應(yīng)用程序調(diào)用的資源請求,為后續(xù)獲取目標(biāo)應(yīng)用程序調(diào)用資源提供了必要的前提保障;接著,根據(jù)原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,精確地獲取對應(yīng)原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,使目標(biāo)應(yīng)用程序能夠精確調(diào)用所需資源, 并將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息,根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與目標(biāo)應(yīng)用程序的所需資源對應(yīng)的原生應(yīng)用程序的所需資源,以運行目標(biāo)應(yīng)用程序,實現(xiàn)了目標(biāo)應(yīng)用程序獨立于原生應(yīng)用程序在終端設(shè)備中正常的運行,在保證目標(biāo)應(yīng)用程序與原生應(yīng)用程序分別獨立運行互不干擾的同時,實現(xiàn)了目標(biāo)應(yīng)用程序具有原生應(yīng)用程序的所有功能的目的;進一步地,突破了原生應(yīng)用程序在同一終端設(shè)備中僅可使用唯一的賬戶進行登錄使用的局限,提高了用戶體驗。以下針對各個模塊的具體實現(xiàn)做進一步的說明:
[0087]響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動模塊310啟動目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模塊。
[0088]優(yōu)選地,其中,通過創(chuàng)建獨立的進程來運行目標(biāo)應(yīng)用程序。
[0089]優(yōu)選地,重設(shè)模塊用于調(diào)用鉤子函數(shù);其中,鉤子函數(shù)用于:
[0090]掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱;
[0091 ]掛鉤原生應(yīng)用程序的簽名。
[0092]具體地,在終端設(shè)備中,響應(yīng)于用戶啟動目標(biāo)應(yīng)用程序的操作指令,啟動目標(biāo)應(yīng)用程序,其中,啟動目標(biāo)應(yīng)用程序包括加載重設(shè)模塊。
[0093]Android操作系統(tǒng)有其不同于其他操作系統(tǒng)的原理,Android為開發(fā)者提供四大組件,具體指Activity、Service、Broadcast Receiver以及Content Provider等組件。Android應(yīng)用程序以APK安裝包的形式提供給用戶進行安裝,APK安裝包中,具有用于封裝實現(xiàn)各個組件的程序代碼的classes, dex代碼文件以及用于表達應(yīng)用程序所用的各個組件的注冊信息以及權(quán)限申請信息等內(nèi)容的Androidmanifest.xml配置文件。在應(yīng)用程序運行的過程中,為屏蔽用戶調(diào)用遠(yuǎn)程服務(wù)端主機上的對象,必須提供某種方式來模擬本地對象,這種本地對象稱為存根(stub),存根負(fù)責(zé)接收本地方法的調(diào)用,并將它們委派給各自的具體實現(xiàn)對象,存根代表參與分布式對象的通信的客戶端側(cè)對象,因此在本發(fā)明的實施例中,封裝目標(biāo)應(yīng)用程序APK安裝包的同時,封裝存根對象的代碼文件,同時為實現(xiàn)目標(biāo)應(yīng)用程序獨立于原生應(yīng)用程序在終端設(shè)備中運行,還封裝了實現(xiàn)重設(shè)模塊功能的相關(guān)文件。
[0094]Android對進程的管理,以包名為單位,每個應(yīng)用程序分配一個唯一的包名,由于應(yīng)用程序的安裝過程就是PackageManagerServi ce (PMS)解析Androidmanifest.xml文件的過程,而本發(fā)明中目標(biāo)應(yīng)用程序的包名不同于原生應(yīng)用程序的包名,同時,重設(shè)模塊可實現(xiàn)掛鉤原生應(yīng)用程序的簽名文件,因此,當(dāng)本地已安裝原生應(yīng)用程序的情況下,目標(biāo)應(yīng)用程序也可同時安裝在本地,并可得到目標(biāo)應(yīng)用程序的相關(guān)屬性信息,實現(xiàn)通過ActivityManagerService(AMS)正常運行目標(biāo)應(yīng)用程序。
[0095]這里需要補充的是:術(shù)語“鉤子”涵蓋了用于通過攔截在軟件組件之間傳遞的函數(shù)調(diào)用、消息、或事件來改變或增加操作系統(tǒng)、應(yīng)用程序、或其他軟件組件的行為的技術(shù)。而處理這種被攔截的函數(shù)調(diào)用、事件或消息的代碼就被稱為鉤子hook函數(shù)。鉤子通常用于各種目標(biāo),包括對功能進行調(diào)試和對功能進行擴展。其示例可以包括在鍵盤或鼠標(biāo)事件傳遞到應(yīng)用程序之前攔截它們,或者攔截系統(tǒng)調(diào)用(system call)、或者系統(tǒng)函數(shù)行為、函數(shù)執(zhí)行結(jié)果等,以監(jiān)視或修改應(yīng)用程序或其他組件的功能等等。本實施例即可采用鉤子hook函數(shù)接管目標(biāo)應(yīng)用程序運行時所需的安裝自校驗操作。
[0096]例如,在終端設(shè)備中,響應(yīng)于用戶啟動目標(biāo)應(yīng)用程序Appl’的操作指令,如檢測到用戶雙擊AppI ’的圖標(biāo)的操作,AppI ’的圖標(biāo)可以與原生目標(biāo)應(yīng)用程序Appl的圖標(biāo)不同,隨后通過創(chuàng)建獨立的進程來運行Appl ’,同時該進程間的通信機制克隆Appl進程間通信機制,使得該進程間的通信機制與Appl進程間通信機制相同,并加載重設(shè)模塊,用于調(diào)用鉤子函數(shù)和加載Android系統(tǒng)所需的必要API (Applicat1n Programming Interface,應(yīng)用程序編程接口);Appl’在運行過程中,當(dāng)Appl’請求調(diào)用相關(guān)資源時,鉤子函數(shù)可及時攔截該調(diào)用請求,并掛鉤Appl’調(diào)用資源的資源名稱;鉤子函數(shù)的還可以用于掛鉤Appl的數(shù)字簽名。
[0097]修改模塊320基于獲取到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息。
[0098]優(yōu)選地,獲取目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱的方式,包括:
[0099]通過鉤子函數(shù)對目標(biāo)應(yīng)用程序的進程進行監(jiān)控以掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱。
[0100]優(yōu)選地,目標(biāo)應(yīng)用程序的配置信息,包括但不限于環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息中的至少一項。[0101 ]優(yōu)選地,原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序資源名稱的對應(yīng)規(guī)則,包括:目標(biāo)應(yīng)用程序與原生應(yīng)用程序調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系。
[0102]具體地,基于通過鉤子函數(shù)對目標(biāo)應(yīng)用程序的進程進行監(jiān)控以掛鉤目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系,將目標(biāo)應(yīng)用程序的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息修改為與原生應(yīng)用程序?qū)?yīng)的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息。
[0103]在一優(yōu)選實施例中,如圖4所示,修改模塊320具體包括確定單元410和修改單元 420;確定單元410基于鉤子函數(shù)掛鉤到的目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,確定原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱;基于原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,修改單元420將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息。
[0104]例如,在終端設(shè)備中,在目標(biāo)應(yīng)用程序Appl’的運行過程中,通過鉤子函數(shù)對已創(chuàng)建的Appl’的進程進行監(jiān)控,當(dāng)Appl’請求調(diào)用資源時,鉤子函數(shù)可掛鉤Appl’調(diào)用資源的資源名稱,得到Appl’調(diào)用資源的資源名稱如“A.com.預(yù)定Appl與Appl’調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系,如Appl’調(diào)用資源的資源名稱為Appl調(diào)用相同資源的資源名稱加上“ _cm”,例如Appl與Appl’調(diào)用相同資源,若Appl調(diào)用資源的資源名稱為“A”,則 Appl’調(diào)用資源的資源名稱為“A_cm” ;基于已獲取到的Appl’調(diào)用資源的資源名稱“A.com.A.mm_cm”,根據(jù)Appl與Appl’調(diào)用相同資源的資源名稱-對應(yīng)的關(guān)系,可確定Appl調(diào)用相同資源的資源名稱為“A.com.A.mm”,將Appl’的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息中調(diào)用資源的名稱“A.com.A.修改為“A.com.A.mm”,使得修改后的Appl’的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息與Appl對應(yīng)的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息相同。
[0105]通過本實施例,通過原生應(yīng)用程序與目標(biāo)應(yīng)用程序調(diào)用相同資源的資源名稱對應(yīng)規(guī)則,確定原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,基于原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,將目標(biāo)應(yīng)用程序的配置信息修改為與原生應(yīng)用程序?qū)?yīng)的配置信息;因此,目標(biāo)應(yīng)用程序的運行并不依賴于原生目標(biāo)應(yīng)用程序安裝包的包名,在無法獲取到原生應(yīng)用程序安裝包包名的情況下,通過本實施例的方式,在安裝目標(biāo)應(yīng)用程序的過程中,修改目標(biāo)應(yīng)用程序的配置信息時,可自動根據(jù)目標(biāo)應(yīng)用程序的包名添加對應(yīng)的包名信息,目標(biāo)應(yīng)用程序仍可在終端設(shè)備中成功安裝并運行。
[0106]調(diào)用模塊330根據(jù)目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與目標(biāo)應(yīng)用程序所需資源相應(yīng)的原生應(yīng)用程序的資源,以運行目標(biāo)應(yīng)用程序。
[0107]具體地,根據(jù)目標(biāo)應(yīng)用程序修改后的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息,調(diào)用與目標(biāo)應(yīng)用程序所需資源相應(yīng)的原生應(yīng)用程序的資源,以運行目標(biāo)應(yīng)用程序,其中,目標(biāo)應(yīng)用程序所需資源與相應(yīng)的原生應(yīng)用程序的資源指向相同資源。[〇1〇8] 例如,接上例,Android系統(tǒng)中的資源包括ActivityManagerService資源、 PackageManagerService資源、Activity組件、Service組件、Broadcast Receiver組件和 Content Provider組件等;根據(jù)Appl’修改后的環(huán)境變量配置信息和對應(yīng)調(diào)用資源的路徑信息,若通過名稱為“A.com.A.的方法可確定名稱為“A.com.A.mm”的方法調(diào)用的資源為六〇1:;[¥;^71&11^861561^;[〇6資源,貝1|通過4。。1’的進程調(diào)用與4。。1’所需資源相應(yīng)的六口口1 的ActivityManagerService資源,以運行Appl ’。
[0109]在一優(yōu)選實施例中,該裝置還包括升級模塊(圖中未示出);升級模塊基于原生應(yīng)用程序的升級安裝文件,根據(jù)掛鉤到的原生應(yīng)用程序的簽名,升級目標(biāo)應(yīng)用程序。
[0110]例如,在終端設(shè)備中,用戶在使用Appl’的過程中檢測到Appl存在更新版本,如 V5.0版本,當(dāng)檢測到對Appl’的更新操作,如檢測到用戶點擊Appl’的版本更新按鈕的操作, 可從網(wǎng)絡(luò)端發(fā)送請求并獲取到Appl的升級安裝文件,根據(jù)已掛鉤到的Appl的數(shù)字簽名信息,在升級過程中,通過Appl’的重設(shè)模塊,根據(jù)Appl與Appl’調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系,修改Appl的升級安裝文件中Appl調(diào)用資源的資源名稱,實現(xiàn)將Appl’升級至 Appl的V5.0版本。
[0111]在一具體應(yīng)用場景中,用戶可以同時運行兩個如“微信”的應(yīng)用程序,其中一個“微信”A是通過運行騰訊官方下載的微信安裝包創(chuàng)建的,另一個“微信”B是通過本發(fā)明的實施方式創(chuàng)建的,兩個“微信”進程分別用于登錄不同的微信賬號,互不影響,可同時與外界進行通信,甚至兩個不同賬號之間也可直接進行通信,B可實現(xiàn)A中的所有功能,且當(dāng)用戶卸載A 后,并不影響B(tài)的正常運行。
[0112]在另一具體應(yīng)用場景中,用戶可以同時運行兩個如“outlook”的應(yīng)用程序,其中一個outlookC是通過運行outlook官方下載的安裝包創(chuàng)建的,另一個outlookD是通過本發(fā)明的實施方式創(chuàng)建的;由于outlook依賴于其系統(tǒng)設(shè)置里的賬戶信息,通過本發(fā)明的實施方式創(chuàng)建的〇此1〇〇1^應(yīng)用程序,在創(chuàng)建過程中還需要在0的4]1(11'〇1(11]^111€681:.11111配置文件中增加相應(yīng)的賬戶信息標(biāo)識字符串,用于避免與C中賬戶信息對應(yīng)的字符串產(chǎn)生沖突,在運行D 的過程中,可通過D的重設(shè)模塊,掛鉤D的賬戶信息,并通過D的Andro i dman ifest.xml配置文件中賬戶信息標(biāo)識的字符串獲取運行D的賬戶信息,如“XXX0163.com”,隨后將掛鉤D的賬戶信息修改為“XXX0163.com”,實現(xiàn)D的正常運行。
[0113]本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項或多項的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計和制造,或者也可以包括通用計算機中的已知設(shè)備。這些設(shè)備具有存儲在其內(nèi)的計算機程序,這些計算機程序選擇性地激活或重構(gòu)。這樣的計算機程序可以被存儲在設(shè)備(例如,計算機)可讀介質(zhì)中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計算機可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、R0M(Read-0nly Memory,只讀存儲器)、RAM (Random Access Memory,隨即存儲器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦寫可編程只讀存儲器)、EEPR0M(E1 ectricalIy ErasableProgrammable Read-Only Memory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質(zhì)。
[0114]本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計算機程序指令來實現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業(yè)計算機或其他可編程數(shù)據(jù)處理方法的處理器來實現(xiàn),從而通過計算機或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。
[0115]本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
[0116]以上所述僅是本發(fā)明的部分實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
【主權(quán)項】
1.一種應(yīng)用程序運行控制的方法,其特征在于,包括:響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動所述目標(biāo)應(yīng)用程序,其中,包括加載重設(shè)模 塊;基于獲取到的所述目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo)應(yīng)用程序與所述 目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將所述目標(biāo)應(yīng)用程序的配置信息修改為與所 述原生應(yīng)用程序?qū)?yīng)的配置信息;根據(jù)所述目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與所述目標(biāo)應(yīng)用程序的所需資源對應(yīng) 的所述原生應(yīng)用程序的所需資源,以運行所述目標(biāo)應(yīng)用程序。2.根據(jù)權(quán)利要求1所述的方法,其中,通過創(chuàng)建獨立的進程來運行所述目標(biāo)應(yīng)用程序。3.根據(jù)權(quán)利要求2所述的方法,所述重設(shè)模塊用于調(diào)用鉤子函數(shù);其中,所述鉤子函數(shù)用于:掛鉤所述目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱;掛鉤所述原生應(yīng)用程序的簽名。4.根據(jù)權(quán)利要求3所述的方法,獲取所述目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱的方式,包 括:通過鉤子函數(shù)對所述目標(biāo)應(yīng)用程序的進程進行監(jiān)控以掛鉤所述目標(biāo)應(yīng)用程序調(diào)用資 源的資源名稱。5.根據(jù)權(quán)利要求3或4所述的方法,基于獲取到的所述目標(biāo)應(yīng)用程序調(diào)用資源的資源名 稱,通過原生目標(biāo)應(yīng)用程序與所述目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將所述目 標(biāo)應(yīng)用程序的配置信息修改為與所述原生應(yīng)用程序?qū)?yīng)的配置信息,包括:基于鉤子函數(shù)掛鉤到的所述目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過所述原生目標(biāo)應(yīng) 用程序與所述目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,確定所述原生目標(biāo)應(yīng)用程序調(diào) 用資源的資源名稱;基于所述原生目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,將所述目標(biāo)應(yīng)用程序的配置信息修 改為與所述原生應(yīng)用程序?qū)?yīng)的配置信息。6.根據(jù)權(quán)利要求5所述的方法,所述原生目標(biāo)應(yīng)用程序與所述目標(biāo)應(yīng)用程序資源名稱 的對應(yīng)規(guī)則,包括:所述目標(biāo)應(yīng)用程序與所述原生應(yīng)用程序調(diào)用相同資源的資源名稱一一對應(yīng)的關(guān)系。7.根據(jù)權(quán)利要求1-6任一項所述的方法,所述目標(biāo)應(yīng)用程序的配置信息,包括環(huán)境變量 配置信息和對應(yīng)調(diào)用資源的路徑信息中的至少一項。8.根據(jù)權(quán)利要求3-7任一項所述的方法,還包括:基于所述原生應(yīng)用程序的升級安裝文件,根據(jù)掛鉤到的所述原生應(yīng)用程序的簽名,升 級所述目標(biāo)應(yīng)用程序。9.一種應(yīng)用程序運行控制的裝置,其特征在于,包括:啟動模塊,用于響應(yīng)于啟動目標(biāo)應(yīng)用程序的操作指令,啟動所述目標(biāo)應(yīng)用程序,其中, 包括加載重設(shè)模塊;修改模塊,用于基于獲取到的所述目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱,通過原生目標(biāo) 應(yīng)用程序與所述目標(biāo)應(yīng)用程序調(diào)用資源的資源名稱對應(yīng)規(guī)則,將所述目標(biāo)應(yīng)用程序的配置 信息修改為與所述原生應(yīng)用程序?qū)?yīng)的配置信息;調(diào)用模塊,用于根據(jù)所述目標(biāo)應(yīng)用程序修改后的配置信息,調(diào)用與所述目標(biāo)應(yīng)用程序 的所需資源對應(yīng)的所述原生應(yīng)用程序的所需資源,以運行所述目標(biāo)應(yīng)用程序。10.根據(jù)權(quán)利要求9所述的裝置,其中,通過創(chuàng)建獨立的進程來運行所述目標(biāo)應(yīng)用程序。
【文檔編號】G06F9/445GK105955782SQ201610302816
【公開日】2016年9月21日
【申請日】2016年5月9日
【發(fā)明人】劉星, 李常坤, 石浩然, 王佳
【申請人】北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1