gradle 学习大纲

前景

  • 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 {
    // jar 依赖仓库, 可以本地也可以内置的管理, 即 maven, 当依赖的文件不在本地时, 需要联网下载; 不联网可能都编译不了;
    repositories {
        mavenCentral()
    }
    // 即所有依赖的库 AGP 
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
    }
}
// plugin 生效
apply plugin: 'android'

// 使用安卓编译配置格式; 内部的field
android {
    // https://developer.android.com/ndk/guides/sdk-versions
    compileSdkVersion 'android-24'
    buildToolsVersion '26.0.0'
    // https://developer.android.com/reference/tools/gradle-api/7.4/com/android/build/api/dsl/DefaultConfig
    // buildTypes 也不一定准确 https://developer.android.com/reference/tools/gradle-api/7.2/com/android/build/api/dsl/BuildType
    buildTypes {
        release {
            //runProguard false
            proguardFile getDefaultProguardFile('proguard-android.txt')
        }
    }
}
  • android以外的是gradle的语法范畴, android内部则是AGP的范畴, 主要是字段等;
  • android类似namespace, buildToolsVersion这类就是全局基础变量; buildTypes结构体初始化, 需要字段合法, 是否合法查文档;

参考书籍

  • Gradle Recipes for Android Master the New Build System for Android
  • 尚硅谷
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值