自从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项目上传到GitHub

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

  7. Android Studio项目上传到Jcenter

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

  8. Android Studio 快速实现上传项目到Github(详细步骤)

    前言: 本文主要讲解如何将Android Studio项目上传至GitHub,在此之前,先介绍几个概念. Android Studio:是谷歌推出一个Android集成开发工具,基于IntelliJ ...

  9. 在GitHub上删除项目后,在Android Studio上传项目依然提示project is already on github

    描述: 在GitHub上面上传项目,但是感觉有些问题,就想删除了重新上传. 但是在Android Studio重新上传项目时,遇到了问题,一直提示“project is already on gith ...

随机推荐

  1. MySQL下全文索引

    一种特殊的索引,它会把某个数据表的某个数据列出现过的所有单词生成一份清单. alter table tablename add fulltext(column1,column2) 只能在MyISAM数 ...

  2. 处理链方式执行APD处理

    于在处理链的标准处理类型中没有针对APD的处理类型,所以如果APD处理过程设计好后,需要在处理链中安排计划,每天自动运行,就需要用到特殊的处理方法.步骤如下:     1.在se38中运行程序RSAN ...

  3. SGU 180 Inversions

    题意:求逆序数对数量. 思路一:暴力,O(N^2),超时. 思路二:虽然Ai很大,但是n比较小,可以离散化,得到每个Ai排序后的位置Wi,然后按照输入的顺序,每个Ai对答案的贡献是Wi-Sum(Wi- ...

  4. [置顶] 获取激活码,激活myeclipse

    myeclipse10.0 正式版下载地址: http://downloads.myeclipseide.com/downloads/products/eworkbench/indigo/instal ...

  5. Spring与Jdbc Demo

    方法一:继承JdbcTemplate来实现 1.配置applicationContext <!-- 获取数据源连接 dbcp --> <bean id="dataSourc ...

  6. 浅谈对JIT编译器的理解。

    1. 什么是Just In Time编译器? Hot Spot 编译 当 JVM 执行代码时,它并不立即开始编译代码.这主要有两个原因: 首先,如果这段代码本身在将来只会被执行一次,那么从本质上看,编 ...

  7. iOS数据持久化之数据库:SQLite和FMDB

    SQLite: SQLite是一款轻量级型的数据库,资源占用少.性能良好和零管理成本,具有零配置(无需安装和管理配置).独立(没有额外依赖).储存在单一磁盘文件中的一个完整的数据库.源码完全的开源.比 ...

  8. 利用GDI+在Winfrom绘制验证码

    string yzm: private void yangzhengma() { Bitmap bt = new Bitmap(70,22);//创建位图对象 Graphics gs = Graphi ...

  9. Linux(二十一)Shell编程

    21.1 为什么要学习Shell编程 (1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理. (2)对于JavaEE和Python程序员来说,工作的需要,你的老大会 ...

  10. Idea的快捷键,瞎摸索,开心就好,哈哈哈

    前言:如果你有强迫症,换了一个编辑器,最痛苦莫过于快捷键,不顺手了.这里自己瞎摸索的快捷键,贴一下,这里主要以实际应用为主,因为大量介绍的网上已经很多很多,So基本的不再叙述. 分享一下比较不错的Id ...