前段时间忽然发现自己对于Android studio的Gradle打包并不了解,这篇博客参考网上众多教程,为大家详细介绍Gradle。 Gradle简介We would like to introduce Gradle to you, a build system that we think is a quantum leap for build technology in the Java (JVM) world. Gradle provides:
gradle属于任务驱动型构建工具,它的构建过程是基于Task的。Gradle是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。 Gradle安装与环境变量配置。。。。。。。。。略!!!网上有好多关于Windows,Linux,MAC的grade安装与配置的教程这里就不写了。 Gradle脚本构建(build.gradle)Gradle中的所有东西都是围绕两个基本概念:项目和任务。 每个Gradle构建都是由一个或多个项目组成。一个项目代表什么,取决于你用Gradle正在做的。比如,一个项目可能代表一个库或一个网络应用。它可能代表一个由其他项目产生的一个或多个jar包打包d一个zip包。一个项目不需要代表一个事物而被构建。它可以代表一个事物而被做出来,比如部署你的应用到暂存区或产品环境。不要担心这个现在是否好像有一点含糊。Gradle的通过约定来构建的功能支持为一个项目添加一个更加具体的定义。 下面介绍一下build.gradle文件:
Gradle常用命令
直接执行gradle build会生成debug包和release包如果不想要debug包可以使用gradleasR命令。 上面大家接触了一些命令如./gradlew -v./gradlew clean./gradlew build, 这里注意是./gradlew,./代表当前目录,gradlew代表 gradlewrapper,意思是gradle的一层包装,大家可以理解为在这个项目本地就封装了gradle,即gradle wrapper,在9GAG/gradle/wrapper/gralde-wrapper.properties文件中声明了它指向的目录和版本。只要下载成功即可用grdlew wrapper的命令代替全局的gradle命令。z理解了gradlewrapper的概念,下面一些常用命令也就容易理解了。 ·./gradlew-v版本号 ·./gradlewclean清除9GAG/app目录下的build文件夹 ·./gradlewbuild检查依赖并编译打包 这里注意的是./gradlew build命令把debug、release环境的包都打出来,如果正式发布只需要打Release的包,该怎么办呢,下面介绍一个很有用的命令assemble,如 ·./gradlewassembleDebug编译并打Debug包 ·./gradlewassembleRelease编译并打Release的包 除此之外,assemble还可以和productFlavors结合使用,具体在下一篇多渠道打包进一步解释。 ·./gradlewinstallRelease Release模式打包并安装 ·./gradlewuninstallRelease卸载Release模式包 local.properties文件:
这个文件主要是配置sdk、 ndk路径,格式必须符合要求。 settings.gradle文件include ‘:app’该文件中就仅仅只包含了一句话,在你的项目中如果有多个Model存在的时候,就可以选择包含哪些进行编译。 这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module,如: include':app', ':extras:ShimmerAndroid' 文件中的app,extras:ShimmerAndroid都是module,如果还有其他module都需要按照如上格式加进去。
gradle-wrapper.properties文件![]()
可以看到里面声明了gradle的目录与下载路径以及当前项目使用的gradle版本,这些默认的路径我们一般不会更改的,这个文件里指明的gradle版本不对也是很多导包不成功的原因之一。
default.properties文件
我们看红色框中圈的两句,第一句说:不要修改这个文件,您的修改将被清除。第二句说:这个文件必须被版本控制系统检查。 意思就说这个文件我们不能动。这个文件的内容是配置混淆文件及android系统版本。
project.properties文件
这个文件和上个文件一样,我们不能修改。 |
|