- 使用gradle编译系统,其最大的特点,Gradle编译系统所带来的好处:
- 更简单的依赖管理,只需要一行依赖配置,Gradle就会帮我进行下载,引入,关联等等操作
- Android Studio与命令行的编译方式一样
- 能同时生成多个Apk包(如android wear, android phone, android TV等不同版本)
- 能与Maven仓库集成,把aar, jar上传到Maven 仓库,非常便于依赖管理
- 集成反编译,直接打开class文件
- 集成9patch工具,能直接编译.9图
- 集成颜色板工具,通过调色板选取颜色
- 集成命令行工具(Windows是doc命令,linux和Mac是shell命令)
- AndroidManifest Merge机制(能继承或重新Library库里的配置,不用全部复制)
- Assets Merge机制(能继承或重写Library库里的assets文件,不用全部复制)
- Library库能生成aar文件,可以相当于jar被引用,不用下载其source代码
2.修改菜单栏的字体样式
单击Setting进入设置:
Theme是IDE整体配色,前面没有选的在这里可以更改。Override default fonts..默认未设置,这里可以设置一下我们需要展示菜单栏的字体。
3.修改IDE打开方式
AS在默认的情况下,会打开上一次关闭的项目,在这里可以选择是否打开。
第一项是在启动时打开最近的项目,第二项是在关闭IDE时需要确认,这里根据自己的情况选择是否保留。
4.编辑器字体修改
默认的样式是Darcula是不能修改的,这时候需要你自己Save As一份,才可以进行修改(其他涉及样式都需要自己另存后才可修改)
Show only monospaced font是仅显示等宽字体,Line spacing是行距,
下面的提示的意思是如果主字体失败,IDE会使用第二字体,SecondaryFont就是第二字体的设置。
其他的一些配置可自行尝试,包含了IDE各个部分的字体和颜色设置。
5.默认文件编码
出于字符兼容的问题,建议统一使用 utf-8 。
6.显示行号
显示行号的设置在低版本的AS中和高版本的有所不同,这个版本的设置位置见上图。
7.去除拼写检查
个人觉得用处不大。
8.禁用非必要的插件
红框框住的是个人觉得用不上的插件,截图一屏显示不全,下面给出说明:
- CVS Integration :老牌的版本控制工具,现在基本没有人用了吧?
- Google Cloud Testing、Google Cloud Tools For AS、Google Login、Google Serices:谷姐在国内已经被墙了,所以也没用…不过禁用了这些,可能无法导入google 的示例。
- hg4idea:Mercurial 版本控制工具,用不到吧
….其他插件根据自己的情况去留吧。
9.自动导入类引用
当你从其他地方复制了一段代码到Android Studio中,默认的Android Studio不会自动导入这段代码中使用到的类的引用。设置勾选 Add unambiguous improts on the fly 。
1、Application name:程序名称(App名称)
2、Company Domain:公司域名
3、Project Location:项目存储位置
Package name 包名会根据你填写的APP名称和公司域名自动生成。
现在我们直接单击工具栏上的绿色小三角运行程序。
- Eclipse里的workspace里的Project可以单独clean, build等等,Android Studio的Project不行,一旦clean,build都是对所有的module进行clean, build
- Eclipse里的workspace看到的都是其项目,我们可以close掉此项目,但Android Studio里的文件不一定就是module,是通过settings.gradle里进行配置的,里面配置了哪些,哪些才是此项目的module,如下所示:
- Android Studio项目的具体结构:
- 默认目录目录结构不一样
- Android Studio里的测试工程和主工程在一个module里,而Eclipse里是分开为两个项目
- Module的默认结构:
- 依赖管理
其依赖管理比Maven的要简单很多,其会自己下载依赖的jar包或aar文件
公用库 mavenCentral 和 jcenter,前者的繁琐与难以管理,让人深恶痛绝。Android Studio 在0.8.0版本以后,将 jcenter 作为默认的 maven 库公用库来源。
私有库可以托管在任何一个能访问到的地方,可以托管在 bintray 上的私有空间,也可以是内网服务器上,甚至可以是本机磁盘上。
2.以Groovy为基础,所以其灵活,方便扩展,阅读性强
什么是Groovy?
在path环境里添加%GRADLE_HOME%/bin;就可以了。由于在创建项目时,如果没有配置,AS一般会,默认加载最新的
代表性的Gradle例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
task showDescription1 << {
description = 'this is task showDescription'
println description
}
task showDescription2 << {
println description
}
showDescription2.description = 'this is task showDescription'
task showDescription3 << {
println description
}
showDescription3 {
description = 'this is task showDescription'
}
|
- Gradle是基于Groovy语言,但又在Groovy上面加了一些规则,如java里的框架spring, struct等等。
- 由于Groovy语言的特点,定位变量可以不用加类型,同时所有的变量都自己动添加getXXX(), setXXX()方法
- Gradle是以task为最小执行单位,showDescription1,showDescription2,showDescription3都是task对象,description是其属性,其里面有一个方法doLast()
- 第一种和第二种写法都好理解,主要是第三种写法不太好理解,这就是Gradle的闭包机制,写法3相当于调用了showDescription3里的一个方法,执行配置
- Gradle的执行分为两个阶段,一个是配置阶段,一个是执行阶段。通过配置阶段后,上面三个Task对象,其实都一样了,都相于如下的配置了:
有了这两个阶段,Gradle就很容易进行重写和覆盖task showDescription1 << {
description =
'this is task showDescription'
println
description
}
- Android Gradle plugin的官方文档:http://tools.android.com/tech-docs/new-build-system/user-guide
- Android Gradle plugin的原码:https://github.com/jvoegele/gradle-android-plugin
- Android Gradle plugin的版本列表:http://mvnrepository.com/artifact/com.android.tools.build/gradle
- 使用Android Gradle plugin打包的配置:
- 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
8. Androd Studio的编译过程:
- Project的build.gradle主要做一个通用设置,如下所示:
- settings.gradle配置有哪些module
- 在这个项目里执行gradle命令,都是对整个项目执行,即不能单独只执行Module1的build.gradle
- 再修改一下文件,便会再次出现 sync 按钮
- 点击上方工作区的按钮
- 点击 Gradle View 中的同步按钮
- 命令行执行一次 build