無線應(yīng)用發(fā)布、實(shí)現(xiàn)方法與裝置制造方法
【專利摘要】本申請(qǐng)?zhí)峁┝艘环N無線應(yīng)用發(fā)布、實(shí)現(xiàn)方法與裝置,其中,無線應(yīng)用發(fā)布方法包括:將SDK的持久接口層集成到無線應(yīng)用中,其中,所述SDK包括所述持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,所述持久接口層包括供所述無線應(yīng)用調(diào)用的接口約定,所述動(dòng)態(tài)實(shí)現(xiàn)層包括與所述接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn);發(fā)布集成后的無線應(yīng)用,并將所述SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。通過本申請(qǐng),提升了無線應(yīng)用用戶的使用體驗(yàn);也減輕了無線應(yīng)用開發(fā)者的開發(fā)負(fù)擔(dān),降低了開發(fā)和維護(hù)以及應(yīng)用發(fā)布成本。
【專利說明】無線應(yīng)用發(fā)布、實(shí)現(xiàn)方法與裝置
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及無線應(yīng)用【技術(shù)領(lǐng)域】,特別是涉及一種無線應(yīng)用發(fā)布、實(shí)現(xiàn)方法與裝置?!颈尘凹夹g(shù)】
[0002]無線應(yīng)用,一般是指基于終端的操作系統(tǒng)而開發(fā)的無線客戶端應(yīng)用。在無線應(yīng)用中,通常集成有實(shí)現(xiàn)特定功能的SDK (Software Development Kit,軟件開發(fā)包)系統(tǒng),如廣告投放SDK系統(tǒng),即無線應(yīng)用開發(fā)者用于集成廣告投放邏輯的軟件開發(fā)包,其一般由從事無線廣告投放業(yè)務(wù)的公司在其網(wǎng)站上提供給無線應(yīng)用開發(fā)者。
[0003]針對(duì)無線應(yīng)用集成的不同,SDK系統(tǒng)可以有不同的投放方式。以無線應(yīng)用的廣告投放SDK系統(tǒng)為例,目前,市面上有兩種廣告投放平臺(tái),一種是投放自有廣告主(即希望投放廣告的商家)廣告資源的平臺(tái),另一種是集成了多個(gè)廣告投放平臺(tái)的SDK,提供廣告投放優(yōu)化服務(wù)的平臺(tái),實(shí)現(xiàn)優(yōu)化無線應(yīng)用App廣告填充率,并提高定向廣告投放精準(zhǔn)度。前者需要開發(fā)者將其SDK集成在自己的無線應(yīng)用中,每當(dāng)有新的SDK版本發(fā)布,無線應(yīng)用開發(fā)者需要集成新版的SDK,并修改代碼重新發(fā)布,迫使用戶更新相應(yīng)的無線應(yīng)用。后者則需要面對(duì)所有被集成的廣告投放平臺(tái)SDK,任何一個(gè)被集成的SDK有版本更新,這類SDK都面臨更新需求;且無線應(yīng)用開發(fā)者只能在重新開發(fā)和發(fā)布應(yīng)用的前提下,增加新的SDK或減少某個(gè)已集成SDK。
[0004]對(duì)于集成了多個(gè)廣告投放平臺(tái)的SDK的平臺(tái)而言,無線應(yīng)用開發(fā)者完成無線應(yīng)用開發(fā)后,很長時(shí)間內(nèi)都不需要進(jìn)行新的開發(fā)或版本升級(jí)維護(hù),但該平臺(tái)集成的廣告SDK確可能由于版本升級(jí)而不再兼容舊版本,此時(shí)已有的無線應(yīng)用只能被迫升級(jí)應(yīng)用,這對(duì)于無線應(yīng)用的最終用戶來說,并沒有更新該無線應(yīng)用的需求,而對(duì)于無線應(yīng)用開發(fā)者來說,只是增加了額外的開發(fā)和維護(hù)以及應(yīng)用發(fā)布成本。
[0005]為充分利用廣告投放資源,提高填充率,通常會(huì)采用集成多個(gè)廣告投放SDK的平臺(tái)進(jìn)行廣告投放。以避免由于無線應(yīng)用集成的廣告投放SDK過少,而出現(xiàn)廣告投放商廣告主資源的不足,造成填充率低,資源浪費(fèi)的情況。但是,如上所述,如果平臺(tái)集成的廣告SDK越多,則容易出現(xiàn)因廣告SDK升級(jí)而大幅增加無線應(yīng)用升級(jí)、打包和發(fā)布的工作量。
[0006]因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是:如何能夠無需更新無線應(yīng)用本身,即可實(shí)現(xiàn)其集成的SDK的更新。
【發(fā)明內(nèi)容】
[0007]本申請(qǐng)?zhí)峁┝艘环N無線應(yīng)用發(fā)布方法與裝置,以及一種無線應(yīng)用實(shí)現(xiàn)方法與裝置,以解決現(xiàn)有技術(shù)中無線應(yīng)用在更新其集成的SDK時(shí),需要同時(shí)更新無線應(yīng)用自身(即除SDK外的部分)的問題。
[0008]為了解決上述問題,本申請(qǐng)公開了一種無線應(yīng)用發(fā)布方法,包括:將軟件開發(fā)包SDK的持久接口層集成到無線應(yīng)用中,其中,所述SDK包括所述持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,所述持久接口層包括供所述無線應(yīng)用調(diào)用的接口約定,所述動(dòng)態(tài)實(shí)現(xiàn)層包括與所述接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn);發(fā)布集成后的無線應(yīng)用,并將所述SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。
[0009]為了解決上述問題,本申請(qǐng)還公開了一種無線應(yīng)用實(shí)現(xiàn)方法,包括:獲取集成了軟件開發(fā)包SDK的持久接口層的無線應(yīng)用的數(shù)據(jù)包;使用所述數(shù)據(jù)包運(yùn)行所述無線應(yīng)用;其中,所述SDK包括所述持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,所述持久接口層集成于所述無線應(yīng)用中,包括供所述無線應(yīng)用調(diào)用的接口約定;所述動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置于服務(wù)器端,包括與所述接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn)。
[0010]為了解決上述問題,本申請(qǐng)還公開了一種無線應(yīng)用發(fā)布裝置,包括:集成模塊,用于將軟件開發(fā)包SDK的持久接口層集成到無線應(yīng)用中,其中,所述SDK包括所述持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,所述持久接口層包括供所述無線應(yīng)用調(diào)用的接口約定,所述動(dòng)態(tài)實(shí)現(xiàn)層包括與所述接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn);發(fā)布模塊,用于發(fā)布集成后的無線應(yīng)用,并將所述SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。
[0011]為了解決上述問題,本申請(qǐng)還公開了一種無線應(yīng)用實(shí)現(xiàn)裝置,包括:獲取模塊,用于獲取集成了軟件開發(fā)包SDK的持久接口層的無線應(yīng)用的數(shù)據(jù)包;實(shí)現(xiàn)模塊,用于使用所述數(shù)據(jù)包運(yùn)行所述無線應(yīng)用;其中,所述SDK包括所述持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,所述持久接口層集成于所述無線應(yīng)用中,包括供所述無線應(yīng)用調(diào)用的接口約定;所述動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置于服務(wù)器端,包括與所述接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn)。
[0012]與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):
[0013]本申請(qǐng)中,將SDK分割為持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,其中,持久接口層主要包括供無線應(yīng)用調(diào)用的接口應(yīng)用,這部分很少發(fā)生改變;而動(dòng)態(tài)實(shí)現(xiàn)層則主要包括與接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn),這部分經(jīng)常需要更新。通過將SDK進(jìn)行分割,僅將較為穩(wěn)定的持久接口層集成到無線應(yīng)用中進(jìn)行發(fā)布,進(jìn)而通過無線客戶端的使用無線應(yīng)用的持久接口層調(diào)用動(dòng)態(tài)實(shí)現(xiàn)層,動(dòng)態(tài)加載動(dòng)態(tài)實(shí)現(xiàn)層中接口實(shí)現(xiàn)的類庫。這樣,因?yàn)镾DK的更新主要是接口實(shí)現(xiàn)的更新,因此在SDK需要更新時(shí),僅需改動(dòng)位于服務(wù)器端的動(dòng)態(tài)實(shí)現(xiàn)層,而不必對(duì)無線客戶端的無線應(yīng)用部分進(jìn)行改動(dòng),從而解決現(xiàn)有技術(shù)中無線應(yīng)用在更新其集成的SDK時(shí),需要同時(shí)更新無線應(yīng)用自身(即除SDK外的部分)的問題,大幅度降低了無線客戶端的無線應(yīng)用被迫跟著SDK升級(jí)的情況;且對(duì)于無線應(yīng)用的用戶透明,提升了無線應(yīng)用用戶的使用體驗(yàn);也減輕了無線應(yīng)用開發(fā)者的開發(fā)負(fù)擔(dān),降低了開發(fā)和維護(hù)以及應(yīng)用發(fā)布成本。
【專利附圖】
【附圖說明】
[0014]圖1是根據(jù)本申請(qǐng)實(shí)施例一的一種無線應(yīng)用發(fā)布方法的步驟流程圖;
[0015]圖2是根據(jù)本申請(qǐng)實(shí)施例二的一種無線應(yīng)用發(fā)布方法的步驟流程圖;
[0016]圖3是根據(jù)本申請(qǐng)實(shí)施例三的一種無線應(yīng)用發(fā)布方法的步驟流程圖;
[0017]圖4是根據(jù)現(xiàn)有技術(shù)的一種無線應(yīng)用發(fā)布及SDK升級(jí)的示意圖;
[0018]圖5是圖3所示實(shí)施例中的一種無線應(yīng)用發(fā)布及SDK升級(jí)的示意圖;
[0019]圖6是根據(jù)本申請(qǐng)實(shí)施例四的一種無線應(yīng)用實(shí)現(xiàn)方法的步驟流程圖;
[0020]圖7是根據(jù)本申請(qǐng)實(shí)施例五的一種無線應(yīng)用發(fā)布裝置的結(jié)構(gòu)框圖;
[0021]圖8是根據(jù)本申請(qǐng)實(shí)施例六的一種無線應(yīng)用發(fā)布系統(tǒng)的結(jié)構(gòu)框圖;
[0022]圖9是使用圖8所不的無線應(yīng)用發(fā)布系統(tǒng)進(jìn)行SDK升級(jí)的不意圖;[0023]圖10是根據(jù)本申請(qǐng)實(shí)施例七的一種無線應(yīng)用實(shí)現(xiàn)裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0024]為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。
[0025]實(shí)施例一
[0026]參照?qǐng)D1,其示出了根據(jù)本申請(qǐng)實(shí)施例一的一種無線應(yīng)用發(fā)布方法的步驟流程圖。
[0027]本實(shí)施例的無線應(yīng)用發(fā)布方法包括以下步驟:
[0028]步驟S102:將SDK的持久接口層集成到無線應(yīng)用中。
[0029]其中,SDK包括持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,持久接口層包括供無線應(yīng)用調(diào)用的接口約定,動(dòng)態(tài)實(shí)現(xiàn)層包括與接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn)。
[0030]接口約定是對(duì)接口的約定,其可約定接口類的名稱、公共方法的名稱、所接收的方法調(diào)用參數(shù)類型和順序,以及返回值的類型等,其具體約定的接口可以通過類實(shí)現(xiàn)。接口實(shí)現(xiàn)是接口約定中所約定的接口的具體實(shí)現(xiàn),其中的方法名稱、參數(shù)類型和順序,以及返回值類型等遵照接口約定。
[0031]步驟S104:發(fā)布集成后的無線應(yīng)用,并將所述SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。
[0032]發(fā)布的無線應(yīng)用可供無線客戶端下載使用,在使用或后續(xù)更新時(shí),無線應(yīng)用可以通過持久接口層中接口約定所約定的接口調(diào)用設(shè)置于服務(wù)器端的動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn)。
[0033]通過本實(shí)施例,將SDK分割為持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,其中,持久接口層主要包括供無線應(yīng)用調(diào)用的接口應(yīng)用,這部分很少發(fā)生改變;而動(dòng)態(tài)實(shí)現(xiàn)層則主要包括與接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn),這部分經(jīng)常需要更新。通過將SDK進(jìn)行分割,僅將較為穩(wěn)定的持久接口層集成到無線應(yīng)用中進(jìn)行發(fā)布,進(jìn)而通過無線客戶端使用的無線應(yīng)用的持久接口層調(diào)用動(dòng)態(tài)實(shí)現(xiàn)層,動(dòng)態(tài)加載動(dòng)態(tài)實(shí)現(xiàn)層中接口實(shí)現(xiàn)的類庫。這樣,因?yàn)镾DK的更新主要是接口實(shí)現(xiàn)的更新,因此,在SDK需要更新時(shí),僅需改動(dòng)位于服務(wù)器端的動(dòng)態(tài)實(shí)現(xiàn)層,而不必對(duì)無線客戶端的無線應(yīng)用部分進(jìn)行改動(dòng),從而解決現(xiàn)有技術(shù)中無線應(yīng)用在更新其集成的SDK時(shí),需要同時(shí)更新無線應(yīng)用自身(即除SDK外的部分)的問題,這大幅度降低了無線客戶端的無線應(yīng)用被迫跟著SDK升級(jí)的情況;且對(duì)于無線應(yīng)用的用戶透明,提升了無線應(yīng)用用戶的使用體驗(yàn);也減輕了無線應(yīng)用開發(fā)者的開發(fā)負(fù)擔(dān),降低了開發(fā)和維護(hù)以及應(yīng)用發(fā)布成本。
[0034]實(shí)施例二
[0035]參照?qǐng)D2,其示出了根據(jù)本申請(qǐng)實(shí)施例二的一種無線應(yīng)用發(fā)布方法的步驟流程圖。
[0036]本實(shí)施例的無線應(yīng)用發(fā)布方法包括以下步驟:
[0037]步驟S202:服務(wù)器端對(duì)一個(gè)SDK進(jìn)行分割,將其中的接口約定封裝為持久接口層,將其中的接口實(shí)現(xiàn)封裝為動(dòng)態(tài)實(shí)現(xiàn)層。
[0038]現(xiàn)有技術(shù)中,SDK會(huì)由提供者作為一個(gè)整體的程序包發(fā)放,接口約定和接口實(shí)現(xiàn)在一個(gè)包內(nèi),或者在同樣的程序內(nèi)。然后,無線應(yīng)用開發(fā)者會(huì)將該SDK整體集成到無線應(yīng)用中進(jìn)行發(fā)布。本實(shí)施例中,將接口約定打成一個(gè)包,即封裝為持久接口層,該SDK的持久接口層是暴露給集成SDK的外部程序(如無線應(yīng)用)的調(diào)用接口約定,包括方法名稱、返回類型、接收的參數(shù)和輸入輸出約定等;將接口實(shí)現(xiàn)打成另一個(gè)包,即封裝為動(dòng)態(tài)實(shí)現(xiàn)層,該SDK的動(dòng)態(tài)實(shí)現(xiàn)層是SDK持久接口層約定的接口的具體實(shí)現(xiàn),對(duì)集成SDK的外部程序不可見,可以在滿足接口約定的前提下更改實(shí)現(xiàn)方式和方法,集成SDK的外部程序不會(huì)受到影響。然后,將接口約定打成的包集成到無線應(yīng)用中進(jìn)行發(fā)布,由無線客戶端安裝并使用;將接口實(shí)現(xiàn)打成的包設(shè)置到服務(wù)器端。無線客戶端安裝或使用無線應(yīng)用后,集成在無線應(yīng)用中的SDK可以自主從服務(wù)器端獲取接口實(shí)現(xiàn)的數(shù)據(jù)包的新版本。這樣,集成SDK的程序在不需要升級(jí)的情況下,就能獲得新的SDK升級(jí)包。
[0039]需要說明的是,SDK的分割可以由無線應(yīng)用開發(fā)人員在集成時(shí)進(jìn)行,也可以由第三方提供分割好的SDK,無線應(yīng)用開發(fā)人員在集成時(shí)直接集成分割后的SDK持久接口層即可。
[0040]步驟S204:服務(wù)器端將SDK的持久接口層集成到無線應(yīng)用中,并發(fā)布集成后的無線應(yīng)用供無線客戶端下載使用;同時(shí),將SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。
[0041]步驟S206:服務(wù)器端判斷是否接收到使用無線應(yīng)用的無線客戶端發(fā)送的獲取請(qǐng)求,若是,則執(zhí)行步驟S208 ;若否,則執(zhí)行步驟S210。
[0042]其中,所述獲取請(qǐng)求用于請(qǐng)求從服務(wù)器端獲取動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn)。
[0043]若服務(wù)器端接收到獲取請(qǐng)求,說明發(fā)布的無線應(yīng)用中未集成動(dòng)態(tài)實(shí)現(xiàn)層的數(shù)據(jù),此時(shí),可以從服務(wù)器端獲取,以實(shí)現(xiàn)動(dòng)態(tài)接口實(shí)現(xiàn)加載和即時(shí)更新;若服務(wù)器端未接收到獲取請(qǐng)求,說明發(fā)布的無線應(yīng)用中集成了動(dòng)態(tài)實(shí)現(xiàn)層的初始版本,無線客戶端可以自動(dòng)從下載的無線應(yīng)用中加載初始的動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn),在需要時(shí)或設(shè)定時(shí)間時(shí),再向服務(wù)器端請(qǐng)求更新的接口實(shí)現(xiàn),以進(jìn)行動(dòng)態(tài)實(shí)現(xiàn)層的更新。
[0044]步驟S208:服務(wù)器端根據(jù)獲取請(qǐng)求,從服務(wù)器端向無線客戶端發(fā)送動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn),用于使無線客戶端中的無線應(yīng)用通過持久接口層中接口約定所約定的接口調(diào)用從服務(wù)器端獲取的接口實(shí)現(xiàn),動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫。
[0045]一般來說,在應(yīng)用開發(fā)階段導(dǎo)入類庫,編譯打包后隨無線應(yīng)用一同發(fā)布,這種方式稱為靜態(tài)類庫加載;反之,發(fā)布后的無線客戶端應(yīng)用在運(yùn)行時(shí)獲取類庫,動(dòng)態(tài)加載并執(zhí)行相應(yīng)邏輯,則稱為動(dòng)態(tài)類庫加載。
[0046]本步驟中,動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫,即在運(yùn)行時(shí)獲取接口實(shí)現(xiàn)的類庫,進(jìn)而動(dòng)態(tài)加載并執(zhí)行相應(yīng)邏輯。
[0047]步驟S210:服務(wù)器端判斷是否接收到無線客戶端發(fā)送的查詢請(qǐng)求,若是,則執(zhí)行步驟S212 ;若否,則重復(fù)本步驟。
[0048]其中,所述查詢請(qǐng)求用于查詢服務(wù)器端是否存在持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本。
[0049]步驟S212:服務(wù)器端確定存在持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本,從服務(wù)器端向無線客戶端發(fā)送更新版本,所述更新版本用于無線客戶端更新其無線應(yīng)用的持久接口層和/或動(dòng)態(tài)頭現(xiàn)層。
[0050]本實(shí)施例描述了服務(wù)器端的SDK發(fā)布和更新過程,通過本實(shí)施例,解決了現(xiàn)有技術(shù)中無線應(yīng)用在更新其集成的SDK時(shí),需要同時(shí)更新無線應(yīng)用自身(即除SDK外的部分)的問題,大幅度降低了無線客戶端的無線應(yīng)用被迫跟著SDK升級(jí)的情況;且對(duì)于無線應(yīng)用的用戶透明,提升了無線應(yīng)用用戶的使用體驗(yàn);也減輕了無線應(yīng)用開發(fā)者的開發(fā)負(fù)擔(dān),降低了開發(fā)和維護(hù)以及應(yīng)用發(fā)布成本。
[0051]實(shí)施例三
[0052]參照?qǐng)D3,其示出了根據(jù)本申請(qǐng)實(shí)施例三的一種無線應(yīng)用發(fā)布方法的步驟流程圖。[0053]本實(shí)施例的無線應(yīng)用發(fā)布方法包括以下步驟:
[0054]步驟S302:服務(wù)器端對(duì)一個(gè)SDK進(jìn)行分割,將其中的接口約定封裝為持久接口層,將其中的接口實(shí)現(xiàn)封裝為動(dòng)態(tài)實(shí)現(xiàn)層。
[0055]優(yōu)選地,對(duì)SDK進(jìn)行分割根據(jù)反射機(jī)制實(shí)現(xiàn),如,采用Java的ref Iect包的反射機(jī)制(也稱為反射技術(shù))。反射(Reflection)是.NET中的重要機(jī)制,通過反射,可以使無線應(yīng)用在運(yùn)行時(shí)獲得.NET中每一個(gè)類型(包括類、結(jié)構(gòu)、委托、接口和枚舉等)的成員,包括方法、屬性、事件,以及構(gòu)造函數(shù)等。還可以獲得每個(gè)成員的名稱、限定符和參數(shù)等。有了反射,即可對(duì)每一個(gè)類型了如指掌。如果無線客戶端的無線應(yīng)用獲得了構(gòu)造函數(shù)的信息,即可直接創(chuàng)建對(duì)象,即使這個(gè)對(duì)象的類型在編譯時(shí)還不知道。
[0056]本實(shí)施例使用反射機(jī)制對(duì)SDK進(jìn)行分割,簡化了分離的SDK的實(shí)現(xiàn),降低了本申請(qǐng)的無線應(yīng)用發(fā)布方案的實(shí)現(xiàn)成本。
[0057]步驟S304:服務(wù)器端將SDK的持久接口層集成到無線應(yīng)用中,發(fā)布集成后的無線應(yīng)用,并將SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。
[0058]例如,可以通過編譯時(shí)靜態(tài)鏈接的方式將SDK的持久接口層靜態(tài)打包到無線應(yīng)用中。
[0059]本實(shí)施例中,設(shè)定無線應(yīng)用中不集成SDK動(dòng)態(tài)實(shí)現(xiàn)層的初始版本。
[0060]步驟S306:無線客戶端下載集成后的無線應(yīng)用,進(jìn)行安裝和/或使用。
[0061]步驟S308:無線客戶端判斷集成后的無線應(yīng)用中是否攜帶有SDK動(dòng)態(tài)實(shí)現(xiàn)層的初始版本,若是,則執(zhí)行步驟S310 ;若否,則執(zhí)行步驟S312。
[0062]例如,一種情形是,無線應(yīng)用中沒有集成有SDK動(dòng)態(tài)實(shí)現(xiàn)層的初始版本,則從服務(wù)器端下載獲取,進(jìn)而進(jìn)行動(dòng)態(tài)加載和調(diào)用。另一種情形是,SDK中攜帶有一個(gè)SDK動(dòng)態(tài)實(shí)現(xiàn)層的初始版本,則一種方式是無線應(yīng)用程序運(yùn)行時(shí),直接加載調(diào)用該初始版本,然后向服務(wù)器端發(fā)送請(qǐng)求,詢問是否有新的SDK動(dòng)態(tài)實(shí)現(xiàn)層的實(shí)現(xiàn)包版本,若有就下載然后調(diào)用加載;另一種方式是,無線應(yīng)用程序運(yùn)行時(shí),會(huì)向服務(wù)器端發(fā)送請(qǐng)求,詢問是否有新的SDK動(dòng)態(tài)實(shí)現(xiàn)層的的實(shí)現(xiàn)包版本,有就下載然后調(diào)用加載,沒有則會(huì)根據(jù)約定(比如基于路徑和文件名)找到SDK的動(dòng)態(tài)實(shí)現(xiàn)層的實(shí)現(xiàn)包(即動(dòng)態(tài)實(shí)現(xiàn)層的初始版本)。
[0063]步驟S310:無線客戶端的無線應(yīng)用通過其集成的SDK的持久接口層中接口約定所約定的接口調(diào)用動(dòng)態(tài)實(shí)現(xiàn)層的初始版本中的接口實(shí)現(xiàn),動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫,轉(zhuǎn)到步驟 S316。
[0064]本步驟中,動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫,即在運(yùn)行時(shí)獲取接口實(shí)現(xiàn)的類庫,進(jìn)而動(dòng)態(tài)加載并執(zhí)行相應(yīng)邏輯。
[0065]步驟S312:無線客戶端的無線應(yīng)用從服務(wù)器端獲取SDK動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn)。
[0066]因本實(shí)施例中設(shè)定無線應(yīng)用中不集成SDK動(dòng)態(tài)實(shí)現(xiàn)層的初始版本,因此,在步驟S308中無線客戶端確定集成后的無線應(yīng)用中沒有攜帶SDK動(dòng)態(tài)實(shí)現(xiàn)層的初始版本時(shí),即轉(zhuǎn)本步驟執(zhí)行。
[0067]步驟S314:無線客戶端的無線應(yīng)用通過SDK持久接口層中接口約定所約定的接口調(diào)用從服務(wù)器端獲取的接口實(shí)現(xiàn),動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫。
[0068]步驟S316:無線客戶端的無線應(yīng)用判斷服務(wù)器端是否存在持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本;若是,則執(zhí)行步驟S318 ;若否,則循環(huán)執(zhí)行本步驟。[0069]SDK初始化時(shí),會(huì)獲取本地SDK相關(guān)數(shù)據(jù)包的現(xiàn)有版本號(hào),通常是一個(gè)數(shù)字,服務(wù)器端約定地址會(huì)返回客戶端當(dāng)前服務(wù)器上的最新SDK相關(guān)數(shù)據(jù)包的版本,如果服務(wù)器端的版本號(hào)大于客戶端SDK現(xiàn)有的版本號(hào),說明有新的版本需要更新。
[0070]步驟S318:無線客戶端的無線應(yīng)用從服務(wù)器端下載SDK的持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本,并更新無線客戶端中的無線應(yīng)用的SDK持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層。
[0071]為能更清楚地理解本實(shí)施例,以下以與現(xiàn)有的無線應(yīng)用發(fā)布及SDK升級(jí)對(duì)比的方式,對(duì)本實(shí)施例的無線應(yīng)用發(fā)布及SDK升級(jí)做進(jìn)一步說明。
[0072]參照?qǐng)D4,其示出了根據(jù)現(xiàn)有技術(shù)的一種無線應(yīng)用發(fā)布及SDK升級(jí)的示意圖。目前在無線應(yīng)用領(lǐng)域,SDK都是以靜態(tài)打包到應(yīng)用程序中的方式進(jìn)行集成,存在無線應(yīng)用程序升級(jí)需求頻繁和升級(jí)代價(jià)大的問題,因?yàn)槊慨?dāng)SDK有升級(jí)更新時(shí),所有集成了 SDK的App (應(yīng)用)都需要重新集成、編譯、打包、分發(fā),所有的客戶端應(yīng)用用戶還需要進(jìn)行下載和更新的一系列操作,才能最終實(shí)現(xiàn)SDK的更新。從圖4中可見,應(yīng)用程序中的SDK是在編譯時(shí)整體靜態(tài)鏈接到應(yīng)用程序中的,也即,是整體集成到應(yīng)用程序中,進(jìn)而進(jìn)行發(fā)布的。無線客戶端在安裝或使用該應(yīng)用程序后,若其中的SDK需要升級(jí),則從服務(wù)器端下載包括應(yīng)用程序本身和其集成的SDK在內(nèi)的整個(gè)應(yīng)用程序。這就造成,每當(dāng)有新的SDK版本發(fā)布,無線應(yīng)用開發(fā)者就需要修改代碼重新發(fā)布,而無線應(yīng)用本身卻可能并無修改,導(dǎo)致用戶的無線應(yīng)用本身的被迫更新,使得即增加了無線應(yīng)用開發(fā)者的額外開發(fā)和維護(hù)以及應(yīng)用發(fā)布成本,也降低了用戶的無線應(yīng)用使用體驗(yàn)。
[0073]而本實(shí)施例中采用的無線應(yīng)用發(fā)布及SDK升級(jí)方式如圖5所示,從圖5中可以明顯看出SDK持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層的分離。應(yīng)用程序中僅集成了 SDK的持久接口層,也即,SDK的持久接口層是在編譯時(shí)靜態(tài)鏈接到應(yīng)用程序中進(jìn)而進(jìn)行發(fā)布的,而SDK的動(dòng)態(tài)實(shí)現(xiàn)層則是在運(yùn)行時(shí)動(dòng)態(tài)載入的。當(dāng)SDK需要升級(jí)時(shí),僅需修改服務(wù)器端的SDK動(dòng)態(tài)實(shí)現(xiàn)層,無須對(duì)應(yīng)用程序本身進(jìn)行改動(dòng)。這樣,一方面,無線應(yīng)用的用戶不必被迫更新無線應(yīng)用本身,從而提升了使用體驗(yàn);另一方面無線應(yīng)用開發(fā)者無須進(jìn)行額外的開發(fā)和維護(hù),降低了額外開發(fā)和維護(hù)以及應(yīng)用發(fā)布成本。
[0074]通過本實(shí)施例,利用動(dòng)態(tài)類庫加載機(jī)制,將SDK的持久接口層(很少改變)和動(dòng)態(tài)實(shí)現(xiàn)層(經(jīng)常需要更新)進(jìn)行分離,只在無線客戶端應(yīng)用中鏈接和打包持久接口層,通過動(dòng)態(tài)類庫的加載和調(diào)用,實(shí)現(xiàn)運(yùn)行時(shí)綁定動(dòng)態(tài)實(shí)現(xiàn)層,從而大幅度降低了無線客戶端應(yīng)用被迫跟著SDK升級(jí)的情況。只要基本的抽象接口層(即SDK的持久接口層)不發(fā)生變化,無線客戶端應(yīng)用程序就能在運(yùn)行時(shí)自動(dòng)完成升級(jí)工作,對(duì)用戶是透明的。
[0075]實(shí)施例四
[0076]參照?qǐng)D6,其示出了根據(jù)本申請(qǐng)實(shí)施例四的一種無線應(yīng)用實(shí)現(xiàn)方法的步驟流程圖。
[0077]本實(shí)施例的無線應(yīng)用實(shí)現(xiàn)方法包括以下步驟:
[0078]步驟SlO:獲取集成了 SDK的持久接口層的無線應(yīng)用的數(shù)據(jù)包。
[0079]其中,SDK包括持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,持久接口層包括供無線應(yīng)用調(diào)用的接口約定,持久接口層集成于無線應(yīng)用中;動(dòng)態(tài)實(shí)現(xiàn)層包括與持久接口層的接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn),動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置于服務(wù)器端。SDK的分割通過將SDK中的接口約定封裝為持久接口層,將SDK中的接口實(shí)現(xiàn)封裝為動(dòng)態(tài)實(shí)現(xiàn)層實(shí)現(xiàn)。優(yōu)選地,對(duì)SDK的分割使用反射機(jī)制實(shí)現(xiàn)。[0080]本步驟中,無線客戶端首先獲取集成有SDK的持久接口層的無線應(yīng)用數(shù)據(jù)包。
[0081]步驟S20:使用無線應(yīng)用的數(shù)據(jù)包運(yùn)行無線應(yīng)用。
[0082]本步驟中,無線客戶端可以根據(jù)不同情況,使用無線應(yīng)用的數(shù)據(jù)包運(yùn)行無線應(yīng)用。
[0083]比如,當(dāng)無線應(yīng)用中還集成了動(dòng)態(tài)實(shí)現(xiàn)層的初始版本時(shí),無線應(yīng)用使用持久接口層中接口約定所約定的接口調(diào)用動(dòng)態(tài)實(shí)現(xiàn)層的初始版本中的接口實(shí)現(xiàn),動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫。當(dāng)無線應(yīng)用中沒有集成動(dòng)態(tài)實(shí)現(xiàn)層的初始版本時(shí),無線應(yīng)用向服務(wù)器端發(fā)送獲取請(qǐng)求,該獲取請(qǐng)求用于請(qǐng)求從服務(wù)器端獲取動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn);當(dāng)服務(wù)器端返回動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn)后,無線應(yīng)用接收服務(wù)器端返回的動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn);并使用持久接口層中接口約定所約定的接口調(diào)用從服務(wù)器端獲取的接口實(shí)現(xiàn),動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫。
[0084]優(yōu)選地,在使用無線應(yīng)用的數(shù)據(jù)包運(yùn)行無線應(yīng)用之后,也即,動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫之后,無線應(yīng)用向服務(wù)器端發(fā)送查詢請(qǐng)求,查詢請(qǐng)求用于查詢服務(wù)器端是否存在持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本;并接收服務(wù)器端返回的持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本;使用更新版本更新無線應(yīng)用的持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層。
[0085]通過本實(shí)施例,實(shí)現(xiàn)了無線客戶端集成了 SDK的無線應(yīng)用無須更新無線應(yīng)用自身(即除SDK外的部分),即可更新其集成的SDK,大幅度地降低了無線客戶端的無線應(yīng)用被迫跟著SDK升級(jí)的情況,提升了無線應(yīng)用用戶的使用體驗(yàn)。
[0086]需要說明的是,本實(shí)施例的無線應(yīng)用實(shí)現(xiàn)方法對(duì)應(yīng)于前述多個(gè)實(shí)施例中的無線應(yīng)用發(fā)布方法,因此描述較為簡單,相關(guān)之處參照前述無線應(yīng)用發(fā)布方法實(shí)施例中的相關(guān)部分即可。
[0087]實(shí)施例五
[0088]參照?qǐng)D7,其示出了根據(jù)本申請(qǐng)實(shí)施例五的一種無線應(yīng)用發(fā)布裝置的結(jié)構(gòu)框圖。
[0089]本實(shí)施例的無線應(yīng)用發(fā)布裝置包括:
[0090]集成模塊402,用于將SDK的持久接口層集成到無線應(yīng)用中,其中,SDK包括持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,持久接口層包括供無線應(yīng)用調(diào)用的接口約定,動(dòng)態(tài)實(shí)現(xiàn)層包括與接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn);
[0091]發(fā)布模塊404,用于發(fā)布集成后的無線應(yīng)用,并將所述SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。無線應(yīng)用發(fā)布后,無線客戶端可以下載使用,使無線應(yīng)用通過持久接口層中接口約定所約定的接口調(diào)用動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn)。
[0092]優(yōu)選地,本實(shí)施例的無線應(yīng)用發(fā)布裝置還包括:分割模塊406,用于在集成模塊402將SDK的持久接口層集成到無線應(yīng)用中之前,對(duì)SDK進(jìn)行分割,將其中的接口約定封裝為持久接口層,將其中的接口實(shí)現(xiàn)封裝為動(dòng)態(tài)實(shí)現(xiàn)層;其中,對(duì)SDK進(jìn)行分割使用反射機(jī)制實(shí)現(xiàn)。
[0093]優(yōu)選地,本實(shí)施例的無線應(yīng)用發(fā)布裝置還包括:發(fā)送模塊408,用于在發(fā)布模塊404發(fā)布集成后的無線應(yīng)用,并將SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端之后,獲取使用無線應(yīng)用的無線客戶端發(fā)送的獲取請(qǐng)求,所述獲取請(qǐng)求用于請(qǐng)求從服務(wù)器端獲取動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn);根據(jù)獲取請(qǐng)求,由服務(wù)器端向無線客戶端發(fā)送動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn),使無線客戶端中的無線應(yīng)用通過持久接口層中接口約定所約定的接口調(diào)用從服務(wù)器端獲取的接口實(shí)現(xiàn),動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫。[0094]優(yōu)選地,集成模塊402還用于在將SDK的持久接口層集成到無線應(yīng)用中之前或之后,將動(dòng)態(tài)實(shí)現(xiàn)層的初始版本集成到無線應(yīng)用中;發(fā)布模塊404,用于發(fā)布集成了 SDK的持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層的初始版本的無線應(yīng)用供無線客戶端下載使用,并使無線客戶端的無線應(yīng)用通過持久接口層中接口約定所約定的接口調(diào)用動(dòng)態(tài)實(shí)現(xiàn)層的初始版本中的接口實(shí)現(xiàn),動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫;以及,將SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。
[0095]優(yōu)選地,本實(shí)施例的無線應(yīng)用發(fā)布裝置還包括:更新模塊410,用于在發(fā)送模塊408使服務(wù)器端向無線客戶端發(fā)送動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn)之后,接收無線客戶端發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求用于查詢服務(wù)器端是否存在持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本;確定服務(wù)器端存在持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本,從服務(wù)器端向無線客戶端發(fā)送更新版本,用于無線客戶端更新其無線應(yīng)用的持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層;和/或,更新模塊410,用于在發(fā)布模塊404發(fā)布集成了 SDK的持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層的初始版本的無線應(yīng)用供無線客戶端下載使用之后,接收無線客戶端發(fā)送的查詢請(qǐng)求;確定服務(wù)器端存在持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本,從服務(wù)器端向無線客戶端發(fā)送更新版本,使無線客戶端更新其無線應(yīng)用的持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層。
[0096]優(yōu)選地,本實(shí)施例的無線應(yīng)用發(fā)布裝置設(shè)置在服務(wù)器端。
[0097]本實(shí)施例的無線應(yīng)用發(fā)布裝置用于實(shí)現(xiàn)前述多個(gè)方法實(shí)施例中相應(yīng)的無線應(yīng)用發(fā)布方法,并具有相應(yīng)方法實(shí)施例的有益效果,在此不再贅述。
[0098]實(shí)施例六
[0099]參照?qǐng)D8,其示出了根據(jù)本申請(qǐng)實(shí)施例六的一種無線應(yīng)用發(fā)布系統(tǒng)的結(jié)構(gòu)框圖。
[0100]本實(shí)施例的無線應(yīng)用發(fā)布系統(tǒng)包括:無線客戶端502和SDK升級(jí)服務(wù)器504。
[0101]其中,SDK升級(jí)服務(wù)器504具有如實(shí)施例四中所示的無線應(yīng)用發(fā)布裝置,該裝置具有實(shí)施例四中的裝置的所有模塊和功能。
[0102]優(yōu)選地,SDK升級(jí)服務(wù)器504在將SDK的持久接口層集成到無線應(yīng)用中時(shí),使持久接口層包括動(dòng)態(tài)接口載入模塊、自動(dòng)檢測(cè)/升級(jí)模塊、和下載管理模塊。其中,動(dòng)態(tài)接口載入模塊負(fù)責(zé)在無線應(yīng)用的程序運(yùn)行階段,動(dòng)態(tài)載入動(dòng)態(tài)實(shí)現(xiàn)層的類庫,以完成SDK或無線應(yīng)用程序需要提供的功能;自動(dòng)檢測(cè)/升級(jí)模塊,負(fù)責(zé)在SDK初始化時(shí),比較當(dāng)前持久接口層的版本、動(dòng)態(tài)實(shí)現(xiàn)層的版本,與SDK升級(jí)服務(wù)器504上相應(yīng)的最新版本,確定是否執(zhí)行運(yùn)行時(shí)更新操作;下載模塊負(fù)責(zé)從SDK升級(jí)服務(wù)器504上下載最新版本的持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的數(shù)據(jù)包,并進(jìn)行升級(jí)替換。
[0103]無線客戶端502從SDK升級(jí)服務(wù)器上下載集成后的無線應(yīng)用,并安裝使用。具體地,無線客戶端502在安裝或使用無線應(yīng)用階段,使用無線應(yīng)用中的SDK持久接口層中的動(dòng)態(tài)接口載入模塊從SDK升級(jí)服務(wù)器504中獲取SDK動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn),動(dòng)態(tài)加載調(diào)用接口實(shí)現(xiàn)的類庫;然后,可以使用自動(dòng)檢測(cè)/升級(jí)模塊定時(shí)或不定時(shí)地向SDK升級(jí)服務(wù)器504上查詢是否有相應(yīng)的更新版本,若有,則使用下載管理模塊從SDK升級(jí)服務(wù)器504上下載相應(yīng)的更新版本,以更新自身的SDK的持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層。
[0104]以下,以無線應(yīng)用廣告投放SDK為例,對(duì)使用本實(shí)施例的無線應(yīng)用發(fā)布系統(tǒng)進(jìn)行SDK發(fā)布和升級(jí)作以說明。
[0105]如圖9所示,SDK升級(jí)服務(wù)器504上設(shè)置有SDK動(dòng)態(tài)實(shí)現(xiàn)層,以便于進(jìn)行接口實(shí)現(xiàn)的更新,此外,SDK升級(jí)服務(wù)器504還可以負(fù)責(zé)SDK持久接口層的更新。需要說明的是,為便于理解,圖中將SDK動(dòng)態(tài)實(shí)現(xiàn)層單獨(dú)列出,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明了,在實(shí)際使用中,SDK動(dòng)態(tài)實(shí)現(xiàn)層的升級(jí)可能采用單獨(dú)的服務(wù)器,也可能設(shè)置于負(fù)責(zé)SDK持久接口層更新的服務(wù)器中,即采用一臺(tái)服務(wù)器實(shí)現(xiàn)多個(gè)功能單元的更新。
[0106]無線客戶端502中安裝有集成了 SDK持久接口層的無線應(yīng)用,在無線應(yīng)用運(yùn)行階段,使用動(dòng)態(tài)接口載入模塊動(dòng)態(tài)載入動(dòng)態(tài)實(shí)現(xiàn)層的類庫,以完成SDK或應(yīng)用程序需要提供的功能,如加載初始的廣告。無線應(yīng)用定時(shí)或不定時(shí)地使用自動(dòng)檢測(cè)/升級(jí)模塊查詢SDK升級(jí)服務(wù)器504上是否有SDK動(dòng)態(tài)實(shí)現(xiàn)層和/或持久接口層的更新。自動(dòng)檢測(cè)/升級(jí)模塊在SDK初始化時(shí),根據(jù)當(dāng)前持久接口層的版本和/或動(dòng)態(tài)實(shí)現(xiàn)層的版本,與SDK升級(jí)服務(wù)器504上的最新版本作比較,確定是否執(zhí)行運(yùn)行時(shí)更新操作。具體地,在SDK初始化時(shí),自動(dòng)檢測(cè)/升級(jí)模塊會(huì)獲取本地SDK動(dòng)態(tài)實(shí)現(xiàn)層數(shù)據(jù)包的現(xiàn)有版本號(hào),通常是一個(gè)數(shù)字,服務(wù)器端約定地址會(huì)返回客戶端當(dāng)前服務(wù)器上的最新SDK動(dòng)態(tài)實(shí)現(xiàn)層數(shù)據(jù)包的版本,如果服務(wù)器端的版本號(hào)大于客戶端SDK現(xiàn)有的版本號(hào),說明有新的版本需要更新。此外,SDK持久接口層雖然較為穩(wěn)定,但也存在更新升級(jí)可能,因此根據(jù)持久接口層的版本來確定是否需要從SDK升級(jí)服務(wù)器504下載相應(yīng)的動(dòng)態(tài)類庫版本。SDK升級(jí)服務(wù)器504響應(yīng)無線客戶端502詢問最新版本的請(qǐng)求,返回最新版本號(hào)和對(duì)應(yīng)版本的包的下載地址。然后,下載管理模塊負(fù)責(zé)從SDK升級(jí)服務(wù)器504上下載最新更新的動(dòng)態(tài)類庫實(shí)現(xiàn)包(包括持久接口層的數(shù)據(jù)包和動(dòng)態(tài)實(shí)現(xiàn)層的數(shù)據(jù)包),并進(jìn)行升級(jí)替換。
[0107]本實(shí)例通過將自有廣告投放SDK和第三方廣告投放SDK進(jìn)行抽象,僅發(fā)布包含面向相對(duì)固定接口實(shí)現(xiàn)廣告投放邏輯的SDK,允許無線應(yīng)用開發(fā)者在服務(wù)器端配置其無線應(yīng)用集成的廣告投放SDK,無線應(yīng)用則在運(yùn)行時(shí),根據(jù)這個(gè)配置,動(dòng)態(tài)從服務(wù)器端獲取最新版本的SDK集成類庫并加載執(zhí)行,從而解決了無線應(yīng)用集成了廣告投放SDK后,面臨的頻繁更新需要問題。
[0108]本實(shí)例的方案不僅可以用于無線廣告投放的SDK更新升級(jí),尤其適用于以優(yōu)化無線應(yīng)用客戶端廣告投放為目的的整合了多種廣告投放SDK的聯(lián)盟式SDK的更新和升級(jí);在無線應(yīng)用本身使用SDK的情況下,亦可用于無線應(yīng)用本身的更新和功能升級(jí)。
[0109]本實(shí)施例具有以下優(yōu)點(diǎn):
[0110](I)無線應(yīng)用無需更新,就能使無線應(yīng)用獲取新的廣告獲取和投放能力;
[0111](2)無線應(yīng)用無需更新,就能集成新的廣告投放SDK,還能更新已集成SDK的版本;
[0112](3)在服務(wù)器端通過配置,可以動(dòng)態(tài)增減客戶端集成的無線廣告投放SDK和廣告投放比例;
[0113](4)無線應(yīng)用本身,也可以通過該方案實(shí)現(xiàn)運(yùn)行時(shí)下載類庫,更新應(yīng)用功能,降低用戶更新應(yīng)用時(shí)的下載、安裝等操作。
[0114]實(shí)施例七
[0115]參照?qǐng)D10,其示出了根據(jù)本申請(qǐng)實(shí)施例七的一種無線應(yīng)用實(shí)現(xiàn)裝置的結(jié)構(gòu)框圖。
[0116]本實(shí)施例的無線應(yīng)用實(shí)現(xiàn)裝置設(shè)置于無線客戶端,包括:獲取模塊602,用于獲取集成了 SDK的持久接口層的無線應(yīng)用的數(shù)據(jù)包;實(shí)現(xiàn)模塊604,用于使用無線應(yīng)用的數(shù)據(jù)包運(yùn)行無線應(yīng)用;其中,SDK包括持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,持久接口層集成于無線應(yīng)用中,包括供無線應(yīng)用調(diào)用的接口約定;動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置于服務(wù)器端,包括與接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn)。[0117]優(yōu)選地,實(shí)現(xiàn)模塊604,用于向服務(wù)器端發(fā)送獲取請(qǐng)求,該獲取請(qǐng)求用于請(qǐng)求從服務(wù)器端獲取動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn);接收服務(wù)器端返回的動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn);使用持久接口層中接口約定所約定的接口調(diào)用從服務(wù)器端獲取的接口實(shí)現(xiàn),動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫。
[0118]優(yōu)選地,無線應(yīng)用中還集成了動(dòng)態(tài)實(shí)現(xiàn)層的初始版本;此時(shí),實(shí)現(xiàn)模塊604,用于使用持久接口層中接口約定所約定的接口調(diào)用動(dòng)態(tài)實(shí)現(xiàn)層的初始版本中的接口實(shí)現(xiàn),動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫。
[0119]優(yōu)選地,本實(shí)施例的無線應(yīng)用實(shí)現(xiàn)裝置還包括:更新模塊606,用于在實(shí)現(xiàn)模塊604動(dòng)態(tài)加載接口實(shí)現(xiàn)的類庫之后,向服務(wù)器端發(fā)送查詢請(qǐng)求,該查詢請(qǐng)求用于查詢服務(wù)器端是否存在持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本;接收服務(wù)器端返回的持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層的更新版本;使用更新版本更新無線應(yīng)用的持久接口層和/或動(dòng)態(tài)實(shí)現(xiàn)層。
[0120]本實(shí)施例的無線應(yīng)用裝置用于實(shí)現(xiàn)前述方法實(shí)施例中的無線應(yīng)用實(shí)現(xiàn)方法,并具有無線應(yīng)用實(shí)現(xiàn)方法的有益效果,在此不再贅述。
[0121]本申請(qǐng)通過對(duì)SDK進(jìn)行抽象,僅發(fā)布包含面向相對(duì)固定接口的SDK,允許無線應(yīng)用開發(fā)者在服務(wù)器端配置更新時(shí)常更新的SDK,無線應(yīng)用則在運(yùn)行時(shí),根據(jù)這個(gè)配置,動(dòng)態(tài)從服務(wù)器端獲取最新版本的SDK集成類庫并加載執(zhí)行。通過動(dòng)態(tài)加載類庫,使當(dāng)前已集成SDK的無線應(yīng)用獲得新的功能擴(kuò)展。本申請(qǐng)適用于多種操作平臺(tái)下的無線應(yīng)用發(fā)布和升級(jí),尤其適用于Android平臺(tái)下采用Java開發(fā)的無線應(yīng)用,例如集成游戲引擎包開發(fā)游戲,例如集成訪問統(tǒng)計(jì)和用戶跟蹤包,來做程序分發(fā)和使用統(tǒng)計(jì)等。但不限于此,其它類似情景均可適用本申請(qǐng)的無線應(yīng)用發(fā)布和升級(jí)方案,如使用C語言開發(fā)的無線應(yīng)用等。
[0122]本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對(duì)于裝置和系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
[0123]本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0124]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0125]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。[0126]以上對(duì)本申請(qǐng)所提供的一種無線應(yīng)用發(fā)布方法和裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。
【權(quán)利要求】
1.一種無線應(yīng)用發(fā)布方法,其特征在于,包括: 將軟件開發(fā)包SDK的持久接口層集成到無線應(yīng)用中,其中,所述SDK包括所述持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,所述持久接口層包括供所述無線應(yīng)用調(diào)用的接口約定,所述動(dòng)態(tài)實(shí)現(xiàn)層包括與所述接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn); 發(fā)布集成后的無線應(yīng)用,并將所述SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述將SDK的持久接口層集成到無線應(yīng)用中的步驟之前,還包括: 對(duì)所述SDK進(jìn)行分割,將其中的所述接口約定封裝為所述持久接口層,將其中的所述接口實(shí)現(xiàn)封裝為所述動(dòng)態(tài)實(shí)現(xiàn)層。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對(duì)SDK進(jìn)行分割使用反射機(jī)制實(shí)現(xiàn)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述發(fā)布集成后的無線應(yīng)用,并將所述SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端的步驟之后,還包括: 獲取使用所述無線應(yīng)用的無線客戶端發(fā)送的獲取請(qǐng)求,所述獲取請(qǐng)求用于請(qǐng)求從所述服務(wù)器端獲取所述動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn); 根據(jù)所述獲取請(qǐng)求,由所述服務(wù)器端向所述無線客戶端發(fā)送所述動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn),用于所述無線客戶端中的無線應(yīng)用通過所述持久接口層中接口約定所約定的接口調(diào)用從所述服務(wù)器端獲取的所述接口實(shí)現(xiàn),動(dòng)態(tài)加載所述接口實(shí)現(xiàn)的類庫。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述由所述服務(wù)器端向所述無線客戶端發(fā)送所述動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn)的步驟之后,還包括:` 接收所述無線客戶端發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求用于查詢所述服務(wù)器端是否存在所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層的更新版本; 確定所述服務(wù)器端存在所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層的更新版本,從所述服務(wù)器端向所述無線客戶端發(fā)送所述更新版本,所述更新版本用于所述無線客戶端更新其無線應(yīng)用的所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于, 在所述將SDK的持久接口層集成到無線應(yīng)用中的步驟之前或之后,還包括:將所述動(dòng)態(tài)實(shí)現(xiàn)層的初始版本集成到所述無線應(yīng)用中; 所述發(fā)布集成后的無線應(yīng)用的步驟包括:發(fā)布集成了所述SDK的持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層的初始版本的無線應(yīng)用供無線客戶端下載,用于所述無線客戶端的無線應(yīng)用通過所述持久接口層中接口約定所約定的接口調(diào)用所述動(dòng)態(tài)實(shí)現(xiàn)層的初始版本中的接口實(shí)現(xiàn),動(dòng)態(tài)加載所述接口實(shí)現(xiàn)的類庫。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,在所述發(fā)布集成了所述SDK的持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層的初始版本的無線應(yīng)用供無線客戶端下載的步驟之后,還包括: 接收所述無線客戶端發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求用于查詢所述服務(wù)器端是否存在所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層的更新版本; 確定所述服務(wù)器端存在所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層的更新版本,從所述服務(wù)器端向所述無線客戶端發(fā)送所述更新版本,所述更新版本用于所述無線客戶端更新其無線應(yīng)用的所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層。
8.一種無線應(yīng)用實(shí)現(xiàn)方法,其特征在于,包括:獲取集成了軟件開發(fā)包SDK的持久接口層的無線應(yīng)用的數(shù)據(jù)包; 使用所述數(shù)據(jù)包運(yùn)行所述無線應(yīng)用; 其中,所述SDK包括所述持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,所述持久接口層集成于所述無線應(yīng)用中,包括供所述無線應(yīng)用調(diào)用的接口約定;所述動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置于服務(wù)器端,包括與所述接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,使用所述數(shù)據(jù)包運(yùn)行所述無線應(yīng)用的步驟包括: 向所述服務(wù)器端發(fā)送獲取請(qǐng)求,所述獲取請(qǐng)求用于請(qǐng)求從所述服務(wù)器端獲取所述動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn); 接收所述服務(wù)器端返回的所述動(dòng)態(tài)實(shí)現(xiàn)層的接口實(shí)現(xiàn); 使用所述持久接口層中接口約定所約定的接口調(diào)用從所述服務(wù)器端獲取的所述接口實(shí)現(xiàn),動(dòng)態(tài)加載所述接口實(shí)現(xiàn)的類庫。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,在所述動(dòng)態(tài)加載所述接口實(shí)現(xiàn)的類庫的步驟之后,還包括: 向所述服務(wù)器端發(fā)送查詢請(qǐng)求,所述查詢請(qǐng)求用于查詢所述服務(wù)器端是否存在所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層的更新版本; 接收所述服務(wù)器端返回的所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層的更新版本; 使用所述更新版本更新所述 無線應(yīng)用的所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層。
11.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述無線應(yīng)用中還集成了所述動(dòng)態(tài)實(shí)現(xiàn)層的初始版本; 所述使用所述數(shù)據(jù)包運(yùn)行所述無線應(yīng)用的步驟包括:使用所述持久接口層中接口約定所約定的接口調(diào)用所述動(dòng)態(tài)實(shí)現(xiàn)層的初始版本中的接口實(shí)現(xiàn),動(dòng)態(tài)加載所述接口實(shí)現(xiàn)的類庫。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,在所述動(dòng)態(tài)加載所述接口實(shí)現(xiàn)的類庫的步驟之后,還包括: 向所述服務(wù)器端發(fā)送查詢請(qǐng)求,所述查詢請(qǐng)求用于查詢所述服務(wù)器端是否存在所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層的更新版本; 接收所述服務(wù)器端返回的所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層的更新版本; 使用所述更新版本更新所述無線應(yīng)用的所述持久接口層和/或所述動(dòng)態(tài)實(shí)現(xiàn)層。
13.一種無線應(yīng)用發(fā)布裝置,其特征在于,包括: 集成模塊,用于將軟件開發(fā)包SDK的持久接口層集成到無線應(yīng)用中,其中,所述SDK包括所述持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,所述持久接口層包括供所述無線應(yīng)用調(diào)用的接口約定,所述動(dòng)態(tài)實(shí)現(xiàn)層包括與所述接口約定相對(duì)應(yīng)的接口實(shí)現(xiàn); 發(fā)布模塊,用于發(fā)布集成后的無線應(yīng)用,并將所述SDK的動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置到服務(wù)器端。
14.一種無線應(yīng)用實(shí)現(xiàn)裝置,其特征在于,包括: 獲取模塊,用于獲取集成了軟件開發(fā)包SDK的持久接口層的無線應(yīng)用的數(shù)據(jù)包; 實(shí)現(xiàn)模塊,用于使用所述數(shù)據(jù)包運(yùn)行所述無線應(yīng)用; 其中,所述SDK包括所述持久接口層和動(dòng)態(tài)實(shí)現(xiàn)層,所述持久接口層集成于所述無線應(yīng)用中,包括供所述無線應(yīng)用調(diào)用的接口約定;所述動(dòng)態(tài)實(shí)現(xiàn)層設(shè)置于服務(wù)器端,包括與所述接口約定相對(duì)應(yīng)的 接口實(shí)現(xiàn)。
【文檔編號(hào)】H04L29/08GK103491111SQ201210189767
【公開日】2014年1月1日 申請(qǐng)日期:2012年6月8日 優(yōu)先權(quán)日:2012年6月8日
【發(fā)明者】孫重波, 陳宮平, 管維剛 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司