一種定制多渠道安裝包的方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種定制多渠道安裝包的方法及裝置。根據(jù)Android編譯方式,將應(yīng)用程序的源代碼生成一個(gè)基礎(chǔ)安裝包,并復(fù)制所述基礎(chǔ)安裝包到臨時(shí)安裝包;讀取所述應(yīng)用程序的未讀渠道信息并根據(jù)所述渠道信息生成臨時(shí)渠道文件并用所述渠道信息對(duì)應(yīng)的渠道號(hào)命名所述臨時(shí)渠道文件;將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中,并以所述渠道號(hào)加所述應(yīng)用程序的名稱來(lái)命名所述臨時(shí)安裝包得到所述渠道信息對(duì)應(yīng)的渠道包;將所述渠道包推送至推廣渠道以供終端下載。本發(fā)明實(shí)施例提出的方案縮減了多渠道安裝包編譯中大量的人工參與以及重復(fù)編譯安裝包的過(guò)程,極大提高了多渠道安裝包的打包效率。
【專利說(shuō)明】
一種定制多渠道安裝包的方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明實(shí)施例涉及應(yīng)用程序安裝包推廣領(lǐng)域,尤其涉及一種定制多渠道安裝包的 方法及裝置。
【背景技術(shù)】
[0002] 從Android誕生的那天開始,開源模式就吸引了大量的品牌和用戶,基于Android 的應(yīng)用程序的發(fā)展趨勢(shì)也屢創(chuàng)新高。目前互聯(lián)網(wǎng)上存在非常多的應(yīng)用程序下載市場(chǎng),如 google play,安智市場(chǎng),91助手,豌豆莢等,每當(dāng)應(yīng)用程序發(fā)新版本時(shí),Android客戶端需要 將應(yīng)用程序分發(fā)到各個(gè)應(yīng)用市場(chǎng)。為了統(tǒng)計(jì)這些市場(chǎng)活躍數(shù),下載量等市場(chǎng)效果,需要有一 種方法來(lái)唯一標(biāo)識(shí)它們。
[0003] 目前,應(yīng)用程序通過(guò)渠道號(hào)(channel)來(lái)區(qū)分不同的市場(chǎng)。發(fā)布到各種市場(chǎng)的應(yīng) 用程序安裝包中,包含一個(gè)channel變量記錄該渠道號(hào),比如,某一應(yīng)用程序在豌豆莢市場(chǎng) 中應(yīng)用的渠道號(hào)是wandoujia,在360手機(jī)助手渠道號(hào)為360_zhushou。客戶端訪問(wèn)API時(shí) 會(huì)在請(qǐng)求參數(shù)中帶上渠道號(hào),以便后臺(tái)接下來(lái)計(jì)算不同渠道的效果,例如統(tǒng)計(jì)哪些市場(chǎng)帶 來(lái)的用戶量比較大或者可能有一些盈利需要和具體的渠道進(jìn)行分成。
[0004] 每次發(fā)版時(shí),應(yīng)用程序工程師會(huì)根據(jù)市場(chǎng)部提供的渠道列表生成等量的渠道包。 隨著渠道越來(lái)越多,互聯(lián)網(wǎng)上一些火熱的應(yīng)用,甚至達(dá)到數(shù)百個(gè)渠道,高效快速的編譯這些 安裝包,是版本發(fā)布速度搶占市場(chǎng)的一個(gè)關(guān)鍵因素。
[0005] 現(xiàn)在普遍采用的打包方案,主要是在androidmainfest. xml文件中,添加渠道號(hào) 記錄變量,每個(gè)渠道的安裝包中的主要區(qū)別就是這個(gè)變量。在給每個(gè)渠道編譯安裝包前修 改該變量,再使用android原生的編譯方法,編譯生成安裝包。
[0006] 這個(gè)方案需要大量的人工參與,需手工修改渠道號(hào)變量,并且根據(jù)應(yīng)用程序規(guī)模 大小每個(gè)安裝包編譯時(shí)間在5-30分鐘不等?;谶@個(gè)編譯方案,云盤客戶端完成所有渠道 包的編譯,需要耗時(shí)30-60分鐘左右,此過(guò)程中還需要全程人工值守,非常費(fèi)時(shí)費(fèi)力。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明實(shí)施例提供一種定制多渠道安裝包的方法,用以解決現(xiàn)有技術(shù)中需要開發(fā) 者手動(dòng)修改渠道號(hào)變量的缺陷,實(shí)現(xiàn)了渠道信息的動(dòng)態(tài)讀取。
[0008] 本發(fā)明實(shí)施例提供一種視頻輸出模式切換方法,包括如下步驟:
[0009] 根據(jù)Android編譯方式,將應(yīng)用程序的源代碼生成一個(gè)基礎(chǔ)安裝包,并復(fù)制所述 基礎(chǔ)安裝包到臨時(shí)安裝包;
[0010] 讀取所述應(yīng)用程序的未讀渠道信息并根據(jù)所述渠道信息生成臨時(shí)渠道文件并用 所述渠道信息對(duì)應(yīng)的渠道號(hào)命名所述臨時(shí)渠道文件;
[0011] 將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中,并以所述渠道號(hào)加所述應(yīng)用程序的 名稱來(lái)命名所述臨時(shí)安裝包得到所述渠道信息對(duì)應(yīng)的渠道包,并將所述渠道包推送至推廣 渠道以供終端下載。
[0012] 本發(fā)明實(shí)施例提供一種定制多渠道安裝包的裝置,包括:
[0013] 編譯單元,用于根據(jù)Android編譯方式,將應(yīng)用程序的源代碼生成一個(gè)基礎(chǔ)安裝 包,并復(fù)制所述基礎(chǔ)安裝包到臨時(shí)安裝包;
[0014] 渠道信息讀取單元,用于讀取所述應(yīng)用程序的未讀渠道信息并根據(jù)所述渠道信息 生成臨時(shí)渠道文件并用所述渠道信息對(duì)應(yīng)的渠道號(hào)命名所述臨時(shí)渠道文件;
[0015] 寫渠道文件單元,用于復(fù)制所述基礎(chǔ)安裝包到臨時(shí)安裝包并將所述臨時(shí)渠道文件 寫入所述臨時(shí)安裝包中,并以所述渠道號(hào)加所述應(yīng)用程序的名稱來(lái)命名所述臨時(shí)安裝包得 到所述渠道信息對(duì)應(yīng)的渠道包;
[0016] 安裝包推送單元,用于將所述渠道包推送至推廣渠道以供終端下載。
[0017] 本發(fā)明實(shí)施例提供的多渠道定制安裝包的方法及裝置,改變了現(xiàn)有技術(shù)中多渠道 安裝包編譯過(guò)程的大量的人工參與以及重復(fù)編譯安裝包的過(guò)程,與此同時(shí),本發(fā)明實(shí)施例 提出的方案極大提高了多渠道安裝包的打包效率。
【附圖說(shuō)明】
[0018] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根 據(jù)這些附圖獲得其他的附圖。
[0019] 圖1為現(xiàn)有技術(shù)中視頻輸出模式選擇方法流程圖;
[0020] 圖2為本發(fā)明視頻輸出模式選擇方法實(shí)施例流程圖;
[0021] 圖3為本發(fā)明視頻輸出模式選擇設(shè)備實(shí)施例結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022] 為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0023] 本領(lǐng)域技術(shù)人員熟知,所述"渠道"為用戶能夠下載應(yīng)用程序的一些網(wǎng)絡(luò)平臺(tái),例 如應(yīng)用商店、應(yīng)用程序發(fā)布的官方網(wǎng)站、搜索平臺(tái)提供的推廣下載等等。每個(gè)"渠道號(hào)"標(biāo) 記一個(gè)相應(yīng)的網(wǎng)絡(luò)平臺(tái),并且通過(guò)所述"渠道號(hào)"可以唯一地識(shí)別一應(yīng)用程序是通過(guò)何種網(wǎng) 絡(luò)平臺(tái)進(jìn)行發(fā)布的。所述"渠道包"就是將應(yīng)用程序的安裝包分不同的渠道進(jìn)行打包。
[0024] 實(shí)施例一
[0025] 圖1是本發(fā)明實(shí)施例一的技術(shù)流程圖,結(jié)合圖1,本發(fā)明一種定制多渠道安裝包的 方法包括如下的步驟:
[0026] 步驟101 :根據(jù)Android編譯方式,將應(yīng)用程序的源代碼生成一個(gè)基礎(chǔ)安裝包,并 復(fù)制所述基礎(chǔ)安裝包到臨時(shí)安裝包;
[0027] 安卓的原生編譯方式主要經(jīng)由一下幾個(gè)過(guò)程完成:第一步:打包資源文件,生 成R. java文件。這一過(guò)程是利用aapt工具將Resource文件、AndroidManifest. xml文 件、Android基礎(chǔ)類庫(kù)(Android, jar文件)進(jìn)行打包;第二步:處理AIDL文件,生成對(duì)應(yīng) 的.java文件。此步驟利用aidl工具將源碼文件、aidl文件、framework, aidl文件生成 為對(duì)應(yīng)的.java文件;第三步:編譯Java文件,生成對(duì)應(yīng)的.class文件。此步驟中,利用 javac工具將】源碼文件(包括R. java和AIDL生成的? java文件)、庫(kù)文件(? jar文件) 編譯為.class文件;第四步:把.class文件轉(zhuǎn)化成Davik VM支持的.dex文件。此步驟 中的.class文件包括Aidl生成.class文件,R生成的.class文件,源文件生成的.class 文件),庫(kù)文件(.jar文件),最終轉(zhuǎn)化為.dex文件;第五步:打包生成未簽名的.apk文件。 利用apkbuilder工具將打包后的資源文件、打包后類文件(.dex文件)、libs文件打包成 未簽名的.apk文件;第六步:使用jarsigner對(duì)未簽名.apk文件進(jìn)行簽名,得到簽名后的 文件;第七步:用zipalign工具對(duì)簽名后的.apk文件進(jìn)行對(duì)齊處理,因通常情況下不進(jìn)行 對(duì)齊處理是不能發(fā)布到Google Market的。
[0028] 經(jīng)由上述過(guò)程,應(yīng)用程序的源代碼即可生成一個(gè)基礎(chǔ)安裝包。本發(fā)明實(shí)施例中的 所述基礎(chǔ)安裝包不帶有任何的渠道信息,是應(yīng)用程序的原始代碼進(jìn)行編譯得到的原始安裝 包。
[0029] 所述基礎(chǔ)安裝包通常以壓縮文件的形式展現(xiàn)。值得注意的是,本發(fā)明實(shí)施例中所 述的"編譯"是廣義的編譯,包括將源代碼文件和配置文件進(jìn)行處理生成安裝文件的所有過(guò) 程,例如包括對(duì)源代碼文件編譯生成可執(zhí)行程序、解釋性文件等,還包括生成支持應(yīng)用程序 自動(dòng)安裝的壓縮包、安裝程序等。
[0030] 本發(fā)明實(shí)施例中,將生成的所述基礎(chǔ)安裝包進(jìn)行復(fù)制,得到若干臨時(shí)安裝包以便 后續(xù)對(duì)所述臨時(shí)安裝包進(jìn)行修改得到應(yīng)用程序的不同發(fā)布渠道對(duì)應(yīng)的渠道包。
[0031] 步驟102 :讀取所述應(yīng)用程序的未讀渠道信息并根據(jù)所述渠道信息生成臨時(shí)渠道 文件并用所述渠道信息對(duì)應(yīng)的渠道號(hào)命名所述臨時(shí)渠道文件;
[0032] 本發(fā)明實(shí)施例中,從預(yù)設(shè)的所述渠道列表中遍歷讀取每一條未讀的渠道信息并根 據(jù)所述渠道信息生成臨時(shí)渠道文件,即每一個(gè)所述渠道信息對(duì)應(yīng)一個(gè)所述臨時(shí)渠道文件, 直至所有的渠道信息都被讀取。得到所述臨時(shí)渠道文件后,對(duì)所述每個(gè)所述臨時(shí)渠道文 件進(jìn)行命名,本發(fā)明實(shí)施例中,臨時(shí)渠道文件是一個(gè)空的文件,打包時(shí)將這個(gè)文件放入apk 中,以渠道信息來(lái)命名所述渠道文件。當(dāng)apk運(yùn)行時(shí)獲取渠道號(hào),讀取所述渠道文件的文件 名即可獲知所述應(yīng)用程序的發(fā)布渠道。
[0033] 例如,一個(gè)應(yīng)用程序通過(guò)豌豆莢這一渠道進(jìn)行發(fā)布,則可以wandoujia或縮寫wdj 來(lái)命名其對(duì)應(yīng)的所述臨時(shí)渠道文件。當(dāng)然,為了增強(qiáng)保密性,也可以用任意字符串或是數(shù)字 來(lái)命名,例如豌豆莢這一渠道的所述臨時(shí)渠道文件可以命名為channell、應(yīng)用寶這一渠道 的所述臨時(shí)渠道文件可以命名為channel2、官方發(fā)布網(wǎng)站的所述臨時(shí)渠道文件可以命名為 channel3 等等。
[0034] 步驟103 :將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中,并以所述渠道號(hào)加所述 應(yīng)用程序的名稱來(lái)命名所述臨時(shí)安裝包得到所述渠道信息對(duì)應(yīng)的渠道包,并將所述渠道包 推送至推廣渠道以供終端下載。
[0035] 本發(fā)明實(shí)施例中,將所述臨時(shí)渠道文件寫入不影響簽名認(rèn)證的文件目錄下,以實(shí) 現(xiàn)通過(guò)所述臨時(shí)安裝包的修改得到一個(gè)渠道包。對(duì)于每一個(gè)應(yīng)用程序而言,其對(duì)應(yīng)的所述 渠道信息的數(shù)量等同于其對(duì)應(yīng)的所述臨時(shí)渠道文件的數(shù)量等同于其對(duì)應(yīng)的所述渠道包的 數(shù)量。本發(fā)明實(shí)施例中,用所述應(yīng)用程序的名稱和渠道號(hào)來(lái)命名所述渠道包,便于標(biāo)記識(shí) 另1J。例如,樂(lè)視視頻的渠道包名稱可以命名為L(zhǎng)ETV_channell或LETV_anzhimarket。
[0036] 本發(fā)明實(shí)施例中,將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中的方式如下:將臨 時(shí)安裝包在內(nèi)存中讀取并解壓為文件輸出流,再將所述臨時(shí)渠道文件以輸出流形式寫入到 安裝包的輸出流中,最后將寫好渠道文件的安裝包輸出流轉(zhuǎn)換為輸入流重新保存成apk安 裝包文件。這樣可以避免打包多個(gè)文件時(shí)反復(fù)將安裝包解壓縮到硬盤再重新壓縮帶來(lái)的性 能損耗。
[0037] 值得注意的是,本發(fā)明實(shí)施中的上述步驟102~步驟103對(duì)于每一條渠道信息重 復(fù)執(zhí)行,直至取遍所有的渠道信息,從而能夠避免漏掉部分渠道包,影響推廣效果。
[0038] 本發(fā)明實(shí)施例提供了一種定制多渠道安裝包的方法,在應(yīng)用程序安裝包文件中選 取不需要簽名認(rèn)證的文件中添加所述臨時(shí)渠道文件,不影響安裝包的簽名效果,同時(shí)不需 針對(duì)每一渠道重復(fù)編譯渠道包,有效地節(jié)省生成多渠道安裝包的時(shí)間,提升生了打包效率。
[0039] 由于應(yīng)用程序的所述臨時(shí)安裝包已經(jīng)過(guò)重新命名,這對(duì)終端的下載用戶而言,可 以很直觀地從安裝包的名稱上判斷是何種應(yīng)用程序;對(duì)于后臺(tái)統(tǒng)計(jì)而言,所述臨時(shí)安裝包 文件的命名方式也直觀地反映了所述應(yīng)用程序是通過(guò)何種渠道進(jìn)行發(fā)布即推廣的,更加有 利于渠道效果的統(tǒng)計(jì)。
[0040] 本發(fā)明實(shí)施例中,對(duì)于每個(gè)應(yīng)用程序只需編譯一次安裝包文件,不需要單獨(dú)對(duì)渠 道信息進(jìn)行安裝包編譯,并通過(guò)查詢所述預(yù)設(shè)的渠道列表為每一渠道信息生成臨時(shí)渠道文 件并將所述臨時(shí)渠道文件直接寫入用于發(fā)布的安裝包,有效減少打包時(shí)間和打包失敗的風(fēng) 險(xiǎn),提高了編譯軟件的工作效率,避免了大量的人工參與。
[0041] 實(shí)施例二
[0042] 圖2是本發(fā)明實(shí)施例二的技術(shù)流程圖,結(jié)合圖2,以下部分將更清楚、詳細(xì)地闡明 本發(fā)明一種定制多渠道安裝包的方法中。
[0043] 步驟201 :將每一應(yīng)用程序?qū)?yīng)的發(fā)布渠道和渠道號(hào)進(jìn)行列表匯總,生成所述預(yù) 設(shè)的渠道列表。
[0044] 本發(fā)明實(shí)施例中,預(yù)先根據(jù)所述應(yīng)用程序的發(fā)布渠道建立所述渠道信息表,所述 渠道信息表中保存著應(yīng)用程序發(fā)布或推廣的渠道以及相應(yīng)的渠道號(hào)。本發(fā)明實(shí)施例中,所 述渠道列表可以文本形式展現(xiàn),讀取渠道信息時(shí),通過(guò)對(duì)所述渠道列表進(jìn)行逐行掃描便可 得到應(yīng)用程序?qū)?yīng)的每一發(fā)布渠道號(hào)。
[0045] 對(duì)一應(yīng)用程序而言,每一個(gè)網(wǎng)絡(luò)平臺(tái)都代表了一種發(fā)布渠道,本發(fā)明實(shí)施例中為 每一個(gè)所述網(wǎng)絡(luò)平臺(tái)設(shè)置唯一渠道號(hào)進(jìn)行標(biāo)識(shí)。當(dāng)一應(yīng)用程序通過(guò)多個(gè)網(wǎng)絡(luò)平臺(tái)進(jìn)行發(fā)布 或推廣時(shí),該應(yīng)用程序?qū)?yīng)多個(gè)渠道號(hào)。
[0046] 例如,對(duì)于樂(lè)視云盤可以有如下的發(fā)布渠道和渠道號(hào)的對(duì)應(yīng)表:
[0047]
[0048] 或者也可以是這樣的:
[0049]
[0050] 當(dāng)然,需要說(shuō)明的是,本發(fā)明實(shí)施例中,對(duì)于渠道號(hào)的命名方式并不唯一,上述命 名僅供舉例使用,渠道號(hào)的名稱可以是數(shù)字、渠道名稱的全拼或縮寫,甚至也可以是隨機(jī)字 符串或者上述的任意組合,只要能夠唯一識(shí)別對(duì)應(yīng)渠道即可。
[0051] 步驟202 :將應(yīng)用程序的源代碼生成一個(gè)基礎(chǔ)安裝包,并復(fù)制所述基礎(chǔ)安裝包到 臨時(shí)安裝包;
[0052] 應(yīng)用程序源代碼生成基礎(chǔ)安裝包的過(guò)程已在實(shí)施例一種詳細(xì)介紹,此處不再贅 述。
[0053] 本發(fā)明實(shí)施例中,此步操作的目的在于根據(jù)所述應(yīng)用程序?qū)?yīng)的渠道數(shù)量,將所 述基礎(chǔ)安裝包復(fù)制出同樣數(shù)量的所述臨時(shí)安裝包,后續(xù)根據(jù)不同的渠道信息對(duì)每個(gè)所述臨 時(shí)安裝包進(jìn)行渠道信息的修改并用相應(yīng)的渠道信息來(lái)命名所述臨時(shí)安裝包,一方面在所述 應(yīng)用程序發(fā)布時(shí),用戶可根據(jù)所述臨時(shí)安裝包的名稱直觀地識(shí)別應(yīng)用程序,另一方面更加 便于后臺(tái)對(duì)于不同渠道推廣量的統(tǒng)計(jì)。
[0054] 步驟203 :讀取所述應(yīng)用程序的未讀渠道信息并根據(jù)所述渠道信息生成臨時(shí)渠道 文件并用所述渠道信息對(duì)應(yīng)的渠道號(hào)命名所述臨時(shí)渠道文件;
[0055] 本發(fā)明實(shí)施例中,可以按照所述預(yù)設(shè)的渠道列表中的排序逐行掃描所述應(yīng)用程序 的每一條未讀渠道信息以免漏讀,每讀一條新的渠道信息,就為其生成相應(yīng)的所述臨時(shí)渠 道文件,直至遍歷所述渠道列表中的所有渠道信息。
[0056] 步驟204 :將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中的META-INF目錄;
[0057] 開發(fā)人員在完成應(yīng)用程序的開發(fā)后,需要對(duì)應(yīng)用程序進(jìn)行編譯生成一個(gè)應(yīng)用程序 安裝包。但是,android系統(tǒng)為保證安裝包的有效性,對(duì)每個(gè)安裝包采用簽名機(jī)制,防止原程 序被惡意篡改,因此無(wú)法在生成安裝包后對(duì)應(yīng)用程序代碼進(jìn)行修改。但是,經(jīng)過(guò)測(cè)試發(fā)現(xiàn), Android的APK中存在META-INF目錄,用來(lái)存放一些程序的開發(fā)版本等信息,在生成安裝包 后修改此目錄中的文件內(nèi)容不會(huì)影響簽名效果,仍然能通過(guò)android的簽名認(rèn)證。因此,本 發(fā)明實(shí)施例中,將渠道信息寫入所述基礎(chǔ)安裝包中的META-INF目錄下,并且在應(yīng)用程序安 裝啟動(dòng)后,可以動(dòng)態(tài)地讀取所述渠道信息。
[0058] 步驟205 :以所述渠道號(hào)加所述應(yīng)用程序的名稱來(lái)命名所述臨時(shí)安裝包得到所述 渠道信息對(duì)應(yīng)的渠道包。
[0059] 寫完每個(gè)所述臨時(shí)渠道文件之后,將對(duì)應(yīng)的所述臨時(shí)安裝包以對(duì)應(yīng)的所述渠道 號(hào)和所述應(yīng)用程序的名稱來(lái)命名所述臨時(shí)安裝包,用以在后臺(tái)作推廣量效果評(píng)估時(shí),根據(jù) 所述臨時(shí)安裝包的名稱便可得知是何種應(yīng)用程序以及與之對(duì)應(yīng)的推廣渠道。例如,對(duì)于 樂(lè)視視頻客戶端而言,根據(jù)應(yīng)用程序的名稱和發(fā)布渠道將其對(duì)應(yīng)的渠道包命名為L(zhǎng)ETV_ wandoujia、LETV_anzhishichang、LETV_gov 等等。
[0060] 步驟206 :將所述渠道包推送至推廣渠道以供終端下載。
[0061] 步驟207 :接收每個(gè)所述終端上報(bào)的所述推廣渠道的推廣結(jié)果。
[0062] 本發(fā)明實(shí)施例中,所述推廣結(jié)果包括所述終端在啟動(dòng)所述應(yīng)用程序安裝時(shí)讀取到 的所述渠道包的名稱,所述渠道包的名稱包括所述渠道號(hào)以及所述應(yīng)用程序的名稱。
[0063] 根據(jù)所述渠道號(hào)以及所述應(yīng)用程序的名稱統(tǒng)計(jì)所述應(yīng)用程序?qū)?yīng)于每個(gè)所述推 廣渠道的推廣量。
[0064] 針對(duì)現(xiàn)有的打包方式通常是先對(duì)應(yīng)用程序進(jìn)行編譯時(shí),根據(jù)渠道的數(shù)量將所述應(yīng) 用程序?qū)?yīng)的源代碼復(fù)制同樣的數(shù)量,再對(duì)復(fù)制得到的每一源代碼進(jìn)行渠道號(hào)記錄變量的 修改,修改之后再進(jìn)行編譯,其工作量非常大。而本發(fā)明實(shí)施例中,將包含渠道信息的所述 臨時(shí)渠道文件寫入不影響簽名效果的文件目錄下,只需一次編譯便可打包多個(gè)渠道安裝 包,有效減地減少了打包時(shí)間和打包失敗的風(fēng)險(xiǎn),效率極高。
[0065] 實(shí)施例三
[0066] 圖3是本法明實(shí)施例三的裝置結(jié)構(gòu)圖,本發(fā)明一種定制多渠道安裝包的裝置包括 如下的單元:編譯單元301、渠道信息讀取單元302、寫渠道文件單元303、安裝包推送單元 304〇
[0067] 所述編譯單元301,用于根據(jù)Android編譯方式,將應(yīng)用程序的源代碼生成一個(gè)基 礎(chǔ)安裝包,并復(fù)制所述基礎(chǔ)安裝包到臨時(shí)安裝包;
[0068] 所述渠道信息讀取單元302,與預(yù)先統(tǒng)計(jì)的渠道信息列表相連接,用于讀取所述應(yīng) 用程序的未讀渠道信息并根據(jù)所述渠道信息生成臨時(shí)渠道文件并用所述渠道信息對(duì)應(yīng)的 渠道號(hào)命名所述臨時(shí)渠道文件;
[0069] 所述寫渠道文件單元303,與所述編譯單元301相連,同時(shí)調(diào)用所述渠道信息讀 取單元302中的所述臨時(shí)渠道文件,并將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中,并以 所述渠道號(hào)加所述應(yīng)用程序的名稱來(lái)命名所述臨時(shí)安裝包得到所述渠道信息對(duì)應(yīng)的渠道 包;
[0070] 所述安裝包推送單元304,與所述寫渠道文件單元303相連接,用于將所述渠道包 推送至推廣渠道以供終端下載。
[0071] 進(jìn)一步地,所述渠道信息讀取單元302,還用于查詢渠道列表,獲得所述渠道信息 對(duì)應(yīng)的所述渠道號(hào),其中所述預(yù)設(shè)的渠道列表中記錄了每個(gè)所述應(yīng)用程序發(fā)布的渠道信息 與渠道號(hào)的對(duì)應(yīng)關(guān)系。
[0072] 進(jìn)一步地,所述寫渠道文件單元303,還用于將所述臨時(shí)渠道文件寫入所述臨時(shí)安 裝包中的META-INF目錄。
[0073] 所述裝置進(jìn)一步包括推廣量統(tǒng)計(jì)單元305,所述推廣量統(tǒng)計(jì)單元305用于接收每 個(gè)所述終端上報(bào)的所述推廣渠道的推廣結(jié)果,其中,所述推廣結(jié)果包括所述終端在啟動(dòng)所 述應(yīng)用程序安裝時(shí)讀取到的所述渠道包的名稱,所述渠道包的名稱包括所述渠道號(hào)以及所 述應(yīng)用程序的名稱;根據(jù)所述渠道號(hào)查詢到以所述渠道號(hào)加所述應(yīng)用程序的名稱命名的所 述臨時(shí)安裝包,并得到所述臨時(shí)安裝包對(duì)應(yīng)的所述應(yīng)用程序的文件名;根據(jù)所述渠道號(hào)以 及所述應(yīng)用程序的名稱統(tǒng)計(jì)所述應(yīng)用程序?qū)?yīng)于每個(gè)所述推廣渠道的推廣量。
[0074] 本發(fā)明實(shí)施例提供了一種定制多渠道安裝包的裝置,在應(yīng)用程序安裝包文件中選 取不需要簽名認(rèn)證的文件中添加所述臨時(shí)渠道文件,不影響安裝包的簽名效果,同時(shí)不需 針對(duì)每一渠道重復(fù)編譯渠道包,有效地節(jié)省生成多渠道安裝包的時(shí)間,提升生了打包效率。
[0075] 應(yīng)用實(shí)例
[0076] 以下部分本發(fā)明實(shí)施例將通過(guò)一個(gè)應(yīng)用場(chǎng)景實(shí)例來(lái)進(jìn)一步說(shuō)明本發(fā)明實(shí)施例的 實(shí)際應(yīng)用。
[0077] 當(dāng)樂(lè)視云盤手機(jī)端將發(fā)布新版本時(shí),根據(jù)其市場(chǎng)發(fā)布渠道建立樂(lè)視云盤的渠道列 表,假設(shè)得到的所述渠道列表顯示如下:
[0078]
[0079] 首先開發(fā)人員將編寫好的樂(lè)視云盤的源代碼進(jìn)行編譯,生成一個(gè)基礎(chǔ)安裝包。其 次,掃描所述渠道列表,讀取第一條渠道信息,即樂(lè)視官方網(wǎng)站這一發(fā)布渠道,并生成對(duì)應(yīng) 的臨時(shí)渠道文件,將這個(gè)臨時(shí)渠道文件命名為L(zhǎng)ETV-gov ;接著復(fù)制所述基礎(chǔ)安裝包得到 一個(gè)臨時(shí)安裝包,將樂(lè)視官方網(wǎng)站這一渠道信息對(duì)應(yīng)的臨時(shí)渠道文件寫入臨時(shí)安裝包的 META-INF目錄;將這個(gè)臨時(shí)安裝包命名為L(zhǎng)etv cloud_LETV-gov,這就得到了通過(guò)樂(lè)視官 方網(wǎng)站進(jìn)行發(fā)布的樂(lè)視云盤的渠道包。接著掃描所述渠道列表,讀取第二條渠道信息,即豌 豆莢這一發(fā)布渠道,并生成對(duì)應(yīng)的臨時(shí)渠道文件,將這個(gè)臨時(shí)渠道文件命名為wandoujia ; 接著復(fù)制所述基礎(chǔ)安裝包得到一個(gè)臨時(shí)安裝包,將樂(lè)視官方網(wǎng)站這一渠道信息對(duì)應(yīng)的臨 時(shí)渠道文件寫入臨時(shí)安裝包的META-INF目錄;將這個(gè)臨時(shí)安裝包命名為L(zhǎng)etv cloud_ wandoujia,這就得到了通過(guò)豌豆莢進(jìn)行發(fā)布的樂(lè)視云盤的渠道包。按照上述的過(guò)程依次掃 描所述渠道列表,直至獲得所有發(fā)布渠道的安裝包。
[0080] 以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可 以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單 元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其 中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性 的勞動(dòng)的情況下,即可以理解并實(shí)施。
[0081] 通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可 借助應(yīng)用程序加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件。基于這樣的理 解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以應(yīng)用程序產(chǎn)品的形式體 現(xiàn)出來(lái),該計(jì)算機(jī)應(yīng)用程序產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光 盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備 等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0082] 最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡 管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然 可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替 換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精 神和范圍。
【主權(quán)項(xiàng)】
1. 一種生成多渠道安裝包的方法,其特征在于,包括: 根據(jù)Android編譯方式,將應(yīng)用程序的源代碼生成一個(gè)基礎(chǔ)安裝包,并復(fù)制所述基礎(chǔ) 安裝包到臨時(shí)安裝包; 讀取所述應(yīng)用程序的未讀渠道信息并根據(jù)所述渠道信息生成臨時(shí)渠道文件并用所述 渠道信息對(duì)應(yīng)的渠道號(hào)命名所述臨時(shí)渠道文件; 將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中,并以所述渠道號(hào)加所述應(yīng)用程序的名稱 來(lái)命名所述臨時(shí)安裝包得到所述渠道信息對(duì)應(yīng)的渠道包,并將所述渠道包推送至推廣渠道 以供終端下載。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述渠道信息生成臨時(shí)渠道文件并 用所述渠道信息對(duì)應(yīng)的渠道號(hào)命名所述臨時(shí)渠道文件,進(jìn)一步包括: 查詢預(yù)設(shè)的渠道列表,獲得所述渠道信息對(duì)應(yīng)的所述渠道號(hào),其中所述預(yù)設(shè)的渠道列 表中記錄了每個(gè)所述應(yīng)用程序發(fā)布的渠道信息與渠道號(hào)的對(duì)應(yīng)關(guān)系。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝 包中,進(jìn)一步包括; 將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中的META-INF目錄。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括: 接收每個(gè)所述終端上報(bào)的所述推廣渠道的推廣結(jié)果,其中,所述推廣結(jié)果包括所述終 端在啟動(dòng)所述應(yīng)用程序安裝時(shí)讀取到的所述渠道包的名稱,所述渠道包的名稱包括所述渠 道號(hào)以及所述應(yīng)用程序的名稱; 根據(jù)所述渠道號(hào)查詢到以所述渠道號(hào)加所述應(yīng)用程序的名稱命名的所述臨時(shí)安裝包, 并得到所述臨時(shí)安裝包對(duì)應(yīng)的所述應(yīng)用程序的文件名; 根據(jù)所述渠道號(hào)以及所述應(yīng)用程序的名稱統(tǒng)計(jì)所述應(yīng)用程序?qū)?yīng)于每個(gè)所述推廣渠 道的推廣量。5. -種定制多渠道安裝包的裝置,其特征在于,包括如下單元: 編譯單元,用于根據(jù)Android編譯方式,將應(yīng)用程序的源代碼生成一個(gè)基礎(chǔ)安裝包,并 復(fù)制所述基礎(chǔ)安裝包到臨時(shí)安裝包; 渠道信息讀取單元,用于讀取所述應(yīng)用程序的未讀渠道信息并根據(jù)所述渠道信息生成 臨時(shí)渠道文件并用所述渠道信息對(duì)應(yīng)的渠道號(hào)命名所述臨時(shí)渠道文件; 寫渠道文件單元,用于將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中,并以所述渠道號(hào) 加所述應(yīng)用程序的名稱來(lái)命名所述臨時(shí)安裝包得到所述渠道信息對(duì)應(yīng)的渠道包; 安裝包推送單元,用于將所述渠道包推送至推廣渠道以供終端下載。6. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述渠道信息讀取單元,進(jìn)一步用于: 查詢渠道列表,獲得所述渠道信息對(duì)應(yīng)的所述渠道號(hào),其中所述預(yù)設(shè)的渠道列表中記 錄了每個(gè)所述應(yīng)用程序發(fā)布的渠道信息與渠道號(hào)的對(duì)應(yīng)關(guān)系。7. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述寫渠道文件單元,進(jìn)一步用于; 將所述臨時(shí)渠道文件寫入所述臨時(shí)安裝包中的META-INF目錄。8. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述裝置進(jìn)一步包括推廣量統(tǒng)計(jì)單元,所 述推廣量統(tǒng)計(jì)單元用于: 接收每個(gè)所述終端上報(bào)的所述推廣渠道的推廣結(jié)果,其中,所述推廣結(jié)果包括所述終 端在啟動(dòng)所述應(yīng)用程序安裝時(shí)讀取到的所述渠道包的名稱,所述渠道包的名稱包括所述渠 道號(hào)以及所述應(yīng)用程序的名稱; 根據(jù)所述渠道號(hào)查詢到以所述渠道號(hào)加所述應(yīng)用程序的名稱命名的所述臨時(shí)安裝包, 并得到所述臨時(shí)安裝包對(duì)應(yīng)的所述應(yīng)用程序的文件名; 根據(jù)所述渠道號(hào)以及所述應(yīng)用程序的名稱統(tǒng)計(jì)所述應(yīng)用程序?qū)?yīng)于每個(gè)所述推廣渠 道的推廣量。
【文檔編號(hào)】G06F9/44GK105893008SQ201510784836
【公開日】2016年8月24日
【申請(qǐng)日】2015年11月16日
【發(fā)明人】薛偉
【申請(qǐng)人】樂(lè)視網(wǎng)信息技術(shù)(北京)股份有限公司