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