用于執(zhí)行應用程序的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種用于執(zhí)行應用程序的方法和裝置。所述應用程序具有一文件格式,所述文件格式至少包括第一文件格式和第二文件格式,所述第一文件格式適于通過第一操作系統(tǒng)中的第一執(zhí)行器來執(zhí)行,所述第二文件格式適于通過第二操作系統(tǒng)中的第二執(zhí)行器來執(zhí)行。所述方法應用于電子設備,在所述電子設備中當前正在執(zhí)行所述第一操作系統(tǒng)。所述方法包括:確定所述應用程序的文件格式;根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器;以及通過所述執(zhí)行器來執(zhí)行所述應用程序。因此,在本發(fā)明中,可以在無需進行重新編譯的情況下,在某一特定操作系統(tǒng)中運行在其他操作系統(tǒng)中開發(fā)的應用程序。
【專利說明】用于執(zhí)行應用程序的方法和裝置
【技術(shù)領域】
[0001]本發(fā)明涉及計算機【技術(shù)領域】,更具體地,本發(fā)明涉及一種用于執(zhí)行應用程序的方法和裝置。
【背景技術(shù)】
[0002]隨著計算機技術(shù)及網(wǎng)絡技術(shù)的發(fā)展,近年來,諸如筆記本計算機、平板電腦(PAD)、移動電話、多媒體播放器、個人數(shù)字助理(PDA)之類的電子設備越發(fā)普及。
[0003]一般而言,在某一種類的電子設備之間可能使用不同的操作系統(tǒng),諸如在移動電話上使用的操作系統(tǒng)可以包括蘋果(Apple)公司的iOS、谷歌(Google)公司的安卓(Android)、和微軟(Microsoft)公司的視窗電話(WP)等。
[0004]由于操作系統(tǒng)之間的不一致,所以導致在某一特定操作系統(tǒng)中開發(fā)的應用程序無法運行在其他操作系統(tǒng)中。例如,針對iOS或WP操作系統(tǒng)所開發(fā)的應用程序無法在Android操作系統(tǒng)中安裝和執(zhí)行。
[0005]針對這個問題,現(xiàn)有的解決方案是在Android環(huán)境下重新編譯在iOS或WP環(huán)境下開發(fā)的該應用程序的代碼,然后將編譯的用于Android操作系統(tǒng)的新程序安裝到Android手機上。也就是說,在現(xiàn)有技術(shù)中必須針對每一種操作系統(tǒng)來為同一應用程序重新地編寫代碼并進行調(diào)試。
[0006]這個解決方案的缺點在于:1)需要應用程序開發(fā)商重新將一個應用程序編譯成適于在各種操作系統(tǒng)中運行的應用程序;2)這個解決方案只能面向第三方應用程序開發(fā)商,向其提供開發(fā)包,并且由其根據(jù)該開發(fā)包來編譯相應的應用程序,然而最終用戶無法完成上述重新編譯操作;3)由于用戶接口(UI)庫的問題,該應用程序在Android操作系統(tǒng)中的實現(xiàn)很難做到與在iOS操作系統(tǒng)中一樣的用戶體驗。
[0007]這樣,上述缺點導致不利于該解決方案進行發(fā)布、推廣和流行等。
【發(fā)明內(nèi)容】
[0008]為了解決上述技術(shù)問題,根據(jù)本發(fā)明的一個方面,提供了一種用于執(zhí)行應用程序的方法,所述應用程序具有一文件格式,所述文件格式至少包括第一文件格式和第二文件格式,所述第一文件格式適于通過第一操作系統(tǒng)中的第一執(zhí)行器來執(zhí)行,所述第二文件格式適于通過第二操作系統(tǒng)中的第二執(zhí)行器來執(zhí)行,并且所述方法應用于電子設備,在所述電子設備中當前正在執(zhí)行所述第一操作系統(tǒng),其特征在于,所述方法包括:確定所述應用程序的文件格式;根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器;以及通過所述執(zhí)行器來執(zhí)行所述應用程序。
[0009]此外,根據(jù)本發(fā)明的另一方面,提供了一種用于執(zhí)行應用程序的裝置,所述應用程序具有一文件格式,所述文件格式至少包括第一文件格式和第二文件格式,所述第一文件格式適于通過第一操作系統(tǒng)中的第一執(zhí)行器來執(zhí)行,所述第二文件格式適于通過第二操作系統(tǒng)中的第二執(zhí)行器來執(zhí)行,并且所述裝置應用于電子設備,在所述電子設備中當前正在執(zhí)行所述第一操作系統(tǒng),其特征在于,所述裝置包括:確定單元,用于確定所述應用程序的文件格式;以及調(diào)用單元,用于根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器,以便通過所述執(zhí)行器來執(zhí)行所述應用程序。
[0010]與現(xiàn)有技術(shù)相比,采用根據(jù)本發(fā)明的用于執(zhí)行應用程序的方法和裝置,可以當在電子設備中執(zhí)行應用程序時,首先確定該應用程序的文件格式,然后根據(jù)文件格式調(diào)用與之相應的執(zhí)行器,最終利用該執(zhí)行器來執(zhí)行該應用程序。因此,在本發(fā)明中,可以在無需進行重新編譯的情況下,在某一特定操作系統(tǒng)中運行在其他操作系統(tǒng)中開發(fā)的應用程序。
[0011]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0012]附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0013]圖1圖示了根據(jù)本發(fā)明的用于執(zhí)行應用程序的方法。
[0014]圖2圖示了根據(jù)本發(fā)明的用于執(zhí)行應用程序的裝置。
[0015]圖3圖示了根據(jù)本發(fā)明第一實施例的用于執(zhí)行應用程序的方法。
[0016]圖4圖示了根據(jù)本發(fā)明第一實施例的用于執(zhí)行應用程序的裝置。
[0017]圖5圖示了根據(jù)本發(fā)明第一實施例的電子設備的架構(gòu)。
[0018]圖6圖示了根據(jù)本發(fā)明第二實施例的用于執(zhí)行應用程序的方法。
[0019]圖7圖示了根據(jù)本發(fā)明第二實施例的用于執(zhí)行應用程序的裝置。
[0020]圖8圖示了根據(jù)本發(fā)明第三實施例的用于執(zhí)行應用程序的方法。
[0021]圖9圖示了根據(jù)本發(fā)明第三實施例的用于執(zhí)行應用程序的裝置。
【具體實施方式】
[0022]將參照附圖詳細描述根據(jù)本發(fā)明的各個實施例。這里,需要注意的是,在附圖中,將相同的附圖標記賦予基本上具有相同或類似結(jié)構(gòu)和功能的組成部分,并且將省略關于它們的重復描述。
[0023]在下文中,將參考圖1和圖2來描述根據(jù)本發(fā)明的用于執(zhí)行應用程序的方法和裝置。
[0024]圖1圖示了根據(jù)本發(fā)明的用于執(zhí)行應用程序的方法。
[0025]在圖1所圖示的方法中,所述應用程序具有一文件格式,所述文件格式至少包括第一文件格式和第二文件格式,所述第一文件格式適于通過第一操作系統(tǒng)中的第一執(zhí)行器來執(zhí)行,所述第二文件格式適于通過第二操作系統(tǒng)中的第二執(zhí)行器來執(zhí)行。
[0026]所述方法應用于電子設備,在所述電子設備中當前正在執(zhí)行所述第一操作系統(tǒng)。具體地,如圖1所圖示的,所述方法包括:
[0027]在步驟SllO中,確定所述應用程序的文件格式;
[0028]在步驟S120中,根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器;以及
[0029]在步驟S130中,通過所述執(zhí)行器來執(zhí)行所述應用程序。[0030]圖2圖示了根據(jù)本發(fā)明的用于執(zhí)行應用程序的裝置。
[0031]具體地,如圖2所圖示的,所述裝置200包括:
[0032]確定單元210,用于確定所述應用程序的文件格式;
[0033]調(diào)用單元220,用于根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器,以便通過所述執(zhí)行器來執(zhí)行所述應用程序。
[0034]由此可見,采用根據(jù)本發(fā)明的用于執(zhí)行應用程序的方法和裝置,可以當在電子設備中執(zhí)行應用程序時,首先確定該應用程序的文件格式,然后根據(jù)文件格式調(diào)用與之相應的執(zhí)行器,最終利用該執(zhí)行器來執(zhí)行該應用程序。因此,在本發(fā)明中,可以在無需進行重新編譯的情況下,在某一特定操作系統(tǒng)中運行在其他操作系統(tǒng)中開發(fā)的應用程序。
[0035]在下文中,將參考圖3到圖5來描述根據(jù)本發(fā)明第一實施例的用于執(zhí)行應用程序的方法和裝置。
[0036]針對現(xiàn)有技術(shù)中的問題,本發(fā)明人觀察到:盡管在同一類型的電子設備之間可能使用不同的操作系統(tǒng),但是在大多數(shù)情況下,同一類型的電子設備通常使用相同的處理單元,也就是說,在同一類型的電子設備上針對不同操作系統(tǒng)開發(fā)的應用程序所使用的指令集應該是相同的。
[0037]仍然以移動電話為例,雖然在移動電話上使用的操作系統(tǒng)可以包括iOS、Android、和WP等,但是在這些操作系統(tǒng)環(huán)境下開發(fā)的應用程序都是運行在高級精簡指令集計算機機器(ARM)處理器上的,即,這些應用程序所采用的二進制代碼的格式都是相同的,只是各個操作系統(tǒng)的執(zhí)行文件的文件格式不一樣而已,例如其中iOS操作系統(tǒng)采用mach-o文件格式,Android操作系統(tǒng)采用elf文件格式,而WP操作系統(tǒng)采用pe/coff文件格式。
[0038]因此,基于上述原理,在本發(fā)明的第一實施例中,本發(fā)明人設想出:在同一類型的電子設備上,除了利用在某一操作系統(tǒng)中固有安裝的執(zhí)行器來在該操作系統(tǒng)中執(zhí)行符合該操作系統(tǒng)文件格式的應用程序之外,還可以在該操作系統(tǒng)中開發(fā)出一個或多個符合其他操作系統(tǒng)文件格式的執(zhí)行器,以便能夠在該操作系統(tǒng)中執(zhí)行符合其他操作系統(tǒng)文件格式的應用程序。
[0039]圖3圖示了根據(jù)本發(fā)明第一實施例的用于執(zhí)行應用程序的方法,而圖4圖示了根據(jù)本發(fā)明第一實施例的用于執(zhí)行應用程序的裝置。
[0040]圖3所圖示的根據(jù)本發(fā)明第一實施例的用于執(zhí)行應用程序的方法可以應用于圖4所圖示的裝置200。如圖4所圖示的,該裝置200包括:確定單元210、調(diào)用單元220、第二執(zhí)行器實現(xiàn)單元230、第一執(zhí)行器240、和第二執(zhí)行器250。
[0041]如圖3所圖示的,根據(jù)本發(fā)明第一實施例的用于執(zhí)行應用程序的方法包括:
[0042]在步驟S210中,用于確定所述應用程序的文件格式。
[0043]具體地,根據(jù)本發(fā)明第一實施例的用于執(zhí)行應用程序的方法和裝置可以應用于各種電子設備(例如,移動電話)。在移動電話中例如安裝有并且正在執(zhí)行第一操作系統(tǒng)(例如,Android)。當用戶希望使用該移動電話來執(zhí)行某個應用程序時,裝置200開始進行用于執(zhí)行應用程序的方法。
[0044]首先,在裝置200中,確定單元210判斷該應用程序的文件格式是什么。換言之,確定單元210判斷該應用程序的文件格式是符合第一操作系統(tǒng)規(guī)范的第一文件格式(用于Android操作系統(tǒng)的elf文件格式),還是符合第二操作系統(tǒng)規(guī)范的第二文件格式(例如,用于iOS操作系統(tǒng)的mach-o文件格式)。
[0045]當確定單元210判斷出所述應用程序的文件格式是所述第一文件格式時,該方法進行到步驟S220 ;否則,該方法進行到步驟S240。
[0046]在步驟S220中,當?shù)谝晃募袷綍r,在第一操作系統(tǒng)中調(diào)用第一執(zhí)行器。
[0047]具體地,當確定單元210在步驟S210中判斷出所述應用程序的文件格式是所述第一文件格式時,確定單元210向調(diào)用單元220通知該判斷結(jié)果。調(diào)用單元220根據(jù)該判斷結(jié)果來在所述第一操作系統(tǒng)中調(diào)用所述第一執(zhí)行器240,其中所述第一執(zhí)行器240用于執(zhí)行符合第一操作系統(tǒng)規(guī)范的第一文件格式,它是在所述第一操作系統(tǒng)中默認安裝,并且隨著第一操作系統(tǒng)的啟動而自動啟動的。
[0048]在步驟S230中,通過第一執(zhí)行器來執(zhí)行應用程序。
[0049]具體地,在第一操作系統(tǒng)中固有的第一執(zhí)行器240執(zhí)行具有第一文件格式的應用程序。
[0050]例如,按照現(xiàn)有技術(shù)中一樣地,在用于Android操作系統(tǒng)的第一執(zhí)行器240中,通過第一解析器(未示出)來解析Android操作系統(tǒng)中的elf文件格式,以便獲取所述應用程序的頭部、指令集、和執(zhí)行所述應用程序所需的動態(tài)鏈接庫。然后,通過第一鏈接器(未示出)來訪問在Android操作系統(tǒng)中默認安裝的第一動態(tài)鏈接庫集合,并且從該集合中加載執(zhí)行所述應用程序所需的動態(tài)鏈接庫。最后,通過所加載的動態(tài)鏈接庫,并且根據(jù)所述頭部來執(zhí)行所述指令集,從而運行該應用程序。
[0051]在步驟S240中,當?shù)诙募袷綍r,在第一操作系統(tǒng)中調(diào)用第二執(zhí)行器。
[0052]具體地,當確定單元210在步驟S210中判斷出所述應用程序的文件格式是所述第二文件格式時,調(diào)用單元220根據(jù)該判斷結(jié)果來在所述第一操作系統(tǒng)中調(diào)用所述第二執(zhí)行器250,其中所述第二執(zhí)行器250用于執(zhí)行符合第二操作系統(tǒng)規(guī)范的第二文件格式,并且在現(xiàn)有技術(shù)中它不是在所述第一操作系統(tǒng)中默認安裝、而是在所述第二操作系統(tǒng)中默認安裝的,并隨著第二操作系統(tǒng)的啟動而自動啟動。
[0053]在本發(fā)明的第一實施例中,通過第二執(zhí)行器實現(xiàn)單元230來預先在所述第一操作系統(tǒng)中實現(xiàn)所述第二執(zhí)行器250,并且使得所述第二執(zhí)行器250能夠隨著第一操作系統(tǒng)的啟動而自動啟動。
[0054]例如,預先地,該第二執(zhí)行器實現(xiàn)單元230實現(xiàn)所述第二文件格式的第二解析器和第二鏈接器,將與第二操作系統(tǒng)相關的第二動態(tài)鏈接庫集合復制到第一操作系統(tǒng)中,實現(xiàn)在第二操作系統(tǒng)中與所述電子設備的各個硬件裝置(諸如,移動電話上的顯示器、揚聲器、觸控裝置、相機、通信模塊)相關聯(lián)的驅(qū)動程序,并且將第二操作系統(tǒng)中的這些驅(qū)動程序映射到第一操作系統(tǒng)中。
[0055]在步驟S250中,通過第二執(zhí)行器來執(zhí)行應用程序。
[0056]具體地,在第一操作系統(tǒng)中預先安裝的第二執(zhí)行器250執(zhí)行具有第二文件格式的應用程序。
[0057]例如,在用于iOS操作系統(tǒng)的第二執(zhí)行器250中,通過第二解析器(未示出)來解析iOS操作系統(tǒng)中的mach-0文件格式,以便獲取所述應用程序的頭部、指令集、和執(zhí)行所述應用程序所需的動態(tài)鏈接庫。
[0058]此時,第二解析器進一步解析符合mach-o目標可執(zhí)行文件格式的該應用程序的頭部(header),以獲得相關的頭部信息。所述頭部信息包括:魔數(shù)(magic)、中央處理單元類型(cputype)、中央處理單元子類型(cpusubtype)、文件類型(fiIetype)、命令數(shù)目(ncmds)、命令尺寸(sizeofcmds)、和標志(flags)等字段。同時,第二解析器進一步解析該應用程序的指令集,以獲得mach-o目標可執(zhí)行文件的數(shù)據(jù)段(data)、代碼段(text)等。第二解析器還可以進一步解析mach-o目標執(zhí)行文件的動態(tài)鏈接庫(動態(tài)依賴庫)。其中,該iOS的動態(tài)鏈接庫為dylib文件,而WP的動態(tài)鏈接庫為dll文件。
[0059]然后,該第二解析器按照上述方法相應解析這些動態(tài)鏈接庫,并且通過第二鏈接器(未示出)來訪問在Android操作系統(tǒng)中預先復制的第二動態(tài)鏈接庫集合,并且從該集合中加載執(zhí)行所述應用程序所需的動態(tài)鏈接庫。最后,通過所加載的動態(tài)鏈接庫,并且根據(jù)各種頭部信息,來執(zhí)行包括數(shù)據(jù)段和代碼段的所述指令集,從而運行該應用程序。
[0060]特別地,當在執(zhí)行該應用程序時,如果需要與所述電子設備的某個硬件裝置進行交互,則第二執(zhí)行器250還獲取與所述硬件裝置相關聯(lián)的驅(qū)動程序,并且通過所述驅(qū)動程序來運行該應用程序,以便能夠訪問該硬件裝置。
[0061]需要說明的是,盡管此處通過將Android操作系統(tǒng)作為第一操作系統(tǒng)并將iOS操作系統(tǒng)作為第二操作系統(tǒng)的示例來說明本發(fā)明,但是,本領域技術(shù)人員能夠理解的是,本發(fā)明不限于此。而是,可以將Android、iOS、WP操作系統(tǒng)和諾基亞(Nokia)公司的塞班(Symbian)操作系統(tǒng)等之一實現(xiàn)為第一操作系統(tǒng),將其余中的另一操作系統(tǒng)實現(xiàn)為第二操作系統(tǒng)。
[0062]此外,在用于執(zhí)行應用程序的裝置中不限于只采用兩個執(zhí)行器,而是可以在其中實現(xiàn)符合各種操作系統(tǒng)的多個執(zhí)行器,以便在電子設備中能夠運行符合各種操作系統(tǒng)文件格式的應用程序。
[0063]圖5圖示了根據(jù)本發(fā)明第一實施例的電子設備的架構(gòu)。
[0064]如圖5所圖示的,當想在Android操作系統(tǒng)的移動電話中運行符合Android、i0S、WP操作系統(tǒng)文件格式的應用程序、以及符合Java規(guī)范的應用程序時,該電子設備的架構(gòu)包括三層:Linux驅(qū)動器(Driver)層、Linux內(nèi)核(Kernel)層、包括Java虛擬機(VM)、Elf文件格式加載鏈接器、mach-o文件格式加載鏈接器、pe/coff文件格式加載鏈接器的執(zhí)行器層。因此,利用此架構(gòu),用戶可以在僅僅安裝了 Android操作系統(tǒng)的移動電話中,通過Java虛擬機來運行Android Java的應用程序,通過Elf文件格式加載鏈接器來運行Android本地應用程序,通過mach-o文件格式加載鏈接器來運行iOS本地應用程序,通過pe/coff文件格式加載鏈接器來運行WP本地應用程序。
[0065]由此可見,采用根據(jù)本發(fā)明第一實施例的用于執(zhí)行應用程序的方法和裝置,可以按照可執(zhí)行程序的應用二進制接口(ABI)標準,在某一操作系統(tǒng)中開發(fā)出一個或多個符合其他操作系統(tǒng)文件格式的執(zhí)行器,從而當在電子設備中執(zhí)行應用程序時,首先確定該應用程序的文件格式是否為當前操作系統(tǒng)默認的文件格式,如果是,則調(diào)用默認的執(zhí)行器來執(zhí)行該應用程序;否則根據(jù)該文件格式調(diào)用在該操作系統(tǒng)中預先安裝并啟用的相應執(zhí)行器,最終利用該執(zhí)行器來執(zhí)行該應用程序。因此,在本發(fā)明的第一實施例中,用戶可以在安裝了某一特定操作系統(tǒng)的電子設備中運行在其他各種操作系統(tǒng)中開發(fā)的應用程序,從而實現(xiàn)了跨各種操作系統(tǒng)平臺地運行應用程序,充分提高了用戶體驗。
[0066]在下文中,將參考圖6和圖7來描述根據(jù)本發(fā)明第二實施例的用于執(zhí)行應用程序的方法和裝置。
[0067]圖6圖示了根據(jù)本發(fā)明第二實施例的用于執(zhí)行應用程序的方法,而圖7圖示了根據(jù)本發(fā)明第二實施例的用于執(zhí)行應用程序的裝置。
[0068]圖6所圖示的根據(jù)本發(fā)明第二實施例的用于執(zhí)行應用程序的方法可以應用于圖7所圖示的裝置200。如圖7所圖示的,該裝置200包括:確定單元210、調(diào)用單元220、虛擬機啟動單兀260、第一執(zhí)行器240、和第二執(zhí)行器250。
[0069]如圖6所圖示的,根據(jù)本發(fā)明第二實施例的用于執(zhí)行應用程序的方法包括:
[0070]在步驟S310中,用于確定所述應用程序的文件格式。
[0071]在步驟S320中,當?shù)谝晃募袷綍r,在第一操作系統(tǒng)中調(diào)用第一執(zhí)行器。
[0072]在步驟S330中,通過第一執(zhí)行器來執(zhí)行應用程序。
[0073]步驟S310-S330與第一實施例中的步驟S210-S230相同,并因而省略其詳細描述。
[0074]在步驟S340中,當?shù)诙募袷綍r,在第一操作系統(tǒng)中調(diào)用第二執(zhí)行器。
[0075]具體地,當確定單元210在步驟S310中判斷出所述應用程序的文件格式是所述第二文件格式時,調(diào)用單元220根據(jù)該判斷結(jié)果通知虛擬機啟動單元260。
[0076]該虛擬機啟動單元260在所述第一操作系統(tǒng)中運行虛擬機,在所述虛擬機中執(zhí)行與第二文件格式對應的所述第二操作系統(tǒng),并且在所述第二操作系統(tǒng)啟動的同時,在所述第二操作系統(tǒng)中默認安裝的所述第二執(zhí)行器250自動啟動。
[0077]在步驟S350中,通過第二執(zhí)行器來執(zhí)行應用程序。
[0078]具體地,在啟動于虛擬機中的第二操作系統(tǒng)中固有的第二執(zhí)行器250執(zhí)行具有第二文件格式的應用程序。
[0079]例如,按照現(xiàn)有技術(shù)中一樣地,在用于iOS操作系統(tǒng)的第二執(zhí)行器250中,通過第二解析器來解析Android操作系統(tǒng)中的elf文件格式,并通過第二鏈接器來訪問在iOS操作系統(tǒng)中默認安裝的第二動態(tài)鏈接庫集合,并且從該集合中加載執(zhí)行所述應用程序所需的動態(tài)鏈接庫。最后,通過所加載的動態(tài)鏈接庫,并且根據(jù)所述頭部來執(zhí)行所述指令集,從而運行該應用程序。
[0080]由此可見,采用根據(jù)本發(fā)明第二實施例的用于執(zhí)行應用程序的方法和裝置,當在電子設備中執(zhí)行應用程序時,首先確定該應用程序的文件格式是否為當前操作系統(tǒng)默認的文件格式,如果是,則調(diào)用默認的執(zhí)行器來執(zhí)行該應用程序;否則啟動虛擬機,并且在該虛擬機中執(zhí)行與該文件格式對應的操作系統(tǒng),從而在該操作系統(tǒng)中調(diào)用默認的執(zhí)行器,最終利用該執(zhí)行器來執(zhí)行該應用程序。因此,在本發(fā)明的第二實施例中,用戶可以在安裝了某一特定操作系統(tǒng)的電子設備中運行在其他各種操作系統(tǒng)中開發(fā)的應用程序,而無需在該特定操作系統(tǒng)中添加其他操作系統(tǒng)的執(zhí)行器,從而在提高用戶體驗的同時,保證了特定操作系統(tǒng)的完整性,并且解決了由于用戶接口(UI)庫的問題,該應用程序在其他操作系統(tǒng)中的實現(xiàn)很難做到與在最初設計的操作系統(tǒng)中一樣的用戶體驗。
[0081]顯然的是,在本發(fā)明的第二實施例中,并不僅僅限于在一種電子設備中運行在該電子設備的不同操作系統(tǒng)中開發(fā)的各個應用程序,而是可以在一種電子設備中運行針對完全不同的另一電子設備的操作系統(tǒng)所開發(fā)的應用程序。例如,通過虛擬機的方式,可以在Android操作系統(tǒng)的移動電話中運行iOS操作系統(tǒng)的應用程序,甚至可以通過用于虛擬計算機環(huán)境的虛擬機來運行視窗XP (Windows XP)、視窗7 (Windows 7)、Linux、Unix等各種操作系統(tǒng)中的應用程序。
[0082]在下文中,將參考圖8和圖9來描述根據(jù)本發(fā)明第三實施例的用于執(zhí)行應用程序的方法和裝置。
[0083]圖8圖示了根據(jù)本發(fā)明第三實施例的用于執(zhí)行應用程序的方法,而圖9圖示了根據(jù)本發(fā)明第三實施例的用于執(zhí)行應用程序的裝置。
[0084]圖8所圖示的根據(jù)本發(fā)明第三實施例的用于執(zhí)行應用程序的方法可以應用于圖9所圖示的裝置200。如圖9所圖示的,該裝置200包括:確定單元210、調(diào)用單元220、操作系統(tǒng)切換單元270、第一執(zhí)行器240、和第二執(zhí)行器250。此時,在電子設備中至少安裝有第一操作系統(tǒng)和第二操作系統(tǒng),并且當前正在執(zhí)行所述第一操作系統(tǒng)。
[0085]如圖8所圖示的,根據(jù)本發(fā)明第三實施例的用于執(zhí)行應用程序的方法包括:
[0086]在步驟S410中,用于確定所述應用程序的文件格式。
[0087]在步驟S420中,當?shù)谝晃募袷綍r,在第一操作系統(tǒng)中調(diào)用第一執(zhí)行器。
[0088]在步驟S430中,通過第一執(zhí)行器來執(zhí)行應用程序。
[0089]步驟S410-S430與第一實施例中的步驟S210-S230相同,并因而省略其詳細描述。
[0090]在步驟S440中,當?shù)诙募袷綍r,在第一操作系統(tǒng)中調(diào)用第二執(zhí)行器。
[0091]具體地,當確定單元210在步驟S410中判斷出所述應用程序的文件格式是所述第二文件格式時,調(diào)用單元220根據(jù)該判斷結(jié)果通知操作系統(tǒng)切換單元270。
[0092]該操作系統(tǒng)切換單元270將所述電子設備從所述第一操作系統(tǒng)中切換到所述第二操作系統(tǒng)。例如,該操作系統(tǒng)切換單元270對當前的第一操作系統(tǒng)執(zhí)行關機操作,并且在將第一操作系統(tǒng)關閉之后,啟動與所述第二文件格式對應的第二操作系統(tǒng)。在所述第二操作系統(tǒng)啟動的同時,在所述第二操作系統(tǒng)中默認安裝的所述第二執(zhí)行器250自動啟動。
[0093]在步驟S450中,通過第二執(zhí)行器來執(zhí)行應用程序。
[0094]步驟S450與第二實施例中的步驟S350相同,并因而省略其詳細描述。
[0095]優(yōu)選地,在步驟S440中,該操作系統(tǒng)切換單元270在對當前的第一操作系統(tǒng)執(zhí)行關機操作之前,首先將在電子設備中當前正在運行的應用程序的清單保持在存儲器中。然后,當該操作系統(tǒng)切換單元270啟動第二操作系統(tǒng)之后,該操作系統(tǒng)切換單元270向第二執(zhí)行器250通知上述清單,使得第二執(zhí)行器250優(yōu)選地在第二操作系統(tǒng)中打開該清單,獲取清單中每個應用程序的標識符,并且在存儲器中查找與上述標識符對應的、具有第二文件格式的每個應用程序,并且執(zhí)行這些應用程序,使得用戶可以在切換到第二操作系統(tǒng)之后,能夠獲得與在切換之前相同的操作場景。
[0096]由此可見,采用根據(jù)本發(fā)明第三實施例的用于執(zhí)行應用程序的方法和裝置,當在電子設備中執(zhí)行應用程序時,首先確定該應用程序的文件格式是否為當前操作系統(tǒng)默認的文件格式,如果是,則調(diào)用默認的執(zhí)行器來執(zhí)行該應用程序;否則將當前操作系統(tǒng)切換為與該應用程序的文件格式對應的操作系統(tǒng),從而在該操作系統(tǒng)中調(diào)用默認的執(zhí)行器,最終利用該執(zhí)行器來執(zhí)行該應用程序。因此,在本發(fā)明的第三實施例中,在安裝了多個操作系統(tǒng)的電子設備中,用戶可以在這些操作系統(tǒng)中進行自動切換,以便在特定操作系統(tǒng)中執(zhí)行針對該特定操作系統(tǒng)開發(fā)的應用程序,而無需受到用于運行某一應用程序的操作系統(tǒng)的限制,并且與第二實施例中一樣,解決了由于用戶接口(UI)庫的問題,該應用程序在其他操作系統(tǒng)中的實現(xiàn)很難做到與在最初設計的操作系統(tǒng)中一樣的用戶體驗。[0097]需要說明的是,盡管此處通過將移動電話作為電子設備的示例來說明本發(fā)明,但是,本領域技術(shù)人員能夠理解的是,本發(fā)明不限于此。而是,還可以將本發(fā)明應用于其他的電子設備,例如,筆記本計算機、平板電腦、移動電話、多媒體播放器、個人數(shù)字助理等。
[0098]通過以上的實施方式的描述,本領域的技術(shù)人員可以清楚地了解到本發(fā)明可借助于軟件加必需的硬件平臺的方式來實現(xiàn),當然也可以全部通過軟件、或硬件來實施?;谶@樣的理解,本發(fā)明的技術(shù)方案對【背景技術(shù)】做出貢獻的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁盤、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
[0099]在上面詳細描述了本發(fā)明的各個實施例。然而,本領域技術(shù)人員應該理解,在不脫離本發(fā)明的原理和精神的情況下,可對這些實施例進行各種修改,組合或子組合,并且這樣的修改應落入本發(fā)明的范圍內(nèi)。
【權(quán)利要求】
1.一種用于執(zhí)行應用程序的方法,所述應用程序具有一文件格式,所述文件格式至少包括第一文件格式和第二文件格式,所述第一文件格式適于通過第一操作系統(tǒng)中的第一執(zhí)行器來執(zhí)行,所述第二文件格式適于通過第二操作系統(tǒng)中的第二執(zhí)行器來執(zhí)行,并且 所述方法應用于電子設備,在所述電子設備中當前正在執(zhí)行所述第一操作系統(tǒng),其特征在于,所述方法包括: 確定所述應用程序的文件格式; 根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器;以及 通過所述執(zhí)行器來執(zhí)行所述應用程序。
2.根據(jù)權(quán)利要求1的方法,其特征在于,根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器的步驟包括: 當確定出所述應用程序的文件格式是所述第一文件格式時,在所述第一操作系統(tǒng)中調(diào)用所述第一執(zhí)行器;以及 當確定出所述應用程序的文件格式是所述第二文件格式時,在所述第一操作系統(tǒng)中調(diào)用所述第二執(zhí)行器。
3.根據(jù)權(quán)利要求2的方法,其特征在于,在調(diào)用所述第二執(zhí)行器的步驟之前,所述方法還包括: 預先在所述第一操作系統(tǒng)中實現(xiàn)所述第二執(zhí)行器。
4.根據(jù)權(quán)利要求3的方法,其特征在于,實現(xiàn)所述第二執(zhí)行器的步驟包括: 實現(xiàn)所述第二文件格式的第二解析器和第二鏈接器;以及 將與第二操作系統(tǒng)相關的第二動態(tài)鏈接庫集合復制到第一操作系統(tǒng)中。
5.根據(jù)權(quán)利要求4的方法,其特征在于,通過所述執(zhí)行器來執(zhí)行所述應用程序的步驟包括: 當確定出所述應用程序的文件格式是所述第二文件格式時,通過所述第二解析器來解析具有所述第二文件格式的所述應用程序,以便獲取所述應用程序的頭部、指令集、和執(zhí)行所述應用程序所需的動態(tài)鏈接庫; 通過所述第二鏈接器來從第二動態(tài)鏈接庫集合中加載執(zhí)行所述應用程序所需的動態(tài)鏈接庫;以及 通過所加載的動態(tài)鏈接庫,并且根據(jù)所述頭部來執(zhí)行所述指令集。
6.根據(jù)權(quán)利要求1的方法,其特征在于,根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器的步驟包括: 當確定出所述應用程序的文件格式是所述第一文件格式時,在所述第一操作系統(tǒng)中調(diào)用所述第一執(zhí)行器; 當確定出所述應用程序的文件格式是所述第二文件格式時,在所述第一操作系統(tǒng)中運行虛擬機; 在所述虛擬機中執(zhí)行所述第二操作系統(tǒng);以及 在所述第二操作系統(tǒng)中調(diào)用所述第二執(zhí)行器。
7.根據(jù)權(quán)利要求1的方法,其特征在于,根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器的步驟包括: 當確定出所述應用程序的文件格式是所述第一文件格式時,在所述第一操作系統(tǒng)中調(diào)用所述第一執(zhí)行器; 當確定出所述應用程序的文件格式是所述第二文件格式時,將所述電子設備從所述第一操作系統(tǒng)中切換到所述第二操作系統(tǒng);以及 在所述第二操作系統(tǒng)中調(diào)用所述第二執(zhí)行器。
8.一種用于執(zhí)行應用程序的裝置,所述應用程序具有一文件格式,所述文件格式至少包括第一文件格式和第二文件格式,所述第一文件格式適于通過第一操作系統(tǒng)中的第一執(zhí)行器來執(zhí)行,所述第二文件格式適于通過第二操作系統(tǒng)中的第二執(zhí)行器來執(zhí)行,并且 所述裝置應用于電子設備,在所述電子設備中當前正在執(zhí)行所述第一操作系統(tǒng),其特征在于,所述裝置包括: 確定單元,用于確定所述應用程序的文件格式;以及 調(diào)用單元,用于根據(jù)所述應用程序的文件格式來調(diào)用執(zhí)行器,以便通過所述執(zhí)行器來執(zhí)行所述應用程序。
9.根據(jù)權(quán)利要求8的裝置,其特征在于, 當所述確定單元確定出所述應用程序的文件格式是所述第一文件格式時,所述調(diào)用單元在所述第一操作系統(tǒng)中調(diào)用所述第一執(zhí)行器;以及 當所述確定單元確定出所述應用程序的文件格式是所述第二文件格式時,所述調(diào)用單元在所述第一操作系統(tǒng)中調(diào)用所述第二執(zhí)行器。
10.根據(jù)權(quán)利要求9的裝置,其特征在于,所述裝置還包括: 第二執(zhí)行器實現(xiàn)單元,用于在所`述調(diào)用單元調(diào)用所述第二執(zhí)行器的步驟之前,預先在所述第一操作系統(tǒng)中實現(xiàn)所述第二執(zhí)行器。
11.根據(jù)權(quán)利要求10的裝置,其特征在于,所述第二執(zhí)行器實現(xiàn)單元實現(xiàn)所述第二文件格式的第二解析器和第二鏈接器,并且將與第二操作系統(tǒng)相關的第二動態(tài)鏈接庫集合復制到第一操作系統(tǒng)中。
12.根據(jù)權(quán)利要求11的裝置,其特征在于, 當所述確定單元確定出所述應用程序的文件格式是所述第二文件格式時,所述調(diào)用單元在所述第一操作系統(tǒng)中調(diào)用所述第二執(zhí)行器,使得所述第二執(zhí)行器通過所述第二解析器來解析具有所述第二文件格式的所述應用程序,以便獲取所述應用程序的頭部、指令集、和執(zhí)行所述應用程序所需的動態(tài)鏈接庫,通過所述第二鏈接器來從第二動態(tài)鏈接庫集合中加載執(zhí)行所述應用程序所需的動態(tài)鏈接庫,通過所加載的動態(tài)鏈接庫,并且根據(jù)所述頭部來執(zhí)行所述指令集。
13.根據(jù)權(quán)利要求8的裝置,其特征在于, 當所述確定單元確定出所述應用程序的文件格式是所述第一文件格式時,所述調(diào)用單元在所述第一操作系統(tǒng)中調(diào)用所述第一執(zhí)行器;并且 當所述確定單元確定出所述應用程序的文件格式是所述第二文件格式時,所述調(diào)用單元在所述第一操作系統(tǒng)中運行虛擬機,在所述虛擬機中執(zhí)行所述第二操作系統(tǒng),并且在所述第二操作系統(tǒng)中調(diào)用所述第二執(zhí)行器。
14.根據(jù)權(quán)利要求8的裝置,其特征在于, 當所述確定單元確定出所述應用程序的文件格式是所述第一文件格式時,所述調(diào)用單元在所述第一操作系統(tǒng)中調(diào)用所述第一執(zhí)行器;并且當所述確定單元確定出所述應用程序的文件格式是所述第二文件格式時,所述調(diào)用單元將所述電子設備從所述第一操作系統(tǒng)中切換到所述第二操作系統(tǒng),并且在所述第二操作系統(tǒng)中調(diào)用所述第二執(zhí)行器。`
【文檔編號】G06F9/44GK103488466SQ201210192104
【公開日】2014年1月1日 申請日期:2012年6月11日 優(yōu)先權(quán)日:2012年6月11日
【發(fā)明者】陸建強 申請人:聯(lián)想(北京)有限公司