最后,再简单地说一下Android的开发与其他平台的开发有什么异同。我们知道不同的开发方式将对最终的结果产生不同的影响。在以往的经验中,各厂家的开发工具,都在往可视化方向发展,比如说微软的 Visual Studio,一代比一代强大,可视化程度越来越高。而苹果的Xcode也是一样,它建议用户完全使用可视化的方案来解决一个应用。这些固然很好,但是带来的问题也不小。举个简单的例子,有一个 Windows Mobile 的应用,上面有一个 ListBox,而你正试图为该 ListBox 添加一个图标,并试图按每一项的内容限定来改变文字颜色。能做到吗?当然能,但是过程却不简单,你必须经历复杂的自绘才能实现这一点。这也是常规的RAD开发中普遍遇到的问题,即开发人员不能方便地控制到应用的每一个细节。开发框架对API的封装在某种程度上提高了开发的效率,但是另一种程度上,它屏蔽了太多的细节,而这些细节有可能就是开发人员所需要的。 而Android虽然也拥有可视的开发环境,但是它非常弱,第三方的RAD方案迄今为止也依然显得虚弱无力,对于用惯了微软等公司出品的高级RAD环境的人来说,可能会充满了无奈,也可能充满了鄙视,这种可视化算什么呢?如果仅仅从开发人员的角度来看,有利也有弊,弊端很显然是开发效率不够高,而事实上,由于Android采用Java语言来进行开发,其开发效率本身就不会太高。而利的部分,可能是会被很多高级工程师所喜爱的,因为它是牺牲开发效率,来换取最大的可定制性的一个典范。也许有一些刚开始学习Android开发的朋友会觉得制作界面有种种的不便,但是只要深入地学习下去,就会觉得Android的界面实现方式是非常领先的。同样举出上面ListBox的例子,在Android下,就可以通过一组短小精悍的代码来自定义ListItem和相关Adapter以实现。 我想优秀的开发人员是应该完全放弃RAD的,在目前的环境下,RAD几乎没有什么作为,反而会成为应用分层的一个巨大的绊脚石。在RAD的环境下,要求一位开发人员对软件的每一个部分都面面俱到,这怎么可能呢?比如说软件界面就是应该交由UI专员去设计,数据库部分也应该交由相关的负责人去做,完全不可能由开发人员从头到尾一个人搞定。如果哪个老板真的雇用了一位超级开发人员来包办一切,那么除非那个人拥有100年的工作经验,不然的话项目做死就是活该。我想Android的开发框架已经很好地说明了这个问题,程序资源(包括图片、字符串、其他的外部数据等)和代码完全分离,各部分人员各司其职,完成整个项目,每个部分的人员都不会有太大的压力。并且,由于Android采用XML对界面进行描述,使得对界面的更换也变得容易,设计师可以设计出多套界面,不论是用于UI方案评估或是在实际应用中更换界面风格都很方便。这也是其他移动平台的开发所不具备的。 最后,我想说的是,我非常想要一本类似于《Android设计手册》的参考书,我相信很多的开发人员也非常想要。只是短期内,我们依然只能自己来研究,推测用户可能的行为,并为此可能性做好打算。Android必定越来越成熟,而开发者们,你们做好思想准备了吗? |