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

Android studio的gradle目录结构

2016-03-31 11:07 225 查看
./build.gradle./gradle.properties./gradlew./gradlew.bat./local.properties./setting.gradle./XXX.iml./app/build.gradle./app/app.iml./app/proguard-rules.progradle项目自动编译的时候要读取的配置文件。依赖管理支持多方式依赖管理:包括从maven远程仓库、nexus私服、ivy仓库以及本地文件系统的jars或者dirs。AS的六种依赖:Compile,Provided,APK,Testcompile,Debugcompile,ReleasecompileCompilecompile是对所有的buildtype以及favlors都会参与编译并且打包到最终的apk文件中。ProvidedProvided是对所有的buildtype以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,不打包到最终apk。APK只会打包到apk文件中,而不参与编译,所以不能再代码中直接调用jar中的类或方法,否则在编译时会报错TestcompileTestcompile仅仅是针对单元测试代码的编译编译以及最终打包测试apk时有效,而对正常的debug或者releaseapk包不起作用。DebugcompileDebugcompile仅仅针对debug模式的编译和最终的debugapk打包。ReleasecompileReleasecompile仅仅针对Release模式的编译和最终的Releaseapk打包。build.grade有两个,一个是全局的,一个是在模块里面。全局的build.grade主要设置的是声明仓库源,gradle的版本号说明等。./build.gradle
buildscript{
repositories{//repositories配置的是依赖管理的东西,也就是依赖管理的服务器。默认是jcenter()也可以添加其他,多个之间不干扰。
//声明仓库源,比如我们构建了一个安卓的库,现在想要把库上传到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:Donotplaceyourapplicationdependencieshere;theybelong
//intheindividualmodulebuild.gradlefiles
}
}

//所有项目都继承这个配置
allprojects{
repositories{
mavenLocal()
jcenter()
}
}
./app/build.grade设置了模块的gradle构建配置
//说明这个模块是安卓项目,如果是多模块开发,有可能有的值为java/war
applyplugin:'com.android.application'//表示的是添加插件,其是可以理解为该model为一个com.android.application程序,也就是应用程序,如果你的Model是一个库,那么也就是:applyplugin:'com.android.library'
//配置了所有android构建的参数
android{
//编译使用SDK版本
compileSdkVersion23
//编译工具的版本
buildToolsVersion"23.0.1"

defaultConfig{//默认配置也相当于全局配置,这里边配置的下面的buildTypes中也将自动继承了。
//包名
applicationId"com.awesomeproject"
//sdk最低支持版本
minSdkVersion16
//目标SDK版本,如果目标设备的API版本正好等于此数值,就不会为此程序开启兼容性检查判断的工作
targetSdkVersion22
//版本号
versionCode1
versionName"1.0"
//原生
ndk{
abiFilters"armeabi-v7a","x86"
}
}
buildTypes{//编译配置
//发布时候的设置
release{
//是否进行混淆
minifyEnabledfalse
//混淆使用文件
proguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
//这个可以不用自己创建,你可以点击build/generatesignedapk,在其中选择你的文件或者创建签名文件,设置密码等等,然后选择记住密码,然后就会看见有这个配置了。[/code]
}
//依赖的工具包dependencies{//可以是远程依赖,也可以是本地的
compilefileTree(dir:'libs',include:['*.jar'])
	//这句话就是说编译时依赖libs文件夹下的所有jar文件
compileproject(':library')
	//这也是依赖,不过依赖的是一个model,在一个项目中可以有多个model,这句话的意思就是依赖一个本项目中名称为library的model库。
compile'com.android.support:appcompat-v7:23.0.0'
	//这句话也就是依赖一个远程的库了,这个库的作用是在低版本中使用一定的MaterialDesign的东西。
compile'com.facebook.react:react-native:0.11.+'}
./app/proguard-rules.pro这个和上面说的一样混淆文件./gradle.propertiesgrade的运行环境配置,比如使用多少内存之类的。./gradlew和./gradlew.bat自动完成gradle环境的脚本,在linux和mac下直接运行gradlew会自动完成gradle环境的搭建。./local.properties配置SDK或者NDK的环境路径,各个机器上这个变量可能都是不一样的,所以不应该进入版本库./setting.gradle整个项目的管理,比如这个项目包含哪些模块等。./XXX.iml和./app/app.imliml是Intellij模块文件。Intellij是一款JAVA的IDE。AndroidStudio是基于开源的IntellijIDEA开发出来的IDE。所以AndroidStudio有的IDE功能是需要有.iml才能使用的。比如我们删除了iml文件,可能就在AndroidStudio中看不到一些目录了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: