自从android官方宣布不再提供eclipse adt的更新之后,android studio的推进速度超乎想象得快,不管是github上的源码分享,还是stackoverflow上的问题提问,几乎都是基于android studio开发环境的,而且官方的所有文档都做了调整更新,从guide,training到tools部分,都已经基于android studio来进行讲解说明,eclipse已经几乎找不到影子了,为了顺应趋势,我们也来学习android studio的开发环境使用。

    首先,android studio是官方提供的专门针对android开发者的开发环境,它是基于IntelliJ IDEA的,说到IDEA我想很多人都不陌生,对比eclipse,同样是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,在启动速度、智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是秒eclipse几条街,被大家称为java开发的神器,而旗下的webstorm开发工具,也同样被开发者称为javascript开发神器。

  下面我们来看一下官方列出的android studio的几个特点:

  1.基于gradle的项目构建系统,这让我们在构建android项目的时候更加灵活

  2.可以通过变量配置来生成多个版本的apk文件

  3.拥有大量的代码模板可以快速地帮我们构建android项目

  4.可进行拖拽的ui编辑器

  5.内置link tools代码优化工具,可以捕捉性能,可用性,版本兼容等问题

  这些特点看似跟eclipse大同小异,但是实际使用起来却让人眼前一亮,下面我们就来实际看看android studio的一些优秀特质:

项目和文件结构

  首先我们使用android studio创建一个项目,创建过程省略xxx字,我们可以看到,我们创建的项目会默认按照android studio的android项目视图结构来显示,该视图是扁平化的结构,通过它,我们可以很清楚地看到我们的manifest配置文件目录,java代码目录,res资源文件目录以及对应的gradle项目构建配置文件,如下

  • java/ - android项目的java源代码目录
  • manifests/ - 各个模块的mainfest文件的存放目录
  • res/ - 项目的布局,资源等文件的存放目录
  • Gradle Scripts/ - gradle的配置文件目录

      

如果你以为仅仅如此,那就错了,该视图除了默认的清晰的项目结构,还会自动对资源文件进行归类并放到一个通用目录下,如图所示:

android studio的android项目视图会自动将我们的针对不同屏幕密度的资源文件ic_launcher.png一起归类到ic_launcher.png 目录下,同时dimens.xml也被进行了归类,

这样便方便我们开发者更快速地查找、定位和比较对应的源文件,这在eclipse中是前所未见的。

当然了,我们硬盘上的项目并不是android视图结构所展现出来的那样,上图我们看到的目录结构只是虚拟化出来的,如果我们想查看硬盘上真实项目的结构,我们可以点击左上角的下拉框,切换到project视图

Android Studio的其他项目视图

  紧接上面的操作,我们把android studio切换到了project 视图,如果你之前一直使用eclipse来做android项目开发,那你应该会注意到我们的android studio中创建出来的项目的目录结构跟eclipse完全不同,

  在android studio中,每个项目实例都会包含一个或多个应用程序模块,而每个应用程序模块又会包含完整的源码集合模块,

  包括 src/main/ 和 src/androidTest/ 文件夹,资源,项目构建文件和android的manifest配置文件这些,

  大部分情况下,我们只需要更新src/main/目录下的项目代码来更新项目,同时通过修改build.gradle文件来配置我们的项目构建配置,

  而 src/androidTest/ 这个目录则是留给我们来写测试用例的

我们还可以根据我们的需要自己选择对应的视图目录去关注项目的特定方向,android studio为我们提供了以下几种视图:

  • Packages
  • Project Files
  • Scratches
  • Problems
  • Production
  • Tests

 例如,当我们的代码中出现错误时,我们可以选择problem视图,这时problem视图会直接将我们提示出错的文件列出来,这样我们就能直接定位错误文件从而进行修改完善,如图:

,我故意将MainActivity里的代码写错,此时,我将视图切换到problem,这时就会将我们的错误文件显示出来,是不是很人性化?

如果你想了解更多相关信息,可以参考 IntelliJ project organization 和 Managing Projects

创建新文件

android studio给我们提供了相当方便的快捷键来添加代码文件或资源文件,

  例如: 当你选择了layout布局目录或者布局文件,这个时候,只要你点击ALT+INSERT(MAC下为COMMAND + N),此时会默认弹出文件创建窗口,并且会将对应的文件类型放在第一个,当我们按下回车,此时我们只需要填写文件名等必要信息即可快速创建我们对应类型的文件了,java文件等同上。

是不是很方便,呵呵,接下来我们来了解下android studio中的android 构建系统

Android构建系统(Android Build System)

  Android构建系统(Android Build System)是指用来构建、测试、运行和打包应用程序的工具,这套构建系统在android studio中取代了eclipse ADT中基于ant的系统,它可以作为android studio上一个完整的工具进行使用,同时也可以直接通过命令行来独立调用执行,

  这套系统提供了一些特殊的功能:

  1.自定义、构建和扩展构建过程

  2.使用同一个项目创建具有不同功能的apk

  3.在多个资源集之间重用代码

android构建系统的灵活性使得我们可以在不修改项目核心文件的基础上实现上述的功能,后面我们会进行详细的讲解

 

用来标识应用程序包的标识属性Application ID

