Google I/O 2013 Android Session 之 Android开发者工具更新

Google I/O 可谓是一年一度的重要的开发者技术大会。在今年的Google I/O 2013上,Google并没有推出传说中的Android系统第5版本,而是围绕着目前的Android 4版本Jelly Bean,推出了一系列功能和服务方面的更新。此外,本次Google I/O的Keynote上,最引人眼球的莫过于Google联手JetBrains推出的最新Android开发工具——Android Studio了。Android Studio在Keynote现场的亮相,引来了在场观众的一片惊叹。在Keynote随后展开的一系列Android Session当中,就有一场Session专门针对Android Studio进行介绍。当然,这个Session无论是现场的参加人数,还是在Youtube上的视频点播人数,相较于其他Session都是遥遥领先。那么在这里,我们就配合视频,为大家简要介绍一下整个Android开发者工具更新Session的主要内容。

首先,《What’s New in Android Developer Tools》session的视频原始地址在:

www.youtube.com/watch?v=lmv1dTnhLH4‎

为方便大家不搬梯子,Importnew把视频搬到了优酷网上。

整个Session的时长为53分钟。在Session上,主持人和到场嘉宾为在场观众介绍的Android Studio的方方面面,尤其是对Andoird Studio的一些特色之处进行了重点介绍。那么下面,让我们一起来结合视频,看看这款令人瞩目的Android IDE吧!

 

Android Session——What’s new in Android Developer Tools

 

本场Session的题目叫《What’s New In Android Developer’s Tools》,直译过来就是“Android开发者工具更新情况介绍”。如果大家一直关注Google I/O的话,那么对这个Session应该不会陌生。因为早在Google I/O 2013之前的几届I/O大会,同样题目的Session就一直在举行,可以算是一个传统系列Session了。不过早几年的主题都是介绍基于Eclipse平台的ADT工具,今年将主题换成Android Studio,确实让人耳目一新。

Session主持人

说到这次Session的主持人,应该也是老面孔,他们分别是:Tor Nobye(上图左) 和 Xavier Ducrohet (上图右,试试看,他的名字你能念出来不?)。这二位是几届Google IO大会以来专门做Android开发工具Sesssion的主持人,关注Google IO的人们对他们不会陌生。他们都是Google Android Team的软件工程师,并且,Xavier Ducrohet是Andoird SDK小组的技术负责人(Tech Lead)。二位的主持风格很像是在说相声,Xavier的话比较多,负责主讲。Tor则在必要的时候插上一两句话,是名副其实的逗哏角色。

Android Studio简介

Session一开始,Xavier就操着浓重的法国口音的英语(没错,这哥们儿真是地道的法国人,听听他怎么念support这个单词就知道了),向现场观众介绍了Android Studio的几个要点:

1. 专注于Android的IDE

2. 是基于IntelliJ IDEA开源社区版本专门定制开发

3. 完全开源,免费

4. 在Google IO 2013上提供的是预览版的Android Studio

Xavier在会上专门针对选择IntelliJ IDEA作为Android IDE的理由进行了说明:Google Android Team从2007年以来一直是以Eclipse平台的作为Android的主要工具平台, 通过Eclipse插件的形式提供Android开发工具(也就是ADT)。但是后来,他们发现在Eclipse平台上,要想完全在其内部建立一套完整的Android开发工作流,是一件非常困难的事情,于是就考虑是否采用其他的技术来进行Android工具开发。

IntelliJ IDEA, 根据Xavier的介绍,是一个高度可扩展,可定制的开放IDE平台。而且JetBrains已经基于这个平台开发出了众多极为优秀的语言开发工具(例如PyCharm, Python语言开发工具;WebStorm, Javascript开发工具)。正是这样开发的架构,以及如此众多的成功案例,让Google Android Team看到了在IntelliJ IDEA内定制属于自己的开发工作流的希望。于是,IntelliJ就在这样的背景下正式加入了Android的家族。

当然在这个Session上演示的Android Studio(也就是现在提供下载的版本), 按照Xavier的说法,还是“预览版”,还有很多东西有待改进。Tor补充说,Android Studio的基础平台,IntelliJ IDEA,已经相当稳定和成熟了,但是Android Studio自身的一些功能还需要进一步的改进和测试,他们也非常希望能够得到来自于用户的反馈,用来让Android Studio变得更加成熟。

IntelliJ简介

