本發(fā)明涉及通信技術,尤其涉及一種應用的兼容性處理方法及裝置。
背景技術:
隨著終端用戶的增長,產(chǎn)品上不斷增加或嘗試新的功能,開發(fā)上面臨代碼量變大的問題和動態(tài)發(fā)布功能的需求,于是出現(xiàn)了插件化應用,即把一些自己產(chǎn)品的功能或第三方功能作為插件發(fā)布,由應用作為容器來進行加載,形成新的應用。為了滿足用戶的需求,以及提供更加良好的用戶體驗,需要不斷地對應用或者插件進行升級。
然而,由于應用與插件的升級會存在不同步的問題,因此,可能會出現(xiàn)應用與插件之間不兼容的問題,使得應用與插件之間的調(diào)用失敗,從而導致了應用的可靠性的降低。
技術實現(xiàn)要素:
本發(fā)明的多個方面提供一種應用的兼容性處理方法及裝置,用以提高應用的可靠性。
本發(fā)明的一方面,提供一種應用的兼容性處理方法,包括:
獲取應用與插件之間的調(diào)用指令;
根據(jù)所述調(diào)用指令,獲得所述應用的版本號和所述插件的版本號;
根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令。
如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述獲取應用與插件之間的調(diào)用指令,包括:
獲取所述應用調(diào)用所述插件的調(diào)用指令;或者
獲取所述插件調(diào)用所述應用的調(diào)用指令。
如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令,包括:
若所述應用的版本號和所述插件的版本號滿足版本兼容規(guī)則,允許所述應用與插件執(zhí)行所述調(diào)用指令;
若所述應用的版本號和所述插件的版本號不滿足版本兼容規(guī)則,禁止所述應用與插件執(zhí)行所述調(diào)用指令。
如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述若所述應用的版本號和所述插件的版本號不滿足版本兼容規(guī)則,禁止所述應用與插件執(zhí)行所述調(diào)用指令之前,同時或者之后,還包括:
刪除所述應用,下載與未刪除的插件的版本號所對應的應用;或者,
刪除所述插件,下載與未刪除的應用的版本號所對應的插件。
如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述版本兼容規(guī)則,包括:
所述應用的主版本號與所述插件的主版本號相同,且所述應用的次版本號大于或等于所述插件的次版本號。
本發(fā)明的另一方面,提供一種應用的兼容性處理裝置,包括:
獲取單元,用于獲取應用與插件之間的調(diào)用指令;
分析單元,用于根據(jù)所述調(diào)用指令,獲得所述應用的版本號和所述插件的版本號;
控制單元,用于根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令。
如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述獲取單元,具體用于
獲取所述應用調(diào)用所述插件的調(diào)用指令;或者
獲取所述插件調(diào)用所述應用的調(diào)用指令。
如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述控制單元,具體用于
若所述應用的版本號和所述插件的版本號滿足版本兼容規(guī)則,允許所述應用與插件執(zhí)行所述調(diào)用指令;
若所述應用的版本號和所述插件的版本號不滿足版本兼容規(guī)則,禁止所述應用與插件執(zhí)行所述調(diào)用指令。
如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述控制單元,還用于
刪除所述應用,下載與未刪除的插件的版本號所對應的應用;或者,
刪除所述插件,下載與未刪除的應用的版本號所對應的插件。
如上所述的方面和任一可能的實現(xiàn)方式,進一步提供一種實現(xiàn)方式,所述版本兼容規(guī)則,包括:
所述應用的主版本號與所述插件的主版本號相同,且所述應用的次版本號大于或等于所述插件的次版本號。
由上述技術方案可知,本發(fā)明實施例通過獲取應用與插件之間的調(diào)用指令,進而根據(jù)所述調(diào)用指令,獲得所述應用的版本號和所述插件的版本號,使得能夠根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令,由于不再直接執(zhí)行應用與插件之間的調(diào)用指令,而是根據(jù)所述應用的版本號和所述插件的版本號,對應用與插件之間的調(diào)用指令的執(zhí)行進行控制,使得在出現(xiàn)應用與插件之間不兼容的問題時能夠及時采取相應的措施進行相關的控制處理,從而提高了應用的可靠性。
另外,采用本發(fā)明所提供的技術方案,采用預先設置的版本兼容規(guī)則,對應用與插件之間的調(diào)用指令的執(zhí)行進行控制,能夠有效避免由于應用與插件之間的不兼容而導致的應用與插件之間的調(diào)用失敗的技術問題,能夠進一步提高應用的可靠性和效率。
另外,采用本發(fā)明所提供的技術方案,能夠極大提升用戶體驗。
【附圖說明】
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一實施例提供的應用的兼容性處理方法的流程示意圖;
圖2為本發(fā)明另一實施例提供的應用的兼容性處理裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的全部其他實施例,都屬于本發(fā)明保護的范圍。
需要說明的是,本發(fā)明實施例中所涉及的終端可以包括但不限于手機、個人數(shù)字助理(Personal Digital Assistant,PDA)、無線手持設備、平板電腦(Tablet Computer)、個人電腦(Personal Computer,PC)、MP3播放器、MP4播放器、可穿戴設備(例如,智能眼鏡、智能手表、智能手環(huán)等)等。
另外,本文中術語“和/或”,僅僅是一種描述關聯(lián)對象的關聯(lián)關系,表示可以存在三種關系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,一般表示前后關聯(lián)對象是一種“或”的關系。
圖1為本發(fā)明一實施例提供的應用的兼容性處理方法的流程示意圖,如圖1所示。
101、獲取應用與插件之間的調(diào)用指令。
這里所講的應用,可以為安卓(Android)應用,或者還可以為IOS應用,本實施例對此不進行特別限定。
所謂的插件(Plug-in,又稱addin、add-in、addon或add-on),還可以稱為外掛,是一種遵循一定規(guī)范的應用程序接口編寫出來的程序即代碼。隨著插件功能的更新與調(diào)整,開發(fā)人員可以發(fā)布新版本的插件。加載插件的相關應用的用戶可以對老版本的插件進行升級處理,以獲得新版本的插件。這樣,在用戶所使用的應用中所加載的,可能是升級之前的老版本的插件,或者還可能是升級之后的新版本的插件。
102、根據(jù)所述調(diào)用指令,獲得所述應用的版本號和所述插件的版本號。
所謂的某個軟件對象的版本號例如,應用的版本號、插件的版本號等,是指軟件對象的版本的標識號。每一個軟件對象都有一個版本號,版本號能使用戶了解所使用的軟件對象是否為最新的版本以及它所提供的功能與設置。
通常,每個版本號可以分為主版本號與次版本號兩個部分。正常情況下,應用的主版本號應該與其兼容的插件的主版本號相同,且所述應用的次版本號應該大于或等于所述插件的次版本號。
例如,1.0版本的應用與1.0版本的插件之間可以兼容,1.1版本的應用與1.0版本的插件之間可以兼容。
或者,再例如,1.0版本的應用與2.0版本的插件之間不可以兼容,1.0版本的應用與1.1版本的插件之間不可以兼容。
具體來說,可以根據(jù)所述調(diào)用指令中,所涉及的調(diào)用方軟件對象與被調(diào)用方軟件對象,分別獲取調(diào)用方軟件對象的版本號與被調(diào)用方軟件對象的版本號。其中,根據(jù)調(diào)用方軟件對象與被調(diào)用方軟件對象,獲取調(diào)用方軟件對象的版本號與被調(diào)用方軟件對象的版本號的具體方式,可以采用現(xiàn)有技術中的軟件版本號的獲取方式,詳細描述可以參加現(xiàn)有技術中的相關內(nèi)容,此處不再贅述。
103、根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令。
需要說明的是,101~103的執(zhí)行主體的部分或全部可以為位于本地終端的應用,或者還可以為設置在位于本地終端的應用中的插件或軟件開發(fā)工具包(Software Development Kit,SDK)等功能單元,或者還可以為位于網(wǎng)格側(cè)服務器中的處理引擎,或者還可以為位于網(wǎng)格側(cè)的分布式系統(tǒng),本實施例對此不進行特別限定。
可以理解的是,所述應用可以是安裝在終端上的本地程序(nativeApp),或者還可以是終端上的瀏覽器的一個網(wǎng)頁程序(webApp),本實施例對此不進行特別限定。
這樣,通過獲取應用與插件之間的調(diào)用指令,進而根據(jù)所述調(diào)用指令,獲得所述應用的版本號和所述插件的版本號,使得能夠根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令,由于不再直接執(zhí)行應用與插件之間的調(diào)用指令,而是根據(jù)所述應用的版本號和所述插件的版本號,對應用與插件之間的調(diào)用指令的執(zhí)行進行控制,使得在出現(xiàn)應用與插件之間不兼容的問題時能夠及時采取相應的措施進行相關的控制處理,從而提高了應用的可靠性。
現(xiàn)有技術中,應用或者插件在接收到應用與插件之間的調(diào)用指令之間,直接執(zhí)行該調(diào)用指令。如果應用與插件之間不兼容,則可能會使得應用與插件之間的調(diào)用失敗。所謂的調(diào)用失敗,是指應用無法正常運行。例如,閃退(crash),是應用在運行時遭遇的無法處理的異?;蝈e誤而退出的表現(xiàn),是應用最為常見的調(diào)用失敗。
可選地,在本實施例的一個可能的實現(xiàn)方式中,在101中,具體可以獲取所述應用調(diào)用所述插件的調(diào)用指令,或者還可以獲取所述插件調(diào)用所述應用的調(diào)用指令,本實施例對此不進行特別限定。
可選地,在本實施例的一個可能的實現(xiàn)方式中,在103中,所采用的所述版本兼容規(guī)則,可以包括但不限于如下規(guī)則:
所述應用的主版本號與所述插件的主版本號相同,且所述應用的次版本號大于或等于所述插件的次版本號。
可選地,在本實施例的一個可能的實現(xiàn)方式中,在103中,具體可以若所述應用的版本號和所述插件的版本號滿足版本兼容規(guī)則,則可以允許所述應用與插件執(zhí)行所述調(diào)用指令;若所述應用的版本號和所述插件的版本號不滿足版本兼容規(guī)則,則可以禁止所述應用與插件執(zhí)行所述調(diào)用指令。
在一個具體的實現(xiàn)過程中,若所述應用的版本號和所述插件的版本號不滿足版本兼容規(guī)則,具體可以刪除所述應用,下載與未刪除的插件的版本號所對應的應用,或者還可以刪除所述插件,下載與未刪除的應用的版本號所對應的插件,本實施例對此不進行特別限定。
本實施例中,通過獲取應用與插件之間的調(diào)用指令,進而根據(jù)所述調(diào)用指令,獲得所述應用的版本號和所述插件的版本號,使得能夠根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令,由于不再直接執(zhí)行應用與插件之間的調(diào)用指令,而是根據(jù)所述應用的版本號和所述插件的版本號,對應用與插件之間的調(diào)用指令的執(zhí)行進行控制,使得在出現(xiàn)應用與插件之間不兼容的問題時能夠及時采取相應的措施進行相關的控制處理,從而提高了應用的可靠性。
另外,采用本發(fā)明所提供的技術方案,采用預先設置的版本兼容規(guī)則,對應用與插件之間的調(diào)用指令的執(zhí)行進行控制,能夠有效避免由于應用與插件之間的不兼容而導致的應用與插件之間的調(diào)用失敗的技術問題,能夠進一步提高應用的可靠性和效率。
另外,采用本發(fā)明所提供的技術方案,能夠極大提升用戶體驗。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
圖2為本發(fā)明另一實施例提供的應用的兼容性處理裝置的結(jié)構(gòu)示意圖,如圖2所示。本實施例的應用的兼容性處理裝置可以包括獲取單元21、分析單元22和控制單元23。其中,獲取單元21,用于獲取應用與插件之間的調(diào)用指令;分析單元22,用于根據(jù)所述調(diào)用指令,獲得所述應用的版本號和所述插件的版本號;控制單元23,用于根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令。
需要說明的是,本實施例所提供的應用的兼容性處理裝置的部分或全部可以為位于本地終端的應用,或者還可以為設置在位于本地終端的應用中的插件或軟件開發(fā)工具包(Software Development Kit,SDK)等功能單元,或者還可以為位于網(wǎng)格側(cè)服務器中的處理引擎,或者還可以為位于網(wǎng)格側(cè)的分布式系統(tǒng),本實施例對此不進行特別限定。
可以理解的是,所述應用可以是安裝在終端上的本地程序(nativeApp),或者還可以是終端上的瀏覽器的一個網(wǎng)頁程序(webApp),本實施例對此不進行特別限定。
可選地,在本實施例的一個可能的實現(xiàn)方式中,所述獲取單元21,具體可以用于獲取所述應用調(diào)用所述插件的調(diào)用指令;或者獲取所述插件調(diào)用所述應用的調(diào)用指令。
可選地,在本實施例的一個可能的實現(xiàn)方式中,所述控制單元23,具體可以用于若所述應用的版本號和所述插件的版本號滿足版本兼容規(guī)則,允許所述應用與插件執(zhí)行所述調(diào)用指令;若所述應用的版本號和所述插件的版本號不滿足版本兼容規(guī)則,禁止所述應用與插件執(zhí)行所述調(diào)用指令。
在一個具體的實現(xiàn)過程中,所述控制單元23,還可以進一步用于刪除所述應用,下載與未刪除的插件的版本號所對應的應用;或者,刪除所述插件,下載與未刪除的應用的版本號所對應的插件。
可選地,在本實施例的一個可能的實現(xiàn)方式中,所述控制單元23,所采用的所述版本兼容規(guī)則,可以包括但不限于如下規(guī)則:
所述應用的主版本號與所述插件的主版本號相同,且所述應用的次版本號大于或等于所述插件的次版本號。
需要說明的是,圖1對應的實施例中方法,可以由本實施例提供的應用的兼容性處理裝置實現(xiàn)。詳細描述可以參見圖1對應的實施例中的相關內(nèi)容,此處不再贅述。
本實施例中,通過獲取單元獲取應用與插件之間的調(diào)用指令,進而由分析單元根據(jù)所述調(diào)用指令,獲得所述應用的版本號和所述插件的版本號,使得控制單元能夠根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令,由于不再直接執(zhí)行應用與插件之間的調(diào)用指令,而是根據(jù)所述應用的版本號和所述插件的版本號,對應用與插件之間的調(diào)用指令的執(zhí)行進行控制,使得在出現(xiàn)應用與插件之間不兼容的問題時能夠及時采取相應的措施進行相關的控制處理,從而提高了應用的可靠性。
另外,采用本發(fā)明所提供的技術方案,采用預先設置的版本兼容規(guī)則,對應用與插件之間的調(diào)用指令的執(zhí)行進行控制,能夠有效避免由于應用與插件之間的不兼容而導致的應用與插件之間的調(diào)用失敗的技術問題,能夠進一步提高應用的可靠性和效率。
另外,采用本發(fā)明所提供的技術方案,能夠極大提升用戶體驗。
本發(fā)明實施例提供的上述方法和裝置可以以設置并運行于設備中的計算機程序體現(xiàn)。該設備可以包括一個或多個處理器,還包括存儲器和一個或多個程序。其中該一個或多個程序存儲于存儲器中,被上述一個或多個處理器執(zhí)行以實現(xiàn)本發(fā)明上述實施例中所示的方法流程和/或裝置操作。例如,被上述一個或多個處理器執(zhí)行的方法流程,可以包括:
獲取應用與插件之間的調(diào)用指令;
根據(jù)所述調(diào)用指令,獲得所述應用的版本號和所述插件的版本號;
根據(jù)所述應用的版本號和所述插件的版本號,控制所述應用與插件執(zhí)行所述調(diào)用指令。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本發(fā)明所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如,多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機裝置(可以是個人計算機,服務器,或者網(wǎng)絡裝置等)或處理器(processor)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory,ROM)、隨機存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應說明的是,以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精神和范圍。