google i/o 2013 android session 之 android开发者工具更新
本文由 importnew - 黄小非编辑。如需转载本文,请先参见文章末尾处的转载要求。
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把视频搬到了优酷网上,地址是:
http://v.youku.com/v_show/id_xntyynde1nja0.html
整个session的时长为53分钟。在session上,主持人和到场嘉宾为在场观众介绍的android studio的方方面面,尤其是对andoird studio的一些特色之处进行了重点介绍。那么下面,让我们一起来结合视频,看看这款令人瞩目的android ide吧!
&

&
本场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的主持人,应该也是老面孔,他们分别是:tor nobye(上图左) 和 xavier ducrohet (上图右,试试看,他的名字你能念出来不?)。这二位是几届google io大会以来专门做android开发工具sesssion的主持人,关注google io的人们对他们不会陌生。他们都是google android team的软件工程师,并且,xavier ducrohet是andoird sdk小组的技术负责人(tech lead)。二位的主持风格很像是在说相声,xavier的话比较多,负责主讲。tor则在必要的时候插上一两句话,是名副其实的逗哏角色。

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变得更加成熟。

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对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是一种强大的项目工程build管理工具。android studio通过对gradle工具的集成,实现了对android工程项目的分版本编译和发布功能。用户可以选择在测试版本,beta版本,正式版本等多个不同的版本之间切换构建工程。在切换的同时,位于intellij左侧的工程结构树中的源代码目录包,将会根据切换的版本采用不同颜色进行标识,便于开发者区分和判断。
在介绍完了android构建工具以后,tor作为主讲人,向与会的观众介绍了android studio在具体android应用开发方面的一些特性。他表示,他的介绍尽量挑选android studio有,但是eclipse adt没有的功能,以此来帮助大家了解这款全新的android ide的强大。

首先是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代码编辑器中查看应用资源的国际化,各尺寸图标等预览(如上图)。
&

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

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

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

&
第八个特色功能,叫做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和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,安装,创建工程,试用……这是立刻就可以搞定的事情,大家还等什么呢?赶快动手吧!
&
编辑:importnew - 黄小非
本文地址: http://www.importnew.com/4650.html
【如需转载,请在正文中标注并保留原文链接、译文链接和译者等信息,谢谢合作!】
&
-- 扫描加关注,微信号: importnew --
相关文章
- google i/o 2013隆重推出android studio (含下载地址)
- google i/o 2013大会andoird更新前瞻
- google i/o 2013和android
- android性能优化案例研究(下)
- 用android应用开发andoird应用
- android开发者必知的开发资源
- facebook推出android构建工具——buck
- 用android手机劫持飞机
- vertu手机决定采用android系统
- android性能优化案例研究(上)