Android Studio是一年前Google I/O上推出的一款Android开发IDE,他基于JetBrains’ IntelliJ IDEA,目前还在preview阶段。增强了布局拖拽和预览功能,使用了新的构建系统Gradle,增加了android相关的重构和quick fix功能。之前听说用Android Studio来构建应用程序的时候会很方便,而且在学习常用Android开源项目的时候看到大部分都提供了对Android Studio的支持,所以就折腾了下,分享点经验给大家。

大多数Android Studio尝鲜者遇到的最大的障碍是Gradle,启动的时候非常慢,他需要从Maven库下东西,网络不稳定,这就坑了,不知道别人怎么解决的,我是FQ搞的,光这一点就阻止了Android Studio大陆范围内推广,而且多人合作的时候同伴不一定习惯这个东西。网络的问题如果解决后,就需要了解Gradle的构建原理,这也需要费一番功夫的,去年谷歌I/O上有40分钟的视频来说明他是怎么工作的,链接在这里,讲的很清楚,在Linkedin上查到主讲人的头衔是”Tech Lead for the Android SDK at Google”。

你可以新建一个HelloWorld工程感性的认识一下Android Studio的使用。你肯定会在这个过程拿他和Eclipse做对比,很可惜的是,他们的目录结构不像AppCode和Xcode一样目录完全兼容可以相互无缝替换,不能直接import对方的工程,虽然现在Eclipse提供了功能可以把现有项目导出来再导入到Android Studio中,但是这个过程并不是无痛的,也会有些小问题,很麻烦;反过来,要把Android Studio中的项目导出来到Eclipse中,那就是纯属找事了。

Android Studio的项目包含一个或者多个Module,这里的Module可以是Android应用,也可以是库,一般来说,新建一个项目也自动会新建一个Module,编译的时候就会编译这个Module,生成需要的apk。当我们需要引入一个开源库的时候怎么办呢?可以新建一个Module,选定类型为‘android-library’,然后让主要的Module依赖于这个就行了(这个过程就像Eclipse上一样,不同的项目可以有引用的关系)。然而Android Studio是在背后做了一些东西的,其实每个Module都有一个build.gradle文件,用来描述这个Module构建时候需要的条件,整个项目也有一个build.gradle文件,是所有Module构建时需要满足的条件,最后项目还有个settings.gradle,记录了项目里面有哪些Module。你增减Module,修改依赖关系的时候,其实就是在修改这几个文件。

其实最方便的东西就是我接下来要说的,很多开源项目都应集成到了maven库当中,我们可以很方便的把这些项目引用到自己的项目中,而不用再去github克隆代码再拷贝再配置了。我们拿下拉刷新组件ActionBar-PullToRefresh为例,我们只需要在需要他的Module的build.gradle中dependencies里添加一句话”compile ‘com.github.chrisbanes.actionbarpulltorefresh:library:+'”就行了。Android Studio会自己去下载,方便不方便你动手试试就知道了。如果你不知道maven库里有没有,可以在相应的Module上点击右键,选择“Open Module Setting”,找到dependencies选项卡,在下面点击加号,选择“Library Dependency”,然后搜一下就行,其实常用的android-async-httpActionBarSherlockAndroid-Universal-Image-Loader 等等都是有的,你不用再在git仓库里加一堆冗余的代码了,只需要在build.gradle增加一行就行,何乐而不为?

在平时开发Android应用的过程中,难免会用到android.support.v4.jar,一般的做法是把他从SDK放到项目的libs目录下,避免别人拷贝代码后不能编译通过。然后在引用多个开源项目的时候,会发生版本不一冲突的情况,一般的做法是把冲突的jar包替换成同一个,但是在你不知道怎么解决的时候产生的错误信息是很令人沮丧的,幸运的是,在Android Studio中这种情况不会出现了,你只需要在对应Module的build.gradle的dependencies里添加一句话就可以了“compile ‘com.android.support:support-v4:+’”,多个模块引用他的时候不会出现冲突。

说了这么多Gradle相关的的,再说说IDE本身的一些优缺点吧:

启动和编译比较慢。我也不知道是什么原因,用的mac,固态硬盘,按理说应该很嗨才对。每一次对build.gradle的更改都会产生Android Studio一个操作‘sync’,然后就产生界面就卡死了。这个算是bug吧,而且时不时会出现Internal Error,还好出现频率可以接受。编译也比较慢,那个”Tech Lead for the Android SDK”需要加把劲了。

界面好看。用过几款Jetbrains的产品,界面还是挺舒服的,最然可用的只有两套主题,之前用Eclipse的时候,我实在忍受不了界面上浓浓的java UI气息,而且图标还会有锯齿边缘。

方便的颜色选择器。在布局文件中,比如你有用到android:background=”#ffffffff”,那么在这一行的最左边会出现一个框框,里面就是白色的,你点击这个白色框框,弹出一个对话框用来选择颜色,十分直观。

