Android Studio多渠道打包、自定義打包APK名稱
現(xiàn)在為了推廣產(chǎn)品,會(huì)在多個(gè)渠道應(yīng)用市場(chǎng)發(fā)布應(yīng)用,為了統(tǒng)計(jì)不同渠道的數(shù)據(jù),需要在應(yīng)用中表明渠道,如果一個(gè)一個(gè)去修改打包效率會(huì)很低。AS為我們提供了簡(jiǎn)便的方法,可以多渠道打包,一次打包所有的渠道包。
1. AS 2.x多渠道打包
(1) AndroidManifest中增加節(jié)點(diǎn)
<!-- 多渠道打包 --> ... <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" /> ...
(2) 項(xiàng)目app module的build.gradle的android中
android { .... //多渠道打包 productFlavors { yingyongbao {} huawei {} baidu {} xiaomi {} qh360 {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } .... }
2. AS 2.x自定義打包APK名稱
android { .... //自定義打包時(shí)apk名稱 applicationVariants.all { variant -> variant.outputs.each { output -> def fileName = "${variant.versionName}_${variant.productFlavors[0].name}_release.apk" def outFile = output.outputFile if (outFile != null && outFile.name.endsWith('.apk')) { output.outputFile = newFile(outFile.parent, fileName) } } .... }
最后打包之后apk放在項(xiàng)目 app/build/outputs/apk 文件夾下,apk名稱:版本名_渠道名.apk
3. AS 3.x多渠道打包
(1) AndroidManifest中增加節(jié)點(diǎn)(和2.x一樣,沒(méi)有變化)
<!-- 多渠道打包 --> ... <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" /> ...
(2) 項(xiàng)目app module的build.gradle的android中
多版本打包
android { .... //多渠道打包 flavorDimensions "tier","minApi" productFlavors { yingyongbao { dimension "tier" } huawei { dimension "tier" } baidu { dimension "tier" } xiaomi { dimension "minApi" } qh360 { dimension "minApi" } } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } .... }
單版本打包
android { ... defaultConfig { ... flavorDimensions "code" } productFlavors { yingyongbao {} huawei {} baidu {} xiaomi {} qh360 {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } ... }
AS 3.0后grade添加了flavorDimensions屬性,用來(lái)控制多個(gè)版本的代碼和資源,缺失會(huì)報(bào)錯(cuò)
4. AS 3.x自定義打包APK名稱
android { .... //自定義打包時(shí)apk名稱 applicationVariants.all { variant -> variant.outputs.all { output ->// each 改為 all def fileName = "${variant.versionName}_${variant.productFlavors[0].name}_release.apk" def outFile = output.outputFile if (outFile != null && outFile.name.endsWith('.apk')) { outputFileName = fileName // output.outputFile 改為 outputFileName } } .... }
APK名稱:版本名_渠道名.apk
以上就是AS 2.x和AS 3.x多渠道打包、自定義打包APK名稱對(duì)比區(qū)別,大家可根據(jù)自己的AS版本來(lái)選用相應(yīng)的方法,希望對(duì)大家有所幫助!如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android ListView之setEmptyView正確使用方法
這篇文章主要介紹了Android ListView之setEmptyView正確使用方法的相關(guān)資料,希望通過(guò)本文能幫助到大家使用該方法,需要的朋友可以參考下2017-09-09Android 多線程實(shí)現(xiàn)重復(fù)啟動(dòng)與停止的服務(wù)
這篇文章主要介紹了Android 多線程實(shí)現(xiàn)重復(fù)啟動(dòng)與停止的服務(wù)的相關(guān)資料,多線程環(huán)境下為了避免死鎖,一般提倡開(kāi)放調(diào)用,開(kāi)放調(diào)用可以避免死鎖,它的代價(jià)是失去原子性,這里說(shuō)明重復(fù)啟動(dòng)與停止的服務(wù),需要的朋友可以參考下2017-08-08ubuntu 12.10 上 android 編譯環(huán)境搭建的深入解析
本篇文章是對(duì)ubuntu 12.10上android 編譯環(huán)境的搭建進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Android Studio 實(shí)現(xiàn)文檔注釋的快捷鍵
這篇文章主要介紹了Android Studio 實(shí)現(xiàn)文檔注釋的快捷鍵,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android TextView漸變顏色和方向及動(dòng)畫(huà)效果的設(shè)置詳解
TextView的在安卓中可以理解為一個(gè)文本視圖控件,Android的視圖控件的基類(lèi)是View類(lèi),可以理解的TextView是View的子類(lèi)。我們通常在.XML布局文件中會(huì)為文本視圖控件指定各種屬性來(lái)設(shè)置它的樣式,今天我們要講的當(dāng)然不是傳統(tǒng)常見(jiàn)的那種,將會(huì)帶有漸變顏色和方向及動(dòng)畫(huà)效果2021-11-11Android viewpager自動(dòng)輪播和小圓點(diǎn)聯(lián)動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Android viewpager自動(dòng)輪播和小圓點(diǎn)聯(lián)動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Android String資源文件插入值實(shí)例詳解
這篇文章主要介紹了Android String資源文件插入值實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06Android實(shí)現(xiàn)Service獲取當(dāng)前位置(GPS+基站)的方法
這篇文章主要介紹了Android實(shí)現(xiàn)Service獲取當(dāng)前位置(GPS+基站)的方法,較為詳細(xì)的分析了Service基于GPS位置的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09android開(kāi)發(fā)教程之textview內(nèi)容超出屏幕寬度顯示省略號(hào)
android開(kāi)發(fā)中用textview顯示內(nèi)容時(shí),顯示內(nèi)容過(guò)多可能會(huì)折行或顯示不全,那樣效果很不好,我們可以用省略號(hào)顯示,下面看設(shè)置方法2014-02-02