1. 程式人生 > >Android studio 多環境打包和多渠道打包

Android studio 多環境打包和多渠道打包

1.多環境打包

在android開發中經常遇到要打不同環境的包,所謂不同環境就是介面連線的伺服器域名不同,如開發環境為devIP,測試環境為buildIP,uat環境為uatIP,release環境為releaseIP 。以前的做法是同過一個static變數去配置環境變數,這樣每次打不同環境的包需要多次修改配置並且多次打包,現在使用as後發現一種可以一次性打所有環境的包 方法如下:

<1>首先要學習使用BuildConfig配置類(不知道的查一下)

在gradle 中新增配置BuildConfig配置

 buildTypes {
     ...
        dev{
            buildConfigField("String"
,"Environment","DEV") ... } release{ buildConfigField("String","Environment","release") ... } }

這樣就在BuildConfig中新增啦Environment欄位,再在程式碼中根據Environment變數配置環境

<2>打包輸出所有環境的包

只需要在as命令列下使用gradlew build 就ok,也可以使用gradle build命令不過需要配置環境變數,打包可能出錯如需要加

android {
    ...
    lintOptions {
        abortOnError false
    }
    ...

記得在每個module下的配置都加

<3>自定義打包apk的名字

在gradle檔案中的Android節點下新增如下程式碼

android.applicationVariants.all {
        variant -> variant.outputs.each {
            output -> output.outputFile = new File(output.outputFile
.parent, "packageanme" + defaultConfig.versionCode + "_v" + defaultConfig.versionName +"_"+buildType.name+ ".apk"); } }

動態獲取版本號:
在gradle檔案中的Android節點外新增如下程式碼

def getVersionNameFromManifest() {
    def manifestParser = new com.android.builder.core.DefaultManifestParser()
    return manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile)
}

defaultConfig中配置版本號:直接在defaultConfig 中加入versionName 屬性,也可以直接呼叫上面方法(不過這裡有個坑,在改變配置xml中版本號時,會出現找不到對應版本apk,或者apk不更新,所以還是每次改變版本號時,versionName 也跟著改變就ok)

defaultConfig {
       ……
       versionName "2.0.14"
        ……
    }

2.多渠道打包

在使用友盟統計,騰訊雲統計的時候,需要配置渠道,打包不同渠道時每次修改配置檔案很繁瑣,as提供一種方便方法如下

<1>專案的manifest.xml中使用佔位符

<meta-data  
    android:name="UMENG_CHANNEL"  
    android:value="${CHANNEL_NAME}" /> 

<2>在gradle中給佔位符賦值

android {  
    // 你的其他配置程式碼  

    productFlavors {  
        yingyongbao {  
            manifestPlaceholders = [ CHANNEL_NAME:"YINGYONGBAO"]  
        }  
        umeng {  
            manifestPlaceholders = [ CHANNEL_NAME:"UMENG" ]  
        }  
        wandoujia {  
            manifestPlaceholders = [ CHANNEL_NAME:"WANDOUJIA" ]  
        }  

    }  
    // 你的其他配置程式碼  
}  

最後打包輸出即可

相關推薦

Android studio 環境打包多渠道打包

1.多環境打包 在android開發中經常遇到要打不同環境的包,所謂不同環境就是介面連線的伺服器域名不同,如開發環境為devIP,測試環境為buildIP,uat環境為uatIP,release環境為releaseIP 。以前的做法是同過一個static變

Android Studio模組的SDK專案打包混淆

任務遇到的難點 1.SDK專案多模組,編譯後每個模組自己生成了1個jar包。但是需求是隻對外發佈一個jar包,需要進行合併多個jar包。 2.生成的jar包中因為模組引入了百度地圖定位導致jar包內有不需要的asset檔案雜項 3.多模組的混淆問題   解決方案:

Android Studio 環境打包(測試,開發,生產)

Android Studio 多環境打包 現在一般公司都擁有三套以上的環境,開發環境,測式環境,生產環境,有一些要求比較嚴格的公司還有一個預生產環境.這對公司來說是正常的,但是確苦了我們前端的開發人員,每次一在做上線之前,都要打一個測試包,需要把相關的伺服器路徑,日誌級別都要做一下修

ANDROID STUDIO系列教程六--GRADLE多渠道打包

tor 等待 time() utf 腳本 manifest file resource 一個 由於國內Android市場眾多渠道,為了統計每個渠道的下載及其它數據統計,就需要我們針對每個渠道單獨打包,如果讓你打幾十個市場的包豈不煩死了,不過有了Gradle,這再也不是事了。

Android studio 3.0上進行多渠道打包

1.生成簽名檔案 點選 Build -> Generate Signed APK: 2.建立一個簽名 3.多渠道打包 作用:就是根據不同的渠道值,去具體分析每個渠道的使用者情況 步驟一: 3.1在AndroidManifest.xml的application

