Android Studio 使用Gradle多渠道打包

我們都知道國(guó)內(nèi)應(yīng)用市場(chǎng)非常多,為了統(tǒng)計(jì)各個(gè)應(yīng)用市場(chǎng)的app下載量和使用情況,我們需要多渠道的打包。如果一個(gè)一個(gè)的手動(dòng)去打包豈不煩死了,要多麻煩就有多麻煩。這就要求我們學(xué)會(huì)使用Gradle進(jìn)行多渠道打包。廢話不多說了,直接進(jìn)入正題吧!

第一步:配置AndroidManifest.xml

以友盟渠道為例,渠道信息一般都是寫在 AndroidManifest.xml文件中,大約如下:

如果不使用多渠道打包方法,那就需要我們手動(dòng)一個(gè)一個(gè)去修改value中的值,xiaomi,360,qq,wandoujia等等。

使用多渠道打包的方式,就需要把上面的value配置成下面的方式:

其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定義配置的值。

第二步: 在build.gradle設(shè)置productFlavors

productFlavors {

? ? wandoujia {

? ? ? ? ?manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]

? ? }

? ? xiaomi{

? ? ? ? ?manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]

? ? }

? ? qq {

? ? ? ? ?manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qq"]

? ? }

? ? _360 {

? ? ? ? ?manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]

? ? }

}

其中[UMENG_CHANNEL_VALUE: “wandoujia”]就是對(duì)應(yīng)${UMENG_CHANNEL_VALUE}的值。

我們可以發(fā)現(xiàn),按照上面的方式寫,比較繁瑣,其實(shí)還有更簡(jiǎn)潔的方式去寫,方法如下:

android {

? ?productFlavors {

? ? ? ?wandoujia{}

? ? ? ?xiaomi{}

? ? ? ?qq{}

? ? ? ?_360 {}

? ?}

? ?productFlavors.all {

? ? ? ?flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

? ? ? ?}

}

其中name的值對(duì)相對(duì)應(yīng)各個(gè)productFlavors的選項(xiàng)值,這樣就達(dá)到自動(dòng)替換渠道值的目的了。

這樣生成apk時(shí),選擇相應(yīng)的Flavors來生成指定渠道的包就可以了,而且生成的apk會(huì)自動(dòng)幫你加上相應(yīng)渠道的后綴,非常方便和直觀。大家可以自己反編譯驗(yàn)證。

第三步:一次生成所有渠道包

我們可以使用CMD命令,進(jìn)入到項(xiàng)目所在的目錄,直接輸入命令:

gradle assembleRelease

就開始打包了,如果渠道很多的話,時(shí)間可能會(huì)很長(zhǎng)。

或者,當(dāng)然Android Studio中的下方底欄中有個(gè)命令行工具Terminal,你也可以直接打開,輸入上面的命令:

gradle assembleRelease

用CMD進(jìn)入到項(xiàng)目所在目錄執(zhí)行,或者用AS中自帶的命令行工具Terminal其實(shí)性質(zhì)都是一樣的。

注意:如果沒有對(duì)gradle配置的話,可能輸入上面的命令,會(huì)提示“不是內(nèi)部或者外部命令”,不要著急,我們只需要找到gradle的目錄,把它配置到電腦中的環(huán)境變量中去即可。

配置方式如下:

先找到gralde的根目錄,在系統(tǒng)變量里添加兩個(gè)環(huán)境變量:

變量名為:GRADLE_HOME,變量值就為gradle的根目錄;

所以變量值為:D:\android\android-studio-ide-143.2739321-windows\android-studio\gradle\gradle-2.10

還有一個(gè)在系統(tǒng)變量里PATH里面添加gradle的bin目錄

我的就是D:\android\android-studio-ide-143.2739321-windows\android-studio\gradle\gradle-2.10\bin

這樣就配置完了,不信趕緊去試試,執(zhí)行以下這個(gè)命令:gradle assembleRelease。是不是可以了。

第四步:如果要帶簽名的話,就得在build.gradle進(jìn)行相關(guān)簽名的配置

//簽名

signingConfigs{

? ? release {

? ? ? ? ?storeFile file("keystore路徑")

? ? ? ? ?storePassword "***"

? ? ? ? ?keyAlias "***"

? ? ? ? ?keyPassword "***"

? ? }

}

buildTypes {

? ? ? ?release {

? ? ? ? ? ?runProguard false

? ? ? ? ? ?proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

? ? ? ? ? ?signingConfig signingConfigs.release

? ? ? ?}

? ?}

第五步:修改導(dǎo)出包的apk名稱

我們打包有非常多的渠道包,所以我們可以根據(jù)渠道自定義apk的名稱,方便運(yùn)營(yíng)人員看嘛,知道哪個(gè)apk對(duì)應(yīng)的哪個(gè)渠道嘛。

android {

? ?applicationVariants.all { variant ->

? ? ? ?variant.outputs.each { output ->

? ? ? ? ? ?output.outputFile = new File(

? ? ? ? ? ? ? ? ? ?output.outputFile.parent,

? ? ? ? ? ? ? ? ? ?"xxxx(apk的名字)-${variant.buildType.name}-${defaultConfig.versionName}-${variant.productFlavors[0].name}.apk".toLowerCase())

? ? ? ?}

? ?}

}

最后打包完成之后,apk文件就會(huì)生成在項(xiàng)目的build\outputs\apk下。?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我們都知道國(guó)內(nèi)應(yīng)用市場(chǎng)非常多,為了統(tǒng)計(jì)各個(gè)應(yīng)用市場(chǎng)的app下載量和使用情況,我們需要多渠道的打包。如果一個(gè)一個(gè)的手...
    非著名程序員閱讀 1,087評(píng)論 3 52
  • 由于國(guó)內(nèi)Android市場(chǎng)眾多渠道,為了統(tǒng)計(jì)每個(gè)渠道的下載及其它數(shù)據(jù)統(tǒng)計(jì),就需要我們針對(duì)每個(gè)渠道單獨(dú)打包,如果讓你...
    Ten_Minutes閱讀 782評(píng)論 0 2
  • 最近在項(xiàng)目中遇到需要實(shí)現(xiàn) Apk 多渠道、定制化打包, Google 、百度查找了一些資料,成功實(shí)現(xiàn)了上述功能,在...
    看一季殘花落幕閱讀 2,645評(píng)論 1 8
  • 按照渠道識(shí)別型分類: META-INF渠道識(shí)別型:網(wǎng)頁版、Python版、BAT腳本、Jar版、Manifest渠...
    比薩u閱讀 2,067評(píng)論 9 18
  • android多渠道打包 1.如何查看apk的簽名信息 1將apk解壓; 2.找到META-INF 下的.RSA文...
    ping0505閱讀 1,130評(píng)論 0 1

友情鏈接更多精彩內(nèi)容