学习Android Studio里的Gradle
2015-10-31 12:41
471 查看
一直听说Gradle很强大,只是偶尔用Android Studio创建Demo的时候看到他一次,今天抽个时间完整记录一下。
1.gradle位置
Android Studio项目创建好之后,默认有3个gradle文件,分别位于:
/settings.gradle
/build.gradle
/app/build.gradle
2.gradle内容
settings.gradle 默认只有一行代码,即:
新创建的项目只有app一个子项目。如果在project里添加了子项目(Module),按理需要在settings.gradle里添加相应子项目名称,如:
提示:当你添加一个Module后,最新版的Android Studio会自动在settings.gradle里配置好,Amazing。
根目录的build.gradle 就比较丰富了,默认有三个“节点”,buildscript、allprojects和task clean。
buildscript下的第一个子“节点”是声明仓库源,默认是jcenter,之前版本则是mavenCentral,也可以两个center共存。jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。第二个子“节点”是声明Android gradle plugin的版本,Android Studio 1.5版默认是gradle 1.3。
allprojects下是声明了所有project默认的仓库源。
task clean声明了一个任务,任务名叫clean(也可以改为其它),任务类型是Delete(也可以是Copy),就是每当修改settings.gradle文件后点击同步,就会删除rootProject.buildDir下的文件(实际上我看到的效果是清除了External Libraries里的包,然后又添加了一次)。
app/build.gradle 就是默认android子项目的gradle文件了,也是三个小节点:apply、android和dependencies。
appley节点:apply plugin: 'com.android.application'
以上语句中的apply是一个方法,给它传递了一个参数plugin,plugin 的值是'com.android.application'。如果有多个参数,则以逗号隔开,例如:compile name: 'volley', ext: 'aar'。
android节点:前面部分很好理解,从字面意思就能了解。buildTypes默认是release(也可以添加debug),minifyEnabled表示是否需要混淆,proguardFiles 表示混淆配置文件的名称。productFlavors表示多渠道包(以后深入学习后再写)。
dependencies节点:com.开头的部分是Demo项目中添加的引用包,规则是namesapce:package name:version,其它两行是项目创建后默认添加的。
参考文档:
http://www.cnblogs.com/youxilua/archive/2013/05/22/3092657.html http://www.blogjava.net/wldandan/archive/2012/07/12/382792.html http://www.android100.org/html/201502/16/119379.html
1.gradle位置
Android Studio项目创建好之后,默认有3个gradle文件,分别位于:
/settings.gradle
/build.gradle
/app/build.gradle
2.gradle内容
settings.gradle 默认只有一行代码,即:
include ':app'
新创建的项目只有app一个子项目。如果在project里添加了子项目(Module),按理需要在settings.gradle里添加相应子项目名称,如:
include ':app', ':androidlibrary'
提示:当你添加一个Module后,最新版的Android Studio会自动在settings.gradle里配置好,Amazing。
根目录的build.gradle 就比较丰富了,默认有三个“节点”,buildscript、allprojects和task clean。
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
buildscript下的第一个子“节点”是声明仓库源,默认是jcenter,之前版本则是mavenCentral,也可以两个center共存。jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。第二个子“节点”是声明Android gradle plugin的版本,Android Studio 1.5版默认是gradle 1.3。
allprojects下是声明了所有project默认的仓库源。
task clean声明了一个任务,任务名叫clean(也可以改为其它),任务类型是Delete(也可以是Copy),就是每当修改settings.gradle文件后点击同步,就会删除rootProject.buildDir下的文件(实际上我看到的效果是清除了External Libraries里的包,然后又添加了一次)。
app/build.gradle 就是默认android子项目的gradle文件了,也是三个小节点:apply、android和dependencies。
apply plugin: 'com.android.application' android { compileSdkVersion 15 buildToolsVersion '19.1.0' defaultConfig { applicationId "com.nait.picassodemo" minSdkVersion 4 targetSdkVersion 15 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.squareup.okhttp:okhttp:2.5.0' compile 'com.umeng.analytics:analytics:5.6.1' testCompile 'junit:junit:4.12' }
appley节点:apply plugin: 'com.android.application'
以上语句中的apply是一个方法,给它传递了一个参数plugin,plugin 的值是'com.android.application'。如果有多个参数,则以逗号隔开,例如:compile name: 'volley', ext: 'aar'。
android节点:前面部分很好理解,从字面意思就能了解。buildTypes默认是release(也可以添加debug),minifyEnabled表示是否需要混淆,proguardFiles 表示混淆配置文件的名称。productFlavors表示多渠道包(以后深入学习后再写)。
dependencies节点:com.开头的部分是Demo项目中添加的引用包,规则是namesapce:package name:version,其它两行是项目创建后默认添加的。
参考文档:
http://www.cnblogs.com/youxilua/archive/2013/05/22/3092657.html http://www.blogjava.net/wldandan/archive/2012/07/12/382792.html http://www.android100.org/html/201502/16/119379.html
相关文章推荐
- Android 亮度调节
- Android触摸事件分发机制
- Android 性能优化
- Android编程之Button控件用法实例分析
- Android性能优化 浅析
- android--(动画1_动画补间动画和帧动画)
- Android编程中关于单线程模型的理解与分析
- Animation_list动画爆出OOM,你猜怎么着?
- Android5.0-Material Design(done)
- Android编程之高效开发App的10个建议
- android 6.0 Marshmallow
- 从源码看Android中sqlite是怎么读DB的(转)
- Android中的文件存储目录
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之最佳实践之Adapters和lists(十六)
- android用NDK编译出so最简单的方法
- Android(7)ImageView:ScaleType属性(.FIT_CENTER/.FIT_START/.FIT_END/.CENTER./.CENTER_INSIDE/.CENTER_CR)
- Android工程师必备的网址
- Android 开发基础系列——在哪里选择Android设备
- 【Android】YUV使用总结 —— Android常用的几种格式:NV21/NV12/YV12/YUV420P的区别
- 死锁 android ANR