配置应用程序的构建类型

构建类型 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文件中同步修攺为:

  1. buildTypes {
  2. release {
  3. minifyEnabled false
  4. proguardFiles getDefaultProguardFile\('proguard-android.txt'\), 'proguard-rules.pro'
  5. }
  6. bbbbb {
  7. debuggable true
  8. jniDebuggable true
  9. renderscriptDebuggable true
  10. minifyEnabled true
  11. pseudoLocalesEnabled true
  12. proguardFile '\/Users\/bixiaopeng\/proguard-android.txt'
  13. applicationIdSuffix '.daily'
  14. versionNameSuffix '\_0705'
  15. zipAlignEnabled true
  16. }
  17. }

如果我们指定打某个构建类型的包可以这样指定:

打出Debug的包: .\/gradlew assembleDebug

打出Release的包: .\/gradlew assembleRelease

打出Bbbbb的包: .\/gradlew assembleBbbbb

我们试着打出Bbbbb这种类型的包:

  1. $ ./gradlew assembleBbbbb
  2. :app:preBuild UP-TO-DATE
  3. :app:preBaiduBbbbbBuild UP-TO-DATE
  4. :app:checkBaiduBbbbbManifest
  5. ...
  6. :app:packageXiaomiBbbbb
  7. :app:assembleXiaomiBbbbb
  8. :app:assembleBbbbb
  9. BUILD SUCCESSFUL
  10. Total time: 25.301 secs

在app\/build\/output\/apk目录下就会打出相应的apk包.

解析apk,查看包名和版本号跟我们配置的一致.

  1. ~$ aapt d badging /Volumes/FirstApp/app/build/outputs/apk/app-baidu-bbbbb-unsigned.apk
  2. package: name='com.baidu.firstapp.daily' versionCode='1' versionName='1.0_0705'
  3. sdkVersion:'8'
  4. targetSdkVersion:'22'
  5. ....

Project Structure中没有的配置但buildTypes中支持的属性还有很多,我们举个例子:

  1. // 显示Log
  2. buildConfigField "boolean", "LOG_DEBUG", "true"
  3. // 移除无用的resource文件,minifyEnabled必须为true
  4. shrinkResources true