1. 程式人生 > >Android Studio 多渠道打包, 自定義APK名稱

Android Studio 多渠道打包, 自定義APK名稱

使用Android Studio 有一段時間了, 讓我總結下使用感受,那就是 “爽”!!!

由於公司專案android版渠道比較多, 所以打包的時候一般都會使用多渠道打包。而AS 為我們提供了很方便很牛逼的指令碼工具Gradle,廢話不多說了

首先在專案底下的 build.gradle 檔案中的 android 節點 新增 productFlavors 節點 , 如下

// 渠道列表
productFlavors {

    pc {
        manifestPlaceholders = [CHANNEL_NAME: "pc"]
    }

    s360{
        manifestPlaceholders 
= [CHANNEL_NAME: "s360"] } }
其中 CHANNEL_NAME 是 AndroidManifest.xml 中新增 umeng 渠道佔位符
<meta-data
android:name="UMENG_CHANNEL"
android:value="${CHANNEL_NAME}">
</meta-data>

同時也在android 節點下 新增 以下指令碼

//PK打包重新命名
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def 
appName = 'your app name' def buildName variant.productFlavors.each { product -> buildName = product.name } output.outputFile = new File(output.outputFile.parent, appName + "_" + getVersionNameFromManifest() + "_" + buildName + ".apk"); } }
因為我們的版本號一般配置在AndroidManifest.xml 中, 所以利用 getVersionFromManifest() 方法獲取其中的版本號(versionName)
//
androidManifest.xml中獲取版本號 def getVersionFromManifest() { def manifestParser = new com.android.builder.core.DefaultManifestParser() return manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile) }

~~~ 好了, 直接 Build->Generate Signed APK ,然後選擇你要打包的渠道和目錄,搞定~~~

相關推薦

Android Studio 多渠道打包 定義APK名稱

使用Android Studio 有一段時間了, 讓我總結下使用感受,那就是 “爽”!!! 由於公司專案android版渠道比較多, 所以打包的時候一般都會使用多渠道打包。而AS 為我們提供了很方便很牛逼的指令碼工具Gradle,廢話不多說了 首先在專案底下的 build

[Gradle] Android Studio批量打包完全定義APK包名

Gradle 本身是基於 Groovy 語法, 支援批量打包, 非常方便, 大家都知道的.  但在批量打包時, 肯定有個包名重新命名的需求, 比如當前專案的 versionName 是 1.2.0, 使用者在裝置安裝APK後所看到的版本號就是 v1.2.0. 當然, APK

Android Studio配置打包生成定義檔名

Android Studio在打包的時候會根據選擇的Build Variant是Debug和Release預設生成<code>app-debug.apk</code>或者<

Android studio 多渠道打包但只生成一個debug包(不需要多渠道debug包)

多渠道打包方式,網上有很多的介紹了,這裡就不再多說了。 配置好打多渠道包,每次手機連線電腦,想執行一下測試。發現在buildout/apk目錄下生成了每個渠道的debug包。而且每執行一次,就成生一個debug包。 這樣是不是很煩。如果只想生成一個debug的包。怎麼做

二.jenkins配合Gradle實現簽名定義APK名稱

上一篇文章: 一.jenkins+github+gradle 實現android自動化打包全攻略(MAC版)http://www.jianshu.com/p/9caab25d2cf1 上次已經實現自動打包,那麼如何進行APK自定義包名呢?如何進行自簽名呢? 主要通過設定專案的build.gradle P

Android Studio使用Gradle實現自動打包簽名定義apk檔名多渠道打包整合系統簽名證書【附效果圖附原始碼】

        接觸Android Stuidio有一陣子了,之前用的時候有很多小問題,不過現在的版本感覺已經很好用了,所以準備徹底從Eclipse轉戰Android Stuidio,這段時間把以前經常使用的公用庫都從Eclipse移植過來了,今天研究了一下在Andro

Gradle實現自動打包簽名定義apk文件名

回車 應用 types 背包 sdn 部署 密鑰對 另一個 密鑰庫 Gradle實現自動打包,簽名,自定義apk文件名 什麽是簽名,簽名有什麽用 Android APP都需要我們用一個證書對應用進行數字簽名,不然的話是無法安裝到Android手機上的,平時我們調試運行時到手

Android Studio 3.0踩坑篇之定義apk名稱

報錯日誌 Cannot set the value of read-only property ‘outputFile’ Android Studio3.0之前用法如下 applicationVariants.all { variant ->

Android Studio中Gradle定義APK名稱及輸出路徑

使用AndroidStudio生成Android APK時候,往往需要指定APK輸出路徑及重新命名APK。 因此在Gradle中編碼,以實現上述需求: android { ...// 省略已存在程式碼 applicationVariants.all {

android studio gradle打包怎麼樣通過打不同的包名所依賴的專案不同即所生成的apk大小不一樣呢(每個apk不包含所有的依賴的專案)

問題:gradle打包,怎麼樣通過打不同的包名所依賴的專案不同,即所生成的apk大小不一樣呢(每個apk不包含所有的依賴的專案)??? 解決:通過修改build.gradle檔案中 在android{}新增如下程式碼:   在dependencies{}中新增 “F

Android Studio多渠道打包如何使用不同的資源依賴和java程式碼

第一步:在build.gradle檔案中,設定productFlavors實現多渠道 //例項 productFlavors { baidu { appli

Android Studio 多渠道打包命名

//—————————————————————————————- (a) apply plugin: 'com.android.application' apply plugin: 'com.droidtitan.lintcleaner' def rel

Android Studio 預設keystore 以及定義keystore使用

我們使用Android Studio 執行或測試我們的app  它使用一個預設的debug.keystore進行簽名。 這個預設簽名(keystore)是不需要密碼的,它的預設位置在 $HOME/.android/debug.keystore,如果不存在Android s

轉:Android 外部啟動activity定義actionaction常量大全

https://www.cnblogs.com/guop/p/5067342.html Android 外部啟動activity,自定義action,action常量大全 從任意app,啟動另外一個app的activity: 1.   Intent i =

Android 外部啟動activity定義actionaction常量大全

https://www.cnblogs.com/guop/p/5067342.html 從任意app,啟動另外一個app的activity: 1.   Intent i = new Intent();        &

Android studio多渠道打包以及使用不同資源(包括icon或者其他圖片等)

自己專案需要分渠道打包,且使用不同資源,所以,在百度之後,總結了一下: 利用友盟分渠道打包,首先在manifest裡面加一句: <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNE

Android Studio多渠道打包和程式碼混淆教程

http://coolshell.info/blog/2015/03/android-studio-prefrence.html 什麼是Gradle Gradle是一種依賴管理工具,基於Groovy語言,面向Java應用為主,它拋棄了基於XML的各種繁瑣配置,取而

android:獲取渠道名+Android Studio多渠道打包+python 美團打包

需要使用友盟多渠道統計 /** * 獲取application中指定的meta-data。本例中,呼叫方法時key就是UMENG_CHANNEL * @return 如果沒有獲取成

Android Studio 佈局中引用定義屬性不提示的問題

Eclipse裡面自定義屬性的名稱空間的宣告一般都是 xmlns:app="http://schemas.android.com/apk/res/com.xxx(包名) 而Android Stu

Android Studio 關聯 預設或者定義 android sources

注:本人用的Android Studio 為1.5版本。 當我們用的SDK沒有相應Android系統的原始碼時,或者Ctrl+左鍵點進某個類觀看原始碼時,程式碼方法中出現了throw new RuntimeException("Stub!")的情況時,如下圖 那麼我們就