1、什么是Android Studio

Android Studio是基于IntelliJ的最新Android开发工具。

与Eclipse相比,主要下面几点好处:

  1. 使用gradle编译系统,其最大的特点,Gradle编译系统所带来的好处:
  1. 更简单的依赖管理,只需要一行依赖配置,Gradle就会帮我进行下载,引入,关联等等操作
  2. Android Studio与命令行的编译方式一样
  3. 能同时生成多个Apk包(如android wear, android phone, android TV等不同版本)
  4. 能与Maven仓库集成,把aar, jar上传到Maven 仓库,非常便于依赖管理
  1. 集成反编译,直接打开class文件
  2. 集成9patch工具,能直接编译.9图
  3. 集成颜色板工具,通过调色板选取颜色
  4. 集成命令行工具(Windows是doc命令,linux和Mac是shell命令)
  5. AndroidManifest Merge机制(能继承或重新Library库里的配置,不用全部复制)
  6. Assets Merge机制(能继承或重写Library库里的assets文件,不用全部复制)
  7. 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

区别: 

  1. Eclipse里的workspace里的Project可以单独clean, build等等,Android Studio的Project不行,一旦clean,build都是对所有的module进行clean, build
  2. Eclipse里的workspace看到的都是其项目,我们可以close掉此项目,但Android Studio里的文件不一定就是module,是通过settings.gradle里进行配置的,里面配置了哪些,哪些才是此项目的module,如下所示:
  3. Android Studio项目的具体结构:

Eclipse里的Project相当于Android Studio的module

区别:

  1. 默认目录目录结构不一样
  2. Android Studio里的测试工程和主工程在一个module里,而Eclipse里是分开为两个项目
  3. Module的默认结构:



5、Android Studio的Gradle编译系统( 变化最大)

    Gradle是一种声明式的构建工具,以Groovy语言为基础,面向Java应用为主。主要用来替换Ant和Maven,所以其比Ant和Maven都强大,其主要优点如下:


  1. 依赖管理

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”

理解:


  1. Gradle是基于Groovy语言,但又在Groovy上面加了一些规则,如java里的框架spring, struct等等。
  2. 由于Groovy语言的特点,定位变量可以不用加类型,同时所有的变量都自己动添加getXXX(), setXXX()方法
  3. Gradle是以task为最小执行单位,showDescription1,showDescription2,showDescription3都是task对象,description是其属性,其里面有一个方法doLast()
  4. 第一种和第二种写法都好理解,主要是第三种写法不太好理解,这就是Gradle的闭包机制,写法3相当于调用了showDescription3里的一个方法,执行配置
task showDescription1 << {

   description = 'this is task showDescription'

   printlndescription

}

  1. Gradle的执行分为两个阶段,一个是配置阶段,一个是执行阶段。通过配置阶段后,上面三个Task对象,其实都一样了,都相于如下的配置了:
  2. 有了这两个阶段,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 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