匆忙的由eclipse转到android studio,第一次接触到了gradle。平时都是基本用法,按照别人例子模仿着写也没有什么问题。即使出现什么问题,网上也各种各样的解决方案。
但总觉得用起来不是很顺手,也就将就着。直到看到其他人写法和用法,发现新的天地,就萌发把gradle好好看一看,随手记下一些东西。下面都是android 方面关于gradle方面的。
BuildConfig 灵活配置
有的时候,需要通过Debug控制,日志打印,已经切换内外网地址。完全可以在buildtype来控制。
例子1 debug版本打开日志开关
buildTypes {
release {
...
}
debug{
...
buildConfigField("Boolean" ,"debug" ,"true")
}
}
在代码里面,就可以这样
if (BuildConfig.debug)
{
Log.i("","");
}
这个是Build Vaiant里面的选择对应的。我这里只在debug模式定义了debug,我在Vaiant里面切换到release,就会提示出粗。
这个使用是buildConfigField(类型,变量名,值)
如果是修改资源里面的值,同样可以。使用是resValue(类型,变量名,值)
如何给别人提供module
合作开发的时候,如何方便别人使用。
提供一种,我见到的方式,在和buid.gradle同级创建一个module_setting.gradle,别人需要是你的module,只需要在他的setting.gradle里面添加
apply from: "xx/xx/module_settings.gradle
module_setting.gradle 里面增加
File getProjectDir(String dir) { return new File("${buildscript.sourceFile.getParent()}/${dir}") } include ':xxx' project(':xxx').projectDir = getProjectDir('')
定义库的版本(更新12/15)
项目大了之后,依赖的库版本就会变多,尤其是多module,管理起来很复杂。通过定义变量来集中一处管理版本,更方便简介。android studio 自动生成依赖也是这样的用法。
例如某个module下面依赖一个kotlin的库
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
通过
$kotlin_version
定义好一个变量,然后在项目的build.gradle中buildScreipt括号里面增加
ext.kotlin_version = '1.2.10'
这样就可以在所以module使用了。
后续看到gradle知识点,都会补充在这里