本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種sdk包產(chǎn)生方法、裝置及終端。
背景技術(shù):
軟件開發(fā)工具包(softwaredevelopmentkit,sdk)是特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件時(shí)的開發(fā)工具的集合,包括一系列頭文件、庫文件、文檔等。軟件開發(fā)工具包可以輔助開發(fā)某一類軟件的相關(guān)文檔、范例和工具。
現(xiàn)有技術(shù)中,sdk包是在編譯過程中通過半手動(dòng)半自動(dòng)的方式生成的。首先判斷源文件是否開源,篩選出開源源文件;然后,有些是集中式將開源源文件復(fù)制到一個(gè)sdk的目錄下,有些是把開源源文件逐個(gè)列出,并集中在一個(gè)文本,然后基于此去產(chǎn)生。
但是,現(xiàn)有技術(shù)的sdk包產(chǎn)生過程繁瑣,容易出錯(cuò),導(dǎo)致用戶體驗(yàn)差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問題是如何提高sdk包產(chǎn)生的效率和準(zhǔn)確性。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供一種sdk包產(chǎn)生方法,所述sdk包產(chǎn)生方法包括:
對(duì)多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的原始編譯規(guī)則文件進(jìn)行修改,以形成節(jié)點(diǎn)編譯規(guī)則文件,所述節(jié)點(diǎn)編譯規(guī)則文件包括在sdk編譯規(guī)則文件中;確定所述多個(gè)模塊節(jié)點(diǎn)的文件類型,每一模塊節(jié)點(diǎn)的文件類型為開源或閉源;基于所述sdk編譯規(guī)則文件的觸發(fā),采用所述節(jié)點(diǎn)編譯規(guī)則文件對(duì)所述文件類型為閉源的所述模塊節(jié)點(diǎn)的源文件進(jìn)行編譯,以形成所述模塊節(jié)點(diǎn)的內(nèi)置庫;基于所述sdk編譯規(guī)則文件的觸發(fā),將所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件復(fù)制至sdk包輸出目錄,以形成sdk包的至少一部分。
可選的,所述sdk包產(chǎn)生方法還包括:將預(yù)設(shè)sdk標(biāo)準(zhǔn)文件復(fù)制至所述sdk包輸出目錄,以形成所述sdk包。
可選的,所述sdk包產(chǎn)生方法還包括:基于所述sdk編譯規(guī)則文件對(duì)所述sdk包進(jìn)行編譯,以檢測(cè)所述sdk包的編譯完整性。
可選的,所述預(yù)設(shè)sdk標(biāo)準(zhǔn)文件包括以下一種或多種:頭文件、所述sdk編譯規(guī)則文件、私有頭文件、測(cè)試源文件和版本控制源文件。
可選的,對(duì)所述多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的所述原始編譯規(guī)則文件進(jìn)行修改,以形成所述節(jié)點(diǎn)編譯規(guī)則文件之前還包括:基于所述多個(gè)模塊節(jié)點(diǎn)的原始編譯規(guī)則文件觸發(fā)所述多個(gè)模塊節(jié)點(diǎn)的編譯,以檢測(cè)多個(gè)所述模塊節(jié)點(diǎn)的編譯完整性。
可選的,對(duì)所述多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的所述原始編譯規(guī)則文件進(jìn)行修改,以形成所述節(jié)點(diǎn)編譯規(guī)則文件包括:將所述原始編譯規(guī)則文件的目標(biāo)文件輸出目錄替代為所述sdk包輸出目錄;將所述目標(biāo)文件的輸出格式修改為靜態(tài)鏈接庫文件;在依賴文件中過濾所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件,形成所述sdk包編譯規(guī)則文件。
可選的,確定所述多個(gè)模塊節(jié)點(diǎn)的文件類型包括:通過提取在所述多個(gè)模塊節(jié)點(diǎn)中的預(yù)設(shè)變量,確定所述源文件的類型。
可選的,所述預(yù)設(shè)變量在所述模塊節(jié)點(diǎn)的源文件的形成過程中進(jìn)行配置。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例還公開了一種sdk包產(chǎn)生裝置,sdk包產(chǎn)生裝置包括:
初始單元,適于對(duì)多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的原始編譯規(guī)則文件進(jìn)行修改,以形成節(jié)點(diǎn)編譯規(guī)則文件,所述節(jié)點(diǎn)編譯規(guī)則文件包括在sdk編譯規(guī)則文件中;判定單元,適于確定所述多個(gè)模塊節(jié)點(diǎn)的文件類型,每一模塊節(jié)點(diǎn)的文件類型為開源或閉源;內(nèi)置庫形成單元,適于基于所述sdk編譯規(guī)則文件的觸發(fā),采用所述節(jié)點(diǎn)編譯規(guī)則文件對(duì)所述文件類型為閉源的所述模塊節(jié)點(diǎn)的源文件進(jìn)行編譯,以形成所述模塊節(jié)點(diǎn)的內(nèi)置庫;復(fù)制單元,適于基于所述sdk編譯規(guī)則文件的觸發(fā),將所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件復(fù)制至sdk包輸出目錄,以形成sdk包的至少一部分。
可選的,所述復(fù)制單元將預(yù)設(shè)sdk標(biāo)準(zhǔn)文件復(fù)制至所述sdk包輸出目錄,以形成所述sdk包。
可選的,所述sdk包產(chǎn)生裝置還包括:第一檢測(cè)單元,適于基于所述sdk編譯規(guī)則文件對(duì)所述sdk包進(jìn)行編譯,以檢測(cè)所述sdk包的編譯完整性。
可選的,所述預(yù)設(shè)sdk標(biāo)準(zhǔn)文件包括以下一種或多種:頭文件、所述sdk編譯規(guī)則文件、私有頭文件、測(cè)試源文件和版本控制源文件。
可選的,所述初始單元之前還包括:第二檢測(cè)單元,適于基于所述多個(gè)模塊節(jié)點(diǎn)的原始編譯規(guī)則文件觸發(fā)所述多個(gè)模塊節(jié)點(diǎn)的編譯,以檢測(cè)多個(gè)所述模塊節(jié)點(diǎn)的編譯完整性。
可選的,所述初始單元包括:輸出初始子單元,適于將所述原始編譯規(guī)則文件的目標(biāo)文件輸出目錄替代為所述sdk包輸出目錄;格式初始子單元,適于將所述目標(biāo)文件的輸出格式修改為靜態(tài)鏈接庫文件;依賴初始子單元,適于在依賴文件中過濾所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件,形成所述sdk包編譯規(guī)則文件。
可選的,所述判定單元通過提取在所述多個(gè)模塊節(jié)點(diǎn)中的預(yù)設(shè)變量,確定所述源文件的類型。
可選的,所述預(yù)設(shè)變量在所述模塊節(jié)點(diǎn)的源文件的形成過程中進(jìn)行配置。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例還公開了一種終端,其特征在于,終端所述包括所述sdk包產(chǎn)生裝置。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有以下有益效果:
本發(fā)明技術(shù)方案對(duì)多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的原始編譯規(guī)則文件進(jìn)行修改,以形成節(jié)點(diǎn)編譯規(guī)則文件,使得在每個(gè)模塊節(jié)點(diǎn)的普通編譯的原始編譯規(guī)則文件的基礎(chǔ)上形成節(jié)點(diǎn)編譯規(guī)則文件,保證了sdk包產(chǎn)生的環(huán)境和普通編譯的適用環(huán)境一致,避免了由于sdk包編譯的特殊性而產(chǎn)生發(fā)散,同時(shí)減少了軟件開發(fā)工作量,節(jié)約了軟件開發(fā)成本;然后確定所述多個(gè)模塊節(jié)點(diǎn)的文件類型,每一模塊節(jié)點(diǎn)的文件類型為開源或閉源;基于所述sdk編譯規(guī)則文件的觸發(fā),采用所述節(jié)點(diǎn)編譯規(guī)則文件對(duì)所述文件類型為閉源的所述模塊節(jié)點(diǎn)的源文件進(jìn)行編譯,以形成所述模塊節(jié)點(diǎn)的內(nèi)置庫,將所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件以及所述內(nèi)置庫復(fù)制至sdk包輸出目錄,以形成sdk包的至少一部分,基于預(yù)先配置的模塊節(jié)點(diǎn)的文件類型,對(duì)閉源和開源類型 的模塊節(jié)點(diǎn)分別進(jìn)行處理,提高了sdk包產(chǎn)生的效率和準(zhǔn)確性。
進(jìn)一步,通過提取在所述多個(gè)模塊節(jié)點(diǎn)中的預(yù)設(shè)變量,確定所述源文件的類型,所述預(yù)設(shè)變量在所述模塊節(jié)點(diǎn)的源文件的形成過程中進(jìn)行配置,從而使得sdk包產(chǎn)生過程只需找到預(yù)設(shè)變量就可以判定源文件的類型,無需根據(jù)具體模塊節(jié)點(diǎn)進(jìn)行逐一判斷,進(jìn)一步提高了sdk包產(chǎn)生的效率;同時(shí),具體模塊節(jié)點(diǎn)在形成過程中進(jìn)行類型的配置,對(duì)sdk包的產(chǎn)生過程不構(gòu)成影響,提高了sdk包后期的維護(hù)性能。
附圖說明
圖1是本發(fā)明實(shí)施例一種sdk包產(chǎn)生方法的流程圖;
圖2是本發(fā)明實(shí)施例另一種sdk包產(chǎn)生方法的流程圖;
圖3是本發(fā)明實(shí)施例一種sdk包產(chǎn)生裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實(shí)施例另一種sdk包產(chǎn)生裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
如背景技術(shù)中所述,現(xiàn)有技術(shù)的sdk包產(chǎn)生過程繁瑣,容易出錯(cuò),導(dǎo)致用戶體驗(yàn)差。
本發(fā)明實(shí)施例所稱編譯規(guī)則文件(makefile)定義源文件的編譯規(guī)則,例如可以是源文件的編譯順序、是否需要重新編譯等,并可以基于編譯規(guī)則文件觸發(fā)源文件的編譯過程。
本發(fā)明實(shí)施例所稱模塊節(jié)點(diǎn)可以指在軟件系統(tǒng)中的目錄,每個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)至少一個(gè)源文件。在軟件系統(tǒng)中,按照源文件的類型或功能進(jìn)行劃分,并分別放在不同的目錄中,以形成模塊節(jié)點(diǎn)。模塊節(jié)點(diǎn)與原始編譯規(guī)則文件相對(duì)應(yīng),可以基于原始編譯規(guī)則文件觸發(fā)模塊節(jié)點(diǎn)的編譯。其中,原始編譯規(guī)則文件通常可以是模塊節(jié)點(diǎn)在開發(fā)或測(cè)試過程中用于普通編譯的編譯規(guī)則文件,而“普通編譯”是相對(duì)于生成sdk包的編譯過程而言的。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)的說明。
圖1是本發(fā)明實(shí)施例一種sdk包產(chǎn)生方法的流程圖。
請(qǐng)參照?qǐng)D1,sdk包產(chǎn)生方法包括:步驟s101,對(duì)多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的原始編譯規(guī)則文件進(jìn)行修改,以形成節(jié)點(diǎn)編譯規(guī)則文件。
本實(shí)施例中,所述節(jié)點(diǎn)編譯規(guī)則文件包括在sdk編譯規(guī)則文件中。sdk編譯規(guī)則文件定義sdk包形成過程的編譯規(guī)則,基于sdk編譯規(guī)則文件可以觸發(fā)對(duì)多個(gè)模塊節(jié)點(diǎn)的編譯,形成sdk包的至少一部分。
具體實(shí)施中,原始編譯規(guī)則文件和節(jié)點(diǎn)編譯規(guī)則文件均可以觸發(fā)對(duì)模塊節(jié)點(diǎn)的編譯過程。原始編譯規(guī)則文件觸發(fā)的是普通編譯,模塊節(jié)點(diǎn)編譯后形成的通常是模塊節(jié)點(diǎn)的源文件對(duì)應(yīng)的可執(zhí)行文件;而節(jié)點(diǎn)編譯規(guī)則文件觸發(fā)的是sdk包的編譯,模塊節(jié)點(diǎn)編譯后形成的是sdk包的一部分,即內(nèi)置庫。
具體實(shí)施中,由于閉源模塊節(jié)點(diǎn)的源文件不能泄露給用戶,故不能直接復(fù)制至sdk包,而為了不影響sdk包的使用,對(duì)閉源模塊節(jié)點(diǎn)編譯形成庫文件放在sdk包里,節(jié)點(diǎn)編譯規(guī)則文件則是用于觸發(fā)閉源模塊節(jié)點(diǎn)的編譯。對(duì)所述多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的所述原始編譯規(guī)則文件進(jìn)行修改,以形成所述節(jié)點(diǎn)編譯規(guī)則文件包括:將所述原始編譯規(guī)則文件的目標(biāo)文件輸出目錄替代為所述sdk包輸出目錄,由于普通編譯和sdk包的編譯的輸出目錄不同,故在對(duì)原始編譯規(guī)則文件的修改時(shí),首先修改輸出目錄;將所述目標(biāo)文件的輸出格式修改為靜態(tài)鏈接庫文件;在依賴文件中過濾所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件,上述修改完成后,形成所述sdk包編譯規(guī)則文件;sdk包的編譯是對(duì)閉源模塊節(jié)點(diǎn)的編譯,編譯后形成的庫文件要包含在sdk包的執(zhí)行文件里,所以閉源模塊節(jié)點(diǎn)編譯后的目標(biāo)文件的輸出格式為靜態(tài)鏈接庫文件,編譯后形成的靜態(tài)鏈接庫為內(nèi)置庫。
本發(fā)明實(shí)施例在每個(gè)模塊節(jié)點(diǎn)的普通編譯的原始編譯規(guī)則文件的基礎(chǔ)上形成節(jié)點(diǎn)編譯規(guī)則文件,保證了sdk包產(chǎn)生的環(huán)境和普通編譯的適用環(huán)境一致,避免了由于sdk包編譯的特殊性而產(chǎn)生發(fā)散;同時(shí)由于編譯規(guī)則文件的復(fù)用性,減少了軟件開發(fā)的工作量,節(jié)約了軟件開發(fā)成本。
步驟s102,確定所述多個(gè)模塊節(jié)點(diǎn)的文件類型。
本實(shí)施例中,每一模塊節(jié)點(diǎn)的文件類型為開源或閉源。其中,在sdk包,用戶可以獲取開源模塊節(jié)點(diǎn)的源文件,不能獲取閉源模塊節(jié)點(diǎn)的源文件。
具體實(shí)施中,通過提取在所述多個(gè)模塊節(jié)點(diǎn)中的預(yù)設(shè)變量,確定所述模塊節(jié)點(diǎn)的文件類型。所述預(yù)設(shè)變量在所述模塊節(jié)點(diǎn)的源文件的形成過程中進(jìn)行配置。
具體實(shí)施中,節(jié)點(diǎn)編譯規(guī)則文件對(duì)應(yīng)配置輸入文件,例如在基于節(jié)點(diǎn)編譯規(guī)則文件觸發(fā)編譯時(shí),可以將配置輸入文件作作為其中一個(gè)輸入。所述配置輸入文件可以為數(shù)據(jù)文本文件,可以控制模塊節(jié)點(diǎn)如何編譯以及對(duì)應(yīng)的源文件。在模塊節(jié)點(diǎn)的配置輸入文件中輸入預(yù)設(shè)變量,則模塊節(jié)點(diǎn)的開源和閉源類型就可以確定?;蛘?,模塊節(jié)點(diǎn)的文件類型也可以設(shè)置在模塊節(jié)點(diǎn)的源文件中。
可以理解的是,所述預(yù)設(shè)變量可以根據(jù)實(shí)際的應(yīng)用環(huán)境做適應(yīng)性的調(diào)整。
本發(fā)明實(shí)施例使得sdk包產(chǎn)生過程只需找到預(yù)設(shè)變量就可以判定源文件的類型,無需根據(jù)具體模塊節(jié)點(diǎn)進(jìn)行逐一判斷,進(jìn)一步提高了sdk包產(chǎn)生的效率;同時(shí),具體模塊節(jié)點(diǎn)在形成過程中進(jìn)行類型的配置,對(duì)sdk包的產(chǎn)生過程不構(gòu)成影響,sdk的產(chǎn)生過程也無需獲取模塊節(jié)點(diǎn)的具體功能,即sdk包的產(chǎn)生過程和模塊節(jié)點(diǎn)的形成過程互不影響,提高了sdk包后期的維護(hù)性能。
步驟s103,基于所述sdk編譯規(guī)則文件的觸發(fā),采用所述節(jié)點(diǎn)編譯規(guī)則文件對(duì)所述文件類型為閉源的所述模塊節(jié)點(diǎn)的源文件進(jìn)行編譯,以形成所述模塊節(jié)點(diǎn)的內(nèi)置庫。
本實(shí)施例中,通過sdk編譯規(guī)則文件內(nèi)節(jié)點(diǎn)編譯規(guī)則文件觸發(fā)模塊節(jié)點(diǎn)的編譯,其中,節(jié)點(diǎn)編譯規(guī)則文件觸發(fā)閉源模塊節(jié)點(diǎn)的編譯過程。
具體實(shí)施中,基于節(jié)點(diǎn)編譯規(guī)則文件的觸發(fā),對(duì)閉源模塊節(jié)點(diǎn)進(jìn)行編譯,其中,在編譯過程中,在依賴源文件中過濾開源源文件;并在sdk包輸出目錄形成靜態(tài)鏈接庫,即內(nèi)置庫。
本發(fā)明實(shí)施例編譯得到內(nèi)置庫基于的是節(jié)點(diǎn)編譯規(guī)則文件,sdk包的編譯過程和普通編譯過程使用的編譯環(huán)境一致,得到的sdk包不易出錯(cuò),可靠性更高。
步驟s104,基于所述sdk編譯規(guī)則文件的觸發(fā),將所述文件類型為開源 的所述模塊節(jié)點(diǎn)的源文件復(fù)制至sdk包輸出目錄,以形成sdk包的至少一部分。
本實(shí)施例中,通過預(yù)設(shè)變量確定模塊節(jié)點(diǎn)的文件類型,并將所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件復(fù)制至sdk包輸出目錄。內(nèi)置庫與開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件構(gòu)成了sdk包的一部分。
具體實(shí)施中,sdk包除了閉源模塊節(jié)點(diǎn)形成的內(nèi)置庫與開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件,還包括預(yù)設(shè)sdk標(biāo)準(zhǔn)文件。將預(yù)設(shè)sdk標(biāo)準(zhǔn)文件復(fù)制至所述sdk包輸出目錄,預(yù)設(shè)sdk標(biāo)準(zhǔn)文件與內(nèi)置庫、開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件構(gòu)成了sdk包。所述預(yù)設(shè)sdk標(biāo)準(zhǔn)文件可以包括以下一種或多種:頭文件、所述sdk編譯規(guī)則文件、私有頭文件、測(cè)試源文件和版本控制源文件。
具體實(shí)施中,在sdk包形成后,基于所述sdk編譯規(guī)則文件對(duì)所述sdk包進(jìn)行編譯,以檢測(cè)所述sdk包的編譯完整性,在sdk包的編譯通過時(shí),則表示內(nèi)置庫、開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件以及預(yù)設(shè)sdk標(biāo)準(zhǔn)文件可以編譯形成執(zhí)行文件,如果沒有問題(bug),則可以進(jìn)入下一步流程。
具體實(shí)施中,對(duì)多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的原始編譯規(guī)則文件進(jìn)行修改的過程為自動(dòng)修改,是在不改變?cè)季幾g規(guī)則文件的前提下,通過動(dòng)態(tài)變量控制形成可以編譯sdk包的閉源源文件的編譯規(guī)則文件、閉源源文件和開源源文件的編譯規(guī)則文件。
本發(fā)明實(shí)施例采用面向?qū)ο缶幊?objectorientedprogramming,oop)的設(shè)計(jì)理念,可以改變sdk產(chǎn)生過程中缺省的輸入設(shè)置或者編譯規(guī)則,而不會(huì)改變?cè)季幾g規(guī)則文件,提高了sdk包維護(hù)的便捷性;同時(shí),sdk產(chǎn)生過程的控制和sdk的輸入配置文本分離,使得sdk產(chǎn)生的動(dòng)作和數(shù)據(jù)分離,使得在維護(hù)時(shí),可以修改輸入配置文本而不會(huì)影響sdk的產(chǎn)生控制過程,提高了sdk產(chǎn)生的準(zhǔn)確性。
圖2是本發(fā)明實(shí)施例另一種sdk包產(chǎn)生方法的流程圖。
請(qǐng)參照?qǐng)D2,所述sdk包產(chǎn)生方法包括:步驟s201,基于所述多個(gè)模塊節(jié)點(diǎn)的原始編譯規(guī)則文件觸發(fā)所述多個(gè)模塊節(jié)點(diǎn)的編譯,以檢測(cè)多個(gè)所述模塊節(jié)點(diǎn)的編譯完整性。
本實(shí)施例中,在產(chǎn)生sdk包之前,基于多個(gè)模塊節(jié)點(diǎn)的原始編譯規(guī)則文件進(jìn)行遍歷編譯,以檢查多個(gè)模塊節(jié)點(diǎn)形成的軟件系統(tǒng)的編譯完整性。編譯通過則表示多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件沒有錯(cuò)誤(bug),可以進(jìn)行sdk包的生成過程。
步驟s202,對(duì)多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的原始編譯規(guī)則文件進(jìn)行修改,以形成節(jié)點(diǎn)編譯規(guī)則文件。
具體實(shí)施中,對(duì)所述多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的所述原始編譯規(guī)則文件進(jìn)行修改,以形成所述節(jié)點(diǎn)編譯規(guī)則文件包括:將所述原始編譯規(guī)則文件的目標(biāo)文件輸出目錄替代為所述sdk包輸出目錄,由于普通編譯和sdk包的編譯的輸出目錄不同,故在對(duì)原始編譯規(guī)則文件的修改時(shí),首先修改輸出目錄;將所述目標(biāo)文件的輸出格式修改為靜態(tài)鏈接庫文件;在依賴文件中過濾所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件,形成所述sdk包編譯規(guī)則文件,由于閉源模塊節(jié)點(diǎn)的源文件不能泄露給用戶,故不能直接復(fù)制至sdk包,而為了不影響sdk包的使用,對(duì)閉源模塊節(jié)點(diǎn)編譯形成庫文件放在sdk包里。節(jié)點(diǎn)編譯規(guī)則文件則是用于觸發(fā)閉源模塊節(jié)點(diǎn)的編譯過程的。
步驟s203,確定所述多個(gè)模塊節(jié)點(diǎn)的文件類型。
具體實(shí)施中,節(jié)點(diǎn)編譯規(guī)則文件對(duì)應(yīng)配置輸入文件,所述配置輸入文件可以為數(shù)據(jù)文本文件,可以控制模塊節(jié)點(diǎn)如何編譯以及對(duì)應(yīng)的源文件。在模塊節(jié)點(diǎn)的配置輸入文件中輸入以下預(yù)設(shè)變量,則模塊節(jié)點(diǎn)的開源和閉源類型就可以確定。
步驟s204,基于所述sdk編譯規(guī)則文件的觸發(fā),采用所述節(jié)點(diǎn)編譯規(guī)則文件對(duì)所述文件類型為閉源的所述模塊節(jié)點(diǎn)的源文件進(jìn)行編譯,以形成所述模塊節(jié)點(diǎn)的內(nèi)置庫。
本實(shí)施例中,sdk包的編譯是對(duì)閉源模塊節(jié)點(diǎn)的編譯,編譯后形成的庫文件要包含在sdk包的執(zhí)行文件里,所以閉源模塊節(jié)點(diǎn)編譯后的目標(biāo)文件的輸出格式為靜態(tài)鏈接庫文件,編譯后形成的靜態(tài)鏈接庫為內(nèi)置庫。
步驟s205,基于所述sdk編譯規(guī)則文件的觸發(fā),將所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件復(fù)制至sdk包輸出目錄。
步驟s206,將預(yù)設(shè)sdk標(biāo)準(zhǔn)文件復(fù)制至所述sdk包輸出目錄,以形成所述sdk包。
具體實(shí)施中,sdk包除了閉源模塊節(jié)點(diǎn)形成的內(nèi)置庫與開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件,還包括預(yù)設(shè)sdk標(biāo)準(zhǔn)文件。將預(yù)設(shè)sdk標(biāo)準(zhǔn)文件復(fù)制至所述sdk包輸出目錄,預(yù)設(shè)sdk標(biāo)準(zhǔn)文件與內(nèi)置庫、開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件構(gòu)成了sdk包。所述預(yù)設(shè)sdk標(biāo)準(zhǔn)文件開源包括以下一種或多種:頭文件、所述sdk編譯規(guī)則文件、私有頭文件、測(cè)試源文件和版本控制源文件。
步驟s206,基于所述sdk編譯規(guī)則文件對(duì)所述sdk包進(jìn)行編譯,以檢測(cè)所述sdk包的編譯完整性。
本實(shí)施例中,在sdk包形成后,基于所述sdk編譯規(guī)則文件對(duì)所述sdk包進(jìn)行編譯,以檢測(cè)所述sdk包的編譯完整性,在sdk包的編譯通過時(shí),則表示內(nèi)置庫、開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件以及預(yù)設(shè)sdk標(biāo)準(zhǔn)文件可以編譯形成執(zhí)行文件,沒有錯(cuò)誤(bug),可以進(jìn)入下一步流程。
本發(fā)明實(shí)施例的具體實(shí)施方式可參照前述相應(yīng)實(shí)施例,此處不再贅述。
圖3是本發(fā)明實(shí)施例一種sdk包產(chǎn)生裝置的結(jié)構(gòu)示意圖。
請(qǐng)參照?qǐng)D3,sdk包產(chǎn)生裝置包括:初始單元301、判定單元302、內(nèi)置庫形成單元303和復(fù)制單元304。
其中,初始單元301適于對(duì)多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的原始編譯規(guī)則文件進(jìn)行修改,以形成節(jié)點(diǎn)編譯規(guī)則文件,所述節(jié)點(diǎn)編譯規(guī)則文件包括在sdk編譯規(guī)則文件中。
判定單元302適于確定所述多個(gè)模塊節(jié)點(diǎn)的文件類型,每一模塊節(jié)點(diǎn)的文件類型為開源或閉源。所述判定單元302通過提取在所述多個(gè)模塊節(jié)點(diǎn)中的預(yù)設(shè)變量,確定所述源文件的類型,所述預(yù)設(shè)變量在所述模塊節(jié)點(diǎn)的源文件的形成過程中進(jìn)行配置。
內(nèi)置庫形成單元303適于基于所述sdk編譯規(guī)則文件的觸發(fā),采用所述節(jié)點(diǎn)編譯規(guī)則文件對(duì)所述文件類型為閉源的所述模塊節(jié)點(diǎn)的源文件進(jìn)行編譯,以形成所述模塊節(jié)點(diǎn)的內(nèi)置庫。
復(fù)制單元304適于基于所述sdk編譯規(guī)則文件的觸發(fā),將所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件復(fù)制至sdk包輸出目錄,以形成sdk包的至少一部分。sdk包除了閉源模塊節(jié)點(diǎn)形成的內(nèi)置庫與開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件,還包括預(yù)設(shè)sdk標(biāo)準(zhǔn)文件。將預(yù)設(shè)sdk標(biāo)準(zhǔn)文件復(fù)制至所述sdk包輸出目錄,預(yù)設(shè)sdk標(biāo)準(zhǔn)文件與內(nèi)置庫、開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件構(gòu)成了sdk包。
本發(fā)明實(shí)施例的具體實(shí)施方式可參照前述相應(yīng)實(shí)施例,此處不再贅述。
圖4是本發(fā)明實(shí)施例另一種sdk包產(chǎn)生裝置的結(jié)構(gòu)示意圖。
請(qǐng)參照?qǐng)D4,sdk包產(chǎn)生裝置包括:第二檢測(cè)單元401、初始單元402、輸出初始子單元403、格式初始子單元404、依賴初始子單元405、判定單元406、內(nèi)置庫形成單元407、復(fù)制單元408和第一檢測(cè)單元409。
其中,第二檢測(cè)單元401適于基于所述多個(gè)模塊節(jié)點(diǎn)的原始編譯規(guī)則文件觸發(fā)所述多個(gè)模塊節(jié)點(diǎn)的編譯,以檢測(cè)多個(gè)所述模塊節(jié)點(diǎn)的編譯完整性。在編譯檢查通過后,初始單元402適于對(duì)多個(gè)模塊節(jié)點(diǎn)對(duì)應(yīng)的原始編譯規(guī)則文件進(jìn)行修改,以形成節(jié)點(diǎn)編譯規(guī)則文件,所述節(jié)點(diǎn)編譯規(guī)則文件包括在sdk編譯規(guī)則文件中。初始單元402包括輸出初始子單元403、格式初始子單元404和依賴初始子單元405。輸出初始子單元403將所述原始編譯規(guī)則文件的目標(biāo)文件輸出目錄替代為所述sdk包輸出目錄;格式初始子單元404將所述目標(biāo)文件的輸出格式修改為靜態(tài)鏈接庫文件;依賴初始子單元405在依賴文件中過濾所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件,最終形成所述sdk包編譯規(guī)則文件。
判定單元406適于確定所述多個(gè)模塊節(jié)點(diǎn)的文件類型,每一模塊節(jié)點(diǎn)的文件類型為開源或閉源。所述判定單元406通過提取在所述多個(gè)模塊節(jié)點(diǎn)中的預(yù)設(shè)變量,確定所述源文件的類型,所述預(yù)設(shè)變量在所述模塊節(jié)點(diǎn)的源文件的形成過程中進(jìn)行配置。內(nèi)置庫形成單元407基于所述sdk編譯規(guī)則文件的觸發(fā),采用所述節(jié)點(diǎn)編譯規(guī)則文件對(duì)所述文件類型為閉源的所述模塊節(jié)點(diǎn)的源文件進(jìn)行編譯,以形成所述模塊節(jié)點(diǎn)的內(nèi)置庫。復(fù)制單元408基于所述sdk編譯規(guī)則文件的觸發(fā),將所述文件類型為開源的所述模塊節(jié)點(diǎn)的源文件 復(fù)制至sdk包輸出目錄,以形成sdk包的至少一部分。sdk包除了閉源模塊節(jié)點(diǎn)形成的內(nèi)置庫與開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件,還包括預(yù)設(shè)sdk標(biāo)準(zhǔn)文件。將預(yù)設(shè)sdk標(biāo)準(zhǔn)文件復(fù)制至所述sdk包輸出目錄,預(yù)設(shè)sdk標(biāo)準(zhǔn)文件與內(nèi)置庫、開源模塊節(jié)點(diǎn)對(duì)應(yīng)的源文件構(gòu)成了sdk包。所述預(yù)設(shè)sdk標(biāo)準(zhǔn)文件可以包括以下一種或多種:頭文件、所述sdk編譯規(guī)則文件、私有頭文件、測(cè)試源文件和版本控制源文件。sdk包形成后,第一檢測(cè)單元409基于所述sdk編譯規(guī)則文件對(duì)所述sdk包進(jìn)行編譯,以檢測(cè)所述sdk包的編譯完整性。
本發(fā)明實(shí)施例的具體實(shí)施方式可參照前述相應(yīng)實(shí)施例,此處不再贅述。
本發(fā)明實(shí)施例還公開了一種終端,所述終端包括所述sdk包產(chǎn)生裝置。所述終端可以是任意能夠配置sdk包產(chǎn)生裝置的計(jì)算機(jī)設(shè)備、平臺(tái)等。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于以計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:rom、ram、磁盤或光盤等。
雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。