Gradle文件
Gradle是什么,有什么作用
Grable是编译、打包Android工程的一个构建工具。
Project与Module的关系
一个Project里面可以有多个Module。
Module可以是app类型的,也可以是library(库)类型的。
bulid.gradle文件(Project级别和Module级别)
Project级别控制整个Project的gradle
gradle版本与gradle plugin(插件)版本要符合对应匹配关系(否则会出错)
compileSdkVersion、minSdkVersion、targetSdkVersion、bulidToolsVersion的区别
sdk、API
sdk 软件开发工具包(缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
API (Application Programming Interface,应用编程接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API而使操作系统去执行应用程序的命令(动作)。
compileSdkVersion
是编译代码所使用的sdk版本,并且与sdk manager里面下载的那些sdk platforms是对应的。也就是说,compileSdkVersion使用的版本,在sdk manager里面必须是已经下载了才能用。最新的as做了对比,即使你没有下载,当写上某个版本后,as会自动帮你下载。
minSdkVersion
是对app可运行的手机设备的最小版本限制。与SDK manager里面下载的东西无关,只是一个标识而已。
targetSdkVersion
是对app要运行的手机设备的目标版本的识别,也与sdk manager里面下载的东西无关,标识了该app是为某个版本的手机设备而涉及的,在这个目标版本的手机上做了充分的测试。
当你的手机版本大于这个目标版本时,该app也能运行,因为高版本的手机是可以运行低版本软件的。
因此minSdkVersion和targetSdkVersion是对我们开发的app所能运行设备的系统版本的范围约束。
最低不能小于minSdkVersion,但没有最高限制。
bulidToolsVersion
构建代码工具的版本。与sdk manager里面的sdk tools下载的东西是对应的。要想使用某个版本,必须得已经下载了对应的sdk Bulid-tools。
重要原则
minSdkVersion<=targetSdkVersion<=compileSdkVersion
targetSdkVersion<=compileSdkVersion
targetSdkVersion是表明我们设计的一个目标版本,在这个版本上我们的app是很稳定的,而compileSdkVersion是我们的app实际使用的编译版本
另外,如果使用了support library,support library的版本要和compileSdkVersion一致。
因为support library也是用来编译的,只不过是一种“支持库”,它提供了一些新特性和兼容旧版本的api。