您当前的位置: 首页 >  gradle

xiangzhihong8

暂无认证

  • 1浏览

    0关注

    1324博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

gradle构建android项目详解

xiangzhihong8 发布时间:2015-12-14 14:22:42 ,浏览量:1

1、用Gradle构建 1.1 工程结构

如图所示,这是一个不能更普通的Android的Gradle工程了。

  • 根目录下面的settings.gradle当中主要是用来include子模块的,比如我们这个工程有一个叫作app的子模块,那么settings.gradle的内容如下:
include ':app'
  • 根目录下面的build.gradle包含一些通用的配置,这些配置可以在各个子模块当中使用。

  • gradle.properties文件包含的属性,会成为project的properties的成员,例如我们添加了属性hello,

hello=Hello Tas!
  • 然后我们在build.gradle当中创建task:
task hello 
    properties.load(instr)
    }
    def sdkDirProp = properties.getProperty('sdk.dir')

     if (sdkDirProp != null) {
        androidSdkDir = new File(sdkDirProp)
} else {
        sdkDirProp = properties.getProperty('android.dir')
        if (sdkDirProp != null) {
           androidSdkDir = new File(rootDir, sdkDirProp)
           isPlatformSdk = true
        } else {
           throw new RuntimeException(
"No sdk.dir property defined in local.properties file.")
       }
    }

    def ndkDirProp = properties.getProperty('ndk.dir')
    if (ndkDirProp != null) {
        androidNdkDir = new File(ndkDirProp)
     }

} else {
   String envVar = System.getenv("ANDROID_HOME")
   if (envVar != null) {
       androidSdkDir = new File(envVar)
   } else {
      String property = System.getProperty("android.home")
      if (property != null) {
         androidSdkDir = new File(property)
      }
  }

  envVar = System.getenv("ANDROID_NDK_HOME")
  if (envVar != null) {
      androidNdkDir = new File(envVar)
      }
   }
} 

BasePlugin.groovy,通过这两个方法,我们可以在Gradle脚本当中获取SDK和NDK的路径:

File getSdkDirectory() {
    return sdk.sdkDirectory
}

File getNdkDirectory() {
    return sdk.ndkDirectory
}

例如:

 task hello             
关注
打赏
1482932726
查看更多评论
0.0523s