订阅移动开发RSS CSDN首页> 移动开发

拥抱Android Studio(二):Android Studio与Gradle深入

发表于2015-12-21 11:50| 次阅读| 来源投稿| 0 条评论| 作者何畅彬

摘要:本文为“拥抱Android Studio”系列第二篇。在读者们已经开始熟悉和爱上Android Studio之后,作者列举了一些较为深入又比较实用的功能,并分享了自己以及在帮助用户集成过程中遇到的坑,相信对初学者大有裨益。

CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用、开发工具、移动游戏及引擎、智能硬件、物联网等方方面面。如果您想投稿、寻求《近匠》报道,或给文章挑错,欢迎发送邮件至tangxy#csdn.net(请把#改成@)。 


关于学习方式

曾经跟朋友讨论过我们所接受过的大学工科教育,都是一上来先学基础理论,最后再来一个金工实习。一开始不知道为什么而学,学不进去,荒废了基础,等到金工实习的时候,又发现基础不牢,后悔不已。 考虑到传统教育方式的不足之处,笔者在组织本系列文章的时候是先讲入门实例,进而学习 Gradle 和 Groovy 基础原理,最后学习进阶实例。

上篇文章介绍了 从 ADT 迁移到 Android Studio,相信经过很短时间的使用之后,已经开始熟悉和爱上 Android Studio 了。基础的功能我就不讲了,下面列举一些较为深入又比较实用的功能。

Android Studio 相关功能介绍

文件夹组织视图

最常用的有 Project 和 Android 视图,前者按照项目文件树进行组织,后者是以 Gradle 构建文件作为核心进行组织:

Project 视图与 Android 视图

Gradle 相关文件结构

让我们来观察一下Android Studio 中 Gradle 相关的结构:

.
├── gradle
│   └── wrapper				//所使用的 Gradle 包装器配置
├── .gradle					//所使用 Gradle 版本
│   └── 2.8
├── AsInDepth.iml
├── app						//app module
│   ├── app.iml
│   ├── build
│   ├── build.gradle		//app module 的 build.gradle
│   ├── libs
│   ├── proguard-rules.pro
│   └── src
├── build.gradle			//项目 build.gradle,通常配置项目全局配置,如 repositories 和 dependencies
├── gradle.properties		//项目属性文件,通常可以放置一些常量
├── gradlew					//Gradle 包装器可执行文件
├── gradlew.bat				//Gradle 包装器可执行文件(Windows)
├── lib						//lib module
│   ├── build
│   ├── build.gradle		//lib module 的 build.gradle
│   ├── lib.iml
│   ├── libs
│   ├── proguard-rules.pro
│   └── src
├── local.properties		//项目的本地属性,通常是 sdk 所在位置
└── settings.gradle			//项目总体设置,通常是配置项目中所有的 module

Invalidate Cache

Android Studio 会出现索引的问题,那可以从删除 cache 重建索引,File->Invalidate Caches/Restart

Multiple Language Editor

多语言文字可以通过右击文件 Open Translation Editor,可以同时进行编辑,但是我发现如果把 strings.xml 改了别的名字,这个功能就不 work 了。

Gradle 相关功能介绍

Gradle View

点击红色三角运行按钮,其实是执行了 Gradle 的 一些列任务,如果你想分别执行一些任务,则可以从 Gradle View 里面查看:

gradle view

命令行

工作区下方,有一个叫做 Terminal 的 tab,点击之后,会自动 cd 到当前 project 根目录下,可以输入如下命令来尝试下:

./gradlew build 

Windows 下应该是 gradlew.bat build,下面均以 Mac 为例,不再赘述

可使用 help 参数来查看有哪些选项:

./gradlew --help

下面介绍一些重要的选项:

  • 查看运行 log

有些时候,一个任务运行失败,只给出一个错误,没有给具体原因,你就需要查看更多信息,可以使用参数 --info 或者 --stacktrace:

./gradlew build --info

  • 指定 module 或者 build.gradle

Gradle 默认是当前目录下寻找 build.gradle 文件执行任务,这样执行 build 会使得整个 project 所有的 module 的 build 任务都会运行,浪费不必要的时间,可以指定 module (-p) 或者 build.gradle (-b)文件以缩小作用范围:

./gradlew -p app build

Sync

正常情况下,修改了 b