前景
gradle是编译框架; 常用于java编译;groovy是一门语言; java的精简,优化版;AGP:android gradle plugin, google基于gradle开发的插件, 可以用于编译安卓程序;- 类似于:
python编译框架, 用python脚本作为配置, 然后我基于python开发了属于我自己语言的编译插件MGP:my gradle plugin;
AGP
项目配置
- 顶层整个项目配置; 为每个子模块配置相关依赖; 子模块则有自己的详细配置;
build.gradle主要的编译配置文件; setting.gradle,gradle.properties则是配置信息;
项目和编译
核心是ndk,sdk安卓配套编译工具集合;
gradle则是项目编译系统;
一个项目基本就是一些源码, 资源或者配置, 下载下来依赖的jar包一般都是公共的; 即大家要用就用;
能使用gradle编译android的主要依赖是android gradle plugin, 否则gradle也编译不了;
配置文件解析
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
}
}
apply plugin: 'android'
android {
compileSdkVersion 'android-24'
buildToolsVersion '26.0.0'
buildTypes {
release {
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
}
android以外的是gradle的语法范畴, android内部则是AGP的范畴, 主要是字段等;android类似namespace, buildToolsVersion这类就是全局基础变量; buildTypes结构体初始化, 需要字段合法, 是否合法查文档;
参考书籍
Gradle Recipes for Android Master the New Build System for Android- 尚硅谷