Android Gradle(四) AGP使用与详解
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使用与详解相关推荐
- Android vector标签 PathData 画图超详解
此文章来源于https://www.cnblogs.com/yuhanghzsd/p/5466846.html点击打开链接 Android vector标签 PathData 画图超详解 SVG是一种 ...
- Android 应用程序之间内容分享详解(二)
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9428613 Android 应用程序之间内容分享详解(一) 之前给大家分享了你开发的应 ...
- android doze模式源码分析,Android Doze模式启用和恢复详解
从Android 6.0(API level 23)开始,Android提出了两个延长电池使用时间的省电特性给用户.用户管理可以在没有充电的情况下管理app的行为.当用户一段时间没有使用手机的时候,D ...
- Android四大组件Service之AIDL详解
Android四大组件Service之AIDL详解 前言 简介 基础知识 AIDL 服务端 定义AIDL文件规则 创建 .aidl 文件 清单注册 通过 IPC 传递对象 调用 IPC 方法 Andr ...
- 基于sqlite的android数据库编程,Android编程之SQLite数据库操作方法详解
Android编程之SQLite数据库操作方法详解 发布时间:2020-09-07 12:33:04 来源:脚本之家 阅读:85 作者:低调小一 本文实例讲述了Android SQLite数据库操作方 ...
- Android 系统属性读取和设置详解
Android 系统属性读取和设置详解 一.在adb中进行属性读取和设置 1.Settings Provider设置和读取 获取 设置 2.SystemProperties属性读取和设置 二.Andr ...
- 【5年Android从零复盘系列之二十】Android自定义View(15):Matrix详解(图文)【转载】
[转载]本文转载自麻花儿wt 的文章<android matrix 最全方法详解与进阶(完整篇)> [5年Android从零复盘系列之二十]Android自定义View(15):Matri ...
- Android 4.1-Jelly Bean新特性详解
Android 4.1Jelly Bean新特性详解 发布会已经结束,Android新一代的4.1版本,代号Jelly Bean(果冻豆)的新系统已经正式问世,除了新架构.全新通知栏和搜索功能之外,实 ...
- Android模拟器Genymotion安装使用教程详解
原文地址为: Android模拟器Genymotion安装使用教程详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.注册\登录 打开Genymotion官网,https://www.ge ...
- android什么控件能够输入多行文字,Android开发:文本控件详解——EditText(一)基本属性...
一.简单实例: EditText输入的文字样式部分的属性,基本都是和TextView中的属性一样. 除此之外,EditText还有自己独有的属性. 二.基本属性: hint 输入框显示的提示文本 te ...
最新文章
- AI开源评测基准AI-Rank,为开源建立标准
- 多备份cloud 5技术:传统数据备份思路的完美移植
- 远程值守_北京静态交通公司首个远程值守停车场投入使用
- 随机:修改centos主机名
- AMBA总线协议AHB、APB
- Activity间数据传输
- SPFieldLookupValue
- chrome plugins
- 儿童学计算机编程好处,十个理由告诉你孩子为什么要学习编程?
- 华为ax3怎么接光纤sc接口_华为AX3 pro获取原来路由器宽带账号和密码的操作步骤...
- 判断图有无环_汽车 AEB 驾驶员在环系统建立
- android 手机屏幕实际大小,揭秘手机屏幕误区 大尺寸≠大可视面积
- 让机器辨别气味:利用图神经网络预测分子的嗅觉属性
- tableau中创建一个默认为今天日期的日期字段
- 教您如何查看Win7详细系统版本号
- 数据链路层概述(主要解决的三个问题)
- Mac字体路径,解决matplotlib中文显示问题,超级好用~
- 【幻化万千戏红尘】qianfengDay04-java基础学习:for语句.while语句,do-while语句
- latex 字母上面加符号
- linux禁止系统休眠,linux – 防止系统进入休眠/暂停 – Xviewer...