- Android App開發從入門到精通
- 安輝編著
- 666字
- 2019-07-30 17:30:37
1.11 多渠道打包
國內提供了許多應用市場,例如360、百度、應用寶、豌豆莢以及各手機廠商的市場等。
當需要去統計App的下載量、激活量的時候,不能對單個市場的流量進行統計。推廣部門也不知道推廣效果如何。例如,今天App在應用寶進行了首發,需要統計今天應用寶有多少激活設備,有多少注冊用戶,這樣才知道推廣有沒有效果。
為了解決這個問題就出現了多渠道打包,一份源碼給不同的市場編譯出不同的APK文件,每個APK文件中都包含了當前市場的渠道碼(自己指定一個字符串)。
1.11.1 代碼實現
修改app/build.gradle文件,在Android標簽下增加productFlavors標簽,內容如下:

我們就自定義了一個變量FR,不同的渠道賦值不同的字符串。
這個自定義變量會在BuildConfig類中自動生成,在Java代碼中取這個值只要一行代碼即可。
String fr=BuildConfig.FR;//取到當前的渠道碼,然后上傳到服務器,就能根據不同的渠道進行統計 Log.i("ansen","當前渠道碼:"+fr);
1.11.2 測試
打渠道包必須要手動進行,選擇需要的渠道,在Android Studio菜單欄中點擊Build→Generate Signed APK→Next,如圖1-56所示。

圖1-56 簽名APK
輸入簽名信息,點擊Next按鈕??梢赃x擇APK文件輸出路徑、編譯類型、渠道包。渠道包可以多選,這里全選了,然后點擊Finish按鈕,如圖1-57所示。

圖1-57 簽名時選擇渠道碼
Android Studio編譯會需要一點時間,打包完成后在選擇的APK保存路徑下會生成三個APK文件,對應不同的渠道,如圖1-58所示,可以依次安裝這三個軟件包??创蛴ogo,會發現安裝不同的包打印的fr值是不一樣的。

圖1-58 不同渠道的APK文件
多渠道還能干什么
其實多渠道打包還能干很多事情,比如給不同的渠道配置不同的applicationId、生成不同應用名稱或圖標,還可以指定不同渠道包的名字。但是大部分人只需要打渠道包,如果想實現上面列出的功能,可以參考Google官方文檔。