Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,这时对象数据库Android编程功能简单、可灵活适应未来变化的优点就显现出来了。
Google推出了他的手机平台——Android,Google做什么都会引来无数人的眼球,并总能创造出非凡的奇迹。相信这次他推出这个手机平台,应该会吸引到无数开发人员的眼球,甚至会吸引很多有识之士转向手机开发。
因为相对于现有的其他平台,手机可是一块尚未充分开拓的新大陆,Android又是新中之新,机会要多很多。似乎是为了加速这个过程,Google还举办了“Android 开发者大赛”,奖金总额高达1000万美元。
在这次Beijing Open Party上,我们有幸认识了一位经验丰富的技术专家和两位db4o(注:著名对象数据库,主要应用在嵌入式设备平台)的核心开发人员。InfoQ中文站特邀编辑仝健对三位进行了采访,请他们从开发者角度谈一下对 Android编程功能的认识和感觉。
三位受访者的履历:
屠程远(以下简称屠):94年毕业,一直从事软件编程工作。掌握汇编、C、C++、Delphi、.NET、Java等语言及架构,主要从事操作系统底层和软件框架的编程工作。rcpandroid项目owner。
张黄瞩(以下简称张):自由职业者,Apache Harmony的committer, db4o 核心开发人员, P-Unit项目作者,熟悉java语言,应用程序架构设计,测试驱动开发,以及增量重构代码。
杨普(以下简称杨): Apahce Harmony PMC(Project Management Committee) 成员, committer,主要兴趣是编程语言,敏捷方法,开源软件和社区。 InfoQ中文站: 我们知道,Android是基于Java的,那么目前它支不支持其他语言呢?
其实我们不能说Android是基于java的。对于开发者而言,Android支持使用java语言语法编程,注意,不是支持 Java,而是Java语言语法,因为Android支持的Java语法类库仅仅是J2SE 5的子集,并无通过任何java标准认证。Android讲代码编译为Dalvik虚拟机字节码来运行。目前Android官方仅支持java编程语法。
是的,Java是Sun的注册商标,只有通过了相关规范的兼容性测试才能叫做Java,Android的Dalvik虚拟机和相关类库也不承诺遵守任何Java规范,有关这个问题,Apache Board的成员,MIT的stefano mazzocchi有一篇非常精彩的Blog:Dalvik: how Google routed around Sun's IP-based licensing restrictions on Java ME
InfoQ中文站:那么,对Java语法编程的程序员而言,***Java 开发群体是J2EE程序员,对于一个想转向移动平台开发的J2EE程序员来说,转向Android平台是不是一个好选择?又会有哪些困难?
我所编程接触过的移动平台支持Java的有J2ME、 BlackBerry、Android。J2ME的功能实在太有限,仅支持J2SE很小的一个子集;Android所支持J2SE的子集已经很充分了,在 Java编程方面和J2SE相比几乎没什么限制。
很多开源的Java类库仅仅需要很小的修改就能在Android上运行。而在J2ME上要想运用那些类库几乎不可能,只能重新造轮子。BlackBerry里的Java环境比J2ME要强,但强的有限,基本还是无法利用现有众多的J2SE的类库。
所以对想转到移动平台的J2EE程序员来说,转向Android平台的代价最小,所能做的事情最多。 转向Android平台的困难主要在于这是个全新的平台,手机硬件还没发布,没有实际项目积累和实际的运行环境。
现在开发基于Andoid的应用难免有些空中楼阁的意味,无法经过实际运行环境的检验。也很少有客户愿意为半年一年后还不保证能运转的应用买单,所以对程序员来说会有较长的投入期。
我个人觉得这个转型会非常容易。尽管Android编程功能支持的不是标准的 Java TM,但是已经覆盖了大部分的Java的语法和类库。困难之处,我觉得可能在于开发人员对移动设备和服务器设备的理解。
移动设备的具有一些独有的特性,比如电源消耗问题,屏幕大小限制,以及CPU的速度等。因此,在各个资源之间的平衡策略往往和传统的服务端编程不一样。
【编辑推荐】