配置应用程序的构建类型
构建类型 Build Types非常重要,在这里可以配置构建版本的一些非常重要的参数,默认有两个构建版本:debug和release。
默认的debug和release的区别只有Debugable(是否可调试),debug默认可调试,release默认不可以调试.
Name: 构建类型名称
Debugable: 是否可以调试
Jin Debuggable: Jin是否可以调试
Signing Config: 指定签名,同样是在signing中配置的,如果为空则不签名,打出来的包也是未签名过的.
Renderscript Debuggale: 是否使用渲染脚本(一种低级的高性能编程语言,用于3D渲染和处理密集型计算)
Renderscript Optim Level: Rendescript版本.
Minify Enabled: 是否混淆
Pseudo Locales Enabled: 是否支持本地化整理
Proguard File: 指定混淆文件路径
Application Id Suffix: 应用程序Id后缀
Version Name Suffix: 版本名称后缀
Zip Align Enabled: 是否支持Zip Align(字节码对齐)
新增一个构建类型:
修攺后build.gradle文件中同步修攺为:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile\('proguard-android.txt'\), 'proguard-rules.pro'
}
bbbbb {
debuggable true
jniDebuggable true
renderscriptDebuggable true
minifyEnabled true
pseudoLocalesEnabled true
proguardFile '\/Users\/bixiaopeng\/proguard-android.txt'
applicationIdSuffix '.daily'
versionNameSuffix '\_0705'
zipAlignEnabled true
}
}
如果我们指定打某个构建类型的包可以这样指定:
打出Debug的包: .\/gradlew assembleDebug
打出Release的包: .\/gradlew assembleRelease
打出Bbbbb的包: .\/gradlew assembleBbbbb
我们试着打出Bbbbb这种类型的包:
$ ./gradlew assembleBbbbb
:app:preBuild UP-TO-DATE
:app:preBaiduBbbbbBuild UP-TO-DATE
:app:checkBaiduBbbbbManifest
...
:app:packageXiaomiBbbbb
:app:assembleXiaomiBbbbb
:app:assembleBbbbb
BUILD SUCCESSFUL
Total time: 25.301 secs
在app\/build\/output\/apk目录下就会打出相应的apk包.
解析apk,查看包名和版本号跟我们配置的一致.
~$ aapt d badging /Volumes/FirstApp/app/build/outputs/apk/app-baidu-bbbbb-unsigned.apk
package: name='com.baidu.firstapp.daily' versionCode='1' versionName='1.0_0705'
sdkVersion:'8'
targetSdkVersion:'22'
....
Project Structure中没有的配置但buildTypes中支持的属性还有很多,我们举个例子:
// 显示Log
buildConfigField "boolean", "LOG_DEBUG", "true"
// 移除无用的resource文件,minifyEnabled必须为true
shrinkResources true