Android Studio —— 服務端介面地址打包技巧

Android開發中必不可少的就是向服務端請求資料,服務端小夥伴就會給你一個URL(http://192.168.1.194:8080)這樣 你就可以愉快的進行開發;但是隨著app的開發然後又多了外網測試地址、正式地址等等…. 所以這篇文章就來說說,如何優雅

android studio模組專案多渠道實現打包不同域名

①先說說自己專案遇到的情況        1:專案多模組        2:專案配置域名的類不在app模組下如圖: 配置url的類在api模組下。②實現方法        1:根據自身情況,在url配置模組下建立不同環境的資料夾。如:(由於專案保密將包名打了下馬賽克)。   

Android studio 版本apk 打包

只需要在build.gradle中的 android{…….}中配置幾行程式碼即可: //配置多版本的apk productFlavors{ Beta{ applicationId "com.stfa

借騰訊開源 VasDolly,談談 Android 簽名多渠道打包的原理!

一、前言 Hi,大家好,我是承香墨影! 當我們需要釋出一款 App 到應用市場的時候,一般需要我們針對不同的市場生產不同的渠道包,它們使用的是同一套程式碼,只是會包含一些各自的渠道資訊,用於我們做資料分析。 前幾天,企鵝電競團隊開源了自己的 And

Android 簡介搭建Android Studio開發環境

Android簡介 Android(['ændrɔid])是一個以Linux為基礎的半開源作業系統,主要用於移動裝置,由Google和開放手持裝置聯盟開發與領導。 Android 系統最初由安迪·魯賓(Andy Rubin)製作,最初主要支援手機。2005年8月17日被Google收購。20

JDKandroid Studio環境變數配置

一、jdk的環境變數配置 我的電腦-屬性-高階系統設定-環境變數 變數名: JAVA_HOME(不區分大小寫) 變數值為: D:\Program Files\Java\jdk1.8.0_144 其中變數值是自己安裝的jdk的根路徑 在Path環境變數裡新增(如

spring boot 環境配置開發及打包

使用 springboot 和沒有使用springboot的多環境配置是兩個完全不一樣的,前者是配置在application.properties(預設檔案中)或application.yml。 在沒

Android Studio升級到3.0的打包配置

以前在build.gradle檔案中經常有這樣的配置: 1. applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile =

Spring Cloud基於Docker進行打包部署1-環境配置docker打包執行

1、使用linux虛擬機器離線安裝docker(2)將安裝包拷貝到本地linux虛擬機器中,使用dpkg -i xxx.deb命令安裝。這裡有個問題,docker有一些依賴包,需要一併安裝:下載依賴deb。網址:https://pkgs.org/搜尋:libltdl7搜尋:l

app打包、混淆、加固多渠道打包

1:打包步驟: 1:桌面建立一個資料夾,名字叫keystore 2:點選build下面的 ,如下: 3:會出現如下介面: 4:下一步: 5:如果有keystore,請點選 choose existing,選擇以前的keystore,

Tinker的整合多渠道打包

Tinker是什麼 Tinker是微信官方的Android熱補丁解決方案,它支援動態下發程式碼、So庫以及資源,讓應用能夠在不需要重新安裝的情況下實現更新。當然,你也可以使用Tinker來更新你的外掛。 它主要包括以下幾個部分: 1.gradle編譯外掛: tinke

騰訊樂固的加固多渠道打包客戶端配置

1、概述 近日專案新版本上線,各大市場都正常,但是騰訊的應用寶稽核提示需要用樂固加固,因為之前一直用360加固並進行多渠道打包,但是提示如果不用樂固可能會稽核不通過,不給曝光率啥的,所以單

Android studio 引入 weex 中由.vue打包的.js檔案,ReferenceError: Vue is not defined錯誤

按照weex官網給出的配置,weex_sdk 版本是 0.5.1,就是由於這個版本太低,對vue.js1不支援導致的, 切換到最新sdk版本即可 還有的童鞋可能會遇到 WXSDKEngine.initialize 初始化失敗,有可能因為配置不正確 /**  * 注意要在Ma

建立第一個Android Studio專案(介面介紹、打包簽名等)

開發第一應用 可以開發屬於自己的應用,是否有點小激動?好吧!讓我們開始,首先點選Start a new Android Studio Project建立工程: 接下來需要輸入應用名稱(第一個字母要大寫)、公司域以及指定應用存放目錄,點選Next按鈕進入下

Android產品研發(五)-->多渠道打包

國內的Android開發者還是很苦逼的,由於眾所周知的原因,google play無法在國內開啟(翻牆的就不在考慮之內了),所以Android系的應用市場,群雄爭霸。後果就是國記憶體在著有眾多的應用市場,產品在不同的渠道可能有這不同的統計需求,為此Andro