您好,登錄后才能下訂單哦!
前言
說實話,我在大法工作的時候,就見過Gradle。但是當時我一直不知道這是什么東西。而且大法工具組的工程師還將其和Android Studio大法版一起推送,偶一看就更沒興趣了。為什么那個時候如此不待見Gradle呢?因為我此前一直是做ROM開發。在這個層面上,我們用make,mm或者mmm就可以了。而且,編譯耗時對我們來說也不是啥痛點,因為用組內吊炸天的神機服務器完整編譯大法的image也要耗費1個小時左右。所以,那個時侯Gradle完全不是我們的菜。
現在,搞APP開發居多,編譯/打包等問題立即就成痛點了。
比如:
一個APP有多個版本,Release版、Debug版、Test版。甚至針對不同APP Store都有不同的版本。在以前ROM的環境下,雖然可以配置Android.mk,但是需要依賴整個Android源碼,而且還不能完全做到滿足條件,很多事情需要手動搞。一個app如果涉及到多個開發者,手動操作必然會帶來混亂。
library工程我們需要編譯成jar包,然后發布給其他開發者使用。以前是用eclipse的export,做一堆選擇。要是能自動編譯成jar包就爽了。
上述問題對絕大部分APP開發者而言都不陌生,而Gradle作為一種很方便的的構建工具,可以非常輕松得解決構建過程中的各種問題。
本文將詳細介紹關于android gradle修改生成的apk名字的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
android gradle修改生成的apk名字
Android Studio打包應用默認生成的apk名稱是:app-release.apk 、app-debug.apk
如果我們要讓生成的apk名跟我們版本包名、渠道號有聯系的話,那我們就要自定義生成的apk名了
需要在build.gradle(Module:app)文件下 android{ } 中添加:
android.applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { def name = "qq_v${defaultConfig.versionName}_${variant.productFlavors[0].name}_${buildType.name}.apk" output.outputFile = new File(outputFile.parent, name) } } } //多渠道 productFlavors { tencent{ } vivo{ } oppo{ } }
修改名字的地方
def name = "xxx_${defaultConfig.versionName}_${variant.productFlavors[0].name}_${buildType.name}.apk" xxx:為你自己的工程名,自己起的標識- 比如 wx、qq、taobao defaultConfig.versionName:版本號 variant.productFlavors[0].name:渠道標識 buildType.name:build方式release/debug //這么寫也可以 def name= "qq"+"_"+"v"+defaultConfig.versionName+"_"+variant.productFlavors[0].name+"_"+buildType.name+".apk"
然后使用命令打包
./gradlew assemble --會同時打debug和release的包
使用如上命令測試出包如圖:
./gradlew assembleRelease --只打release的包
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。