1. 程式人生 > >build Variants建立不同配置的app(圖文詳解)

build Variants建立不同配置的app(圖文詳解)

現象描述

開發一個app避免不了在多種環境下執行,比如開發環境、測試環境、正式環境,而根據不同環境要配置不同的變數,在以前,我都是通過註釋相關程式碼實現的,顯然這樣比較麻煩。
這裡寫圖片描述

進入正題,那麼如何可以一鍵更改配置呢?

步驟一:配置build.gradle檔案的productFlavors節點

 productFlavors {
        moon {//配置的名稱,可以隨便取
           // 具體配置,見後面講解
        }
        moon_test {//配置的名稱,可以隨便取
           //具體配置,見後面講解
        }
        ...
//還可以建立很多個 }

步驟二:建立不同的配置檔案

在工程src目錄下,建立以 配置名稱 為名的包,並依此建立java.com.pengkv.moon 包

    -moon
        -...
        -build
        -src
            -main
            -moon(配置名)
                -java.com.pengkv.moon
                    -各種配置檔案
            -moon_test(配置名)
                -java.com.pengkv.moon
- 各種配置檔案(各個配置包下的對應名稱要一樣)

這裡寫圖片描述

其中moon包下的LogUtil程式碼如下

public class LogUtil {
    public static void logTag() {
        Log.v("---->", "我是版本一");
    }
}

moon_test包下的LogUtil程式碼如下

public class LogUtil {
    public static void logTag() {
        Log.v("---->", "我是版本二");
    }
}

步驟三:在左側選單欄點選build Variants,並選擇相應配置的版本執行

這裡寫圖片描述

程式碼執行時可以發現,相同的程式碼執行卻有不同結果

結果一:

這裡寫圖片描述

結果二:

這裡寫圖片描述

步驟四:配置AndroidManifest.xml檔案

有些時候需要在AndroidManifest.xml裡配置不同引數,比如應用名、版本號、應用ID等等,例如下圖(生成不同應用名)

這裡寫圖片描述

這個時候首先需要對productFlavors進行詳細配置

productFlavors {
        moon {
            manifestPlaceholders = [BAIDU_SERVICE_VALUE: "zQDqX7GP3avIQTN0BoFSyhrF",
                                    APP_NAME           : "@string/appName"]
        }
        moon_test {
            manifestPlaceholders = [BAIDU_SERVICE_VALUE: "kBONkZGEe0S2lYd6yOqq9MRx",
                                    APP_NAME           : "@string/appName_test"]
        }
    }

然後在AndroidManifest.xml引用不同配置的值

<application
        android:icon="@mipmap/ic_launcher"
        android:label="${APP_NAME}"//引用productFlavors裡面的配置值
        android:theme="@style/AppTheme">
        <activity>
        //...
        </activity>
    </application>

附:build.gradle說明圖

這裡寫圖片描述

相關推薦

build Variants建立不同配置app圖文

現象描述 開發一個app避免不了在多種環境下執行,比如開發環境、測試環境、正式環境,而根據不同環境要配置不同的變數,在以前,我都是通過註釋相關程式碼實現的,顯然這樣比較麻煩。 進入正題,那麼如何

對於maven建立spark專案的pom.xml配置檔案圖文

  不多說,直接上乾貨! http://mvnrepository.com/   這裡,怎麼建立,見   這裡, 我重點說下spark專案,因為,對於hadoop這樣的,我已經寫了大量部落格了。    比如,我目前用得較多的spark-m

FineBI學習系列之FineBI的Windows裏安裝後的一些配置事宜圖文

fine left text -a 得到 幹貨 圖文詳解 註冊 博客   不多說,直接上幹貨!   前期博客   第一步:需要點擊獲取激活碼     第二步:點擊註冊   註冊的

neo4j的配置檔案圖文

#***************************************************************** # Neo4j configuration # # For more details and a complete list of settings, please

IDEA跑代碼出現Error(7,8) ***App is already defined as object App object App extends Application { 錯誤的解決辦法圖文

機器 strong ima 分析 挖掘 extend AS 收獲 qq群   不多說,直接上幹貨! 問題現象 Error(7,8) App is already defined as object App

Hue的全局配置文件hue.ini圖文

var mapping tcl href ron Oz httpfs restrict FQ Hue版本:hue-3.9.0-cdh5.5.4 需要編譯才能使用(聯網) 說給大家的話:大家電腦的配置好的話,一定要安裝cloudera manager。畢竟是一家人的。同時,

對於maven創建spark項目的pom.xml配置文件圖文

mapr cati ID encoding pil tar error: 而是 releases  不多說,直接上幹貨! http://mvnrepository.com/   這裏,怎麽創建,見   這裏, 我重點說下spa

全網最詳細的hive-site.xml配置文件裏添加<name>hive.cli.print.header</name>和<name>hive.cli.print.current.db</name>前後的變化圖文

xml配置 note 個人博客 default 詳情 公眾 class 人生苦短 CA   不多說,直接上幹貨!     比如,你是從hive-default.xml.template,復制一份,改名為hive-site.xml     一

全網最詳細的hive-site.xml配置文件裏如何添加達到Hive與HBase的集成,即Hive通過這些參數去連接HBase圖文

out 開源精神 http FN image ava ext 必須 .cn   不多說,直接上幹貨!   一般,普通的情況是    <configuration>   <property>   

Tomcat使用和環境配置圖文

一.下載Tomacat  Tomcat 8.5 下載 .建議下載 zip 檔案  二.環境配置 1.前提條件:java環境配置    Java 安裝+環境配置(圖文詳解) 2.修改系統變數 ,新增 CATAP

Java 安裝+環境配置圖文

                                       Java 安裝篇

利用maven專案建立一個web專案工程圖文

最近正開始學習java,老師佈置的第一個作業便是用maven專案建立一個web專案工程,不會,跑去百度了半天,跳出來的全是我們csdn的教程,但到建立資源包的時候就沒法跟著做了,因為顯示已存在,沒法跟著建立了,那些文章基本一樣的講法,都是預設能建立成功,很煩,於是又繼續找了半天,終於在部落格園找到了

全網最詳細的一個超級好用的命令列工具【Cmder】的安裝之後的一些配置圖文

    不多說,直接上乾貨! 1、修改命令提示符λ為$    首先,我們看到    進入解壓後的cmder的目錄,進入vendor,開啟init.bat檔案。   修改第15行的程式碼 @prompt $E[1;32;40m$P$S

Windows下的Jdk 1.8*安裝並配置圖文

  不多說,直接上乾貨! 簡單說下,jdk1.8*的下載,見http://www.cnblogs.com/zlslch/p/5658383.html 雙擊jdk-8u60-windows-x64.exe執行程式 歡迎使用Java SE開發工具包8 Update 6

Windows下的Jdk 1.7*安裝並配置圖文

  不多說,直接上乾貨!   很多人很少去想,為什麼在windows下,安裝完Jdk的安裝包之後,還需要去配置環境變數,只是知道要這麼去做,沒有想過為什麼要去這麼做?   答:由於java是平臺無關的 ,安裝jdk時java不會自動設定路徑,也不會修改登錄檔,需要使用者自己設定環境變數,但不需

Git學習系列之Windows上安裝Git之後的一些配置圖文

  不多說,直接上乾貨! 前面部落格   第一次使用Git時,需要對Git進行一些配置,以方便使用Git。   不過,這種配置工作只需要進行一次便可,日後對Git進行升級時,會沿用現在的配置。 1、Git配置使用者資訊   配置使用者資

Windows 7作業系統下Apache的安裝與配置圖文

This is the main Apache HTTP server configuration file. It contains the # configuration directives that give the server its instructions. # See <UR

用maven來建立scala和java專案程式碼環境圖文Intellij IDEAUltimate版本、Intellij IDEACommunity版本和Scala IDEA for Eclipse皆適用博主推薦

  不多說,直接上乾貨! 為什麼要寫這篇部落格?   首先,對於spark專案,強烈建議搭建,用Intellij IDEA(Ultimate版本),如果你還有另所愛好嘗試Scala IDEA for Eclipse,有時間自己去玩玩。但最好追隨大流。   對於hadoop專案,強烈建議用

Windows 7作業系統下PHP 7的安裝與配置圖文

[PHP] ;;;;;;;;;;;;;;;;;;; ; About php.ini ; ;;;;;;;;;;;;;;;;;;; ; PHP's initialization file, generally called php.ini, is responsible for ; conf

Scala IDEA for Eclipse裡用maven來建立scala和java專案程式碼環境圖文

  這篇部落格   是在Scala IDEA for Eclipse裡手動建立scala程式碼編寫環境。   本博文,教大家,用maven來建立。   第一步:安裝scala外掛   因為,我win7下的scala環境是2.10.4    所以,選擇下載的