WatsonYao / note

note
0 stars 1 forks source link

Lang 编程语言 #9

Open WatsonYao opened 8 years ago

WatsonYao commented 8 years ago

Gradle Gradle 操作

gradle 实践 gradle 中文

WatsonYao commented 8 years ago

Unity unity

WatsonYao commented 8 years ago

node node 入门

WatsonYao commented 8 years ago

Gradle

有project 和 tasks的概念。 每一次构建都是有至少一个project来完成。 每一个project 有至少一个tasks。 每一个build.gradle 文件代表着一个 project。 tasks 在build.gradle 中定义。 当初始化构建进程,gradle会基于build 文件,集合所有的project 和 tasks, 一个 tasks 包含了一系列动作,然后它们将会按照顺序执行, 一个动作就是一段被执行的代码,很像java 中的方法

构建的生命周期

一旦一个tasks被执行,那么它不会再次执行了,不包含依赖的tasks总是优先执行, 一个构建将会经历下列三个阶段:

  1. 初始化阶段: project 实例在这儿创建,如果有多个模块,即有多个build.gradle文件,多个project将会被创建。
  2. 配置阶段: 在该阶段,build.gradle脚本将会执行,为每个project创建和配置所有 tasks。
  3. 执行阶段:gradle会决定哪一个tasks会执行,哪一个tasks被执行完全依赖开始构建时传入的参数和当前所在的文件夹位置有关。

当使用 Android插件的时候,Android的标签可以被使用

android {
       compileSdkVersion 22
       buildToolsVersion "22.0.1"
}

gradle 项目通常在根文件夹中包含一个 build.gradle, 使用的代码在app这个文件夹中

gradle 使用 source set 的概念。 对于Android项目,main就是一个source set,其包含该了所有的资源代码。

开始使用 Gradle Wrapper

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

WatsonYao commented 8 years ago

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 = [1,2,3];

tuple: let x:[string,number]; x = ["hello", 10];

Enum: enum Color {Red,Green,Blue} let c: Color = Color.Green;