Gradle配置教程之自定義APK名稱與輸出路徑
前言
接觸Android Stuidio有一陣子了,之前用的時(shí)候有很多小問(wèn)題,不過(guò)現(xiàn)在的版本感覺(jué)已經(jīng)很好用了,所以準(zhǔn)備徹底從Eclipse轉(zhuǎn)戰(zhàn)Android Stuidio,這段時(shí)間把以前經(jīng)常使用的公用庫(kù)都從Eclipse移植過(guò)來(lái)了,今天研究了一下在Android Studio下進(jìn)行打包簽名之類的操作,其實(shí)主要是研究Gradle了,以前沒(méi)有用過(guò)Gradle,但是早就耳聞Gradle是非常強(qiáng)大的構(gòu)建系統(tǒng),經(jīng)過(guò)一天的奮戰(zhàn),現(xiàn)在整理記錄下,以供大家參考和以后查閱。
需求
需求是這樣的,我們的項(xiàng)目在上線的時(shí)候需要根據(jù)公司的明明規(guī)則重新對(duì)apk文件命名后才能發(fā)布到市場(chǎng)上。于是生成的每個(gè)apk文件都需要重新命名,如果渠道較少還好說(shuō),但是如果多的話就麻煩了。
其實(shí)方法很簡(jiǎn)單,只需要在你的app的Build.gradle文件中添加以下代碼就可以了。
android { ……//省略部分代碼 applicationVariants.all { //判斷是release還是debug版本 def buildType = it.buildType.name def fileName //下面的channel是獲取渠道號(hào),你獲取渠道號(hào)不一定會(huì)和我的代碼一樣,因?yàn)橛锌赡苣愕那烂Q的規(guī)則和我的不一樣,我的規(guī)則是${渠道名}-${applicationId},所以我是這樣取的。 def channel = it.productFlavors[0].name.split("-")[0] //獲取當(dāng)前時(shí)間的"YYYY-MM-dd"格式。 def createTime = new Date().format("YYYY-MM-dd", TimeZone.getTimeZone("GMT+08:00")) //只對(duì)Release包起作用,如果不是Release包則不變更輸出路徑,否則可能導(dǎo)致AS無(wú)法自動(dòng)安裝debug包。 if (buildType == "release") { it.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/apks/${it.productFlavors[0].applicationId}/${createTime}") } it.outputs.each { //只對(duì)Release包起作用,如果不是Release包則不變更名稱。 if (buildType == "release") { //我此處的命名規(guī)則是:渠道名_項(xiàng)目名_版本名_創(chuàng)建時(shí)間_構(gòu)建類型.apk fileName = "${channel}_項(xiàng)目名稱_v${defaultConfig.versionName}_${createTime}-${buildType}.apk" //將名字打印出來(lái),以便及時(shí)查看是否滿意。 println "文件名:-----------------${fileName}" //重新對(duì)apk命名。(適用于Gradle4.0以下版本) //it.outputFile = new File(it.outputFile.parent, fileName) //重新對(duì)apk命名。(適用于Gradle4.0(含)以上版本)如果你Gradle版本是4.0以下版本則將上面的一行代碼放開(kāi)并注釋下面的這一行。 it.outputFileName = fileName } } } ……//省略部分代碼 }
怎么樣?上面的代碼是不是很簡(jiǎn)單,只需要把代碼拷貝到你的項(xiàng)目中然后響應(yīng)的地方改成你的就OK了。代碼相信大家都能看懂,都是Groovy代碼,如果不懂可以去百度一下,教程一堆。
補(bǔ)充一點(diǎn):
上面代碼中一句println fileName可能有的同學(xué)不知道在哪里查看,這個(gè)需要到Gradle Console中去查看。不知道在哪里的看下面的圖片:
如果你覺(jué)得文章內(nèi)容對(duì)你有幫助請(qǐng)幫忙頂一下,你的支持是對(duì)我最大的鼓勵(lì)。謝謝?。?!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Android中ListView如何分頁(yè)加載數(shù)據(jù)
這篇文章主要介紹了Android中ListView如何分頁(yè)加載數(shù)據(jù),本文就結(jié)合實(shí)例來(lái)演示一下使用ListView獲取數(shù)據(jù)的過(guò)程,需要的朋友可以參考下2015-12-12Android HorizontalScrollView內(nèi)子控件橫向拖拽實(shí)例代碼
本文主要介紹Android HorizontalScrollView的使用,這里給大家一個(gè)實(shí)例來(lái)展示HorizontalScrollView內(nèi)子控件橫向拖拽的效果實(shí)現(xiàn),有需要的小伙伴可以參考下2016-07-07Android實(shí)現(xiàn)截圖分享qq 微信功能
在日常生活中,經(jīng)常用到qq,微信截圖分享功能,今天小編通過(guò)本文給大家介紹Android實(shí)現(xiàn)截圖分享qq 微信功能,具體實(shí)現(xiàn)代碼大家參考下本文2017-12-12Android中g(shù)oogle Zxing實(shí)現(xiàn)二維碼與條形碼掃描
這篇文章主要介紹了Android中g(shù)oogle Zxing實(shí)現(xiàn)二維碼與條形碼掃描的相關(guān)資料,需要的朋友可以參考下2017-05-05Android照片墻應(yīng)用實(shí)現(xiàn) 再多的圖片也不怕崩潰
這篇文章主要為大家詳細(xì)介紹了Android照片墻應(yīng)用實(shí)現(xiàn),再多的圖片也不怕崩潰,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10Android ViewPager無(wú)限循環(huán)實(shí)現(xiàn)底部小圓點(diǎn)動(dòng)態(tài)滑動(dòng)
這篇文章主要為大家詳細(xì)介紹了Android ViewPager無(wú)限循環(huán)實(shí)現(xiàn)底部小圓點(diǎn)動(dòng)態(tài)滑動(dòng)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03Android隨手筆記44之JSON數(shù)據(jù)解析
本文將主要介紹在Android開(kāi)發(fā)中,如何在服務(wù)器端創(chuàng)建JSON數(shù)據(jù),以及如何在Android客戶端對(duì)JSON數(shù)據(jù)進(jìn)行解析,對(duì)android json解析 相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12Native.js獲取監(jiān)聽(tīng)開(kāi)關(guān)等操作Android藍(lán)牙設(shè)備實(shí)例代碼
本文為大家分享了Native.js對(duì)Android藍(lán)牙設(shè)備的操作實(shí)例代碼包括:監(jiān)聽(tīng)藍(lán)牙開(kāi)關(guān)狀態(tài),開(kāi)啟關(guān)閉藍(lán)牙,獲取藍(lán)牙設(shè)備列表,藍(lán)牙連接票據(jù)打印機(jī)2018-09-09Android 8.0 中如何實(shí)現(xiàn)視頻通話的畫(huà)中畫(huà)模式的示例
本篇文章介紹了Android 8.0 中如何實(shí)現(xiàn)視頻通話的畫(huà)中畫(huà)模式的示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11解決Android 沉浸式狀態(tài)欄和華為虛擬按鍵沖突問(wèn)題
對(duì)于現(xiàn)在的 App 來(lái)說(shuō),布局頁(yè)面基本都會(huì)用到沉浸式狀態(tài)欄,單純的沉浸式狀態(tài)欄很容易解決,但是在華為手機(jī)上存在一個(gè)底部虛擬按鍵的問(wèn)題,會(huì)導(dǎo)致頁(yè)面底部和頂部出現(xiàn)很大的問(wèn)題,下面通過(guò)本文給大家分享Android 沉浸式狀態(tài)欄和華為虛擬按鍵沖突問(wèn)題,一起看看吧2017-07-07