Open WatsonYao opened 8 years ago
有project 和 tasks的概念。 每一次构建都是有至少一个project来完成。 每一个project 有至少一个tasks。 每一个build.gradle 文件代表着一个 project。 tasks 在build.gradle 中定义。 当初始化构建进程,gradle会基于build 文件,集合所有的project 和 tasks, 一个 tasks 包含了一系列动作,然后它们将会按照顺序执行, 一个动作就是一段被执行的代码,很像java 中的方法
一旦一个tasks被执行,那么它不会再次执行了,不包含依赖的tasks总是优先执行, 一个构建将会经历下列三个阶段:
当使用 Android插件的时候,Android的标签可以被使用
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
}
gradle 项目通常在根文件夹中包含一个 build.gradle, 使用的代码在app这个文件夹中
gradle 使用 source set 的概念。 对于Android项目,main就是一个source set,其包含该了所有的资源代码。
gradle 只是一个构建工具,使用Gradle Wrapper 将会是一个好的选择去 避免由于gradle版本更新导致的问题。 Gradle Wrapper 提供了一个windows的 batch 文件和其他系统的shell文件, 当你使用这些脚本的时候,当前gradle版本将会被下载,并且会被自动用在项目构建, 所以每个开发者在构建自己的app的时候只需要使用Wrapper。 所以开发者不需要为你的电脑安装任何gradle版本, 在mac上你只需要运行 gradlew,而在windows上你需要运行 gradlew.bat
可以用 ./gradlew -v 来查看当前 gradle 版本。 myapp/ -- gradlew -- gradlew.bat -- gradle/wrapper/ ---- gradle-wrapper.jar ---- gradle-wrapper.properties
gradlew assembleDebug 该任务将会创建一个debug版本的app, 同时Android插件会将其保存在MyApp/app/build/ outputs/apk目录下。
android{ compileSdkVersion:编译该app时候,你想使用到的api版本。 buildToolsVersion:构建工具的版本号。 defaultConfig{ defaultConfig方法包含了该app的核心属性,该属性会重写在AndroidManifest.xml中的对应属性。 }
android插件继承了这些基本tasks,并且实现了他们自己的行为:
默认情况下assemble tasks定义了assembleDebug和assembleRelease, 当然你还可以定义更多构建版本。除了这些tasks,android 插件也提供了一些新的tasks:
build task依赖于check任务, 但是不依赖于connectedCheck或者deviceCheck, 执行check任务的使用Lint会产生一些相关文件, 这些报告可以在app/build/outputs中查看:
Gradle支持三种不同的仓库,分别是:Maven和Ivy以及文件夹 一个依赖需要定义三个元素:group,name和version
为了方便,Gradle会默认预定义三个maven仓库: Jcenter和mavenCentral以及本地maven仓库。
Android插件默认情况下支持native包,你需要把.so文件放在对应的文件夹中: app ├── AndroidManifest.xml └── jniLibs ├── armeabi │ └── nativelib.so ├── armeabi-v7a │ └── nativelib.so ├── mips │ └── nativelib.so └── x86 └── nativelib.so
TypeScript
let isDone: boolean = false; let decimal: number = 6; let hex: number = 0xf00d; let binary: number = 0b1001; let octal: number = 0o744; let color: string = "blue";
template strings: I'll be ${ age + 1 } year old next month.
let list: number[] = [1,2,3];
let list: Array
tuple: let x:[string,number]; x = ["hello", 10];
Enum: enum Color {Red,Green,Blue} let c: Color = Color.Green;
Gradle Gradle 操作
gradle 实践 gradle 中文