本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種生成軟件開發(fā)工具包的方法及裝置。
背景技術(shù):
1、軟件開發(fā)工具包(software?development?kit,sdk),可以理解為用于開發(fā)應(yīng)用程序的開發(fā)工具的集合。通常而言,將sdk提供給應(yīng)用軟件的開發(fā)方,開發(fā)方基于sdk進(jìn)行應(yīng)用程序開發(fā),應(yīng)用程序運(yùn)行在特定的操作系統(tǒng)平臺(tái)和軟件系統(tǒng)中。
2、而隨著現(xiàn)代軟件技術(shù)的發(fā)展,出現(xiàn)了越來越多的編程語(yǔ)言,除了c/c++以外,有java、c#、python、go等等,那么對(duì)sdk的提供方或者使用sdk的集成方而言,都會(huì)面臨到不同語(yǔ)言之間的調(diào)用問題,那么就需要將sdk進(jìn)行封裝橋接處理,使sdk可以被多種語(yǔ)言進(jìn)行調(diào)用,如sdk是使用c語(yǔ)言開發(fā)的,那么就可以使用jna(java?native?access)或者jni(javanative?interface)技術(shù)將其橋接成java程序,使集成方的java引用可以直接使用。
3、作為sdk的提供方或者集成方,需要將sdk封裝成多種語(yǔ)言的sdk包。若sdk升級(jí)更新,需要對(duì)多種語(yǔ)言的sdk包分別進(jìn)行升級(jí)更新,分別生成多種語(yǔ)言的sdk升級(jí)包,存在效率低的問題。
4、針對(duì)上述問題,目前尚未存在有效的解決方案。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供了一種生成軟件開發(fā)工具包的方法及裝置,以至少解決相關(guān)技術(shù)中生成軟件開發(fā)工具包的效率較低的問題。
2、根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種生成軟件開發(fā)工具包的方法,包括:獲取第一軟件開發(fā)工具包和第二軟件開發(fā)工具包,其中,上述第二軟件開發(fā)工具包是對(duì)上述第一軟件開發(fā)工具包進(jìn)行封裝橋接后得到的軟件開發(fā)工具包,上述第一軟件開發(fā)工具包允許被第一編程語(yǔ)言調(diào)用,上述第二軟件開發(fā)工具包允許被第二編程語(yǔ)言調(diào)用;將上述第一軟件開發(fā)工具包的元數(shù)據(jù)信息和上述第二軟件開發(fā)工具包的元數(shù)據(jù)信息進(jìn)行映射關(guān)聯(lián),得到目標(biāo)映射關(guān)系;在上述第一軟件開發(fā)工具包升級(jí)更新的情況下,根據(jù)上述目標(biāo)映射關(guān)系對(duì)上述第二軟件開發(fā)工具包進(jìn)行升級(jí)更新。
3、在一個(gè)示例性實(shí)施例中,將上述第一軟件開發(fā)工具包的元數(shù)據(jù)信息和上述第二軟件開發(fā)工具包的元數(shù)據(jù)信息進(jìn)行映射關(guān)聯(lián),得到目標(biāo)映射關(guān)系,包括:解析上述第一軟件開發(fā)工具包的對(duì)外接口文件,從上述對(duì)外接口文件獲取上述第一軟件開發(fā)工具包的元數(shù)據(jù)信息,得到第一組元數(shù)據(jù)信息;解析上述第二軟件開發(fā)工具包的橋接層,從上述橋接層獲取上述第二軟件開發(fā)工具包的元數(shù)據(jù)信息,得到第二組元數(shù)據(jù)信息;將上述第一組元數(shù)據(jù)信息和上述第二組元數(shù)據(jù)信息進(jìn)行映射關(guān)聯(lián),得到上述目標(biāo)映射關(guān)系。
4、在一個(gè)示例性實(shí)施例中,將上述第一組元數(shù)據(jù)信息和上述第二組元數(shù)據(jù)信息進(jìn)行映射關(guān)聯(lián),得到上述目標(biāo)映射關(guān)系,包括以下至少之一:將上述第一組元數(shù)據(jù)信息中的接口信息與上述第二組元數(shù)據(jù)信息中的接口信息映射關(guān)聯(lián);將上述第一組元數(shù)據(jù)信息中的結(jié)構(gòu)體信息與上述第二組元數(shù)據(jù)信息中的結(jié)構(gòu)體信息映射關(guān)聯(lián);將上述第一組元數(shù)據(jù)信息中的枚舉信息與上述第二組元數(shù)據(jù)信息中的枚舉信息映射關(guān)聯(lián);將上述第一組元數(shù)據(jù)信息中的宏定義信息與上述第二組元數(shù)據(jù)信息中的宏定義信息映射關(guān)聯(lián);將上述第一組元數(shù)據(jù)信息中的注釋信息與上述第二組元數(shù)據(jù)信息中的注釋信息映射關(guān)聯(lián);將上述第一組元數(shù)據(jù)信息中的回調(diào)函數(shù)與上述第二組元數(shù)據(jù)信息中的回調(diào)函數(shù)映射關(guān)聯(lián)。
5、在一個(gè)示例性實(shí)施例中,在上述第一軟件開發(fā)工具包升級(jí)更新的情況下,根據(jù)上述目標(biāo)映射關(guān)系對(duì)上述第二軟件開發(fā)工具包進(jìn)行升級(jí)更新,包括:在上述第一軟件開發(fā)工具包的升級(jí)更新包括:增加成員、變更成員、刪除成員中的至少之一的情況下,根據(jù)上述目標(biāo)映射關(guān)系對(duì)上述第二軟件開發(fā)工具包進(jìn)行升級(jí)更新。
6、在一個(gè)示例性實(shí)施例中,上述方法還包括:在上述第一軟件開發(fā)工具包增加第一成員,根據(jù)上述目標(biāo)映射關(guān)系確定與上述第一成員相對(duì)應(yīng)的第一目標(biāo)成員,將上述第一目標(biāo)成員添加至上述第二軟件開發(fā)工具包;在將上述第一軟件開發(fā)工具包中的第二成員變更為第三成員,根據(jù)上述目標(biāo)映射關(guān)系確定與上述第二成員相對(duì)應(yīng)的第二目標(biāo)成員,以及與上述第三成員相對(duì)應(yīng)的第三目標(biāo)成員,將上述第二軟件開發(fā)工具包中的上述第二目標(biāo)成員變更為上述第三目標(biāo)成員;在刪除上述第一軟件開發(fā)工具包中的第四成員的情況下,根據(jù)上述目標(biāo)映射關(guān)系確定與上述第四成員相對(duì)應(yīng)的第四目標(biāo)成員,刪除上述第二軟件開發(fā)工具包中的上述第四目標(biāo)成員。
7、在一個(gè)示例性實(shí)施例中,上述方法還包括:獲取上述第一軟件開發(fā)工具包的第一測(cè)試用例,其中,上述第一軟件開發(fā)工具包允許被第一編程語(yǔ)言調(diào)用,上述第一測(cè)試用例屬于上述第一編程語(yǔ)言,上述第一測(cè)試用例用于對(duì)上述第一軟件開發(fā)工具包進(jìn)行測(cè)試;根據(jù)上述目標(biāo)映射關(guān)系將上述第一測(cè)試用例轉(zhuǎn)換為第二測(cè)試用例,其中,上述第二測(cè)試用例用于對(duì)上述第二軟件開發(fā)工具包進(jìn)行測(cè)試。
8、根據(jù)本發(fā)明的另一個(gè)實(shí)施例,提供了一種生成軟件開發(fā)工具包的裝置,包括:獲取模塊,用于獲取第一軟件開發(fā)工具包和第二軟件開發(fā)工具包,其中,上述第二軟件開發(fā)工具包是對(duì)上述第一軟件開發(fā)工具包進(jìn)行封裝橋接后得到的軟件開發(fā)工具包,上述第一軟件開發(fā)工具包允許被第一編程語(yǔ)言調(diào)用,上述第二軟件開發(fā)工具包允許被第二編程語(yǔ)言調(diào)用;關(guān)聯(lián)模塊,用于將上述第一軟件開發(fā)工具包的元數(shù)據(jù)信息和上述第二軟件開發(fā)工具包的元數(shù)據(jù)信息進(jìn)行映射關(guān)聯(lián),得到目標(biāo)映射關(guān)系;更新模塊,用于在上述第一軟件開發(fā)工具包升級(jí)更新的情況下,根據(jù)上述目標(biāo)映射關(guān)系對(duì)上述第二軟件開發(fā)工具包進(jìn)行升級(jí)更新。
9、根據(jù)本發(fā)明的又一個(gè)實(shí)施例,還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),上述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,其中,上述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述任一項(xiàng)中上述的方法的步驟。
10、根據(jù)本發(fā)明的又一個(gè)實(shí)施例,還提供了一種電子裝置,包括存儲(chǔ)器和處理器,上述存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)程序,上述處理器被設(shè)置為運(yùn)行上述計(jì)算機(jī)程序以執(zhí)行上述任一項(xiàng)方法實(shí)施例中的步驟。
11、根據(jù)本發(fā)明的又一個(gè)實(shí)施例,還提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,上述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述任一項(xiàng)中上述的方法的步驟。
12、通過本發(fā)明,第二軟件開發(fā)工具包是對(duì)第一軟件開發(fā)工具包進(jìn)行封裝橋接后得到的軟件開發(fā)工具包,第一軟件開發(fā)工具包允許被第一編程語(yǔ)言調(diào)用,第二軟件開發(fā)工具包允許被第二編程語(yǔ)言調(diào)用;由于通過將第一軟件開發(fā)工具包的元數(shù)據(jù)信息和第二軟件開發(fā)工具包的元數(shù)據(jù)信息進(jìn)行映射關(guān)聯(lián),得到目標(biāo)映射關(guān)系;在第一軟件開發(fā)工具包升級(jí)更新的情況下,根據(jù)目標(biāo)映射關(guān)系對(duì)第二軟件開發(fā)工具包進(jìn)行升級(jí)更新。達(dá)到自動(dòng)對(duì)第二軟件開發(fā)工具包升級(jí)更新的目的。因此,可以解決相關(guān)技術(shù)中生成軟件開發(fā)工具包的效率較低的問題,達(dá)到提高生成軟件開發(fā)工具包的效率的效果。
1.一種生成軟件開發(fā)工具包的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述第一軟件開發(fā)工具包的元數(shù)據(jù)信息和所述第二軟件開發(fā)工具包的元數(shù)據(jù)信息進(jìn)行映射關(guān)聯(lián),得到目標(biāo)映射關(guān)系,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,將所述第一組元數(shù)據(jù)信息和所述第二組元數(shù)據(jù)信息進(jìn)行映射關(guān)聯(lián),得到所述目標(biāo)映射關(guān)系,包括以下至少之一:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述第一軟件開發(fā)工具包升級(jí)更新的情況下,根據(jù)所述目標(biāo)映射關(guān)系對(duì)所述第二軟件開發(fā)工具包進(jìn)行升級(jí)更新,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,所述方法還包括:
7.一種生成軟件開發(fā)工具包的裝置,其特征在于,包括:
8.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)所述權(quán)利要求1至6任一項(xiàng)中所述的方法的步驟。
9.一種電子裝置,包括存儲(chǔ)器和處理器,其特征在于,所述存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)程序,所述處理器被設(shè)置為運(yùn)行所述計(jì)算機(jī)程序以執(zhí)行所述權(quán)利要求1至6任一項(xiàng)中所述的方法。
10.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6任一項(xiàng)中所述的方法的步驟。