基于Android Studio3.0
提供demo:https://github.com/hacjy/GradleConfigDemo
1、依賴庫的統一管理配置
-創建config.gradle 關鍵字ext
-如何使用:首先,在工程的build.gradle中導入該配置文件:apply from:"config.gradle";
然后,使用rootProject對象調用,如rootProject.ext.android["compileSdkVersion"]。
2、生成簽名打包
創建簽名:Build->Generate Signed Apk,然后Create new keystore。
之后在app中的build.gradle中設置簽名(必須設置在buildType之前)
signingConfigs {
release {
storeFile file('D:/workspace/keystore.jks')
keyAlias 'androidKeystore'
keyPassword 'android'
storePassword 'android'
}
}
當然不喜歡手動寫的話,也可以設置自動生成:Project Structure->app->Signing添加一個簽名即可。
Generate Signed Apk這種方式生產的apk是放在app同級對應的release/debug目錄下。當然,如果使用gradle的命令去打包,生成的apk是存放在app->build-output-apk目錄下。
3、修改打包出的apk名稱
studio3.0 gradle api有變動,具體請看:https://developer.android.google.cn/studio/build/gradle-plugin-3-0-0-migration.html#variant_api
具體代碼如下:
android.applicationVariants.all { variant ->
variant.outputs.all {
//修改apk名稱variant.name對應buildType.name
outputFileName = "${variant.name}-${project.archivesBaseName}-
${variant.versionCode}-${variant.versionName}-${releaseTime()}.apk"
}
}
4、多渠道打包配置
-必須聲明flavorDimensions:flavorDimensions("default")
studio提示:Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
-定義渠道名稱
flavorDimensions("default")
productFlavors{
xiaomi{dimension "default"}
huawei{dimension "default"}
baidu{dimension "default"}
}
productFlavors.all{
flavor->flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE:name]
}
5、通過buildTypes根據環境設置測試/生產環境地址
buildTypes {
debug{
minifyEnabled false
//配置api地址,在BuildConfig可以找到該字段
buildConfigField ("String", "API_URL", "\"http://debug.com\"")
}
release {
minifyEnabled true
//配置api地址,在BuildConfig可以找到該字段
buildConfigField("String","API_URL","\"http://release.com\"")
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-
rules.pro'
}
}