android studio之gradle基础

一.工具介绍:

                         1.android studio 是谷歌专门推出的,为android专门量身定做的,大力支持一款基于Intellij IDEA改造的IDE,足以说明android studio是android的未来;

                         2.智能和速度快就不要说了,用过的人众所周知;

二.工具介绍了之后就来说说Gradle

1.Gradle是以Groovy为语言基础,面向java应用为主,基于DSL(领域特定语言)语法的自动化构建工具;
 Gradle集成了构建、测试、发布和其他等功能,比如软件打包生成注释文档;

2.Geradle的文件结构:


  • ./build.gradle
  • ./gradle.properties
  • ./gradlew
  • ./gradlew.bat
  • ./local.properties
  • ./setting.gradle
  • ./XXX.iml
  • ./app/build.gradle
  • ./app/app.iml
  • ./app/proguard-rules.pro

./builld.gradle 和 ./app/build.grade



这两个文件是gradle项目自动编译的时候回去读取的配置文件,比如制定项目的依赖包等;



build.gradle有两个文件,一个是全局的,一个是modle里面的



全局的build.grade主要是声明仓库源,gradle的版本号等;




./build.gradle
 
 
buildscript {
     repositories {
         // 声明仓库源,比如我们构建了一个安卓的库,现在想要把库上传到jcenter中供别人一起使用,则可以上传到jcenter中
         // 具体上传步骤见:http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2015/0227/2502.html
         jcenter()
     }
     dependencies {
         // 说明gradle的版本号
         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
     }
 }


 // 所有项目都继承这个配置
 allprojects {
     repositories {
         mavenLocal()
         jcenter()
     }
 } 
 

 
 
./app/build.grade 设置了模块的gradle构建配置
 
 

 
 
// 说明这个模块是安卓项目,如果是多模块开发,有可能有的值为java/war
 apply plugin: 'com.android.application'


 // 配置了所有android构建的参数
 android {
     // 编译使用SDK版本
     compileSdkVersion 23
     // 编译工具的版本
     buildToolsVersion "23.0.1"


     defaultConfig {
         // 包名
         applicationId "com.awesomeproject"
         // sdk最低支持版本
         minSdkVersion 16
         // 目标SDK版本,如果目标设备的API版本正好等于此数值,就不会为此程序开启兼容性检查判断的工作
         targetSdkVersion 22
         // 版本号
         versionCode 1
         versionName "1.0"
         // 原生
         ndk {
             abiFilters "armeabi-v7a", "x86"
         }
     }
     buildTypes {
         // 发布时候的设置
         release {
             // 是否进行混淆
             minifyEnabled false
             // 混淆使用文件
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
 }


 // 依赖的工具包
 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.android.support:appcompat-v7:23.0.0'
     compile 'com.facebook.react:react-native:0.11.+'
 }





./app/proguard-rules.pro

混淆文件

./gradle.properties

grade的运行环境配置,比如使用多少内存之类的。

./gradlew 和 ./gradlew.bat

自动完成 gradle 环境的脚本,在linux和mac下直接运行gradlew会自动完成gradle环境的搭建。

./local.properties

配置SDK或者NDK的环境路径,各个机器上这个变量可能都是不一样的,所以不应该进入版本库

./setting.gradle

整个项目的管理,比如这个项目包含哪些模块等。

./XXX.iml 和 ./app/app.iml

iml是Intellij模块文件。Intellij是一款JAVA的IDE。Android Studio是基于开源的Intellij IDEA开发出来的IDE。
所以Android Studio有的IDE功能是需要有.iml才能使用的。比如我们删除了iml文件,可能就在Android Studio中看不到一些目录了。