内容简介:文件则在Android的app模块内被创建。对于一个只包含一个Android应用的新项目来说,
settings.gradle
和
build.gradle
位于项目的根目录。另外一个
build.gradle
文件则在Android的app模块内被创建。
settings.gradle
对于一个只包含一个Android应用的新项目来说, settings.gradle
的内容如下,表示app模块应该包含在构建内:
include':app'
settings.gradle
文件在初始化阶段被执行,并且定义了哪些模块应该包含在构建内。
注意:单模块项目并不一定需要setting文件,但是多模块项目必须要有setting文件,否则,Gradle不知道哪个模块应包含在构建内。
根目录下的build.gradle
buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.4' } } allprojects { repositories { google() jcenter() } } 复制代码
- buildscript:在里面进行具体的构造配置
- repositories:指定代码仓库,设置依赖时,从该代码仓库下载
- dependencies:配置构建过程的依赖包。默认情况下,唯一被定义的依赖包是
Gradle
的Android
插件。每个Android
模块都需要有Android
插件,因为该插件中定义了执行Android
的相关任务。 - allprojects:声明应用到所有模块的属性,如果模块中的
build.gradle
的设置与根目录下的build.gradle
文件中的allprojects
设置冲突,则模块中的设置覆盖根目录下的设置。
模块下的build.gradle
下面是app模块下的 build.gradle
的代码:
apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.example.myapplication" minSdkVersion 19 targetSdkVersion 27 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' } 复制代码
插件
第一行 apply plugin: 'com.android.application'
表示应用 Android
插件,该插件在顶层构建文件中被配置成了依赖
dependencies { classpath 'com.android.tools.build:gradle:3.1.4' } 复制代码
android
android
代码块包含了全部的 Android
特有配置,这些特有配置之所以可被使用,是因为之前我们使用了 Android
插件。配置如下:
compileSdkVersion
compileSdkVersion
是要用来声明编译应用的Android API版本。
defaultConfig
defaultConfig
代码块用于配置应用的核心属性。此代码块中的属性可覆盖 Android.Manifest.xml
文件中对应的条目
- applicationId:该属性覆盖了manifest文件中的
packagename
applicationId
和 packagename
的区别:在应用构建之前, AndroidManifest.xml
中的 package name
有两个用途:1.作为一个应用的唯标符,2.在R 资源类中被用作包名。在构建后定义在 manifest
文件中的 package
,继续用在你的源代码和 R 类中,而之前被用作设备唯一标识的 package name
, 现在则被称之为 applicationId
。
- minSdkVersion : 用来配置运行应用的最小 APl 级别
- targetSdkVersion : 用于通知系统, 该应用已经在某特定 Android 版本通过测试, 从而操作系统不必启用任何向前兼容 的行为。 这和我们之前看到的 compileSdkVersion 没有任何关系。
- versionCode : 定义版本号
- versionName : 定义版本号名称
如果你在 build.gradle 中定义了它们, 就没有必要在 manifest 文件中再去定义。 如果构建 文件不包含某个属性, 那么 manifest 中的该属性就会被用作后备。
buildTypes
buildTypes
代码块可用来定义如何构建和打包不同构建类型的应用
dependencies
依赖代码块是标准 Gradle 配置的部分(这就是其放在 android 代码块之外的原因), 其定义了个应用或依赖项目的所有依赖包。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Kubernetes核心概念总结
- HBase核心知识点总结
- cnpm 核心模块 npminstall 升级到 async 总结
- 兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考
- 【GPU精粹与Shader编程】(五) 《GPU Gems 2》全书核心内容提炼总结 · 下篇
- 【GPU精粹与Shader编程】(四) 《GPU Gems 2》全书核心内容提炼总结 · 上篇
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。