跟eclipse不同,在android studio的项目中,我们需要在build.gradle文件中配置application id这个属性来对我们项目的package包做唯一标识,如下:

     apply plugin: 'com.android.application'

     android {
compileSdkVersion 19
buildToolsVersion "19.1" defaultConfig {
applicationId "com.example.my.app"
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
...

当我们使用构建变量来发布项目时,构建系统允许我们针对不同的产品类型和构建类型定义唯一的applicationId

productFlavors {
pro {
applicationId = "com.example.my.pkg.pro"
}
free {
applicationId = "com.example.my.pkg.free"
}
} buildTypes {
debug {
applicationIdSuffix ".debug"
}
}
....

applicationId虽然是用来唯一标识包名的,但是在manifest中我们还是得指定对应的package,manifest中的package是用来关联我们的R class文件和解决activity及service的注册问题的,如下:

 package="com.example.app">

调试和性能

Android Virtual Device (AVD) Manager

AVD就是我们的android 虚拟设备管理工具及用来管理我们的android 模拟器,它预先提供了一些模拟器,这些模拟器基本都是目前比较受欢迎的一些配置,尺寸以及分辨率

我们只需要点击android studio工具栏上的按钮便可以打开我们的avd工具,如图:

我们可以根据需要直接选择对应的模拟器,也可以根据自己的需求自定义自己的模拟器,android studio的avd提供了非常人性化和直观的界面,如图所示:

内联调试

除了avd更加人性化之外,android studio在debug调试上也更加地方便直观,在调试视图中我们可以快速方便地查看内部变量值、关联的对象引用、方法的返回值、运算表达式以及工具的提示值等相关信息

android studio 简介 (上)的更多相关文章

  1. Android Studio 简介及导入 jar 包和第三方开源库方[转]

    原文:http://blog.sina.com.cn/s/blog_693301190102v6au.html Android Studio 简介 几天前的晚上突然又想使用 Android Studi ...

  2. Android系统简介(上):历史渊源

    上个月,看到微信的一系列文章,讲到Linux的鼻祖-李纳斯的传记<Just for Fun>, 其人神乎其能, 其人生过程非常有趣,值得每个程序员细细品味. 而实际上,对我而已,虽然做软件 ...

  3. 【Android应用开发】Android Studio 简介 (Android Studio Overview)

    一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- I ...

  4. Android Studio 简介

    Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Google的更新速度也很快,明显能感觉到这是Android开发 ...

  5. 一步一步实现android studio代码上传到github。

    本文只注重代码上传能成功就好,不解释什么是git什么事github,git有什么优势. 1,先创建一个android应用, 第二步:创建github账户 和 安装git.网上的文章多如牛毛.唯一要说的 ...

  6. Android Studio用上国产杰出代表夜神模拟器

    背景介绍 在Windows上除了官方的AVD(Android Virtual Device)我们还可以使用更加便捷的国产安卓模拟器,比如杰出的代表就是夜神模拟器. 我们现在是假设你已经安装好了Andr ...

  7. Android Studio用上Visual Studio Android Emulator

    背景介绍 第一次接触Android官方的AVD(Android Virtual Device)时你可能会吐槽又慢又丑,不要紧,微软作为新晋安卓阵营最佳开发商,其实也为我们准备了一个脱胎于Windows ...

  8. Android Studio项目上传到GitHub

    首先,在github上创建仓库:选择Repositories,点击右边的“New”,输入仓库名称,点击“create repositories”. studio的git配置: 安装好git后启动And ...

  9. Android Studio项目上传到Jcenter

    一.将你要发布的moudle的build.gradle中添加代码,gradle的最后添加 PUBLISH_GROUP_ID = 'com.zzti.fengyongge' PUBLISH_ARTIFA ...

随机推荐

  1. js获取 gps坐标

    if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(pos) { model.address. ...

  2. null 与 undefinded

    null表示"没有对象",即该处不应该有值.典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象. (2) 作为对象原型链的终点. Object.getPrototype ...

  3. POJ 1142:Smith Numbers(分解质因数)

                                   Smith Numbers Time Limit: 1000MS   Memory Limit: 10000K Total Submiss ...

  4. UVA 10815:Andy's First Dictionary(STL)

    题意:给出一段英文,里面包含一些单词,空格和标点,单词不区分大小写,默认都为小写.按照字典序输出这些单词(这些单词不能有重复,字母全部变成小写) stringstream:包含在头文件#include ...

  5. Spring4.3整合Hibernate4.3搭建Spring MVC

    1,web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...

  6. wpf 客户端【JDAgent桌面助手】开发详解(三) 瀑布流效果实现与UI虚拟化优化大数据显示

    目录区域: 业余开发的wpf 客户端终于完工了..晒晒截图 wpf 客户端[JDAgent桌面助手]开发详解-开篇 wpf 客户端[JDAgent桌面助手]详解(一)主窗口 圆形菜单... wpf 客 ...

  7. Hadoop全分布模式操作

    http://blog.csdn.net/wangloveall/article/details/20767161 摘要:介绍Hadoop全分布模式操作,实现真正意义上的集群架构. 关键词:Hadoo ...

  8. Android 第三方分享中遇到的问题以及解决方式

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/liuxian13183/article/details/36189343               ...

  9. Asp.net自定义控件系列(一)

    最近看到公司某个网站中用到了自定义控件,咋一眼看去,不明白什么玩意, 网上一搜,好像确实不是几句话就能写出强大的自定义控件.好吧,作为一个码农,我决定从基本学起,写一个关于自定义控件学习过程系列. 当 ...

  10. 一 JAVA整体概念以及安装部署

    JAVA 基本概念  JVM(JAVA virtual machine)java虚拟机,是java的能跨平台的核心,java的跨平台实现,就是在各种系统中布置JVM,然后java应用运行在JVM中,相 ...