本發(fā)明涉及一種逆向程序?qū)崿F(xiàn)模塊接入的方法及系統(tǒng)。
背景技術(shù):
目前互聯(lián)網(wǎng)企業(yè)中,通常一個(gè)公司會(huì)有很多的應(yīng)用產(chǎn)品,而這些產(chǎn)品中都需要接入一些來自內(nèi)部不同部門開發(fā)的程序模塊或來自外部的程序模塊,這些程序模塊功能相近,接入后需要將多個(gè)功能接近的功能模塊根據(jù)接入功能模塊的來源不同,生成不同的運(yùn)行程序包或安裝包,同時(shí)一個(gè)運(yùn)行程序或安裝包中通常只使用一個(gè)接入模塊,而應(yīng)用產(chǎn)品特征通常是以整包的方式發(fā)布,例如:android程序中接入不同渠道的認(rèn)證模塊和支付模塊,并生成不同渠道的APK安裝包,用于發(fā)布在各自的渠道中。
目前常用的解決問題的辦法,如下:
1.開發(fā)者根據(jù)拷貝多份應(yīng)用程序代碼實(shí)現(xiàn)接入模塊一對(duì)一接入,這種方式導(dǎo)致應(yīng)用程序源碼版本過多,應(yīng)用程序難以為維護(hù),同時(shí),當(dāng)應(yīng)用產(chǎn)品很多的情況,接入成本較高,在接入模塊更新的情況下難以批量更新接入模塊;
2.開發(fā)在一份應(yīng)用程序源碼中各種接入模塊的接入,根據(jù)配置啟動(dòng)使用一種接入方式,這種方式導(dǎo)致發(fā)布的程序中有過多的冗余文件,同時(shí),當(dāng)應(yīng)用產(chǎn)品很多的情況,接入成本較高,且當(dāng)接入模塊更新的情況下難以批量更新接入模塊。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種逆向程序?qū)崿F(xiàn)模塊接入的方法及系統(tǒng),能夠?qū)崿F(xiàn)其他來源的接入模塊,自動(dòng)生成完成接入工作。
為解決上述問題,本發(fā)明提供一種逆向程序?qū)崿F(xiàn)模塊接入的方法,包括:
目標(biāo)接口程序A01’按照B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01,其中,B01是預(yù)先定義好的接口文件;
接入模塊C02按照B01接口實(shí)現(xiàn)功能適配,并生成對(duì)應(yīng)于接入模塊C02的新的接口文件B02,得到包含接口文件B02的接入模塊C02’,其中,C02是一個(gè)接入來源程序的適配模塊;
逆向模塊F02逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01;
使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01,得到A02’;
編譯模塊G02將所述A02’正向編譯生成新的目標(biāo)接口程序A02。
進(jìn)一步的,在上述方法中,目標(biāo)接口程序A01’按照B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01,包括:
接入模塊C01按照接口文件B01定義的接口實(shí)現(xiàn)功能適配得到適配后的B01,其中,C01是與C02不同的接入來源程序的適配模塊;
目標(biāo)接口程序A01’按照適配后的B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01。
進(jìn)一步的,在上述方法中,逆向模塊F02逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01,包括:
逆向模塊F02逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01和C01。
進(jìn)一步的,在上述方法中,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01,得到A02’,包括:
使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’。
進(jìn)一步的,在上述方法中,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’,包括:
若B02和C02’與B01和C01的文件規(guī)格不一致,則通過轉(zhuǎn)換模塊I01,預(yù)先將所述B02和C02’轉(zhuǎn)換為與B01和C01規(guī)格一致的B02和C02’,
使用規(guī)格轉(zhuǎn)換后的包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’。
進(jìn)一步的,在上述方法中,使用規(guī)格轉(zhuǎn)換后的包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’,包括:
通過文件記錄模塊H01預(yù)先將B01或B01和C01中包含的文件名記錄在文件J01中;
按照J(rèn)01中的記錄范圍對(duì)B01或B01和C01進(jìn)行刪除,并在刪除的位置添加包含接口文件B02的接入模塊C02’得到A02’。
進(jìn)一步的,在上述方法中,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’,包括:
若B02和C02’與B01和C01的文件規(guī)格不一致,則通過轉(zhuǎn)換模塊I01,預(yù)先將提取到的所述B01和C01轉(zhuǎn)換為與B02和C02’規(guī)格一致的B01和C01;
使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中規(guī)格轉(zhuǎn)換后的B01和C01,得到A02’。
進(jìn)一步的,在上述方法中,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中規(guī)格轉(zhuǎn)換后的B01和C01,得到A02’,包括:
通過文件記錄模塊H01預(yù)先將規(guī)格轉(zhuǎn)換后的B01或B01和C01中包含的文件名記錄在文件J01中;
按照J(rèn)01中的記錄范圍對(duì)規(guī)格轉(zhuǎn)換后的B01或B01和C01進(jìn)行刪除,并在刪除的位置添加包含接口文件B02的接入模塊C02’得到A02’。
根據(jù)本發(fā)明的另一面,提供一種逆向程序?qū)崿F(xiàn)模塊接入的系統(tǒng),包括:
目標(biāo)接口程序A01’,用于按照B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01,其中,B01是預(yù)先定義好的接口文件;
接入模塊C02,用于按照B01接口實(shí)現(xiàn)功能適配,并生成對(duì)應(yīng)于接入模塊C02的新的接口文件B02,得到包含接口文件B02的接入模塊C02’,其中,C02是一個(gè)接入來源程序的適配模塊;
逆向模塊F02,用于逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01;
替換模塊,用于使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01,得到A02’;
編譯模塊G02,用于將所述A02’正向編譯生成新的目標(biāo)接口程序A02。
進(jìn)一步的,在上述系統(tǒng)中,接入模塊C01,用于按照接口文件B01定義的接口實(shí)現(xiàn)功能適配得到適配后的B01,其中,C01是與C02不同的接入來源程序的適配模塊;
所述目標(biāo)接口程序A01’,用于按照適配后的B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01。
進(jìn)一步的,在上述系統(tǒng)中,所述逆向模塊F02,用于逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01和C01。
進(jìn)一步的,在上述系統(tǒng)中,所述替換模塊,用于使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’。
進(jìn)一步的,在上述系統(tǒng)中,所述替換模塊,用于若B02和C02’與B01和C01的文件規(guī)格不一致,則通過轉(zhuǎn)換模塊I01,預(yù)先將所述B02和C02’轉(zhuǎn)換為與B01和C01規(guī)格一致的B02和C02’,
使用規(guī)格轉(zhuǎn)換后的包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’。
進(jìn)一步的,在上述系統(tǒng)中,所述替換模塊,用于通過文件記錄模塊H01預(yù)先將B01或B01和C01中包含的文件名記錄在文件J01中;按照J(rèn)01中的記錄范圍對(duì)B01或B01和C01進(jìn)行刪除,并在刪除的位置添加包含接口文件B02的接入模塊C02’得到A02’。
進(jìn)一步的,在上述系統(tǒng)中,所述替換模塊,用于若B02和C02’與B01和C01的文件規(guī)格不一致,則通過轉(zhuǎn)換模塊I01,預(yù)先將所述B02和C02’轉(zhuǎn)換為與B01和C01規(guī)格一致的B02和C02’,
使用規(guī)格轉(zhuǎn)換后的包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’。
進(jìn)一步的,在上述系統(tǒng)中,所述替換模塊,用于通過文件記錄模塊H01預(yù)先將B01或B01和C01中包含的文件名記錄在文件J01中;按照J(rèn)01中的記錄范圍對(duì)B01或B01和C01進(jìn)行刪除,并在刪除的位置添加包含接口文件B02的接入模塊C02’得到A02’。
與現(xiàn)有技術(shù)相比,本發(fā)明通過目標(biāo)接口程序A01’按照B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01,其中,B01是預(yù)先定義好的接口文件;步驟S2,接入模塊C02按照B01接口實(shí)現(xiàn)功能適配,并生成對(duì)應(yīng)于接入模塊C02的新的接口文件B02,得到包含接口文件B02的接入模塊C02’,其中,C02是一個(gè)接入來源程序的適配模塊;逆向模塊F02逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01;使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01,得到A02’;編譯模塊G02將所述A02’正向編譯生成新的目標(biāo)接口程序A02。本發(fā)明實(shí)現(xiàn)軟件開發(fā)只需一次接入基板模塊,當(dāng)應(yīng)用程序接入好基板的接入模塊后,其他來源的接入模塊,可以通過接入B01進(jìn)行適配,后續(xù)自動(dòng)生成完成接入工作,運(yùn)維人員即可完成操作,而無需開發(fā)介入,減少開發(fā)成本,降低錯(cuò)誤代碼產(chǎn)生,同時(shí)使用簡(jiǎn)單,方便操作;另外,本發(fā)明可實(shí)現(xiàn)按需生成程序包,由于不同來源的接入模塊功能相近,因此當(dāng)同時(shí)出現(xiàn)時(shí),有可能出現(xiàn)資源沖突,此方法避免不同來源的接入模塊出現(xiàn)在一個(gè)安裝包中,繼而產(chǎn)生資源沖突,同時(shí)減少無用的冗余文件。
附圖說明
圖1是本發(fā)明一實(shí)施例的逆向程序?qū)崿F(xiàn)模塊接入的方法的流程圖;
圖2是本發(fā)明另一實(shí)施例的逆向程序?qū)崿F(xiàn)模塊接入的方法的流程圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
實(shí)施例一
如圖1所示,本發(fā)明提供一種逆向程序?qū)崿F(xiàn)模塊接入的方法,包括:
步驟S1,目標(biāo)接口程序A01’按照B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01,其中,B01是預(yù)先定義好的接口文件;在此,B01可以是單獨(dú)的接口文件,單獨(dú)B01好處是在使用B01+C01替換是只需要替換B01,而無需替換C01,使替換操作的范圍降低,降低替換的復(fù)雜性,替換過程更便捷;
步驟S2,接入模塊C02按照B01接口實(shí)現(xiàn)功能適配,并生成對(duì)應(yīng)于接入模塊C02的新的接口文件B02,得到包含接口文件B02的接入模塊C02’,其中,C02是一個(gè)接入來源程序的適配模塊;
步驟S3,逆向模塊F02逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01;
步驟S4,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01,得到A02’;
步驟S5,編譯模塊G02將所述A02’正向編譯生成新的目標(biāo)接口程序A02。本發(fā)明實(shí)現(xiàn)軟件開發(fā)只需一次接入基板模塊,當(dāng)應(yīng)用程序接入好基板的接入模塊后,其他來源的接入模塊,可以通過接入B01進(jìn)行適配,后使用此方法的實(shí)現(xiàn)系統(tǒng)自動(dòng)生成完成接入工作,運(yùn)維人員即可完成操作,而無需開發(fā)介入,減少開發(fā)成本,降低錯(cuò)誤代碼產(chǎn)生,同時(shí)使用簡(jiǎn)單,方便操作;另外,本發(fā)明可實(shí)現(xiàn)按需生成程序包,由于不同來源的接入模塊功能相近,因此當(dāng)同時(shí)出現(xiàn)時(shí),有可能出現(xiàn)資源沖突,此方法避免不同來源的接入模塊出現(xiàn)在一個(gè)安裝包中,繼而產(chǎn)生資源沖突,同時(shí)減少無用的冗余文件。
如圖2所示,優(yōu)選的,步驟S1,目標(biāo)接口程序A01’按照B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01,包括:
步驟S11,接入模塊C01按照接口文件B01定義的接口實(shí)現(xiàn)功能適配得到適配后的B01,其中,C01是與C02不同的接入來源程序的適配模塊;
步驟S12,目標(biāo)接口程序A01’按照適配后的B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01。具體的,這里的B01可以是B01+C01完整的接入包,包含B01和C01完整的接入包的好處是包括具體的接入模塊C01,可以方便的進(jìn)行接入過程的功能調(diào)試,如果外部傳入?yún)?shù)不正確可以在開發(fā)接入時(shí)發(fā)現(xiàn)。
相應(yīng)的,如圖2所示,步驟S3,逆向模塊F02逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01,包括:
步驟S31,逆向模塊F02逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01和C01。
相應(yīng)的,如圖2所示,步驟S4,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01,得到A02’,包括:
步驟S41,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’。
優(yōu)選的,步驟S41,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’,包括:
若B02和C02’與B01和C01的文件規(guī)格不一致,則通過轉(zhuǎn)換模塊I01,預(yù)先將所述B02和C02’轉(zhuǎn)換為與B01和C01規(guī)格一致的B02和C02’,
使用規(guī)格轉(zhuǎn)換后的包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’。在此,當(dāng)B02和C02’的原始文件為與A01逆向的結(jié)果里面的B01和C01文件規(guī)格不一致(如庫(kù)文件、jar文件或壓縮包文件等等)時(shí),無法在替換B01和C01后,直接通過G02編譯,則需要增加轉(zhuǎn)換模塊I01,預(yù)先將B02和C02’轉(zhuǎn)換為與B01和C01規(guī)格一致的B02和C02’再進(jìn)行替換。
優(yōu)選的,使用規(guī)格轉(zhuǎn)換后的包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’,包括:
通過文件記錄模塊H01預(yù)先將B01或B01和C01中包含的文件名記錄在文件J01中;
按照J(rèn)01中的記錄范圍對(duì)B01或B01和C01進(jìn)行刪除,并在刪除的位置添加規(guī)格轉(zhuǎn)換后的包含接口文件B02的接入模塊C02’得到A02’。具體的,通過文件記錄模塊H01預(yù)先將B01或B01和C01中包含的文件名記錄在文件J01中,當(dāng)逆向結(jié)果中,包含接口文件B02的接入模塊C02’需要替換B01或B01和C01時(shí),按照J(rèn)01中的記錄范圍對(duì)B01或B01和C01進(jìn)行刪除,并在刪除的位置添加包含接口文件B02的接入模塊C02’得到A02’,后續(xù)再通過G02生成A02。這里可以預(yù)先生成B01或適配后的B01的文件清單,適配后的B01包括B01+C01,當(dāng)使用B02+C02替換時(shí),縮小替換文件范圍,已確保不會(huì)誤刪A01’中的自帶的文件。
優(yōu)選的,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’,包括:
若B02和C02’與B01和C01的文件規(guī)格不一致,則通過轉(zhuǎn)換模塊I01,預(yù)先將提取到的所述B01和C01轉(zhuǎn)換為與B02和C02’規(guī)格一致的B01和C01;
使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中規(guī)格轉(zhuǎn)換后的B01和C01,得到A02’。在此,當(dāng)B02和C02’的原始文件為與A01逆向的結(jié)果里面的B01和C01文件規(guī)格不一致(如庫(kù)文件、jar文件或壓縮包文件等等)時(shí),無法在替換B01和C01后,直接通過G02編譯,則需要增加轉(zhuǎn)換模塊I01,預(yù)先將B01和C01轉(zhuǎn)換為與B02和C02’規(guī)格一致的B01和C01再進(jìn)行替換。
優(yōu)選的,使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中規(guī)格轉(zhuǎn)換后的B01和C01,得到A02’,包括:
通過文件記錄模塊H01預(yù)先將規(guī)格轉(zhuǎn)換后的B01或B01和C01中包含的文件名記錄在文件J01中;
按照J(rèn)01中的記錄范圍對(duì)規(guī)格轉(zhuǎn)換后的B01或B01和C01進(jìn)行刪除,并在刪除的位置添加包含接口文件B02的接入模塊C02’得到A02’。具體的,通過文件記錄模塊H01預(yù)先將規(guī)格轉(zhuǎn)換后的B01或B01和C01中包含的文件名記錄在文件J01中,當(dāng)逆向結(jié)果中,包含接口文件B02的接入模塊C02’需要替換B01或B01和C01時(shí),按照J(rèn)01中的記錄范圍對(duì)B01或B01和C01進(jìn)行刪除,并在刪除的位置添加包含接口文件B02的接入模塊C02’得到A02’,后續(xù)再通過G02生成A02。這里可以預(yù)先生成B01或適配后的B01的文件清單,適配后的B01包括B01+C01,當(dāng)使用B02+C02替換時(shí),縮小替換文件范圍,已確保不會(huì)誤刪A01’中的自帶的文件。
實(shí)施例二
本發(fā)明還提供另一種逆向程序?qū)崿F(xiàn)模塊接入的系統(tǒng),包括:
目標(biāo)接口程序A01’,用于按照B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01,其中,B01是預(yù)先定義好的接口文件;
接入模塊C02,用于按照B01接口實(shí)現(xiàn)功能適配,并生成對(duì)應(yīng)于接入模塊C02的新的接口文件B02,得到包含接口文件B02的接入模塊C02’,其中,C02是一個(gè)接入來源程序的適配模塊;
逆向模塊F02,用于逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01;
替換模塊,用于使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01,得到A02’;
編譯模塊G02,用于將所述A02’正向編譯生成新的目標(biāo)接口程序A02。
優(yōu)選的,接入模塊C01,用于按照接口文件B01定義的接口實(shí)現(xiàn)功能適配得到適配后的B01,其中,C01是與C02不同的接入來源程序的適配模塊;
所述目標(biāo)接口程序A01’,用于按照適配后的B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01。
優(yōu)選的,所述逆向模塊F02,用于逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01和C01。
優(yōu)選的,所述替換模塊,用于使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’。
優(yōu)選的,所述替換模塊,用于若B02和C02’與B01和C01的文件規(guī)格不一致,則通過轉(zhuǎn)換模塊I01,預(yù)先將所述B02和C02’轉(zhuǎn)換為與B01和C01規(guī)格一致的B02和C02’,
使用規(guī)格轉(zhuǎn)換后的包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01和C01,得到A02’。
優(yōu)選的,所述替換模塊,用于通過文件記錄模塊H01預(yù)先將B01或B01和C01中包含的文件名記錄在文件J01中;按照J(rèn)01中的記錄范圍對(duì)B01或B01和C01進(jìn)行刪除,并在刪除的位置添加包含接口文件B02的接入模塊C02’得到A02’。
優(yōu)選的,所述替換模塊,用于若B02和C02’與B01和C01的文件規(guī)格不一致,則通過轉(zhuǎn)換模塊I01,預(yù)先將提取到的所述B01和C01轉(zhuǎn)換為與B02和C02’規(guī)格一致的B01和C01;
使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中規(guī)格轉(zhuǎn)換后的B01和C01,得到A02’。
優(yōu)選的,所述替換模塊,用于通過文件記錄模塊H01預(yù)先將規(guī)格轉(zhuǎn)換后的B01或B01和C01中包含的文件名記錄在文件J01中;
按照J(rèn)01中的記錄范圍對(duì)規(guī)格轉(zhuǎn)換后的B01或B01和C01進(jìn)行刪除,并在刪除的位置添加包含接口文件B02的接入模塊C02’得到A02’。
實(shí)施例二的其它詳細(xì)內(nèi)容具體可參見實(shí)施例一的對(duì)應(yīng)部分,在此,不再贅述。
本發(fā)明通過目標(biāo)接口程序A01’按照B01實(shí)現(xiàn)功能接入得到目標(biāo)接口程序A01,其中,B01是預(yù)先定義好的接口文件;步驟S2,接入模塊C02按照B01接口實(shí)現(xiàn)功能適配,并生成對(duì)應(yīng)于接入模塊C02的新的接口文件B02,得到包含接口文件B02的接入模塊C02’,其中,C02是一個(gè)接入來源程序的適配模塊;逆向模塊F02逆向所述目標(biāo)接口程序A01,從逆向結(jié)果中提取B01;使用包含接口文件B02的接入模塊C02’替換逆向結(jié)果中提取到的B01,得到A02’;編譯模塊G02將所述A02’正向編譯生成新的目標(biāo)接口程序A02。本發(fā)明實(shí)現(xiàn)軟件開發(fā)只需一次接入基板模塊,當(dāng)應(yīng)用程序接入好基板的接入模塊后,其他來源的接入模塊,可以通過接入B01進(jìn)行適配,后續(xù)自動(dòng)生成完成接入工作,運(yùn)維人員即可完成操作,而無需開發(fā)介入,減少開發(fā)成本,降低錯(cuò)誤代碼產(chǎn)生,同時(shí)使用簡(jiǎn)單,方便操作;另外,本發(fā)明可實(shí)現(xiàn)按需生成程序包,由于不同來源的接入模塊功能相近,因此當(dāng)同時(shí)出現(xiàn)時(shí),有可能出現(xiàn)資源沖突,此方法避免不同來源的接入模塊出現(xiàn)在一個(gè)安裝包中,繼而產(chǎn)生資源沖突,同時(shí)減少無用的冗余文件。
本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。
專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包括這些改動(dòng)和變型在內(nèi)。