Android gradle 创建自定义BuildTypes
来源:互联网 发布:流程图描述算法 编辑:程序博客网 时间:2024/06/05 05:40
原文地址:http://blog.csdn.net/lzyzsd/article/details/43167359
默认情况下,Android插件自动为项目构建一个debug和一个release版本的应用。这两个版本的不同主要体现在在非开发机上的调试功能以及APK的签名方式。debug版本使用一个用公开的name/password创建的key来签名(这样构建的时候就不需要提示输入密码了)。release版本在构建的时候不会进行签名,而是稍后在做。
这个可以使用gradle中的BuildType对象来进行配置。默认情况下,2个BuildType的实例会被创建,一个debug,一个release。Android插件允许自定义这两个实例,当然你也可以创建其他的build type。配置由buildTypes这个DSL来完成:
- android {
- buildTypes {
- debug {
- applicationIdSuffix ".debug"
- }
- jnidebug.initWith(buildTypes.debug)
- jnidebug {
- packageNameSuffix ".jnidebug"
- jniDebuggable true
- }
- }
- }
1.配置默认的debug Build Type
设置debug版本的报名为<应用id>.debug,这样就可以在设备上同时安装debug和release版本了。
2.创建一个新的BuildType,名字是jnidebug,同时配置它是复制自debug Build Type。
配置jnidebug开启debug版本的JNI组件,添加一个不同的包名后缀。
创建一个新的的Build Types非常简单,只需要在buildTypes下面通过调用initWith或者使用闭包添加一个新的元素。下表是可以配置的属性以及默认值:
属性明 debug版本默认值 release或其他版本 默认值
debuggable true false
jniDebuggable false false
renderscriptDebuggable false false
renderscriptOptimLevel 3 3
applicationIdSuffix null null
versionNameSuffix null null
signingConfig android.signingConfigs.debug null
zipAlignEnabled false true
minifyEnabled false false
proguardFile N/A (set only) N/A (set only)
proguardFiles N/A (set only) N/A (set only)
出了这些属性,Build Types还可以用来配置代码和资源文件。针对每一个Build Type,一个新的对应的sourceSet会被创建,这个sourceSet使用一个默认的路径src/<buildtype名字>/。这就意味着Build Type的名字不能是main或者androidTest(这是由插件强制的),同时每个Build Type的名字必须是唯一的。
和其他的source sets一样,Build Type中的source set路径也是可以配置
- android {
- sourceSets.jnidebug.setRoot('foo/jnidebug')
- }
另外,对每一个Build Type,一个新的assemble<BuildType名字>任务会被创建.前面我已经讲过assembleDebug和assembleRelease任务了,这里就可解释这两个任务的来源了.当debug和release Build Types被预先创建的时候,他们对应的assemble任务也会被一起创建.
上面的build.gradle代码片段还会创建一个assembleJnidebug任务,assemble任务也会添加对assembleJniDebug任务的依赖,正如它对assembleDebug和assembleRelease任务的依赖一样。
小提示:你可以使用 gradle aJ命令来运行assembleJnidebug任务。
可能是使用场景:
仅在debug模式下使用的权限,release模式不使用。
debug时使用不同的实现
debug模式使用不同的资源(比如当一个资源的值依赖于签名的时候)
BuildType中的 代码/资源文件 将会被按照下列方式处理:
manifest配置会被merge到app manifest中
代码不会被merge,会被当做另一个代码目录(source folder)来使用
资源文件会覆盖同名的main中的资源文件
0 0
- Android gradle 创建自定义BuildTypes
- Android-->build.gradle-->buildTypes
- gradle buildTypes
- Android开发笔记之gradle的buildTypes内部配置
- Android开发中Gradle的高级用法---productflavors, buildTypes
- Android Studio设置自动打包环境-Gradle buildTypes配置
- Android Studio -使用 Gradle打包多版本APK——buildTypes和productFlavors
- Android:通过build gradle中的buildTypes设置自动log开关(一)
- Android:通过build gradle中的buildTypes设置自动log开关(二)
- Android Studio配置Gradle(包括signingConfigs、buildTypes和productFlavors等)
- Android Studio配置Gradle(包括signingConfigs、buildTypes和productFlavors等)
- Android Studio配置Gradle(包括signingConfigs、buildTypes和productFlavors等)
- Android Studio配置Gradle(包括signingConfigs、buildTypes和productFlavors等)
- Gradle buildTypes 设置自动打包环境
- [译]自动重命名Android versionName (通过创建自定义Gradle插件)
- 解决 AndroidStudio 中 gradle 的 buildTypes 配置不生效问题
- build.gradle 中 buildTypes中配置打包环境
- android studio 自定义gradle变量
- QT中的复选框改变大小,并改为打勾
- No browser is open都是什么鬼
- 新手基本struts.xml的配置文件详解
- 欢迎使用CSDN-markdown编辑器
- 全国各地运营商都在用哪些家条件接收系统(CA)
- Android gradle 创建自定义BuildTypes
- Air Dragon带你玩转空气大数据
- 微信授权获取用户信息
- Android Paint API总结和使用方法
- Linux中硬链接与软连接的区别_(转)
- 关于设计(二)设计的方法
- WPF/WinForm在线程中调用提示窗MessageBox阻塞窗口方法
- 1272: [BeiJingWc2008]Gate Of Babylon
- av_opt_set函数族详解