Session接下来的项目,是对IntelliJ的一个简介。这个简介是由特邀嘉宾Dmitry Jemerov来主持进行的。Dmitry Jemorov不是别人,正是IntelliJ IDEA的开发公司,JetBrains的CTO。如果读者中有IntelliJ的忠实用户,特别是经常关注JetBrains TV的用户,应该对这个名字不会陌生,Dmitry Jemorov曾经在JetBrains TV上推出过Live code an IntelliJ plugin from scratch系列视频教程。

Dmitry Jemorov

 Dmitry对IntelliJ的介绍并不专门针对于Android Studio,他主要针对IntelliJ这个Java IDE本身的一些特性和功能进行了演示。相信凡是使用过IntelliJ IDEA这个IDE的读者对这些特性都不会感到陌生:自动import管理,强大的Refactor功能,无比智能的代码补全功能,内置版本控制功能,集成Git, SVN等各种版本控制协议……。ItelliJ的功能强大,方便易用,早已名声在外,甚至有人给它封上了Java开发神器的美誉。Dmitry提到,JetBrains公司开发这款IDE的初衷就是: 快乐地开发。我想,IntelliJ的出现的确让我们大家在开发的时候更加快乐了一些吧!(Dmitry在演讲的的末尾,还抛了个包袱,他说:如果大家对我们的IntelliJ IDE有什么意见和建议,或者是想表达IntelliJ比Eclipse要优秀的这种想法,那么就到Google IO的指定展示区找我们交流吧……当然,在场观众抱以一片笑声)

Dmitry下场后,Xavier继续对Android Studio的工程支持工具(Project Support)进行了介绍。Android Stuiod最大的特色就是,集成了Gradle构建工具。

内置Gradle支持

Gradle是一种强大的项目工程Build管理工具。Android Studio通过对Gradle工具的集成,实现了对Android工程项目的分版本编译和发布功能。用户可以选择在测试版本,Beta版本,正式版本等多个不同的版本之间切换构建工程。在切换的同时,位于IntelliJ左侧的工程结构树中的源代码目录包,将会根据切换的版本采用不同颜色进行标识,便于开发者区分和判断。

在介绍完了Android构建工具以后,Tor作为主讲人,向与会的观众介绍了Android Studio在具体Android应用开发方面的一些特性。他表示,他的介绍尽量挑选Android Studio有,但是Eclipse ADT没有的功能,以此来帮助大家了解这款全新的Android IDE的强大。

Layout预览

首先是Layout预览功能。作为Android IDE,Layout的预览功能是不可或缺的。Android Studio的特色,就在于它不但渲染Layout预览图,而且还把各种机型的真机形状也渲染到了Layout预览图上(如上图右),这样会让开发者更直观地看到程序在真实设备上的运行效果。当然,这个功能也是可选的,通过点击一个按键,就能将Layout预览恢复到Eclipse ADT那样的布局。

Layout的各种可视化编辑和控件拖拽的支持自然是不在话下,IntelliJ还比较智能地支持了Layout错误提示,如果在xml里面的布局标签写错了,预览图只会取消错误部分的控件显示,而不影响其他的正确部分,同时Layout部分也会对错误的标签给出提示信息。

字符串资源显示

其次是对字符串资源的动态展示,我们都知道在Android开发里,为了方便国际化,以及防止硬编码,字符串都是以资源的方式配置在单独的文件里的。正如上图所示,最后一行的实际编码是:

builder.setTicker(getString(R.string.elapsed_time,minutes,seconds));

而IntelliJ在IDE中,通过自动查找,将getString(R.string.elapsed_time,minutes,seconds)的内容翻译出来,显示在代码中,这样就能让开发者直接看到字符串资源的内容,而不用再去查找或记忆。

第三个特色功能,是通过标注,对代码中的方法进行动态判断。比如一个方法的参数定义了@notnull标签,那么IntelliJ会动态对代码进行编译分析,如果该参数有可能为null,IntelliJ会自动给出警告; 如果一个参数是枚举类型,那么当参数的值给出枚举外的值时,IntelliJ就会直接给出警告,提醒开发者参数可能存在问题。这些特性都能帮助开发者提前发现可能存在的漏洞。

 

资源预览

 

第四个特色功能,是对资源文件的预览。由于在Java代码中(例如Activity中),可能会涉及到对Android工程中资源文件的引用(包括颜色,图标等),因此IntelliJ非常贴心地在Java代码中,凡是涉及到资源引用的地方,都在当行代码左侧显示了颜色或小图标预览,让开发者能明确自己引用的资源是什么样子。当然,通过F1键,开发者还能在Java代码编辑器中查看应用资源的国际化,各尺寸图标等预览(如上图)。

 

IntelliJ提供的版本检查功能

 

