4.1、Android Stuido配置你的Build Variant
每個(gè)版本的build variant代表了你可以構(gòu)建的每一個(gè)版本。雖然你未直接配置build variants,你可以通過配置build type和product flavor。
比如,一個(gè)demo的product flavor可以聲明不同的特性和設(shè)備需求,比如自定義源碼,資源和最小的API。但是debug的build type卻有不同構(gòu)建和打包設(shè)置,比如調(diào)試選項(xiàng)和簽名文件。
配置Build Types
你可以在模塊的build.gradle文件里的android{}區(qū)塊中來(lái)創(chuàng)建和配置構(gòu)建類型。當(dāng)你創(chuàng)建一個(gè)新的模塊的時(shí)候,Android Studio自動(dòng)為你創(chuàng)建debug和release。雖然debug構(gòu)建類型不出現(xiàn)在構(gòu)建配置文件中,Android Studio通過debuggable true來(lái)配置。這會(huì)允許你在一個(gè)安全的Android設(shè)備中調(diào)試app,并且使用一個(gè)通用的debug的keystore對(duì)APK進(jìn)行簽名。
如果你想添加或更高確定的設(shè)置,你可以添加debug構(gòu)建類型到你的配置中。接下來(lái)的例子聲明為debug構(gòu)建類型聲明了一個(gè)applicationIdSuffix。并且配置一個(gè)jnidebug構(gòu)建類型,設(shè)置其根據(jù)debug構(gòu)建類型進(jìn)行初始化。
android {
...
defaultConfig {...}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
applicationIdSuffix ".debug"
}
/**
* The 'initWith' property allows you to copy configurations from other build types,
* so you don't have to configure one from the beginning. You can then configure
* just the settings you want to change. The following line initializes
* 'jnidebug' using the debug build type, and changes only the
* applicationIdSuffix and versionNameSuffix settings.
*/
jnidebug {
// This copies the debuggable attribute and debug signing configurations.
initWith debug
applicationIdSuffix ".jnidebug"
jniDebuggable true
}
}
}
配置Product Flavor
創(chuàng)建product flavor跟創(chuàng)建構(gòu)建類型相同:將其添加到productFlavors{}區(qū)塊中,并且配置你需要的設(shè)置。Product flavors支持defaultConfit,這是因?yàn)閐efaultConfig屬于ProfuctFlavor類。這就意味著你可以為所有的Flavors在defaultConfig{}提供基本的配置。每個(gè)flavor可以復(fù)寫任何這些默認(rèn)值。比如applicationId。
注意:你仍然需要在manifest文件中的package屬性中來(lái)聲明包名。
以下是一個(gè)代碼示例,創(chuàng)建一個(gè)demo和full的product flavor,并設(shè)置了他們自己的applicationId和versionName。
android {
...
defaultConfig {...}
buildTypes {...}
productFlavors {
demo {
applicationId "com.example.myapp.demo"
versionName "1.0-demo"
}
full {
applicationId "com.example.myapp.full"
versionName "1.0-full"
}
}
}
在你創(chuàng)建和配置你的product flavor之后,點(diǎn)擊消息提示條中出現(xiàn)的Sync Now按鈕。在同步完成后,Gradle根據(jù)你的構(gòu)建類型和product flavor自動(dòng)創(chuàng)建build variants,并且用<product-flavor>。比如,如果你創(chuàng)建demo和full兩個(gè)product flavor,并且保持debug和release為默認(rèn),Gradle則會(huì)創(chuàng)建以下build variants:
1、 demoDebug
2、 demoRelease
3、 fullDebug
4、 fullRelease
為Build Variants創(chuàng)建Source Sets
默認(rèn)情況下,Android Studio創(chuàng)建main/ source set和目錄在所有的build variants中共享。然而,你可以創(chuàng)建新的source sets來(lái)控制Gradle編譯和特定的build types,product flavors和build variants。例如,你可以在main/ source set中定義基本的功能,使用product flavor source sets來(lái)改變你的app的東西,包括權(quán)限和日志等。
Gradle希望你通過確定的方式來(lái)組織source set文件和目錄。
Android的Gradle插件提供了一個(gè)非常有用的Gradle 任務(wù)來(lái)顯示你如何為乜咯build type,product flavor和build variants來(lái)組織你的文件。比如,以下的報(bào)告部分描述了Gradle希望找到debug 的build type的特定的文件:
------------------------------------------------------------
Project :app
debug
Compile configuration: compile
build.gradle name: android.sourceSets.debug
Java sources: [app/src/debug/java]
Manifest file: app/src/debug/AndroidManifest.xml
Android resources: [app/src/debug/res]
Assets: [app/src/debug/assets]
AIDL sources: [app/src/debug/aidl]
RenderScript sources: [app/src/debug/rs]
JNI sources: [app/src/debug/jni]
JNI libraries: [app/src/debug/jniLibs]
Java-style resources: [app/src/debug/resources]
為了生成和查看你的構(gòu)建配置的報(bào)告,遵循如下:
1、 點(diǎn)擊右面的IDE窗口
2、 找到MyApplication > Tasks > android,雙擊sourceSets
3、 查看報(bào)告,點(diǎn)擊IDE窗口底部的Gradle Console
當(dāng)你創(chuàng)建一個(gè)新的build variant,Android Studio不會(huì)為你創(chuàng)建一個(gè)source set 目錄,但是會(huì)給你一些選項(xiàng)來(lái)幫助你。比如,為你的debug構(gòu)建類型創(chuàng)建java/目錄:
1、 打開項(xiàng)目面板,選擇Project視圖
2、 找到MyProject/app/src
3、 右鍵單擊src目錄,選擇New > Folder > Java Folder
4、 在下拉中找到Target Source Set,選擇debug
5、 點(diǎn)擊Finish
Android Studio為你的debug構(gòu)建類型創(chuàng)建一個(gè)source set目錄,然后創(chuàng)建一個(gè)java/目錄到里面。你同樣可以讓Android Studio為特定的build variant創(chuàng)建的新的文件來(lái)創(chuàng)建相應(yīng)的目錄。比如,為你的debug構(gòu)建類型創(chuàng)建一個(gè)values XML文件:
1、 在Project面板中,右鍵單擊src目錄,選擇New > XML > Values XML File
2、 輸入XML文件名字,或者保持默認(rèn)。
3、 在下拉中找到Target Source Set,選擇debug
4、 點(diǎn)擊Finish
因?yàn)閐ebug構(gòu)建類型是針對(duì)特定的source set,Android Studio在創(chuàng)建XML文件時(shí)自動(dòng)創(chuàng)建必要的目錄。如圖:
本文作者:宋志輝
個(gè)人微博:點(diǎn)擊進(jìn)入
總結(jié)
以上是生活随笔為你收集整理的4.1、Android Stuido配置你的Build Variant的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装Dynamics CRM 4.0报c
- 下一篇: 信用卡每个月还一点会被起诉吗?这么做可杜