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
//这个可以不用自己创建,你可以点击build/generatesignedapk,在其中选择你的文件或者创建签名文件,设置密码等等,然后选择记住密码,然后就会看见有这个配置了。[/code]
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' } }
}//依赖的工具包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中看不到一些目录了。
相关文章推荐
- Android系统开发之四:多线程和Synchronized同步机制
- 心电图效果View Android自定义View
- android开发--sqlite的使用
- Android再按一次退出程序
- android copy项目后修改项目名
- SwipeRefreshLayout使用
- android 蓝牙锁应用开发实例(二)客户端基本页面
- Android 导入第三方jar包
- Android中FastJson解析json1
- android中的帧动画
- [转]正确使用SQLCipher来加密Android数据库 - 朝野布告
- Android获取屏幕宽高,密度等
- Android 屏幕适配方案,自动生成不同分辨率的值
- Android 开源框架Universal-Image-Loader完全解析
- Android 支持表情功能
- Android 常用辅助函数
- Illegal resource reference: @*android resources are private and not always present 解决方案
- Android自定义spinner下拉框实现的实现
- Android ListView的OnItemClickListener详解-id跟position的区别
- 手把手教你打造一个心电图效果View Android自定义View