第五个特色功能,是对Android版本的检查。由于某些方法需要特定版本的Android SDK才能运行,IntelliJ特地加入了对版本检测的功能,帮助开发者避免因Android SDK版本不够高而可能造成的潜在运行时问题。Tor特意提到,这个功能是Eclipse ADT里面没有的。

 

Scope功能

 

第六个特色功能,被称作为scope,也可以叫做“范围着色”功能。用户可以通过特定的过滤器,选择一定的代码范围,并将该范围内的所有代码都标注成一种颜色(如上图左侧的代码树中,部分代码包被标记为橙色),通过这样的颜色区分,能够有效地帮助开发人员区别在代码树中,哪些是自己开发的程序,哪些是引入的第三方源代码,保证开发人员不至于误修改不该改动的库代码文件,而引起整个工程的混乱。

 

Open Symbol功能

 

第七个特色功能,叫做open symbol,这个功能是在整个工程范围内,对特定的类或者方法进行检索,查找它属于哪个jar文件,或者属于哪个源代码包,版本号是多少等等。该功能能够在让开发人员不用打开搜索引擎,就直接获取一个类或者方法的基本信息,明了他们的来源和用途,有助于提高开发效率。

 

Language Injection功能

 

第八个特色功能,叫做Language Injection,语言注入。该功能是IntelliJ提供的最具亮点的特色功能之一。假设在Java源代码文件中写有正则表达式字符串,或XML格式的字符串,或者SQL语句字符串,通过语言注入功能,开发者就能直接在Java编辑器中按照正则,或XML,或SQL的规则对相应的字符串进行验证。IntelliJ也会根据对应的语言规则,自动判断这些字符串是否合规,并给出相应的反馈。Tor在现场演示这个功能的时候,也获得了观众的掌声。

基于IntelliJ的Android Studio所提供的贴心的功能是举不胜举的,Tor在现场演示的尾声也表示,就那么点儿时间,完全不够他展示所有他认为优秀的功能,不过希望大家能够通过关注Android Developer Tools的相关技术博客,从那里能够获取更多的有趣的信息。

Tor对Android Studio的演示结束了以后,Xavier介绍了下一个演示案例,这个案例是要通过Google App Engine,将两台独立的Android设备上运行的秒表app进行同步。这当然就是对Google Cloud和Android App协作的一个经典例子了。

 

通过GAE和云计算实现Android app同步

 

上图就是通过GAE和云计算实现Android app同步的原理示意图。由于GAE和Google云在中国大陆用得相对较少,因此这部分就不做详细介绍了。

在GAE和Google Cloud协同开发的介绍之后,Xavier又简单地介绍了一下关于Google Play上的Translation服务,以及ADT里面的Translation插件,然后就进入了观众提问环节。

在观众问答环节中,Xavier和Tor针对几个关于Eclipse和Android Studio的问题进行了回答。他们表示,Android Team虽然推出了Android Studio,但是目前仍然继续会对ADT保持更新(ADT的忠实拥趸可以松一口气了),并力图将Gradle集成到ADT里。不过目前的工作重点还是在Android Studio上,因为正如Session中所说的那样,Android Studio还有很多地方需要改进,还有很多功能需要从ADT迁移到Android Studio上。

观众问答环节结束以后,整个Session就结束了。从Google I/O 2013 Keynote上的惊鸿一瞥,到本次Session上的细致介绍,Android Studio可谓是高调亮相,博取了众开发者的眼球。IntelliJ本身的品质和功能自然是无可挑剔,Android Studio在功能上的细致考虑,也让开发者们感觉到无比体贴。虽是新生事物,却已让人信心满满,默认其前途无量。不过,任何软件产品优秀与否,还需要经过众多开发者的亲身检验,方能定论。Android Studio究竟是能愈发壮大,占领Android开发工具的头把交椅?还是与ADT起头并进,双雄争霸?抑或因为某种原因,被ADT抛之脑后?一切都只有等待时间来证明。不过,作为开发者的读者们,下载Android Studio Preview Edition,安装,创建工程,试用……这是立刻就可以搞定的事情,大家还等什么呢?赶快动手吧!

 

 

原文链接: Google I/O 翻译: ImportNew.com - 黄小非
译文链接: http://www.importnew.com/4650.html
[ 转载请保留原文出处、译者和译文链接。]

关于作者: 黄小非

码农级科学家,半吊子艺术爱好者,逻辑和原则控。(新浪微博:@黄小非

查看黄小非的更多文章 >>



相关文章

发表评论

Comment form

(*) 表示必填项

还没有评论。

跳到底部
返回顶部