Android Studio试用总结

于 2014年04月22日 发布在 android开发 跳到评论

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

大多数Android Studio尝鲜者遇到的最大的障碍是Gradle,启动的时候非常慢,他需要从Maven库下东西,网络不稳定,这就坑了,不知道别人怎么解决的,我是翻墙搞的,光这一点就阻止了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

本文共有 11条评论 | 沙发:文章评论

  1. zjy说道:

    完全看不懂了呢。。

  2. ypc说道:

    巨爱IDEA,离了就活不了。。。 8-O

  3. alfredchen说道:

    外行人觉得来个短片更直接

  4. […] 关于项目的导入:在github主页上,找到他的jar包,放到项目的libs目录下就行。如果你使用的是Android Studio,可以直接搜索Maven中央库中搜索imageloader就可以找到,如果你还不太了解Android Studio,请点击这里。 […]

  5. 谭冉冉✔说道:

    已经习惯Eclipse了。。。。。

  6. […] 从开发环境来说,Xcode的使用体验已经非常良好了,UI很棒很简洁,该有的都有,自动补全让我很长时间不清楚Objective-C的函数到底是怎么构成的。。。不满的是在13寸rmbp上拖拽产生IBOutlet的时候屏幕空间明显不够用。同时也试用了AppCode,感觉一般。Android IDE是基于eclipse的,eclipse的界面实在是让人受不了,不过很成熟,遇到问题解决起来也快。我的个人项目已经切换到Android Studio了,界面上感觉良好,新的构建系统使得引用开源库十分方便,以后也会是方向。自动补全,重构,缩进,快速查找,配色,git支持等等两个开发环境都能满足日常需要,没有太多要吐槽的。 […]

  7. watson说道:

    感谢分享

  8. eee说道:

    在需要他的Module的build.gradle中dependencies里添加一句话”compile ‘com.github.chrisbanes.actionbarpulltorefresh:library:+’”不行啊

留下评论!

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)