直接显示资源内容。如果你有用到android:layout_width=”@dimen/image_width”,Android Studio会把image_width的值直接替换到引号里面。

DDMS集成的不太好。打开Android Monitor,赫然一个awt界面出现在眼前,毫无美感呀。但是基本的logcat,截屏,debug功能都是有的。

总体来说,Android Studio还是符合个人开发者的需求的,我自己平时写点小东西的话都用Android Studio,相信他会越来越好的,期待正式版出来的那一天。

ps:下次这种内容的东西考虑直接录一个短视频放过来,通篇文字不知道会不会有人烦:-D

Android Studio试用总结的更多相关文章

  1. Android Studio体验(二)--创建项目和Genymotion试用

    上周日已经体验了一把Android Studio顺便没事点了点其他功能,不过还是从自己创建项目开始说吧,首先我们要熟悉Android Studio中的Project 和 Module 两个概念.And ...

  2. 【Android Studio】安卓开发初体验1——安装与试用

    安装 (安装预留硬盘(C盘)空余空间16G以上,8G以上内存) Intel用户: 安装Android Studio和AVD(安卓虚拟机 Android Virtual Device) 安装过程需要注意 ...

  3. ubuntu 14.10 lts 64-bits环境下使用Android Studio

    距离google发布android studio 1.0正式版已经两个月左右了.由于一直习惯使用eclipse+ADT的模式,而且曾在windows下试用一次Android Studio预览版,感觉卡 ...

  4. [Android Studio]SQLScout插件安装破解

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5972138.html [Android Studio]SQLS ...

  5. Android Studio 使用Lambda

    1,昨天在使用RxJava的时候,调用map.filter之类的方法要创建挺多的匿名内部类,所以我们打算试用一下Lambda让我们的代码更有阅读新性,下看一下我们的对比 在使用之前我们代码是这样的 O ...

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

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

  7. Android Studio单元测试入门

    Android Studio单元测试入门 通常在开发Android app的时候经常会写一些小函数并验证它是否运行正确,通常做法我们是把这个函数放到某个界面(Activity上)执行一下,运行整个工程 ...

  8. Android Studio打包全攻略

    转载:http://www.2cto.com/kf/201606/517300.html 初出茅庐 手动打包 怎么手动打包 项目写完了,现在需要把应用上传到市场,问题出现-怎么把代码变成.apk(An ...

  9. Android Studio使用教程(一)(转)

    今年的Google全球开发者大会虽然没有新的Android系统和设备,但是还是推出了一些不错的产品,Android Studio就是其中之一.这个基于Intellij IDEA开发的Android I ...

随机推荐

  1. 解决“Word无法访问您试图使用的功能所在的网络位置”问题

    解决“Word无法访问您试图使用的功能所在的网络位置”问题 打开Word时出现现现在的对话框,按取消,又可以打开word文档 按取消时,仍然可以打开word文档.为了解决这个问题,我借助网络,知道这是 ...

  2. cmd命名设置成全局

    如在jsdoc里.想要把jsdoc命名设置成全局.只要把环境变量里面的用户变量里面的path变量值增加 C:\Program Files\nodejs;E:\Program Files (x86)\j ...

  3. jquery mobile 复选框和单选框

    checkbox 和radio <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...

  4. 读书笔记 -part1

    自从毕业以后到现在~看的书是越来越少了 の其实好像貌似从来没有认认真真的看书  除非工作遇到难于解决的问题迫不得已才去翻书看 有些问题也是莫名其妙的就这样解决了  于是乎被人美名其曰“高人”或&quo ...

  5. DZ 3.2 URL 伪静态配置 教程

    原文转自:http://www.zccode.com/thread-682-1-1.html 教程说明: 1 首先需要下载URL重写工具,拷到服务器下面安装即可,这里配置IIS7(x64)伪静态. 工 ...

  6. Java在ACM中的使用

    1.基本框架   import java.oi.*;   import java.util.*   public class Main   {   public static void main(St ...

  7. GDI相关函数

    GetWindowRect计算窗口大小 MoveWindow 设置窗口大小 SetMapMode 该函数设置指定设备环境的映射方式 MM_LOMETRIC:每个逻辑单位转换为0.1毫米,X正方向向右, ...

  8. C++是怎么实现多态性的

    C++是怎么实现多态性的,C++中多态实现的原理, 当一个类中有虚函数时,系统会为该类构造一个虚函数表vtable,他是一个指针数组,存放每个虚函数的入口地址,编译器还会在此类中隐含插入一个指针vpt ...

  9. LINQ 学习笔记(1)

    学习资源参考 : http://www.cnblogs.com/lifepoem/archive/2011/12/16/2288017.html 常用方法是 Where, OrderBy, Selec ...

  10. NGINX结合SHELL统计用户的UV及IP汇总

    公司新的需求,怀疑PV和IP的比例不对,看是不是有恶意的东东: NGINX配置: log_format main '$remote_addr - $remote_user [$time_local] ...