AGP的使用主要是在模块build.gradle 中android节点的配置,由于android节点的配置无法查看源码,所以就只能熟能生巧了,死记硬背(●'◡'●)。
下面我们来看下android节点配置的使用

1.Android节点的引入

apply plugin: 'com.android.application'
//或者
plugins{id 'com.android.application'
}

2.Android节点配置(代码+注释)

//AGP
//com.android.application 提供
android {compileSdkVersion 30  //编译时使用SDK的版本//Android Studio 4.2 版本后系统默认配置,用户不需要配置 //buildTools主要是以下工具:aapt packgageTool abd dxbuildToolsVersion "30.0.3"//默认配置defaultConfig {applicationId "com.example.myapplication1"   //应用的IDapplicationIdSuffix "fres" //追加后缀minSdkVersion 23    //最小支持Android系统版本targetSdkVersion 30 //针对开发使用的Android SDK版本,一般compileSdkVersion保持一致versionCode 1       //应用的版本号versionName "1.0"   //应用的版本名称buildConfigField 'String', 'YZAPP_NAME', '"远智教育"'  //往BuildConfig中写入一个String字符串//多dex打包,主要是为了防止65535限制//一个dex文件只能有65535方法,因为dex文件会把所有类的方法 id 用一个short存储,short对应65535multiDexEnabled true//ndk配置 市面上主要有armeabi-v7a  arm64-v8a架构//一般项目只要生成armeabi-v7a架构。//现在应用商店也有提供两种框架的上传,可以根据需求打对应的框架包ndk {abiFilters 'armeabi-v7a'//,"x86" // 'armeabi', ,'arm64-v8a'//, "x86"//,'arm64-v8a'}//测试引擎testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"//下面的功能主要是可以在AndroidManifest 获取到build.gradle生成的字段//例如可以在AndroidManifest的`android:label="${app_name}"` 这样使用,就可以获取到对应的字段测试//或者一些常见的渠道化配置,APPKEY配置        //<meta-data android:name="JPUSH_APPKEY" android:value="${JPUSH_APPKEY}" />manifestPlaceholders = [app_name: "测试",JPUSH_APPKEY   : 'f4451546546445545']}flavorDimensions "channel", "charge" //维度,就是针对一种类型的产品风味的描述//排列组合productFlavors {huawei {dimension "channel"//插入自定义的资源节点,类似于strings.xml 不能有重复的资源节点resValue 'string', 'app_name1', "自定义appname" resValue 'string', 'aaa', "aaa"  }oppo {dimension "channel"}free {dimension "charge"}paid {dimension "charge"}aaa {dimension "charge"}}//每个BuildType都有一个SourceSet//包含源码,源文件等信息sourceSets {//主要用来导入libs的库main{jniLibs.srcDirs=['libs']}//主要使用在组件化项目中方便调试java{
//            exclude 'src/main/'//组件管理if (rootProject.ext.android.is_application) {manifest.srcFile "src/main/debug/AndroidManifest.xml"//当模块是应用的时候,加载module下的文件java.srcDir "src/main/debug"} else {manifest.srcFile "src/main/AndroidManifest.xml"resources {//正式版本时,排除debug文件夹下所有调试文件exclude "src/main/debug/*"}}}}//adb操作选项adbOptions{adb instll -s }//一般有两种 release debug,也可以自定义buildTypes {release {zipAlignEnabled true //是否开启ZipAlignshrinkResources true //清理无效资源minifyEnabled false //是否启动代码混淆proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}debug {}custom {//继承上面release的配置initWith releaseapplicationIdSuffix ".releaseCutsom"}}//签名信息配置signingConfigs {release {keyAlias "yzxt"keyPassword "yZ@8uhb!@"storePassword "yZ@8uhb!@"storeFile file("../key/yzxt.jks")v2SigningEnabled truev1SigningEnabled true}debug {keyAlias "yzxt"keyPassword "yZ@8uhb!@"storePassword "yZ@8uhb!@"storeFile file("../key/yzxt.jks")v2SigningEnabled truev1SigningEnabled true}}//高版本Android Studio默认java1.8compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}//指定jvm版本kotlinOptions {jvmTarget = '1.8'}
}

1.Android Gradle - Gradle 生命周期_wumeixinjiazu的博客-CSDN博客

2.Android Gradle - Gradle 和 AGP区别_wumeixinjiazu的博客-CSDN博客

3.Android Gradle - 根节点的build.gradle_wumeixinjiazu的博客-CSDN博客

4.Android Gradle - AGP使用_wumeixinjiazu的博客-CSDN博客

