1、什么是Android Studio
Android Studio是基于IntelliJ的最新Android开发工具。
与Eclipse相比,主要下面几点好处:
- 使用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、Android Studio配置
(下载安装略,很简单)
1.配置SDK
第一步、我们第一次打开是如下的界面,我们选择 Configure
第二步、点击setting
进入设置界面,如下图所示:
按照图示标志的1-5步,就完成了设置SDK了。
当然也可以使用另一种方式:
第一步、选择Project Default
第二步、点击Project Structure
接下来如下图所示,配置完成后点击apply,再点OK,就完成了配置。
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 。
3、Android Studio 创建项目
这里我们创建一个新的项目,如下图所示,设置项目名称、包名、存储路径。 然后点击Next按钮。
注意:
1、Application name:程序名称(App名称)
2、Company Domain:公司域名
3、Project Location:项目存储位置
Package name 包名会根据你填写的APP名称和公司域名自动生成。
进入如下界面,选择SDK类型和最小支持SDk版本,如果想支持其它Android设备,可以勾选。
进入模版选择界面,如下图所示。可以选择自己想要创建的Activity模版,亦可以不选择,add No Activity,
这里我选择一个登录模版。然后点击Next按钮。
编辑Activity名称,Activity的不见Layout名称,和title。编辑完成,点击Finish按钮。Android
Studio的 Gradle就开始创建我们的Android项目了。
创建完成,如下图所示,至此,一个完整的Android项目就创建完成了。
现在我们直接单击工具栏上的绿色小三角运行程序。
4、Android Studio项目结构
Eclipse里的workspace相当于Android Studio的Project
区别:
- Eclipse里的workspace里的Project可以单独clean, build等等,Android Studio的Project不行,一旦clean,build都是对所有的module进行clean, build
- Eclipse里的workspace看到的都是其项目,我们可以close掉此项目,但Android Studio里的文件不一定就是module,是通过settings.gradle里进行配置的,里面配置了哪些,哪些才是此项目的module,如下所示:
- Android Studio项目的具体结构:
Eclipse里的Project相当于Android Studio的module
区别:
- 默认目录目录结构不一样
- Android Studio里的测试工程和主工程在一个module里,而Eclipse里是分开为两个项目
- Module的默认结构:
5、Android Studio的Gradle编译系统( 变化最大)
Gradle是一种声明式的构建工具,以Groovy语言为基础,面向Java应用为主。主要用来替换Ant和Maven,所以其比Ant和Maven都强大,其主要优点如下:
- 依赖管理
Module(模块) 依赖、本地二进制依赖、远程二进制依赖。
其依赖管理比Maven的要简单很多,其会自己下载依赖的jar包或aar文件
Gradle 使用的仓库:
要使用远程依赖,就得有个库的仓库,Gradle 支持 maven 仓库。这些库可以是公用的,例如 mavenCentral 或者 jcenter,也可以使用私有库。
公用库 mavenCentral 和 jcenter,前者的繁琐与难以管理,让人深恶痛绝。Android Studio 在0.8.0版本以后,将 jcenter 作为默认的 maven 库公用库来源。
私有库可以托管在任何一个能访问到的地方,可以托管在 bintray 上的私有空间,也可以是内网服务器上,甚至可以是本机磁盘上。
2.以Groovy为基础,所以其灵活,方便扩展,阅读性强
什么是Groovy?
Groovy 是下一代的java语言,跟java一样,它也运行在 JVM 中。 作为跑在JVM中的另一种语言,groovy语法与 Java 语言的语法很相似。同时,Groovy 抛弃了java烦琐的文法。同样的语句,使用groovy能在最大限度上减少你的击键次数。具体的大家可以在网上进一步了解。
3.安装Gradle
从 http://www.gradle.org/downloads 网站上下载gradle-2.12-all.zip,再设置两个环境变量就行了:
在path环境里添加%GRADLE_HOME%/bin;就可以了。由于在创建项目时,如果没有配置,AS一般会,默认加载最新的
gradle,如果不存在,会下载到本地。所以可以查看本地的gradle,默认位置为: C:\Users\用户名\.gradle\wrapper\dists。
代表性的Gradle例子
example.gradle文件的内容:
task showDescription1 << {
description = 'this is task showDescription'
printlndescription
}
task showDescription2 << {
printlndescription
}
showDescription2.description = 'this is task showDescription'
task showDescription3 << {
printlndescription
}
showDescription3 {
description = 'this is task showDescription'
}
在命令行里分别执行如下命令:
gradle showDescription1
gradle showDescription2
gradle showDescription3
其输出结果都是:“this is task showDescription”
理解:
- Gradle是基于Groovy语言,但又在Groovy上面加了一些规则,如java里的框架spring, struct等等。
- 由于Groovy语言的特点,定位变量可以不用加类型,同时所有的变量都自己动添加getXXX(), setXXX()方法
- Gradle是以task为最小执行单位,showDescription1,showDescription2,showDescription3都是task对象,description是其属性,其里面有一个方法doLast()
- 第一种和第二种写法都好理解,主要是第三种写法不太好理解,这就是Gradle的闭包机制,写法3相当于调用了showDescription3里的一个方法,执行配置
task showDescription1 << {
description = 'this is task showDescription'
printlndescription
}
- Gradle的执行分为两个阶段,一个是配置阶段,一个是执行阶段。通过配置阶段后,上面三个Task对象,其实都一样了,都相于如下的配置了:
- 有了这两个阶段,Gradle就很容易进行重写和覆盖
进一步了解, 看: http://www.gradle.org/docs/current/userguide/userguide.html
6、Android Studio终端的使用
打开 Android 工作区下方,有一个叫做 Terminal 的 tab,点击之后,会自动 cd 到当前 project 根目录下,可以输入如下命令来尝试下)
1.在输入如下命令查看gradle版本
2.构建项目
可使用 help 参数来查看有哪些选项:
查看运行 log
有些时候,一个任务运行失败,只给出一个错误,没有给具体原因,你就需要查看更多信息,可以使用参数 --info 或者 --stacktrace:
指定 module 或者 build.gradle
Gradle 默认是当前目录下寻找 build.gradle 文件执行任务,这样执行 build 会使得整个 project 所有的 module 的 build 任务都会运行,浪费不必要的时间,可以指定 module (-p) 或者 build.gradle (-b)文件以缩小作用范围:
如果是第一次运行这个命令,系统会帮我们下载gradle到本地,下载到的路径是:C:\Users\用户名 \.gradle\wrapper\dists。
7.Android的Gradle插件
- 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
9.Sync
正常情况下,修改了 build.gradle 文件,文件上方就会有一个 sync 的按钮,点击之后会重新构建整个 build.gradle。但是某些特殊情况,这个同步可能会失败。那就需要一个额外的触发。
方法有四:
- 再修改一下文件,便会再次出现 sync 按钮
- 点击上方工作区的按钮
- 点击 Gradle View 中的同步按钮
- 命令行执行一次 build