2007年年底,android源码开始发布,2008年,G1手机上市。至今,android已经从1.0版本发展到2.0版本。中间经历了1.1、1.5、1.6版本。
android的出现的确让很多人兴奋,给个人爱好者新的、强大的体验,给开发者先进的设计思路和优秀的代码,给手机开发商发展智能手机提供了很好的机会,当然,也给中国移动的Ophone提供了源代码。
由于平台的更改,我从2009.3月底开始接触android。也是从那时了解到android的先进:
强大的编译系统:编译系统的制作是一大学问,在linux下编译过开源库的开发员更是身有体会。android的编译系统封装得很好,在模块中添加Makefile文件很容易。不过,由于android源码太庞大了,每次编译前都要扫描大量的文件,编译准备工作占用了很长的时间,在目前主流配置的电脑上,速度还将就。
功能基础库齐全:android的操作系统内核是linux,因此用到了大量的开源库
先进的框架:这是android最先进的地方。binder是android进程间通信非常高效的机制,数据访问也是android先进的地方。中间层用了大量的c++开源库,还封装了java中间层。java层对大部分的上层app来说是非常实用的。另外activity机制可以说是专门为移动设备设计的一套机制,每个应用程序都有自己的activity stack,并且很方便地启动其它进程中的activity,使得另一进程中的东西好像是在自己程序中启动一样,用户体验好。这点目前还没发展有那个智能手机平台能做得到,包括iPhone。
由于android上层是运行在java虚拟机上的,虽然android java虚拟机经过优化,但运行在没有java加速的cpu上效率还是会比c++低一些。另外,android程序占用的内存也会多一些。一个稍有点复杂的程序,占用22M以上的内存是很常见的。浏览器能占用差不多50M的内存,图片浏览更是占用多达60M内存。因此,android系统最好运行在192M以上的内存中,128M会因内存不够而引起很多问题,虽然android低内存时会杀掉一些后台程序。
对于开发者来说,开发android是一件至少有些兴奋的事件。但对一个团队来说,对产品项目来说,android产品的开发难度并不小。android出来时间不是很长,有不少地方还没完善,而且并不像mtk那样,从硬件到软件都提供完整的解决方案,拿来就能使用了。高通的解决方案会比较好,但也不是完美的,它在多媒体方面并不怎么强,而且入门费可不低。不过,高通的芯片有java加速,更重要的是,它的modem做得很好。从领导到团队中的开发人员,大家都希望早点把产品做出来,可是问题并不是表面看起来那么简单,这么容易做到。看看目前市场上的android手机就知道,能出产品的都是大公司,还没看到有哪个国产手机公司出产品的。
android对不同的人群有不同的机遇,对我们开发者来说,也是不错的机遇。android庞大、复杂的系统,搞精通不容易,可以学到很多东西,当然也会带给我们个人发展机遇。