Android gradle自定义构建类型(buildType的自定义)(八)

update time: 2019-1-11 author :要你命三千又三千 type:学习笔记

文章目录

    • defaultConfig属性详解
    • buildType的详细使用
    • buildType:常见配置的一些属性介绍
    • 问题:如何使用一个简单的代码混淆功能
    • 补充:zipalign(翻译:压缩对齐) 优化

defaultConfig属性详解

1.defaultConfig 是一个默认的ProductFlavor(在没有定义ProductFlavor会自动应用该默认配置)

几个所属方法解释:

applicationId:指定app的包名,如果为null ,则构建时从AndroidMainfest.xml读取package的值。

minSdkVersion

作用:指定我们的app最低支持的Android操作系统。其对应的值是Android sdk api level (一般是个整数,也可以用重载方法添加版本代码名code name(例如: code name:Nougat version:7.1 api level:25 ))

targetSdkVersion

作用:用于配置我们基于哪个android sdk 开发。(值与字符串与minSdkVersion 性质相同)

versionCode :是一个内部版本号(整数值)
versionName :配置app 版本名称。 (用户可以看见的app版本)

testApplicationId

作用:用于配置测试App的包名,默认是 applicationId+’.test"

tesetInstrumentationRunner

作用:用于配置单元测试时使用的Runner.

signingConfig

作用:配置默认的签名信息,对生成的app签名。

它包含的可配置元素有

  1. storeFile:指定签名证书文件
  2. storePassword:签名证书文件的密码
  3. storeType:签名证书的类型
  4. keyAlias:签名证书的密钥别名。
  5. keyPassword :签名证书中国秘钥的密码。

举例:
Android gradle自定义构建类型(buildType的自定义)(八)_第1张图片
解释:这里配置了一个签名实例对象release,但是还没有使用,使用时只需要引用即可。
实例:
Android gradle自定义构建类型(buildType的自定义)(八)_第2张图片

buildType的详细使用

1.内置类型:内置了两个构建类型debug 和release 这两个构建类型。
区别:内否在设备上调试和签名不一样,其他都一样
问题一:如何添加新的构建类型
方法:如同 signingConfigs一样直接配置即可。

for example
android {
  buildTypes {
      release {
       }
       debug{
       }
       midrelease{
       //这里添加一些buildType的一些属性。   
       }
 }
 }

buildType:常见配置的一些属性介绍

(以下这些属性你会觉得异常是由于它用在自定义的buildType中:比如在debug中国debuggable 是指定的,applicationIdSuffix是.debug自然是指定好的)

以下属性在自定义的buildType中使用

  1. applicationIdSuffix:配置默认applicationId的后缀,(指定后缀)
  2. debuggable:配置一个是否生成一个可供调试的apk.
  3. jniDebuggable :是否可供Jni 调试的apk(apk 是否允许Jni 调试)
  4. minifyEnabled:是否启用混淆

问题:如何使用一个简单的代码混淆功能

步骤一:将buildType的属性:minifyEnabled 开启
步骤二:配置混淆文件
实例

builTypes {
    release {
    minifyEnabled true //开启混淆
    proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' //设置混淆的文件    proguardFile指定一个混淆文件,ProguardFiles指定多个
           //getDefaultProguardFile()在android sdk 中默认提供的混淆文 
           //件/tool/proguard文件夹。
           // sdk 提供了两个 proguard 混淆文件(proguard-android.txt,proguard-
           //android-optimize.txt(优化))
    }
}

补充:zipalign(翻译:压缩对齐) 优化

由来:是由Android提供的优化apk 文件的工具

作用:

  1. 提高系统和应用的运行效率
  2. 更快地读取apk 中的资源
  3. 减低内存使用

如何开启:

android{
    buildTypes {
        release {
          zipAlignEnabled true
        }
     }
 }

你可能感兴趣的:(Gradle的使用)