标签:传递依赖 android XML 结合 应用 类库 支持 功能 相互
【说明】上午整理了一下心情;下午继续开始任务,了解了restful,知道了那个牛人的博士论文,下载了管理工具gradle,并且部署了环境;晚上安装了idea继承环境并且建了一个简单的gradle项目(对着教程第一次使用idea我也是需要适应半天)
一:今日完成
1)rest架构规范
2)idea环境安装
3)gradle插件使用
二:明日计划
1)建立自己的REST接口。
2)使用PostMan/dhc测试自己写的接口,确认接口可以正常使用。
3)任务二完成
三:疑难问题
restful架构搞的我也是一脸懵逼,看了大量的文章,包括上层的思想介绍,下层的代码演示,还是不得要领
四:思考总结
今天配置环境变量的时候竟然因为目录带有中文出现了编译问题!下次要注意
AS其实就是Intellij IDEA的安卓开发环境特供版(谷歌定制版),Intellij IDEA是有收费版本的IDE。
Ant和Maven都是基于XML的构建工具,Gradle是用Groovy编写的构建工具,Groovy是JVM衍生的与JAVA语法高度兼容的动态强类型语言。
Gradle通过编写一个名为build.gradle的脚本文件对项目进行设置,再根据这个脚本对项目进行构建(复杂的项目也有其他文件)
Gradle 脚本本质上就是Groovy脚本,只不过高度利用了groovy的语法糖,例如省略方法参数括号和省略句尾分号等,让代码看起来像DSL。
所以几乎所有java和groovy支持的语法,它的脚本都支持。(使用JAVA和GROOVY的SDK应该也是没问题的)
Gradle支持基于惯例的构建,并有丰富的适合不同情景下的插件库,光有官方用户手册支持的就有20多种,方便构建。
Gradle里有两个基本概念:项目(projects)和任务(tasks)。项目由多个任务组成,一个项目可以理解为提供给不同设备的构建版本,如桌面版、网页版、安卓版、iOS版等等,也可以理解为一种行为,例如部署应用到生产环境。任务相当于Ant的target,可以理解成一个构建中原子性的工作,例如编译、打包、执行等。需要注意的是,Ant中他自己的命令例如javac、copy等也叫做task,但Ant的task远没有Gradle的task那么自由。
Gradle的构建分两个阶段,第一阶段是设置阶段(configuration phase),分析构建脚本,处理依赖关系和执行顺序等,脚本本身也需要依赖来完成自身的分析。第二阶段是执行阶段(execution phase),此阶段真正构建项目并执行项目下的各个任务。
Ant与Maven对于Gradle,前者编写容易,但功能有限,需要人工操作的过程也多;后者依托于庞大的依赖仓库,因此有着强大的外部依赖管理,但添加本地依赖并不方便,且项目不能灵活修改。而Gradle能很好地结合Ant与Maven各自的优点,可以随意的编写任务并组合成项目,直接利用Maven仓库,并且能很好的支持传递依赖和内部依赖。(本部分为个人主观意见,可能与大多数人的意见并不相同)(其实也都是别人的个人主观意见,来源于我当初搜索的Gradle相关文章内容)
通俗一点类比成吃饭的话,大致就是:Ant是自己买菜洗菜烧水做饭,Maven是去饭店点餐,Gradle是3D打印食物。一句话概括就是:依赖管理和任务执行。
像Ruby里面的bundler+rake,像iOS中的cocoapods,像node中的npm+grunt.
通俗的讲就是:你的项目需要哪些第三方库,它帮你把它们都下载下来,并且编译好放到指定的位置,你就直接可以import后用了。
它本身是基于Apache的ant和maven的,但都不是特别好用,要引入一个库,还得写好多行的XML,麻烦死了。而且他们在任务执行上都比较弱,所以gradle就逐渐发展壮大了并被Google所推崇了。整个过程可以分成以下几个步骤:
defaultTasks ‘taskB‘
task taskA << {
println "i‘m task A"
}
task taskB << {
println "i‘m task B, and I depend on " + taskA.name
}
taskB.dependsOn taskA
运行命令$ gradle -q之后(参数q让Gradle不要打印错误之外的日志),就能看到如下的预期输出:
i‘m task Ai‘m task B, and I depend on taskA执行完之后Gradle会生成相应的报告,如果没有问题就可以发布到生产环境中。Gradle脚本是基于Groovy领域特定语言,也就是说构建文件也是代码,Maven引入的XML配置文件可读性和可扩展性比较差,Gradle可以让你像写代码一样写出容易维护、可复用、可读性好、易于理解的构建代码。Gradle同样引入了依赖管理、仓库和标准项目布局,Gradle引入的领域特定语言使得添加和删除依赖非常方便,你只需要在dependency块里面添加一行代码,注明要在哪个配置部分引入依赖,以及要引入哪个依赖,比如:dependencies {
compile(‘org.springframework:spring-core:2.5.6‘)//表示编译期依赖spring-core这个库
testCompile(‘junit:junit:4.7‘)//表示测试代码的时候依赖junit这个库
}
依赖:Android Studio, Gradle, 其中过程,
Android Studio使用Gradle来编译Android apk 本文大致讲述其中过程
Gradle
依赖:Apache Ant ,Apache Maven ,项目自动化建构工具 ,Groovy, 特定领域语言(DSL),
Gradle =>一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)
Apache Ant => 由Apache 提供的自动化软件构建工具 (可以理解为其负责软件的编译) 开始于2000年左右
Apache Maven => 是由Apache 提供的管理项目的构建 报告和文档的软件项目管理工具 (我将其理解为 通过pom.xml来描述软件依赖关系 并提供一个云端类库) 开始于2001年左右
项目自动化建构工具 => 抽象项目编译过程 提供一个容易使用的接口的工具
Groovy => 一门编程语言 基于JVM 的面对对象的动态脚本语言
特定领域语言=>为了解决某个特定领域的问题 而编写的语言 一般基于其他语言
Android Studio =>2013年谷歌推出的Android开发环境 使用Gradle 作为编译工具
其中过程
依赖:grdle基本知识,编译过程,
Android Studio 使用Gradle做为Android apk的编译工具 在android studio执行run 实际上底层调用的是gradle 命令 由gradle再去使用Android SDK中编译工具 这主要是因为直接使用sdk的编译工具太麻烦太痛苦 而gradle提供了一个很好的接口 让我们能通过命令行来编译android apk
grdle基本知识
gradle通过解析build.gradle这个文件来运行
build.gradle 主要由task和一些配置组成,task之间有相互依赖关系 通过这些依赖关系和配置就能编译项目
可以通过 apply plugin 来加入一些默认的task 例如
apply plugin: ‘java‘
这是java的插件 他加入了许多编译java的task 如果你的目录结构正确 那么通过gradle 运行 task 就能编译java项目
和Maven一样,Gradle只是提供了构建项目的一个框架,真正起作用的是Plugin。Gradle在默认情况下为我们提供了许多常用的Plugin,其中包括有构建Java项目的Plugin,还有War,Ear等。与Maven不同的是,Gradle不提供内建的项目生命周期管理,只是java Plugin向Project中添加了许多Task,这些Task依次执行,为我们营造了一种如同Maven般项目构建周期。
rest规范 ; restful 风格; gradel介绍 ; idea安装 ;
标签:传递依赖 android XML 结合 应用 类库 支持 功能 相互
原文地址:http://www.cnblogs.com/yishengyishiduaini321/p/6659694.html