题外话:其实原本不想取这个名字的,可是感受不取这个名字感受没有几我的看啊。你们确定以为这个名字比较高大上吧!哈哈哈哈。好了,收。java
在平时Android开发中咱们经常使用Gradle来构建咱们的项目,我相信你们均可能遇到如下问题:git
相信你们在平时使用的时候,遇到问题都经过搜索引擎来解决,有些小伙伴可定会想,"做为一个Android开发者,我没有必要去详细的了解Gradle到底去这么使用,平时开发任务原本就比较重,哪里有时间有精力来学习呢
" 可是我的以为对Gradle的了解,对于咱们平时开发项目有很重要的帮助。github
要知道Gradle是什么以及其做用。咱们须要从整个Java项目的构建提及,看下图: 工具
从上图中咱们能够看出在平时Java项目的构建流程,或多或少咱们会涉及如下操做:布局
javac
命令将一些Java源文件编译为class文件。javadoc
命令提取Java源文件的中的注释。生成文档。既然Java项目的构建会经历以上或更多的步骤,那么咱们接下来看看Android项目的构建流程。单元测试
对于Android项目的构建,主要会经历和解决下面这些问题:学习
并未按照标准Java字节码编译
,但可为Android运行时自定义字节码。那么聚集全部的资源以及状况后,整个Android的构建流程看起来是这个样子:测试
为了方便你们理解这里对其中主要的构建过程进行描述(上图中绿色椭圆部分
):gradle
须要注意的是raw文件夹中的资源也会生成资源id。AAPT编译完成以后会生成R.java文件
)。.class文件
。.dex文件
(dex文件是Dalvik虚拟机能够执行的格式),dex文件最终会被打包进APK文件。在Android中,每一个应用程序中储存的数据文件都会被多个进程访问:安装程序会读取应用程序的manifest文件来处理与之相关的权限问题;Home应用程序会读取资源文件来获取应用程序的名和图标;系统服务会由于不少种缘由读取资源(例如,显示应用程序的Notification)。此外,就是应用程序自身用到的资源文件。 在Android中,当资源文件经过内存映射对齐到4字节边界时,访问资源文件的代码才是有效率的。可是,若是资源自己没有进行对齐处理(未使用zipalign工具),它就必须回到老路上,显式地读取它们——这个过程将会比较缓慢且会花费额外的内存。优化
从整个Android项目的构建来看,咱们会感叹“为啥我就简单的建立一个应用,为毛有很是多的事情须要作。”,因此为了方便处理这些,咱们都会想是否是能够写一个能自动处理这些过程的程序化脚本呢?因此Gradle出现了!!!!
。
对于之前传统的项目构建工具,只是编译和打包源代码。而如今项目的构建须要负责更多的工做,它们会运行测试、从多个来源购买编码资源、生成文档、建立多个构建变种、发布应用程序和管理依赖性。而Gradle不只具有这些能力与功能,还解决了Android开发人员面临的一些最棘手的问题,以下所示:
哎呀说这么多,其实最大的缘由是Google爸爸已经选择Gradle作为Android Studio的构建系统
,在Android Studio中将Android应用的整个流程指派给了Gradle。当咱们点击运行
按钮时,Android studio会在运行过程当中设置Gradle,并在后台监控。经过学习有关Gradle知识。咱们能够扩展此默认行为。以构建能力更强且通过适当测试的应用。
既然Gradle大法这么好,为毛咱们不去学习呢?
Gradle是项目的构建工具,解决了咱们平时开发中,项目测试、项目打包、项目依赖等问题。
Gradle系列会继续写。若是你们喜欢个人写做风格的话。欢迎你们点赞。
最后,附上我写的一个基于Kotlin 仿开眼的项目SimpleEyes(ps: 其实在我以前,已经有不少小朋友开始仿这款应用了,可是我以为要作就作好。因此个人项目和其余的人应该不一样,不只仅是简单的一个应用。可是,可是。可是。重要的话说三遍。还在开发阶段,不要打我),欢迎你们follow和start