Android Studio初探:不只是一个简单的IDE
对于Android 开发者来说,日常开发对于他们来说是干脆直接的。你只需要下载Eclipse并且安装Android Developer工具插件就可以了。Android的Eclipse插件为开发者完成了不少工作,而且或多或少能符合大多数开发者期望那样。但现在,Google最新发布的Android Studio 搅局了,这款Android IDE开发工具对任何Android 开发者而言,都是极大的飞跃。
虽然拥有”Android Studio”的名称,并且软件直接来自Google的,但大多数Java开发人员很快意识到这款IDE是基于IntelliJ IDEA,它是JetBrains公司的出品。我认识有的开发者,一直都大谈开源的美德,但一谈论IntelliJ就马上改变论调。有的甚至嘲笑我,不去投资699美元购买一个强大的能节省工作时间的IDE工具,是不够专业的表现。
Google深知道Eclipse并不是每个人都喜欢使用的,事实上分步的环境配置将不少人拦在了Android开发之外。通过发布一个免费的基于IntelliJ配置的Android开发工具,谷歌不仅满足了IntelliJ狂热爱好者的需要,同时也带给Android开发者更容易安装和使用的开发环境。然而,更大的问题是是下一步Google打算怎么走。
更智能的Android IDE
Android Studio基于IntelliJ的社区版本构建,并增强了外观和分析功能。许多的IntelliJ的爱好者对其复杂的编辑器和干净的外表情有独钟。事实上,Android Studio运行十分迅速,并提供响应式的接口。是的,的确是这样的。Android的模拟器继续给我带来惊讶的是在我的六核的台式机上运行的速度比在我的用了两年多的不怎么高级的智能机上跑Android 2.2还要慢。Android Studio只集成了模拟器,虽然对此抱怨是不大公平的,但是当调试阶段的时候,用户等待Android虚拟设备启动并耗费不少时间并会周期性暂停。
Android Studio还提供了一套深度分析工具,这将有助于帮助开发者完成代码和在交付前进行分析。Android的API现在标记了更多的元数据通常会返回空指针。如果忘记了捕捉这些异常,Android Studio将使用这些元数据去指出这些潜在的bug。我编写了一些看上去还算整洁的代码,但Android Studio很快就找到了上百种能让代码更整洁运行得更快的方法。IntelliJ团队花了很长时间去编写能分析开发者在编辑器中编写代码质量的代码,这样可以让开发者重构代码以提高代码运行效率。
Android Studio给用户提供了一套丰富的编辑和分析代码的工具码,但当其首次运行时其控制权是交给Android虚拟设备的。
Android Studio的主要贡献在于它是一个可以用于设计Android布局的拖拉控件集。用户可以拖动部件并且Studio显示对应的XML布局文件。
另一个不错的功能是可以让开发者在设计的时候能同时看到所设计的应用在6种左右不同设备中显示的尺寸大小。用户可以调整布局大小以到布局是如何显示在一台Nexus手机或平板电脑中。这对于那些必须将其设计的应用适配大量不同尺寸屏幕的Android开发者来说,是天大的喜讯。Android Studio在帮助将控件摆放在正确的位置方面的确做了很好的工作,因为调试阶段中最重要的部分就是测试其实际效果。能够快速看到设计的界面在多种尺寸中的效果对开发者来说的确是福音。
采用Android Studio需要那些熟悉Eclipse的开发者重新学习一下。不仅是一些按钮的位置不同了,Android Studio还和Gradle,目前最新的构建工具进行了整合。如果开发者仍然停留在Ant或Maven阶段,则将不得不使用另外一种解决方案去构建应用。无论是文件的结构还是语言,Gradle都有所不同。
关于云方面的特性
在web页面方面,Gradle将很容易创建多个版本,但将来情况如何不得而知。我认为,随着应用变得越来越复杂,Gradle将会是很受欢迎。当我测试的Android Studio的时候,我建了3个不同的应用使用的都是相似的代码,并使用三个不同的项目,因为这将更简单的。这样的工作将越来越普遍,因为我们都想统一去管理项目。
值得注意的是Gradle是最新的领域特定语言中的一个典型的例子,它被描述为“最小化”的语言,有着很好的自定义结构以便去应对各类情况,在这种情况下,Gradle是一种基于Groovy 的DSL,这意味着用户必须再三考虑Groovy这种语言和Gradle是否适合自己去学习使用。但在使用Android Studio过程中,你使用的是Java语言,这意味着在编程过程中要遇到三个略有不同,但结构相似的语言。虽然我一直非常欣赏的DSL的理念,但依然感觉在Android Studio中使用时有点复杂。
可惜的是,建立一个应用程序是如此复杂以至于我们需要一个图灵完备的构建语言,所以我们可能会使用最新和功能强大的构建工具 - 今天可能就是Gradle了。好消息是,象Hudson和Jenkins这些基于云的工具都内置了Gradle工具,因此我们可以期待越来越多的项目使用它。
(上图所示,Android Studio能让你能同时在不同的Android设备中看到应用的布局)
关于Android Studio中最有趣的部分是它给大家带来什么样的承诺。其网站宣传这是“早期预览版本”这是惯用的代替公测的手法宣传。在使用过程中,我创建一些基本程序应用时都没遇到任何严重的问题,但我注意到有几个地方的文档居然会跳到Eclipse文档中去。
Android Studio对于Gradle钟爱有加,他们认为Gradle将更加强大,并能与云更好地整合。Google已经在谈论将更多的功能——比如发行——加入到Android的开发环境。例如,你可以使用Google的云快速将你的应用发布到外国市场。Android Studio将不会孤军作战,它将有Google云的强大支撑。
这仅仅是Google对Android Studio今后发展设想的一项声称,Google认为Android Studio今后不单只是一个简单的IDE,而且越来越多会变为一个门户并跟云端整合的开发生态系统,beta测试者将很容易获得其代码,并且任何人都可以去创建。就目前而言,Android Studio在桌面端已经是功能十分强大的IDE。