[AndroidStudio进阶]重新认识AndroidStudio和Gradle
欢迎关注我的知乎:井方哥
前言
主要从AndroidStudio的环境安装升级,Gradle,Eclipse转AS,多渠道配置,Maven私服,Action,Option等几个方面出发,讲一些操作技巧以及我对AndroidStudio使用的一些理解与经验。本文较全面的讲述了我们在开发中必须要了解的,比较多而全,可能不能马上记住,目的在于大家看我之后能有一个认识,在需要使用的时候知道有这么个东西。希望对你的开发工作有所帮助,不足之处,请批评指正。
知识大纲
- Install&Settings&Update
- Gradle
- AS
- Gradle
- Groovy
- Gradle编程框架
- task
- Android文件结构
- 几个gradle配置文件
- Grade构建过程简析
- 构建流程图
- 分析
- 构建速度优化
- 注意AS配置
- 慎重sub-module
- 守护进程deamon
- 并行编译parallel
- 依赖库使用固定版本
- 去除无用的构建任务task
- 巧用include
- Instant Run
- Maven仓库
- maven()和jcenter()
- maven私服
- 多渠道
- 简介
- 配置
- Eclipse项目彻底转为AS
- 策略
- 坑
- 技巧
- 只有一个快捷键
- 提示类
- 编辑类
- 查找替换类
- 代码检查以及质量改善
- inspect code
- clean up
- 调试
- 单步调试
- +
- Monitors
- Memory
- CPU\NetWork\GPU
- 单元测试
- 分分钟上手单元测试
- 单元测试的意义简单理解
- 终极技巧
- 插件:plugin
- SimpleUML
- MarkDown
- 书签、喜欢分组(bookMarks)
- 抓屏布局分析(LayoutInspector)
- 宏(Edit|Macors)
- LiveTemplates (Settings|Live Teamplates)
- Intentions
- 版本管理Annotate
- layout布局遍历
- 巧用Alt+Enter
- 巧用注解
- 一些有趣的Task
- 插件:plugin
- AS 2.2新特性
一、Install&Settings&Update
1、Gradle
Gradle官方会不断更新,我们可以使用本地安装的方式,并配置path,我们就可以使用Terminal直接输入gradle命令执行构建任务。当然如果我们想快速更新,可以修改配置文件。
首先,修改project\gradle\warpper\gradle-wapper.properties 文件,其中distributionUrl的值:
distributionUrl=https://services.gradle.org/distributions/gradle-2.4-all.zip
这里实际是从网络下载配置的版本,会自动检测,如果不是的就会下载。
然后修改 project的build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
注意:这两个配置是一一对应的,比如gradle-2.4-all对应的就是1.3.0。后者的意思是这个project配置的gradle构建版本为1.3.0,前者的意思是这个project使用的gradle的版本为2.4。我们会发现,如果我们修改前者,如果本地没有安装这个版本的gradle,会自动从gradle官网下载。但是,如果我们修改后者,它会自动从jcenter()仓库下载一些plugin之类的。
2、AS具体的安装和更新网上有许多的详细教程,我只想说以下三点。
Android Studio是Google官方基于IntelliJ IDEA开发的一款Android应用开发工具,绝逼比Eclipse强大,还没有转的尽快吧:
关闭AndroidStudio的自检升级,如果准备好升级还是自己选择想升级的版本升级靠谱;
升级前导出AndroidStudio的配置文件settings.jar(C:\Users\Administrator.AndroidStudio1.4\config目录下,或者操作File|Export Setings导出),升级后导入Settings.jar,这样就不需要重新配置,有必要的话给自己备份一个,说不定老天无缘无故挂了重装很方便。
- 具体细节的配置可以阅读,强烈建议直接打开AS的设置窗口,多转几次就熟悉了里边的各种配置啦。也可以参考这边文章,(1.4版本,有点旧了,差不多够用)打造你的开发工具,settings必备
二、Gradle
1 简述Groovy语言
Groovy是一种开发语言,是在Java平台上的,具有向Python,Ruby语言特性的灵活动态语言,Groovy保重了这些特性像Java语法一样被Java开发者使用。编译最终都会转成java的.class文件。他们的关系如下图。我想这大概也是Gradle构建系统为什么要选择Groovy的原因,它具有java语言的特性,开发者容易理解使用。一定要明白我们在build.gradle里边不是简单的配置,而是直接的逻辑开发。如果你熟练掌握Groovy,那么你在build.grale里边可以做任何你想做的事。
2 Gradle编程框架
Gradle是一个工具,同时它也是一个编程框架。使用这个工具可以完成app的编译打包等工作,也可以干别的工作!Gradle里边有许多不同的插件,对应不同的工程结构、打包方式和输出文件类型。我们经常使用到的便是maven\java\com.android.application\android-library等。当按照要求配置好gradle的环境后,执行gradle的task,便会自动编译打包输出你想要的.apk.aar.jar文件,如果你足够牛逼,你有gradle就够了,直接拿记事本开发;
如下图,是Gradle的工作流程。
- Initializtion 初始化,执行settings.gradle(我们看到都是include”,实际里边可深了)
- Hook 通过API来添加,这中间我们可以自己编程干些自己想做的事情
- Configuration 解析每个project的build.gradle,确定project以及内部Task关系,形成一个有向图
Execution 执行任务,输入命令 gradle xxx ,按照顺序执行该task的所有依赖以自己本身
3 关于gradle的task
每个构建由一个或者多个project构成,一个project代表一个jar,一个moudle等等。一个project包含若干个task,包含多少由插件决定,而每一个task就是更细的构建任务,比如创建一个jar、生成Javadoc、上传aar到maven仓库。我们可以通过执行如下命令查看所有的task:
gradle tasks --all
当然,我们也可以在AS中可以看到所有的task,双击就可以执行单个的task.
当然,我们也可以在build.gradle中写自己的task。关于详细的task介绍可以查看网络资料进行学习,推荐Gradle入门系列,基本花上半天到一天的时候简单的过一遍就有一个大概的了解。