Android Gradle(四) AGP使用与详解相关推荐

  1. Android vector标签 PathData 画图超详解

    此文章来源于https://www.cnblogs.com/yuhanghzsd/p/5466846.html点击打开链接 Android vector标签 PathData 画图超详解 SVG是一种 ...

  2. Android 应用程序之间内容分享详解(二)

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9428613 Android 应用程序之间内容分享详解(一) 之前给大家分享了你开发的应 ...

  3. android doze模式源码分析,Android Doze模式启用和恢复详解

    从Android 6.0(API level 23)开始,Android提出了两个延长电池使用时间的省电特性给用户.用户管理可以在没有充电的情况下管理app的行为.当用户一段时间没有使用手机的时候,D ...

  4. Android四大组件Service之AIDL详解

    Android四大组件Service之AIDL详解 前言 简介 基础知识 AIDL 服务端 定义AIDL文件规则 创建 .aidl 文件 清单注册 通过 IPC 传递对象 调用 IPC 方法 Andr ...

  5. 基于sqlite的android数据库编程,Android编程之SQLite数据库操作方法详解

    Android编程之SQLite数据库操作方法详解 发布时间:2020-09-07 12:33:04 来源:脚本之家 阅读:85 作者:低调小一 本文实例讲述了Android SQLite数据库操作方 ...

  6. Android 系统属性读取和设置详解

    Android 系统属性读取和设置详解 一.在adb中进行属性读取和设置 1.Settings Provider设置和读取 获取 设置 2.SystemProperties属性读取和设置 二.Andr ...

  7. 【5年Android从零复盘系列之二十】Android自定义View(15):Matrix详解(图文)【转载】

    [转载]本文转载自麻花儿wt 的文章<android matrix 最全方法详解与进阶(完整篇)> [5年Android从零复盘系列之二十]Android自定义View(15):Matri ...

  8. Android 4.1-Jelly Bean新特性详解

    Android 4.1Jelly Bean新特性详解 发布会已经结束,Android新一代的4.1版本,代号Jelly Bean(果冻豆)的新系统已经正式问世,除了新架构.全新通知栏和搜索功能之外,实 ...

  9. Android模拟器Genymotion安装使用教程详解

    原文地址为: Android模拟器Genymotion安装使用教程详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.注册\登录 打开Genymotion官网,https://www.ge ...

  10. android什么控件能够输入多行文字,Android开发:文本控件详解——EditText(一)基本属性...

    一.简单实例: EditText输入的文字样式部分的属性,基本都是和TextView中的属性一样. 除此之外,EditText还有自己独有的属性. 二.基本属性: hint 输入框显示的提示文本 te ...

最新文章

  1. AI开源评测基准AI-Rank,为开源建立标准
  2. 多备份cloud 5技术:传统数据备份思路的完美移植
  3. 远程值守_北京静态交通公司首个远程值守停车场投入使用
  4. 随机:修改centos主机名
  5. AMBA总线协议AHB、APB
  6. Activity间数据传输
  7. SPFieldLookupValue
  8. chrome plugins
  9. 儿童学计算机编程好处,十个理由告诉你孩子为什么要学习编程?
  10. 华为ax3怎么接光纤sc接口_华为AX3 pro获取原来路由器宽带账号和密码的操作步骤...
  11. 判断图有无环_汽车 AEB 驾驶员在环系统建立
  12. android 手机屏幕实际大小,揭秘手机屏幕误区 大尺寸≠大可视面积
  13. 让机器辨别气味:利用图神经网络预测分子的嗅觉属性
  14. tableau中创建一个默认为今天日期的日期字段
  15. 教您如何查看Win7详细系统版本号
  16. 数据链路层概述(主要解决的三个问题)
  17. Mac字体路径,解决matplotlib中文显示问题,超级好用~
  18. 【幻化万千戏红尘】qianfengDay04-java基础学习:for语句.while语句,do-while语句
  19. latex 字母上面加符号
  20. linux禁止系统休眠,linux – 防止系统进入休眠/暂停 – Xviewer...

热门文章

  1. JavaScript-BOM对象
  2. 今日简史|尤瓦尔·赫拉利 mobi epub
  3. ATSENet论文阅读笔记
  4. ios:关于图片平铺
  5. 四种实体类类型:VO、DTO、DO、PO
  6. 阿里巴巴开发手册——集合
  7. JS 作用域和作用域链
  8. 小麦盒子cdn_高恪论坛 - Powered by Discuz!
  9. 量化投资之风险指标分析(alpha、beta、sharpe等)
  10. 基于Android的相关毕业设计和论文