编译类型
android gradle 插件默认设置工程编译一个debug类型和一个release类型的应用。这主要涉及到如何安全的在一个设备上测试,和如何签名一个apk。debug类型的apk自动的使用一个未知名字和密码的key签名的,release类型的apk不在编译过程签名,签名在编译之后。这两种类型的apk是用一个叫BuildType的类配置的,默认的这两个都生成。如下使用buildType这个DSL 容器来设置这两种类型或其他类型:
android{
buildTypes{
applicationIdSuffix ".debug"
}
jnidebug.initWith(buildType.debug)
jnidebug {
packageNameSuffix ".jnidebug"
jnidebugBuild true
}
}
上面的代码有如下效果:
- 设置了debug类型的package为applicationId.debug使得设备能够同时安装debug 和 release两个应用
- 配置了一个叫jnidebug的编译类型,这个类型拷贝了debug类型。
- 设置了jnidebug类型使用了jni模块的编译,并且改了包名后缀
buildType的可配属性有一个表,还有其默认值,就像上面的jnidebugBuild项。每一个编译类型都有个默认的位置,在src/<buildtypename>/,使用
android{
sourceSets.jnidebug.setRoot('foo/jnidebug')
}
这个修改。一个新的assemble<BuildTypeName>的task,以及一系列task产生。