1. 程式人生 > >Android Studio(十二):打包多個釋出渠道的apk檔案

Android Studio(十二):打包多個釋出渠道的apk檔案

Android Studio相關部落格:


  以前把apk檔案上傳到應用市場,都是直接打個包,讓運營那邊的人員去負責去傳,也沒想過做啥應用的資訊統計相關的東東,現在可不行了,小經理告訴我,我們的應用需要做些統計相關的東西,方便日後分析我們的應用還有哪些不足,好吧,既然有需求了,那就只有去做了。

  之前就已經知道友盟統計了,今天仔細看了下相關的文件,又在度娘上發現了幾個使用Android Studio打包多個平臺apk檔案的方法,這下可好,正好滿足我的需求,遂趕緊嘗試研究了下。

  網上已經有些個方法,有複雜的,也有簡單的,這裡,我直接介紹簡單的東西,省的迷惑大家了:

1. 首先配置清單檔案:AndroidMainFest.xml

 <meta-data
    android:name="UMENG_APPKEY"
    android:value="您申請的key值" />
<meta-data
    android:name="UMENG_CHANNEL"
    android:value="${UMENG_CHANNEL_VALUE}" />
2. 在工程的build.gradle檔案中配置
android {
    signingConfigs {
        designerassist {
            keyAlias 'designerassist.keystore'
            keyPassword 'otb2015'
            storeFile file('E:/workspace/otb/designerhelper/designerassist.keystore')
            storePassword 'otb2015'
        }
    }
    compileSdkVersion 19
    buildToolsVersion '22.0.1'



    productFlavors {
        wandoujia {}
        baidu {}
        c360 {}
        uc {}
        qq {}
        xiaomi {}
        meizu {}
        c91 {}
        huawei {}
        lenovo {}
        wangyi {}
        yidong {}
        mgyapp {}
        anzhuoapk {}
        tianyi {}
        appchina {}
        nduoa {}
        umeng {}

        productFlavors.all { flavor ->
            flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
    }
說明: 

    其中name的值對相對應各個productFlavors的選項值,這樣就達到自動替換渠道值的目的了。
這樣生成apk時,選擇相應的Flavors來生成指定渠道的包就可以了,而且生成的apk會自動幫你加上相應渠道的字尾,非常方便和直觀。大家可以自己反編譯驗證。

    你只需要按照上面的配置寫就好了,當然,是根據你的需要選擇不同的平臺。

打包:

 首先,你需要先配置下gradle環境:

在系統變數裡新增兩個環境變數:
1.1 變數名為:GRADLE_HOME,變數值就為gradle的根目錄;
所以變數值為:C:\Users\ningshuai\.gradle\wrapper\dists\gradle-2.2.1-all\c64ydeuardnfqctvr1gm30w53
1.2 在系統變數裡PATH裡面新增gradle的bin目錄
值為:C:\Users\ningshuai

\.gradle\wrapper\dists\gradle-2.2.1-all\c64ydeuardnfqctvr1gm30w53\gradle-2.2.1\bin

  配置完變數後,便可以打包了,開啟命令列,切換到你的專案目錄下,你會發現自己的目錄中有graldew.bat這個檔案:


接下來,你就可以直接輸入命令:gradle assembleRelease,就可以一次性生成所有的渠道包了:


所有生成的apk在專案的build\outputs\apk下:



如果只是想生成單個渠道的包呢?可以用命令列單獨生成,比如:
gradle assembleWandoujiaRelease

當然,除此之外,你還可以直接通過Android studio匯出相應平臺的apk檔案:


好了,so easy。接下來只需要把相應的包釋出到不同的應用平臺即可,這樣,你可以通過友盟檢視到相關渠道的下載安裝情況了。