当前位置: 首页 > news >正文

build.gradle配置文件详解

Andorid Studio高版本和低版本的build.gradle配置逻辑有些差异

安卓项目中相关编译文件的介绍

gradle-wrapper.properites:配置Gradle Wrapper
gradle.properties:配置Gradle的编译参数。具体配置见Gradle官方文档:com.android.build.gradle  |  Android Developers
settings.gradle:配置Gradle的多项目管理
local.properties:一般用来存放该Android项目的私有属性配置,比如Android项目的SDK路径项目build.gradle:配置项目的整体属性,比如指定使用的代码仓库、依赖的Gradle插件版本等等
模块build.gradle:配置当前Module的编译参数


下面介绍下开发中经常用到的项目build.gradle和模块build.gradle

项目的build.gradle

新建一个Android项目,它的项目build.gradle的内容如下

app的build.gradle

Gradle的Android插件类型

plugins {
    id 'com.android.application'
}

如:

参考地址:(AS笔记)AndroidStudio中ButterKnife配置和使用_电竞丶小松哥的博客-CSDN博客

其实是从 Gradle 官方的插件仓库 https://plugins.gradle.org/m2/ 下载

引入的插件类型,老版本的写法:apply plugin: 'com.android.application'

说明当前模块是一个应用程序模块,Gradle的Android插件有多个类型分别为:

应用程序插件**,插件id为com.android.application,会生成一个APK。
库插件,插件id为com.android.library,会生成一个AAR,提供给其他应用程序模块用。
测试插件,插件id为com.android.test,用于测试其他的模块。
feature插件,插件id为com.android.feature,创建Android Instant App时需要用到的插件。
Instant App插件,插件id为com.android.instantapp,是Android Instant App的入口。

Android块参数

compileSdkVersion:配置编译该模块的SDK版本
buildToolsVersion:Android构建工具的版本
2.2.1. defaultConfig块
Android块中的defaultConfig块用于默认配置,常用的配置如下所示。

buildTypes块

buildTypes块用于配置构建不同类型的APK。 当我们新建一个项目时,在Android块已经默认配置了 buildTypes块:

在AS的Terminal中执行gradlew.bat build命令,会在该模块的build/outputs/apk目录中生成release和debug的APK,虽然只配置了release ,但release和debug是默认配置,即使我们不配置也会生成。也可以修改默认的release和debug,甚至可以自定义构建类型,比如:

这时会在build/outputs/apk目录中生成release、debug、privitedebug的APK,buildTypes块还可以配置很多属性,常用的配置如下所示。

signingConfigs块

用于配置签名设置,一般用来配置release模式

signingConfigs {
        release {
            storeFile file('../signfiles/keystore.jks')
            storePassword 'android'
            keyAlias 'androidreleasekey'
            keyPassword 'android' 
        }
        debug {
            storeFile file("../signfiles/keystore.jks")
            storePassword 'android'
            keyAlias 'androidreleasekey'
            keyPassword 'android'
        }
}

其他配置块

android块中除了前面讲的defaultConfig块、buildTypes块、signingConfigs块还有其他的配置块,这里列举一些:

dependencies块

dependencies 块用于配置该module构建过程中所依赖的所有库。Gradle插件3.4版本新增了api和implementation来代替compile配置依赖,其中api和此前的 compile是一样的。dependencies和api主要以下的区别:
implementation:可以让module在编译时隐藏自己使用的依赖,但是在运行时这个依赖对所有模块是可见的。而api与compile一样,无法隐藏自己使用的依赖。
如果使用api,一个module发生变化,这条依赖链上所有的module都需要重新编译,而使用implemention,只有直接依赖这个module需要重新编译。

http://www.lryc.cn/news/166969.html

相关文章:

  • 2024拼多多校招面试真题汇总及其解答(二)
  • 自动化运维工具Ansible教程(一)【入门篇】
  • 计算机毕业设计 微信小程序 uniapp+vue大学生兼职平台
  • JavaScript框架:构建交互性、现代化Web应用的利器
  • 数据结构——二分查找法
  • 服务端渲染(SSR):提升Web应用性能和用户体验的关键技术
  • 如何工作和生活相平衡?
  • semaphere部署,配置ldap
  • Java 泛型 T,E,K,V,?
  • 软件测试技术之地图导航的测试用例
  • 【C++】常用集合算法
  • css flex:1;详解,配合demo效果解答
  • discuzQ安装
  • 深入解析NLP情感分析技术:从篇章到属性
  • JVM的双亲委派模型
  • js中如何判断一个变量是否为数字类型?
  • 使用阿里PAI DSW部署Stable Diffusion WebUI
  • redisson使用过程常见问题汇总
  • 代码随想录训练营 DP序列
  • Datastage部署与使用
  • 【实用工具】Centos 安装ARL灯塔
  • IP地址定位基础数据采集
  • leetcode做题笔记138. 复制带随机指针的链表
  • 分布式文件系统的新兴力量:揭秘Alluxio的元数据管理机制【文末送书】
  • ArcGIS标注的各种用法和示例
  • 修改ros中的控制器,便于仿真和驱动真实UR
  • 网络广播模块2*30W 智能4G广播终端开发模块
  • 优思学院|什么是精益项目管理?
  • 【Android取证篇】华为设备跳出“允许USB调试“界面方法的不同方法
  • 在VSCode中移除不必要的扩展