簡介如何在Android Studio裡設定Gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.crazyma.gradletest"
minSdkVersion 19
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
上述是創建Android Studio Project時的基本設定。
設定你的keystore。
signingConfigs {
SproutSigning {
keyAlias 'your_key_alias'
keyPassword 'your_key_password'
storeFile file('your_keystore_path')
storePassword 'your_store_password'
}
}
實作上,有時為了不想要把 keystore 的密碼一併寫進 build.gradle,甚至是上傳的 Version Control System,所以可以把這些 info 寫進 local.properties 裡。可直接參考本 sample app。
提醒 這裏只是為了示範,否則請勿把 local.properties 上傳至 github 或其他 Version Control System
最基本有兩種 build types:debug & release。你可以自訂你的build type。 build type裡可以設定 Debugable, SigningConfig, Minify Enables...等等,你可以進入Project Stucture > Build Types 瀏覽所有的設定。
以下是本 sample app 的設定:
buildTypes {
debug {
applicationIdSuffix ".debug"
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Explanation:
- 如果使用 debug build type,會自動在 application id 後面添加 .debug。以本 sample app 為例,application id 就會變成 com.sprout.gradletest.debug
- 如果使用 release build type,會啟用 proguard,並且參照 proguard-rules.pro的規則
- 小提醒,debug build type 無法啟用 proguard
可以在Flavors設定的部份項目如下:
- Min SDK Version
- Target SDK Version
- Application ID
- Version Name & Version Code
- Signing Config
詳情可以至 Project Structure > Flavors 瀏覽所有的設定。
以下是本 sample app 的設定
productFlavors {
demo {
applicationId 'com.sprout.gradletest.demo'
versionName "1.0-demo"
}
pub {
applicationId "com.sprout.gradletest.pub"
versionName "1.0-pub"
}
}
Explanation:
- 這裏設定兩個 flavors:demo & pub
- 兩個 flavor 有各自的 versionName & Application ID
- 使用時,可以從Android Studio 側邊選單 > Build Variants 選擇。此時,依照上述的 build type 設定,你會有四個選項:demoDebug, demoRelease, pubDebug, pubRelease
你可以依據不同的flavor,設定不同的 code, layout or resources。 詳細實作過程可參照官網。
本 sample 有實作該效果,可直接參考 sample code。
注意事項:
- create new folder時,需要建立package name,記得要跟原本的package name一樣(反而是不用跟 application id 一樣)
- 如果有兩個flavor,當你的build Variant設定為first flavor時,second flavor不會被處理,所以會被標示呈錯誤,不要太緊張。
- 如果在 AndroidManifest 宣告中使用自訂的package path(例如使用GCM時會遇到),記得要改成@{applicationId}。參考
Copyright 2015 David Ma
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.