本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及軟件開(kāi)發(fā)工具包的打包方法、裝置及設(shè)備、可讀介質(zhì)。
背景技術(shù):
軟件開(kāi)發(fā)工具包(softwaredevelopmentkit,sdk),一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件時(shí)的開(kāi)發(fā)工具的集合,可以簡(jiǎn)單的為某個(gè)程序設(shè)計(jì)語(yǔ)言提供應(yīng)用程序接口api的一些文件。
很多應(yīng)用軟件的業(yè)務(wù)組件需要通過(guò)sdk打包的方式生成,常見(jiàn)的sdk模塊庫(kù)所含的模塊,能夠同時(shí)支持多種應(yīng)用軟件的目標(biāo)業(yè)務(wù)(例如:身份核驗(yàn)業(yè)務(wù)),包括基礎(chǔ)功能集合部分,即基礎(chǔ)模塊,該基礎(chǔ)模塊能夠支持該目標(biāo)業(yè)務(wù)的各種基礎(chǔ)功能;還包括該目標(biāo)業(yè)務(wù)的業(yè)務(wù)功能集合部分,即功能模塊,該功能模塊能夠同時(shí)滿(mǎn)足該目標(biāo)業(yè)務(wù)的各種需求,例如:人臉核驗(yàn)需求、密碼核驗(yàn)需求、人機(jī)核驗(yàn)需求、指紋核驗(yàn)需求、身份證件核驗(yàn)需求等。
現(xiàn)有sdk打包方法在打包時(shí),通常由打包服務(wù)器將其所含的目標(biāo)業(yè)務(wù)的所有模塊整體進(jìn)行編譯,將所有模塊整體編譯后打包成sdk,然后供不同的應(yīng)用軟件下載使用。
而不同種類(lèi)的應(yīng)用軟件(客戶(hù)端)對(duì)該目標(biāo)業(yè)務(wù)的需求可能不完全相同,并不需要該目標(biāo)業(yè)務(wù)的sdk同時(shí)滿(mǎn)足各種需求,例如:支付寶只需要密碼核驗(yàn)、螞蟻聚寶需要身份證件核驗(yàn)等,這樣導(dǎo)致客戶(hù)端下載的該類(lèi)業(yè)務(wù)的sdk包含有客戶(hù)端不需要的業(yè)務(wù)功能,浪費(fèi)了下載的帶寬資源,增加了下載的時(shí)間。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┮环N軟件開(kāi)發(fā)工具包的打包方法、裝置及設(shè)備、可讀介質(zhì)。
具體地,本申請(qǐng)是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的:
根據(jù)本申請(qǐng)實(shí)施例的第一方面,提供一種軟件開(kāi)發(fā)工具包的打包方法,包括以下步驟:
接收客戶(hù)端發(fā)送的打包指令;
如果所述打包指令攜帶有需求標(biāo)識(shí),將與所述需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊確定為打包所需的模塊;各功能子模塊的集合為功能模塊,該功能模塊用于同時(shí)支持目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能,所述需求標(biāo)識(shí)與所述客戶(hù)端所需的業(yè)務(wù)功能對(duì)應(yīng);
對(duì)打包所需的模塊進(jìn)行編譯,獲得編譯文件;
對(duì)獲得的編譯文件進(jìn)行打包處理,生成所述客戶(hù)端所需的sdk。
根據(jù)本申請(qǐng)實(shí)施例的第二方面,提供一種電子設(shè)備,包括:
處理器;
存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
其中,所述處理器耦合于所述存儲(chǔ)器,用于讀取所述存儲(chǔ)器存儲(chǔ)的程序指令,并作為響應(yīng),執(zhí)行如下操作:
接收客戶(hù)端發(fā)送的打包指令;
如果所述打包指令攜帶有需求標(biāo)識(shí),將與所述需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊確定為打包所需的模塊;各功能子模塊的集合為功能模塊,該功能模塊用于同時(shí)支持目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能,所述需求標(biāo)識(shí)與所述客戶(hù)端所需的業(yè)務(wù)功能對(duì)應(yīng);
對(duì)打包所需的模塊進(jìn)行編譯,獲得編譯文件;
對(duì)獲得的編譯文件進(jìn)行打包處理,生成所述客戶(hù)端所需的sdk。
根據(jù)本申請(qǐng)實(shí)施例的第三方面,提供一種軟件開(kāi)發(fā)工具包的打包裝置,包括:
指令接收模塊,用于接收客戶(hù)端發(fā)送的打包指令;
指令響應(yīng)模塊,用于在所述打包指令攜帶有需求標(biāo)識(shí),將與所述需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊確定為打包所需的模塊;各功能子模塊的集合為功能模塊,該功能模塊用于同時(shí)支持目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能,所述需求標(biāo)識(shí)與所述客戶(hù)端所需的業(yè)務(wù)功能對(duì)應(yīng);
功能編譯模塊,用于對(duì)打包所需的模塊進(jìn)行編譯,獲得編譯文件;
打包模塊,用于對(duì)獲得的編譯文件進(jìn)行打包處理,生成所述客戶(hù)端所需的sdk。
根據(jù)本申請(qǐng)實(shí)施例的第四方面,提供一個(gè)或多個(gè)機(jī)器可讀介質(zhì),其上存儲(chǔ)有指令,當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得終端設(shè)備執(zhí)行如以上所述的方法。
實(shí)施本申請(qǐng)?zhí)峁┑膶?shí)施例,接收到客戶(hù)端發(fā)送的打包指令后,如果所述打包指令攜帶有需求標(biāo)識(shí),將與所述需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊確定為打包所需的模塊,然后對(duì)打包所需的模塊進(jìn)行編譯,獲得編譯文件,對(duì)獲得的編譯文件進(jìn)行打包處理,生成所述客戶(hù)端所需的sdk,所確定的模塊用于滿(mǎn)足客戶(hù)端需求,可以供所述客戶(hù)端向用戶(hù)提供滿(mǎn)足其需求的業(yè)務(wù)功能。因此,本申請(qǐng)能夠根據(jù)各客戶(hù)端的不同需求從功能模塊所含的一份代碼中提取不同的代碼,打出滿(mǎn)足各客戶(hù)端的不同需求的sdk。進(jìn)而,如果客戶(hù)端下載該sdk,該sdk僅包含有該客戶(hù)端需要的業(yè)務(wù)功能的代碼,可以節(jié)約下載的帶寬資源和時(shí)間。
附圖說(shuō)明
圖1a是本申請(qǐng)軟件開(kāi)發(fā)工具包的打包方法的一個(gè)實(shí)施例流程圖;
圖1b是本申請(qǐng)根據(jù)一示例性實(shí)施例示出的代碼目錄的示意圖;
圖2a是本申請(qǐng)軟件開(kāi)發(fā)工具包的打包方法的另一個(gè)實(shí)施例流程圖;
圖2b是本申請(qǐng)根據(jù)一示例性實(shí)施例示出的sdk所含代碼的第一代碼目錄示意圖;
圖3a是本申請(qǐng)軟件開(kāi)發(fā)工具包的打包方法的另一個(gè)實(shí)施例流程圖;
圖3b是本申請(qǐng)根據(jù)一示例性實(shí)施例示出的sdk所含代碼的第二代碼目錄示意圖;
圖4是本申請(qǐng)軟件開(kāi)發(fā)工具包的打包裝置的一個(gè)實(shí)施例框圖;
圖5是本申請(qǐng)軟件開(kāi)發(fā)工具包的打包裝置的硬件結(jié)構(gòu)圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請(qǐng)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書(shū)中所詳述的、本申請(qǐng)的一些方面相一致的裝置和方法的例子。
在本申請(qǐng)使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本申請(qǐng)。在本申請(qǐng)和所附權(quán)利要求書(shū)中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本申請(qǐng)可能采用術(shù)語(yǔ)第一、第二、第三等來(lái)描述各種信息,但這些信息不應(yīng)限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅用來(lái)將同一類(lèi)型的信息彼此區(qū)分開(kāi)。例如,在不脫離本申請(qǐng)范圍的情況下,第一信息也可以被稱(chēng)為第二信息,類(lèi)似地,第二信息也可以被稱(chēng)為第一信息。取決于語(yǔ)境,如在此所使用的詞語(yǔ)“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。
本申請(qǐng)實(shí)施例涉及sdk的打包處理,在打包處理過(guò)程中,將用于實(shí)現(xiàn)某一類(lèi)業(yè)務(wù)的各種基礎(chǔ)功能的代碼,稱(chēng)為基礎(chǔ)代碼,即基礎(chǔ)模塊,該基礎(chǔ)模塊能夠支持該目標(biāo)業(yè)務(wù)的各種基礎(chǔ)功能;將用于實(shí)現(xiàn)該類(lèi)業(yè)務(wù)的各種業(yè)務(wù)功能的代碼,稱(chēng)為功能代碼,即功能模塊,該功能模塊能夠同時(shí)滿(mǎn)足各類(lèi)型的客戶(hù)端對(duì)該目標(biāo)業(yè)務(wù)的各種需求,這里提到的客戶(hù)端也可以稱(chēng)為用戶(hù)端,是指與服務(wù)器相對(duì)應(yīng),為客戶(hù)提供本地服務(wù)的程序。
所涉及的目標(biāo)業(yè)務(wù)可以是身份核驗(yàn)業(yè)務(wù)、支付業(yè)務(wù)、網(wǎng)銀業(yè)務(wù)中的任一類(lèi)業(yè)務(wù),針對(duì)每類(lèi)業(yè)務(wù),不同類(lèi)型的客戶(hù)端可能向用戶(hù)提供該類(lèi)業(yè)務(wù)的不同業(yè)務(wù)功能,因此,不同類(lèi)型的客戶(hù)端對(duì)該類(lèi)業(yè)務(wù)的需求可能不完全相同,例如:所涉及的業(yè)務(wù)為身份核驗(yàn)業(yè)務(wù),所述業(yè)務(wù)功能為生物特征核驗(yàn)功能、密碼核驗(yàn)功能、人機(jī)核驗(yàn)功能和證件核驗(yàn)功能中的任一種,客戶(hù)端的需求可能是生物特征核驗(yàn)需求、密碼核驗(yàn)需求、人機(jī)核驗(yàn)需求和證件核驗(yàn)需求中的至少一種。
本申請(qǐng)實(shí)施例,為了滿(mǎn)足不同類(lèi)型的客戶(hù)端對(duì)目標(biāo)業(yè)務(wù)的不同需求,打包出不同的sdk,供不同類(lèi)型的客戶(hù)端向用戶(hù)提供不同業(yè)務(wù)功能,可以預(yù)先基于目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能將功能模塊劃分為多個(gè)功能子模塊,一個(gè)功能子模塊對(duì)應(yīng)一種業(yè)務(wù)功能,包括用于實(shí)現(xiàn)該種業(yè)務(wù)功能的代碼,能夠滿(mǎn)足客戶(hù)端對(duì)該種業(yè)務(wù)功能的需求。在接收到客戶(hù)端發(fā)送的打包指令后,如果所述打包指令攜帶有需求標(biāo)識(shí),將與所述需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊確定為打包所需的模塊,然后對(duì)打包所需的模塊進(jìn)行編譯,獲得編譯文件,對(duì)獲得的編譯文件進(jìn)行打包處理,生成所述客戶(hù)端所需的sdk,所確定的模塊用于滿(mǎn)足客戶(hù)端需求,可以供所述客戶(hù)端向用戶(hù)提供滿(mǎn)足其需求的業(yè)務(wù)功能。因此,本申請(qǐng)能夠根據(jù)各客戶(hù)端的不同需求從功能模塊所含的一份代碼中提取不同的代碼,打出滿(mǎn)足各客戶(hù)端的不同需求的sdk。下面將對(duì)本申請(qǐng)實(shí)施例進(jìn)行詳細(xì)描述。
圖1a是本申請(qǐng)軟件開(kāi)發(fā)工具包的打包方法的一個(gè)實(shí)施例流程圖,該實(shí)施例可以包括以下步驟101-104:
步驟101:接收客戶(hù)端發(fā)送的打包指令。
步驟102:如果所述打包指令攜帶有需求標(biāo)識(shí),將與所述需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊確定為打包所需的模塊;各功能子模塊的集合為功能模塊,該功能模塊用于同時(shí)支持目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能,所述需求標(biāo)識(shí)與所述客戶(hù)端所需的業(yè)務(wù)功能對(duì)應(yīng)。
步驟103:對(duì)打包所需的模塊進(jìn)行編譯,獲得編譯文件。
步驟104:將所述功能模塊確定為打包所需的模塊。
本申請(qǐng)實(shí)施例所提供的方案,能運(yùn)行在打包服務(wù)器上,在打包sdk時(shí)可以根據(jù)發(fā)送打包指令的客戶(hù)端自身的需求,確定需要將那些模塊(或代碼)確定為打包所需的模塊(或代碼),例如:對(duì)于本身攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,無(wú)需將基礎(chǔ)模塊打包進(jìn)sdk,對(duì)于本身未攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端。再例如:對(duì)于僅需要向用戶(hù)提供該目標(biāo)業(yè)務(wù)的部分業(yè)務(wù)功能的客戶(hù)端,無(wú)需將該目標(biāo)業(yè)務(wù)的功能模塊整體打包進(jìn)sdk,僅需要將功能模塊中用于實(shí)現(xiàn)該部分業(yè)務(wù)功能的部分打包進(jìn)sdk。
為了能有效根據(jù)客戶(hù)端的需求打包sdk,可以先設(shè)置能夠代表客戶(hù)端需求的打包指令。在一個(gè)例子中,針對(duì)僅需要向用戶(hù)提供該目標(biāo)業(yè)務(wù)的部分業(yè)務(wù)功能的客戶(hù)端,可以預(yù)先確定不同客戶(hù)端需要向用戶(hù)提供的業(yè)務(wù)功能,然后基于所確定的各種業(yè)務(wù)功能,生成能代表每種業(yè)務(wù)功能的需求標(biāo)識(shí),在需要sdk時(shí),將需求標(biāo)識(shí)添加到打包指令后,向打包服務(wù)器發(fā)送。本例子所涉及的需求標(biāo)識(shí)與其所代表的業(yè)務(wù)功能,分別與相同的功能子模塊對(duì)應(yīng),需求標(biāo)識(shí)可以表示添加對(duì)應(yīng)功能子模塊,或者表示刪除對(duì)應(yīng)功能子模塊,如果表示添加對(duì)應(yīng)功能子模塊,需要將所對(duì)應(yīng)的功能子模塊的編譯文件打包到sdk;如果表示刪除對(duì)應(yīng)功能子模塊,需要將除所對(duì)應(yīng)的功能子模塊外的其他功能子模塊的編譯文件打包到sdk。
進(jìn)而,對(duì)于本身攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,如果其需要向用戶(hù)提供該目標(biāo)業(yè)務(wù)的部分業(yè)務(wù)功能,可以向打包指令內(nèi)添加能代表部分業(yè)務(wù)功能的需求標(biāo)識(shí),如果其需要向用戶(hù)提供該目標(biāo)業(yè)務(wù)的所有業(yè)務(wù)功能,可以不對(duì)打包指令做任何特殊處理,使用通用的打包指令,或者向打包指令內(nèi)添加能代表所有業(yè)務(wù)功能的需求標(biāo)識(shí);對(duì)于本身未攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,如果其需要向用戶(hù)提供該目標(biāo)業(yè)務(wù)的所有業(yè)務(wù)功能的客戶(hù)端,可以向打包指令內(nèi)添加能代表所有業(yè)務(wù)功能和基礎(chǔ)功能的需求標(biāo)識(shí)。
而打包服務(wù)器在接收到客戶(hù)端的打包指令時(shí),為了打包出滿(mǎn)足客戶(hù)端需求的sdk,可以先確定打包指令中是否攜帶有需求標(biāo)識(shí),將與需求標(biāo)識(shí)將對(duì)應(yīng)的功能子模塊確定為打包所需的模塊。進(jìn)而,對(duì)于是否將基礎(chǔ)模塊也確定為打包所需的模塊,可以先確定該客戶(hù)端本身是否未攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊,如果無(wú),則需要將基礎(chǔ)模塊確定為打包所需的模塊;如果有,則無(wú)需將基礎(chǔ)模塊確定為打包所需的模塊。
本申請(qǐng)?zhí)峁┮韵聨追N確定客戶(hù)端本身是否未攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊的方式:
第一種:接收到打包指令后,識(shí)別客戶(hù)端的id(身份標(biāo)識(shí)號(hào)),基于識(shí)別的id,從預(yù)存的客戶(hù)端id集合中查找識(shí)別的id,如果查找到,則確定客戶(hù)端本身攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊。為了快速確定客戶(hù)端是否攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊客戶(hù)端,可以記錄攜帶有的客戶(hù)端的身份標(biāo)識(shí)。
第二種:接收到打包指令后,判斷打包指令是否為通用的打包編譯指令,如果是,則確定客戶(hù)端本身攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊。例如:是否為通用的mvn編譯命令“mvncleaninstall”。
第三種:接收到打包指令后,判斷打包指令是否攜帶有需求標(biāo)識(shí),如果否,則確定客戶(hù)端本身攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊。
在其他例子中,在接收到客戶(hù)端發(fā)送的打包指令后,可以直接判斷接收的打包指令是否攜帶有代表基礎(chǔ)模塊的需求標(biāo)識(shí),如果攜帶有,需要將基礎(chǔ)模塊也確定為打包所需的模塊;如果未攜帶有,無(wú)需將基礎(chǔ)模塊也確定為打包所需的模塊。
在某些場(chǎng)景,打包服務(wù)器還可以向攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,提供該目標(biāo)業(yè)務(wù)的一些擴(kuò)展功能,相應(yīng)的,實(shí)現(xiàn)該目標(biāo)業(yè)務(wù)的整套代碼還包括用于實(shí)現(xiàn)這些擴(kuò)展功能的擴(kuò)展代碼,可以稱(chēng)為擴(kuò)展代碼,即擴(kuò)展模塊。在打包服務(wù)器接收到打包指令后,如果所述客戶(hù)端攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊,可以將支持?jǐn)U展功能的擴(kuò)展模塊也確定為打包所需的模塊。
實(shí)際應(yīng)用中,為了在接收到打包指令后,快速將打包指令所攜帶的需求標(biāo)識(shí)與各功能子模塊對(duì)應(yīng),獲取到需要打包到sdk的功能子模塊,本申請(qǐng)實(shí)施例可以預(yù)先將代表各功能子模塊的需求標(biāo)識(shí)分別與各profile對(duì)象關(guān)聯(lián),一個(gè)profile對(duì)象對(duì)應(yīng)一個(gè)功能子模塊,并執(zhí)行以下功能子模塊的配置過(guò)程:
采集所述目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能。
基于各種業(yè)務(wù)功能將所述功能模塊劃分為多個(gè)功能子模塊,一個(gè)功能子模塊對(duì)應(yīng)一種業(yè)務(wù)功能。
通過(guò)maven插件對(duì)各功能子模塊進(jìn)行配置,生成每個(gè)功能子模塊所對(duì)應(yīng)的profile對(duì)象。
在采集所述目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能時(shí),可以通過(guò)獲取客戶(hù)端的輸出內(nèi)容來(lái)采集,客戶(hù)端的輸出內(nèi)容可以包括顯示的輸入框、播放的提示語(yǔ)音等,例如,該目標(biāo)業(yè)務(wù)為身份核驗(yàn)業(yè)務(wù)時(shí),輸出的內(nèi)容可以包括播放的用于提示用戶(hù)進(jìn)行身份核驗(yàn)提示語(yǔ)音、顯示的核驗(yàn)信息輸入框等。
通常不同種類(lèi)的客戶(hù)端向用戶(hù)提供身份核驗(yàn)功能不會(huì)完全相同,在提供的身份核驗(yàn)功能不同時(shí),輸出內(nèi)容也不完全相同,例如:支付寶需要向用戶(hù)提供密碼核驗(yàn)功能,其輸出密碼輸入框,螞蟻聚寶需要向用戶(hù)提供身份證件核驗(yàn),其輸出提示用戶(hù)上傳身份證件的提示信息等。因此,各種輸出內(nèi)容與該目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能對(duì)應(yīng),根據(jù)各種客戶(hù)端的輸出內(nèi)容可以確定采集到該目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能,然后可以將該目標(biāo)業(yè)務(wù)的功能模塊劃分為多個(gè)功能子模塊。
而在劃分多個(gè)功能子模塊時(shí),可以首先從用于實(shí)現(xiàn)該目標(biāo)業(yè)務(wù)的整套代碼中識(shí)別出該功能模塊的代碼,然后從識(shí)別出的代碼中挑選出用于實(shí)現(xiàn)每種業(yè)務(wù)功能的代碼,將識(shí)別的每種業(yè)務(wù)功能的代碼確定為用于實(shí)現(xiàn)該種業(yè)務(wù)功能的功能子模塊。
這樣將代表各功能子模塊的需求標(biāo)識(shí)分別與各profile對(duì)象關(guān)聯(lián),可以通過(guò)maven插件的profile對(duì)象,快速確定與需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊。在某些例子中,為了快速將擴(kuò)展模塊或基礎(chǔ)模塊確定為打包所需的模塊,本申請(qǐng)實(shí)施例對(duì)應(yīng)擴(kuò)展模塊、基礎(chǔ)模塊,可以分別設(shè)置關(guān)聯(lián)的profile對(duì)象。
其中,maven是一個(gè)項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型(projectobjectmodel,pom),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(projectlifecycle),一個(gè)依賴(lài)管理系統(tǒng)(dependencymanagementsystem),和用來(lái)運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。
每個(gè)profile對(duì)象可以看作是pom的一部分配置,申請(qǐng)人可以根據(jù)不同的應(yīng)用場(chǎng)景應(yīng)用不同的profile對(duì)象,從而達(dá)到不同應(yīng)用場(chǎng)景使用不同的pom配置的目的。
以身份核驗(yàn)業(yè)務(wù)為例,通過(guò)maven插件的profile特性,根據(jù)客戶(hù)端的需求設(shè)置maven插件的項(xiàng)目對(duì)象模型所含的profile對(duì)象時(shí),可以確定以下三種與客戶(hù)端的需求對(duì)應(yīng)的打包指令,各打包指令分別與各組profile對(duì)象匹配:
第一種:mvncleaninstall,用于滿(mǎn)足攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,與基礎(chǔ)模塊之外的各模塊所對(duì)應(yīng)的profile對(duì)象匹配,代表清理掉之前打包生成的內(nèi)容,重新打包除基礎(chǔ)模塊外的所有模塊,然后存放到本地預(yù)設(shè)的目錄下。
第二種:mvncleaninstall–dnompaas,用于滿(mǎn)足未攜帶有不攜帶有業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,與擴(kuò)展模塊之外的各模塊所對(duì)應(yīng)的profile對(duì)象匹配,-dnompaas為自定義需求標(biāo)識(shí)(打包命令參數(shù)),代表清理掉之前打包生成的內(nèi)容,重新打包除擴(kuò)展模塊外的所有模塊,然后存放到本地預(yù)設(shè)的目錄下。
第三種,mvncleaninstall-dnompaas-dnobankcard-dnonocaptcha-dnosafezone-dnofingerprint-dnoshield-dnosms-dnocert-dexportaar=true,用于滿(mǎn)足未攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,與所攜帶的需求標(biāo)識(shí)所對(duì)應(yīng)的profile對(duì)象匹配,代表清理掉之前打包生成的內(nèi)容,重新打包除擴(kuò)展模塊外的基礎(chǔ)模塊、部分功能子模塊等,然后存放到電腦本地預(yù)設(shè)的目錄下。
其中,-dnobankcard為自定義需求標(biāo)識(shí)(打包命令參數(shù)),代表打包時(shí)不包含第一功能子模塊,例如身份核驗(yàn)業(yè)務(wù)中儲(chǔ)蓄客戶(hù)端所需的核驗(yàn)?zāi)K。
-dnonocaptcha為自定義需求標(biāo)識(shí)(打包命令參數(shù)),代表打包時(shí)不包含不包含第二功能子模塊,例如身份核驗(yàn)業(yè)務(wù)中劃一劃客戶(hù)端所需的人機(jī)識(shí)別模塊。
-dnosafezone為自定義需求標(biāo)識(shí)(打包命令參數(shù)),代表打包時(shí)不包含第三功能子模塊,例如身份核驗(yàn)業(yè)務(wù)中安全區(qū)模塊。
-dnofingerprint為自定義需求標(biāo)識(shí)(打包命令參數(shù)),代表打包時(shí)不包含第四功能子模塊,例如身份核驗(yàn)業(yè)務(wù)中指紋模塊。
-dnoshield為自定義需求標(biāo)識(shí)(打包命令參數(shù)),代表打包時(shí)不包含第五功能子模塊,例如身份核驗(yàn)業(yè)務(wù)中密盾模塊。
-dnosms為自定義需求標(biāo)識(shí)(打包命令參數(shù)),代表打包時(shí)不包含第六功能子模塊,例如身份核驗(yàn)業(yè)務(wù)中短信模塊。
-dnocert為自定義需求標(biāo)識(shí)(打包命令參數(shù)),代表打包時(shí)不包含第七功能子模塊,例如身份核驗(yàn)業(yè)務(wù)中證書(shū)模塊。
-dexportaar=true為自定義需求標(biāo)識(shí)(打包命令參數(shù)),代表打包時(shí)包含第八功能子模塊,例如身份核驗(yàn)業(yè)務(wù)中aar模塊。
在某些應(yīng)用場(chǎng)景,如果目標(biāo)業(yè)務(wù)為身份核驗(yàn)業(yè)務(wù),需要向用戶(hù)提供身份核驗(yàn)業(yè)務(wù)的客戶(hù)端,可以分為攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端、以及未攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,如:支付寶、聚寶、口碑商戶(hù)、網(wǎng)商銀行等,未攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端如:天貓、淘寶、聚劃算等,該身份核驗(yàn)業(yè)務(wù)根據(jù)各客戶(hù)端的不同,可以分為人臉核驗(yàn)業(yè)務(wù)、密碼核驗(yàn)業(yè)務(wù)、指紋核驗(yàn)業(yè)務(wù)、密盾核驗(yàn)業(yè)務(wù)、安全區(qū)核驗(yàn)業(yè)務(wù)、軟證書(shū)核驗(yàn)業(yè)務(wù)、短信核驗(yàn)業(yè)務(wù)、儲(chǔ)蓄卡核驗(yàn)業(yè)務(wù)等。根據(jù)各客戶(hù)端的需求劃分用于實(shí)現(xiàn)該身份核驗(yàn)業(yè)務(wù)的整套代碼后,劃分后的代碼目錄如圖1b所示。
參閱圖1b,如圖所示,劃分后的代碼目錄包括基礎(chǔ)實(shí)現(xiàn)層、適配層、核心層、公共層、產(chǎn)品層、擴(kuò)展層。
其中,基礎(chǔ)實(shí)現(xiàn)層對(duì)應(yīng)基礎(chǔ)模塊,對(duì)應(yīng)攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,設(shè)置為mpaas實(shí)現(xiàn),表示這些客戶(hù)端請(qǐng)求sdk時(shí)無(wú)需打包基礎(chǔ)模塊,其可以直接調(diào)用mpaas框架對(duì)應(yīng)的基礎(chǔ)模塊。對(duì)應(yīng)未攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,設(shè)置為export實(shí)現(xiàn),表示這些客戶(hù)端請(qǐng)求sdk時(shí),需要打包基礎(chǔ)模塊。
適配層,是用于屏蔽下方基礎(chǔ)實(shí)現(xiàn)層的差異統(tǒng)一接口,在打包階段,合并入基礎(chǔ)實(shí)現(xiàn)層的不同實(shí)現(xiàn),并向上方提供統(tǒng)一接口。
核心層對(duì)應(yīng)sdk的核心引擎,可以預(yù)置指向核心引擎的核心指向?qū)ο?,由任一打包指令觸發(fā):該核心引擎的編譯和打包過(guò)程。
公共層對(duì)應(yīng)提供ui組件及其它上層公共功能的公共模塊,可以預(yù)置指向公共模塊公共指向?qū)ο?,由任一打包指令觸發(fā):該公共模塊編譯和打包過(guò)程。
產(chǎn)品層對(duì)應(yīng)身份核驗(yàn)業(yè)務(wù)的各種業(yè)務(wù)功能,對(duì)應(yīng)攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,設(shè)置為[核身產(chǎn)品],表示這些客戶(hù)端請(qǐng)求sdk時(shí)需打包所有功能子模塊。對(duì)應(yīng)未攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,設(shè)置為可選[核身產(chǎn)品],表示這些客戶(hù)端請(qǐng)求sdk時(shí),可以靈活取舍各種功能子模塊。
擴(kuò)展層對(duì)應(yīng)提供擴(kuò)展功能的擴(kuò)展模塊或輸出測(cè)試工具。對(duì)應(yīng)攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,設(shè)置為mpaasbiz,表示這些客戶(hù)端請(qǐng)求sdk時(shí)需打包擴(kuò)展模塊。對(duì)應(yīng)未攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,設(shè)置為可選輸出測(cè)試工具,表示這些客戶(hù)端請(qǐng)求sdk時(shí),無(wú)需打包擴(kuò)展模塊,打包好sdk后,需要對(duì)sdk進(jìn)行輸出測(cè)試,測(cè)試成功才能向客戶(hù)端提供該sdk。
在其他實(shí)施例中,可以通過(guò)本領(lǐng)域的其他方案,在接收到打包指令后,快速將打包指令所攜帶的需求標(biāo)識(shí)與各功能子模塊對(duì)應(yīng),獲取到打包所需的模塊,本申請(qǐng)實(shí)施例可以預(yù)先將代表各功能子模塊的需求標(biāo)識(shí)分別與腳本關(guān)聯(lián),本申請(qǐng)實(shí)施例對(duì)此不做限制。
在對(duì)打包所需的模塊進(jìn)行打包處理時(shí),可采用本領(lǐng)域慣用的sdk打包工具,生成sdk,這里提到的sdk打包工具如:anysdk本地打包工具、windowsvistasdk等。
打包出sdk后,如果打包指令攜帶有需求標(biāo)識(shí),在對(duì)獲得的編譯文件進(jìn)行打包處理后,對(duì)打包所得的sdk進(jìn)行輸出測(cè)試,如果測(cè)試成功,則確定打包所得的sdk為所述客戶(hù)端所需的sdk,如果測(cè)試失敗,則清理掉打包所得的sdk,確定打包失敗。
以下以身份核驗(yàn)業(yè)務(wù)為例,闡述一實(shí)例。該實(shí)例中,可以通過(guò)maven插件的profile特性,將分別代表基礎(chǔ)模塊、功能模塊、擴(kuò)展模塊、各功能子模塊的需求標(biāo)識(shí),與maven插件的項(xiàng)目對(duì)象模型所含的各profile對(duì)象關(guān)聯(lián);此外,根據(jù)各客戶(hù)端的需求劃分用于實(shí)現(xiàn)該身份核驗(yàn)業(yè)務(wù)的整套代碼,劃分后的代碼目錄如圖1b所示。該實(shí)例為了滿(mǎn)足攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端的需求,可以通過(guò)圖2a所示的操作流程,實(shí)現(xiàn)sdk打包,該sdk打包過(guò)程可以包括以下步驟201-205:
步驟201:接收客戶(hù)端發(fā)送的打包指令。
步驟202:如果所述打包指令未攜帶有需求標(biāo)識(shí),確定該客戶(hù)端攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊。
步驟203:將基礎(chǔ)模塊之外的各模塊確定為打包所需的模塊,并查找分別與基礎(chǔ)模塊之外的各模塊對(duì)應(yīng)的profile對(duì)象。
步驟204:基于查找到的profile對(duì)象,分別對(duì)基礎(chǔ)模塊之外的各模塊進(jìn)行編譯,獲得編譯文件。
步驟205:對(duì)獲得的編譯文件進(jìn)行打包處理,生成該客戶(hù)端所需的sdk。
本例子打包的sdk所含代碼的代碼目錄如圖2b所示,包括基礎(chǔ)實(shí)現(xiàn)層的mpaas實(shí)現(xiàn)、適配層、核心層、公共層、產(chǎn)品層的[核身產(chǎn)品]以及擴(kuò)展層的mpaasbiz。
以下以身份核驗(yàn)業(yè)務(wù)為例,闡述一實(shí)例。該實(shí)例中,可以通過(guò)maven插件的profile特性,將分別代表基礎(chǔ)模塊、功能模塊、擴(kuò)展模塊、各功能子模塊的需求標(biāo)識(shí),與maven插件的項(xiàng)目對(duì)象模型所含的各profile對(duì)象關(guān)聯(lián);此外,根據(jù)各客戶(hù)端的需求劃分用于實(shí)現(xiàn)該身份核驗(yàn)業(yè)務(wù)的整套代碼,劃分后的代碼目錄如圖1b所示。該實(shí)例為了滿(mǎn)足未攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端的需求,可以通過(guò)圖3a所示的操作流程,實(shí)現(xiàn)sdk打包,該sdk打包過(guò)程可以包括以下步驟301-306:
步驟301:接收客戶(hù)端發(fā)送的打包指令。
步驟302:如果所述打包指令攜帶有需求標(biāo)識(shí),確定該客戶(hù)端未攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊。
步驟303:將與所攜帶的需求標(biāo)識(shí)對(duì)應(yīng)的各模塊確定為打包所需的模塊,并查找分別與打包所需的各模塊對(duì)應(yīng)的profile對(duì)象。
步驟304:基于查找到的profile對(duì)象,分別對(duì)打包所需的各模塊進(jìn)行編譯,獲得編譯文件。
步驟305:對(duì)獲得的編譯文件進(jìn)行打包處理,生成sdk。
步驟306:對(duì)生成的sdk進(jìn)行輸出測(cè)試,如果測(cè)試成功,則確定生成的sdk滿(mǎn)足該客戶(hù)端的需求。
在本步驟中,如果測(cè)試失敗,則清理掉打包出的sdk,并返回步驟301。
本例子打包的sdk所含代碼的代碼目錄如圖3b所示,包括基礎(chǔ)實(shí)現(xiàn)層的export實(shí)現(xiàn)、適配層、核心層、公共層、產(chǎn)品層的可選[核身產(chǎn)品],擴(kuò)展層的輸出測(cè)試工具并未打包到sdk,代表打包后的sdk需要輸出測(cè)試。
對(duì)于產(chǎn)品層的可選[核身產(chǎn)品],可以根據(jù)客戶(hù)端的需求,靈活取舍各功能子模塊,例如,可以選取全部功能子模塊,也可以選取部分功能子模塊。進(jìn)而對(duì)打包所得sdk的大小進(jìn)行有效控制,使得打包所得的sdk對(duì)未攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端的輸出更加友好、靈活、方便。
在其他實(shí)施例中,如果本身攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊的客戶(hù)端,僅需要向用戶(hù)提供該目標(biāo)業(yè)務(wù)的部分業(yè)務(wù)功能,向打包指令內(nèi)添加能代表部分業(yè)務(wù)功能的需求標(biāo)識(shí),為了在接收到打包指令后快速確定客戶(hù)端是否攜帶有身份核驗(yàn)業(yè)務(wù)的基礎(chǔ)模塊,可以識(shí)別客戶(hù)端的id(身份標(biāo)識(shí)號(hào)),基于識(shí)別的id,從預(yù)存的客戶(hù)端id集合中查找識(shí)別的id,如果查找到,則確定客戶(hù)端本身攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊,如果未查找到,確客戶(hù)端本身未攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊定。
由上述實(shí)施例可知:接收到客戶(hù)端發(fā)送的打包指令后,如果所述打包指令攜帶有需求標(biāo)識(shí),將與所述需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊確定為打包所需的模塊,然后對(duì)打包所需的模塊進(jìn)行編譯,獲得編譯文件,對(duì)獲得的編譯文件進(jìn)行打包處理,生成所述客戶(hù)端所需的sdk,所確定的模塊用于滿(mǎn)足客戶(hù)端需求,可以供所述客戶(hù)端向用戶(hù)提供滿(mǎn)足其需求的業(yè)務(wù)功能。因此,本申請(qǐng)能夠根據(jù)各客戶(hù)端的不同需求從功能模塊所含的一份代碼中提取不同的代碼,打出滿(mǎn)足各客戶(hù)端的不同需求的sdk。進(jìn)而,如果客戶(hù)端下載該sdk,該sdk僅包含有該客戶(hù)端需要的業(yè)務(wù)功能的代碼,可以節(jié)約下載的帶寬資源和時(shí)間。
本申請(qǐng)實(shí)施例中應(yīng)用到提供身份核驗(yàn)業(yè)務(wù)的領(lǐng)域時(shí),可以滿(mǎn)足生物特征核驗(yàn)需求、密碼核驗(yàn)需求、人機(jī)核驗(yàn)需求和證件核驗(yàn)需求中任意一種需求,或者任意兩種以上需求的組合,所涉及的生物特征可以包括眼部特征、聲紋、指紋、掌紋、心跳、脈搏、染色體、dna、人牙咬痕等。其中眼紋可以包括虹膜、鞏膜等生物特征。
此外,針對(duì)上述任意一種需求,還可以進(jìn)一步細(xì)化該種需求,例如證件核驗(yàn)需求,可以細(xì)分為二代身份證核驗(yàn)需求、香港身份證核驗(yàn)需求、澳門(mén)身份證核驗(yàn)需求、臺(tái)灣身份證核驗(yàn)需求及部分國(guó)外身份證核驗(yàn)需求,根據(jù)這些喜歡的核驗(yàn)需求,可以進(jìn)一步細(xì)分對(duì)應(yīng)的功能子模塊以及設(shè)置其對(duì)應(yīng)的profile對(duì)象。
與前述軟件開(kāi)發(fā)工具包的打包方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了軟件開(kāi)發(fā)工具包的打包裝置的實(shí)施例。
參見(jiàn)圖4,圖4是本申請(qǐng)軟件開(kāi)發(fā)工具包的打包裝置的一個(gè)實(shí)施例框圖,該裝置可包括:指令接收模塊410、指令響應(yīng)模塊420、功能編譯模塊430和打包模塊440。
其中,指令接收模塊410,用于接收客戶(hù)端發(fā)送的打包指令。
指令響應(yīng)模塊420,用于在所述打包指令攜帶有需求標(biāo)識(shí),將與所述需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊確定為打包所需的模塊;各功能子模塊的集合為功能模塊,該功能模塊用于同時(shí)支持目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能,所述需求標(biāo)識(shí)與所述客戶(hù)端所需的業(yè)務(wù)功能對(duì)應(yīng)。
功能編譯模塊430,用于對(duì)打包所需的模塊進(jìn)行編譯,獲得編譯文件。
打包模塊440,用于對(duì)獲得的編譯文件進(jìn)行打包處理,生成所述客戶(hù)端所需的sdk。
在一個(gè)可選實(shí)現(xiàn)方式中,如果所述打包指令未攜帶有需求標(biāo)識(shí),本申請(qǐng)實(shí)施例的軟件開(kāi)發(fā)工具包的打包裝置還可以包括(圖4中未示出):
功能確定模塊,用于將所述功能模塊確定為打包所需的模塊。
在另一個(gè)可選實(shí)現(xiàn)方式中,在功能編譯模塊430對(duì)打包所需的模塊進(jìn)行編譯前,本申請(qǐng)實(shí)施例的軟件開(kāi)發(fā)工具包的打包裝置還可以包括(圖4中未示出):
擴(kuò)展確定模塊,用于在所述客戶(hù)端攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊時(shí),將支持?jǐn)U展功能的擴(kuò)展模塊也確定為打包所需的模塊。
在另一個(gè)可選實(shí)現(xiàn)方式中,在功能編譯模塊430對(duì)打包所需的模塊進(jìn)行編譯前,本申請(qǐng)實(shí)施例的軟件開(kāi)發(fā)工具包的打包裝置還可以包括(圖4中未示出):
基礎(chǔ)確定模塊,用于在所述客戶(hù)端未攜帶有該目標(biāo)業(yè)務(wù)的基礎(chǔ)模塊時(shí),將所述基礎(chǔ)模塊也確定為打包所需的模塊。
在另一個(gè)可選實(shí)現(xiàn)方式中,如果所述打包指令攜帶有需求標(biāo)識(shí),在打包模塊440對(duì)獲得的編譯文件進(jìn)行打包處理后,本申請(qǐng)實(shí)施例的軟件開(kāi)發(fā)工具包的打包裝置還可以包括(圖4中未示出):
輸出測(cè)試模塊,用于對(duì)打包所得的sdk進(jìn)行輸出測(cè)試,如果測(cè)試成功,則確定打包所得的sdk為所述客戶(hù)端所需的sdk,如果測(cè)試失敗,則清理掉打包所得的sdk,確定打包失敗。
在另一個(gè)可選實(shí)現(xiàn)方式中,所述需求標(biāo)識(shí)與profile對(duì)象關(guān)聯(lián),一個(gè)profile對(duì)象對(duì)應(yīng)一個(gè)功能子模模,本申請(qǐng)實(shí)施例的軟件開(kāi)發(fā)工具包的打包裝置還可以包括(圖4中未示出):
功能子模塊的配置模塊,所述配置模塊包括:
采集模塊,用于采集所述目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能;
功能劃分模塊,用于基于各種業(yè)務(wù)功能將所述功能模塊劃分為多個(gè)功能子模塊,一個(gè)功能子模塊對(duì)應(yīng)一種業(yè)務(wù)功能;
對(duì)象配置模塊,用于通過(guò)maven插件對(duì)各功能子模塊進(jìn)行配置,生成每個(gè)功能子模塊所對(duì)應(yīng)的profile對(duì)象。
在另一個(gè)可選實(shí)現(xiàn)方式中,所述目標(biāo)業(yè)務(wù)為身份核驗(yàn)業(yè)務(wù),所述業(yè)務(wù)功能為生物特征核驗(yàn)功能、密碼核驗(yàn)功能、人機(jī)核驗(yàn)功能和證件核驗(yàn)功能中的任一種。
上述裝置中各個(gè)單元(或模塊)的功能和作用的實(shí)現(xiàn)過(guò)程具體詳見(jiàn)上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過(guò)程,在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元或模塊可以是或者也可以不是物理上分開(kāi)的,作為單元或模塊顯示的部件可以是或者也可以不是物理單元或模塊,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元或模塊上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本申請(qǐng)方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
本申請(qǐng)軟件開(kāi)發(fā)工具包的打包裝置的實(shí)施例可以應(yīng)用在電子設(shè)備上。具體可以由計(jì)算機(jī)芯片或?qū)嶓w實(shí)現(xiàn),或者由具有某種功能的產(chǎn)品來(lái)實(shí)現(xiàn)。一種典型的實(shí)現(xiàn)中,電子設(shè)備為計(jì)算機(jī),計(jì)算機(jī)的具體形式可以是個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、蜂窩電話、相機(jī)電話、智能電話、個(gè)人數(shù)字助理、媒體播放器、導(dǎo)航設(shè)備、電子郵件收發(fā)設(shè)備、游戲控制臺(tái)、平板計(jì)算機(jī)、可穿戴設(shè)備、互聯(lián)網(wǎng)電視、智能機(jī)車(chē)、智能家居設(shè)備或者這些設(shè)備中的任意幾種設(shè)備的組合。
裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在電子設(shè)備的處理器將非易失性存儲(chǔ)器等可讀介質(zhì)中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖5所示,為本申請(qǐng)軟件開(kāi)發(fā)工具包的打包裝置所在電子設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖5所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的電子設(shè)備通常根據(jù)該電子設(shè)備的實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。電子設(shè)備的存儲(chǔ)處理器可以是可執(zhí)行指令的存儲(chǔ)器;處理器可以耦合存儲(chǔ)器,用于讀取所述存儲(chǔ)器存儲(chǔ)的程序指令,并作為響應(yīng),執(zhí)行如下操作:接收客戶(hù)端發(fā)送的打包指令;如果所述打包指令攜帶有需求標(biāo)識(shí),將與所述需求標(biāo)識(shí)對(duì)應(yīng)的功能子模塊確定為打包所需的模塊;各功能子模塊的集合為功能模塊,該功能模塊用于同時(shí)支持目標(biāo)業(yè)務(wù)的各種業(yè)務(wù)功能,所述需求標(biāo)識(shí)與所述客戶(hù)端所需的業(yè)務(wù)功能對(duì)應(yīng);對(duì)打包所需的模塊進(jìn)行編譯,獲得編譯文件;對(duì)獲得的編譯文件進(jìn)行打包處理,生成所述客戶(hù)端所需的sdk。
在其他實(shí)施例中,處理器所執(zhí)行的操作可以參考上文方法實(shí)施例中相關(guān)的描述,在此不予贅述。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。