您的位置:首页 > 移动开发 > Android开发

Gradle 第六讲 之 android插件的入门1

2015-12-03 19:45 579 查看
在讲解前面的所有讲解之后,我想到的下一个学习内容就是android插件的学习了,1.配置编译环境变量通过gradle.properties2.工程编译配置3.模块编译配置1.配置编译环境变量通过gradle.properties首先来介绍第一个属性:配置0-------以下的参数一个都不配置的时候org.gradle.daemon=true 配置1org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8org.gradle.parallel=true 配置2org.gradle.configureondemand=true 配置3以上的参数就是提高编译速度的属性配置,我分别测试了我的一个工程使用上面配置时的编译速度:配置0:BUILD SUCCESSFULTotal time: 1 mins 30.833 secs配置1:BUILD SUCCESSFULTotal time: 1 mins 23.095 secs配置2:BUILD SUCCESSFULTotal time: 59.13 secs配置3:BUILD SUCCESSFULTotal time: 46.43 secs以上数据为在mac pro版本上使用gradle 2.4的测试结果,具体效果还请在自己机器上尝试,当我使用2.8之后,发现编译速度要慢一点点这些参数都可以配置在gradle配置中的,需要的可以自己更改:在/Users/xiepengchong/.gradle/ 中增加gradle.properties 并配置一下参数,这个是我在命令行中配置的结果,使用studio会更快的我尝试的结果是 原来的clean project的速度是 17s,配置3之后,速度降为Total time: 3.197 secsorg.gradle.workers.max这个配置其实也是提高速度的,但是我将他单独拿出来,原因如下:当我配置org.gradle.workers.max=8的时候,速度会明显慢了很多,大概一分钟,当配置16的时候,才与我不配置时候,速度相同,证明我不配置的时候,其实就是开到了16的worker了,我觉得再配到32其实也是没有必要的,所以这个配不配置,自己考虑吧,配置的不好,可能降低速度org.gradle.java.home这个是配置编译的java home的,你可以设置jdk或者jre位置2.工程编译配置
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
在之前已经讲解过这个的含义,但是在每个android工程里,都会有这个,而且不是mavenCentral,其实类似的,只是其中包含的内容不同而已,除了jcenter以外,还可以使用JCenter, Maven Central和Ivy地址:https://bintray.com/bintray/jcenter工程sdk配置:local.properties
sdk.dir=/Users/***/Library/Android/sdk
以上配置都是工程内有效,当然工程包括很多模块,我们还可以配置模块内有效的参数3.模块编译配置android配置android {
compileSdkVersion 22                                      //这个是android编译的版本
buildToolsVersion "19.1.0"                            //这个是android构建工具版本,即aapt,dx等,命名如下:API-LEVEL.0.0
defaultConfig and productFlavors
                     defaultConfig {                                                        //这里配置的是基本的信息,当然还有version name的version code也在这里配置
applicationId "com.example.activitytest"
minSdkVersion 11
targetSdkVersion 21
versionName computeVersionName()             //通过函数定义函数名
                        multiDexEnabled true
}
		     productFlavors {                                                     //这里可以配置不同的渠道包,这个内容比较多,详情参考:Gradle多渠道打包
}
def computeVersionName{
.......
buildTypes                                                                       //设置是否可以debug,签名,还有生成的apk后缀,混淆等配置,详情请参考:Gradle buildType作用详解
dependencies
dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])        //包含libs下的所有jarcompile 'com.android.support:appcompat-v7:20.0.0'        //包含依赖的librarycompile project(path: ':app2, configuration: 'android-endpoints')}
当然除去上面的还有定义自己的jar的路径
provided files('src/main/external_jar/dex2.jar')   //只提供编译,不会打入包中compile files('src/main/external_jar/editor.jar')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: