1、简介
构建,通俗点来说就是通过一些编译过程,得到可执行或者可安装程序;那么对于android来说,就是把android的java/kotlin代码,资源,Manifest.xml文件、第三方库、android库等一起编译打包放入apk中;Android使用的gradle进行构建,并使用定制的android的插件(官网)
构建android项目的三个境界:
1、会使用android gradle插件
2、gradle进行android多个版本控制
3、写出最适合自己项目的插件
本文是先谈谈gradle有的内容,在说说android插件特有的
2、gradle简单基础
gradle 是基于groovy实现的,一款非常优秀的构建系统工具;需要jdk 6以上的java环境,下载gradle包,配置bin环境变量(找到gradle执行脚本的路径放到path下即可)
2.1语法
类似kotlin,但是更随意,下面介绍的也是一些区别,如果不会kotlin,那么就以java来看也是可以的
定义关键字: def
闭包:一段被花括号包含的代码
gradle的参数,基本是闭包,也就是省去()直接在{}内写入想操作内容, 比如: android { ..配置.. }
传入参数时:括号可以省略,参数之间可以用分隔符分开
是不是感觉很简陋啊,因为我只是在第一境界,你到官网上看吧
2.2日志
println ‘日志’打印重要级别日志
logger.日志级别词(‘日志’) 打印某某级别日志
日志级别:debug < info < lifecycle < warning < quiet < error
logger.quiet == println
强制刷新依赖: ./gradlew --refresh-dependencies assemble
2.3配置文件
其配置文件是gradle执行任务的,具体配置;每个项目都包括自己的build.gradle,根目录下配置也叫根项目配置文件,是通用配置;不过根目录的配置如下
2.3.1生成wrapper文件
项目构建,必须 生成 wrapper ,可以使用内建任务来生成: gradle wrapper, 在根目录下生成了一些指令信息,缓存等,wrapper相关内容在gradle\wrapper中
需要关注的配置是distributionUrl:gradle版本地址
2.3.2设置Settings.gradle文件
放在跟目录下,其中配置各个模块信息,比如模块名字,模块路径(不配置默认为同路径下,文件夹名字与模块名字一致)
2.3.3根build.gradle设置
设置通用设置,对于变动较小的内容进行配置;比如依赖插件,而不是写依赖第三方库
buildscript 构建脚本
allprojects 所有项目配置
task clean:定义了clean任务
repositories:代码仓库
ext.变量: 所有项目都可以使用的变量, 也可以这样用 ext { 变量= 变量值 。。。}
dependencies : 依赖,只不过是插件依赖;
2.3.3各个子项目build.gradle设置
这个差别就比较大了;比如android的代码配置
apply plugin:使用二进制插件,后面可以是插件id,插件包名+类名, 或者类名
android: android插件配置选项
dependencies:依赖
2.4 其它
属性
定义属性 使用定义属性时,可以单独定义,也可以使用{}定义多对属性
使用属性时,直接使用属性名,或者在“”内$属性名
3、android gradle plugin
AndroidStudio构建android项目,就是使用gradle,并且使用android插件来打包的
3.1 根配置依赖android插件
classpath'com.android.tools.build:gradle:3.4.1'
3.2 使用插件
android 插件分为三类,按需求应用
apply plugin: 'com.android.application' 应用插件
apply plugin: 'com.android.library' aar包插件
apply plugin: 'com.android.test' 应用插件
3.3 配置插件
主要属性配置在android方法下
android的直接参数:
compileSdkVersion :编译的sdk版本
buildToolsVersion :构建工具版本
defaultConfig :android打包源集默认配置
buildTypes : 构建类型,默认的有release, debug,test
applicationId
minSdkVersion
targetSdkVersion
versionCode
versionName
等,具体可以查看官网插件属性的介绍
defaultConfig、buildTypes等的较少也可以看官网androidStudio构建
其它特殊配置:
使用共享库:
android里面参数 : useLibrary'org.apache.http.legacy'
引用其它gradle脚本
可以共享通用部分
引用脚本关键地方动态配置AndroidManifest文件
mainfestPlaceholders.put(key, value), 直接引用 key,双引号内引用 $key
定义BuildConfig类
注意值是直接最外层单引号或者双引号的内容直接为值
更多的详情了解到androidStudio构建,android插件配置详情
网友评论