关注国内外最新的Web应用程序

2008年2月5日星期二

诺基亚收购奇趣为哪般?

from cuijpus的专栏

       诺基亚和挪威奇趣科技(Trolltech)28日宣布达成合作协议,诺基亚将公开竞购在奥斯陆证券交易所上市的奇趣科技。热心人士已经算出,诺基亚至少要为此笔交易花1.53亿美元。

诺基亚2007年的全球销售额达511亿欧元,1.53亿美元差不多是它两天的纯利润。这桩并购对它而言只是毛毛雨而已,但对手机软件界和诺基亚的竞争对手来说,却可能是个不小的震荡。

相中奇趣“双面”实力

成立于1994年的奇趣科技对开源社区而言并不陌生,作为第二代开源公司,它以双重授权的商业模式为桌面和移动设备提供应用开发平台。其在桌面领域非常成功的Qt开发工具,实现一份源代码在Windows、Mac、Unix、Linux上的跨平台运行,有丰富的类库支持,在全球为众多网络服务商所用,包括Skype、Google Map、Adobe的Photoshop Elements都使用该软件。而它为手机和其他消费类电子提供的嵌入式Linux用户界面和应用程序Qtopia,也是Mobile Linux阵营一支非常重要的力量,中国的联想移动、中兴通讯、大唐移动、禹华、龙旗等都在利用Qtopia进行Linux手机开发,不过迄今为止没有大规模商用案例。

诺基亚为何要买这样一家公司?从一些论坛讨论看,手机阵营的第一质疑是“难道诺基亚要介入Linux手机”;而桌面阵营的首要疑惑则是“这家手机企业来桌面领域干什么”。其实,这两者相综合,正可以还原诺基亚购买奇趣科技的大部分目的。

Google搅局初显成果

“像Trolltech这样的公司,下一步不是被Android收购,就是被诺基亚收购。”手机软件外包商、南京诚迈科技副总裁、CTO杨海在去年12月7日由《中国电子报》举办的一次沙龙上这样认为。该次沙龙的主题是Google Android平台对手机软件产业的影响。

去年11月,Google成立由34家企业参加的开放手机联盟(诺基亚不在其中),并推出基于Linux的Android手机开发平台,这对现有手机界产生了较大的冲击。

首先表现在对已有Mobile Linux阵营的冲击。Mobile Linux因各自为政而互不相通,形成了LiMo、LiPS等多个阵营,且各阵营都企图树立商业壁垒,这也导致了Linux手机的规模商用化进程趋缓。而Google Android以更加彻底的开放决心进入移动Linux领域,一下子搅乱了原有企业授权收费的美梦。受冲击最大的,就有奇趣科技和日本的爱可信公司。因此像杨海这样的业内人士才会做出上述判断。

Google Android平台的冲击其次表现为对诺基亚的Symbian、微软的Windows Mobile这类封闭平台的冲击。任何一个做开发的人都深谙开放对一个生态环境的重要性,尤其是对手机这样的个人消费终端而言。面对Google Android可能获得的巨大成功,诺基亚必须主动出击,收购奇趣科技只是举措之一。

为转型互联网公司铺路

“收购奇趣至少可以防止奇趣被竞争对手买走,单从商业角度,这桩买卖就很划算。”振融戎通一位市场人员向《中国电子报》记者表示,工程师杨海也表示认同。前不久,加州的a la Mobile公司已经通过HTC的终端演示了基于Android平台的应用,其后台的部分工作就是由杨海所在的诚迈科技外包完成。“我看过Android一些底层的东西,有些做得确实不错,如果加上Qt的简单易用,那会如虎添翼。”他说。

当然,诺基亚对奇趣的期待不仅仅在这一层。双方发布的新闻稿上表明:“收购奇趣科技将有助于诺基亚加快移动设备和桌面应用的跨平台软件战略的部署,有利于其推出互联网服务业务。”诺基亚已经将自己正式定位为一家“互联网公司”,并对内部管理架构进行了调整。而奇趣QT的跨平台经验,能加速诺基亚推出跨手机和其他移动设备的产品。

千万别认为诺基亚只是一家手机公司,从2006年开始,诺基亚就开始推基于Linux的Internet Tablet系列产品,现在已经有N810等三款(是基于GTK运行的)。随着硬件门槛的降低,这种介于PC和手机之间的便携式终端正在普及,而奇趣的Qt正是这种终端的主流平台。日前风靡全球的低于3000元人民币的华硕Eee PC笔记本电脑就是基于Qt之上的。

手机平台中间件化

在手机产品上,奇趣现有技术也有与诺基亚互补的部分。“诺基亚手机目前在UI(人机界面)上还有欠缺的地方,尤其是向高配置多应用承载的智能手机发展时。奇趣的技术恰好可以形成互补。”一位熟悉诺基亚的研发人员告诉《中国电子报》记者。据介绍,UI分两层要点,一是交互逻辑,一是表现力。诺基亚的现有技术在交互逻辑上表现优异,能保证每步操作之间快速有效,但在表现力上还有欠缺,而Qt和Qtopia的优势则是比较容易做出有表现力的产品。

虽然《中国电子报》目前未能联系到诺基亚高层对收购后的计划进行陈述,但若大胆猜测,诺基亚将来一方面可能会推出“Symbian+Qtopia”的产品,Qtopia会像S60、S40一样成为其一个子系列;另一方面,也可能会推出Linux的手机或其他终端。在诺基亚的手机软件策略中,底层操作系统的概念肯定会越来越弱化,将来会形成横跨于各种操作系统、各类手持终端的中间件性质的手机软件平台。

向大家推荐几个比较好的Symbian论坛

Tech Blog of Legion.张玉谷

搜symbian资源,那就是相当的费劲了.半天搜到2个开发文档,还有也就是这个地址帖让人欣慰点了.不过最后编辑日期是2005/11/11 01:13pm,不知道有效的还剩多少.呵呵.
补充一下,刚才发现,symbian的资源,不用去外面找,csdn虽然提供的symbian教程很少,http://www.csdn.net/subject/symbian/
不过,我们广大的PG贡献的可不少,呵呵,大家去CSDN下载频道,搜symbian,结果会很让人happy!!!

Symbian公司官方网站
http://www.symbian.com/
UIQ公司官方网站:
http://www.uiq.com/
UIQ开发者门户网站(含UIQ论坛):
http://developer.uiq.com/
诺基亚论坛:
http://www.forum.nokia.com/
诺基亚论坛讨论区:
http://discussion.forum.nokia.com/forum/
诺基亚论坛中文讨论区:
http://discussion.forum.nokia.com/forum/forumdisplay.php?s=2c69701ec253c19473de786fc91d0fdc&forumid=71
索爱官方网站:
http://www.sonyericsson.com/
索爱开发者论坛:
http://developer.sonyericsson.com/show_forums.do
NewLC:
http://www.newlc.com/
NewLC论坛:
http://forum.newlc.com/
My Symbian:
http://my-symbian.com/
http://my-symbian.com/forum/
All About Symbian:
http://www.allaboutsymbian.com/
http://www.allaboutsymbian.com/forum/
Symbian One:
http://www.symbianone.com/
http://www.symbianone.com/index.php?option=com_simpleboard&Itemid=48&Itemid=74
--------------------------------------------------------------------------------
WDA中文网
http://www.wda.com.cn/
CSDN:
http://www.csdn.net/
http://community.csdn.net/
http://www.csdn.net/mobile/
http://www.csdn.net/mobile/nokia/listncsp.aspx
移动未来:
http://www.move2008.com/
http://www.move2008.com/bbs/index.asp
Mobile2008(挂了):
http://www.mobile2008.com/
M9W移动无限:
http://www.m9w.com/
http://www.m9w.com/forum/
其它:
http://www.symbian.org.cn/
http://www.3g4g.net/
http://www.sf.org.cn/
http://www.msale.net/
--------------------------------------------------------------------------------
以下是热心网友推荐的,未验证:
http://www.3g-express.com/
http://www.ayychina.com/7650bbs/index.asp
http://www.ioicn.com/
http://www.ioicn.com.cn/
http://www.phonesky.net/
http://www.dfun.net/
http://www.ebds.com.cn/bbs/
http://www.bwo.com.cn/forum/

Technorati 标签:

Symbian发展历史大事记

2008.02.01  来自:CSDN

2005年初我们看到发布的版直接就是Symbian OS v9.1操作系统。该版本改善了应用程式及其内容保护,使用了新型ARM处理器,软体开发人员必须要改变安全设定码才能正确使用。紧接着同年2月14日发布,诺基亚发布了S60 3rd Edition(第三版),它正是主要基于Symbian OS v9.1操作系统的。S60第三版提供了由Symbian Signed认证和一种更高效的二进制格式来加强行业领先的安全性。

2004
已经发布的采用Symbian OS 的手机包括Panasonic X700, Motorola A1000, Nokia 9500, 7610 和N-Gage QD, Samsung SGH-D710。Arima公司与LG电子获得了Symbian的授权。同时,联想公司决定将Symbian操作系统用于他们最近的手机产品中。2004年2月,Symbian在授权LG等公司的时候,同时也发布了最新的Symbian OS v8.0,并提供了8.0a和8.0b两个版本。该版本改善了实时系统性能,提高了原有操作系统的兼容能力。此后不久,诺基亚针对它发布了S60第2版Feature Pack2,它正是采用的Symbian OS v8.0a操作系统。同年,Symbian联盟又发布了Symbian OS v8.1版,基本上它是优化过的Symbian OS v8.0版,也提供了8.1a和8.1b两个版本,各自代表搭载EKA1和EKA2核心。搭载EKA2版本的8.1b支援单晶片手机,但不包含额外的安全层。那么诺基亚紧接它之后发布的S60第2版Feature Pack3就是采用Symbian OS v8.1a操作系统的。接下来按理该发布Symbian OS v9.0,但是这个版本并没有正式发布,而在2004年就被停止开发。

2002
DoCoMo 发布富士通第一款基于Symbian 操作系统的3G 手机 Sendo 取得Symbian 操作系统的许可证诺基亚发布诺基亚3650 和N-Gage 2002 年6 月诺基亚7650 向公众出售 西门子成为Symbian 的股东 索尼爱立信发布P800 Smartphone 适用于3G 手机的Symbian 操作系统v7.0 问世索尼爱立信成为Symbian 的股东和许可证持有者

2001
富士通取得Symbian 操作系统的许可证第一款基于Symbian 操作系统的2.5G 手机,诺基亚7650 发布全球第一款采用开放式Symbian 操作系统的手机,诺基亚9210 个人通讯器向公众出售,同时还提供多样的开发商工具 Symbian 成为SyncML Initiative 的赞助商西门子取得Symbian 操作系统的许可证

2000
索尼和三洋取得Symbian 操作系统的许可证全球第一款基于Symbian 操作系统的手机,爱立信R380 Smartphone 向公众出售 Symbian 被通用移动通信系统论坛(UMTS Forum) 评为“成功地在信息社会移动通信领域引入通用移动通信系统(Universal Mobile Telecommunication System, UMTS )”

1999
Matsushita(松下)加入Symbian,成为其股东和许可证持有者 Symbian 被美国的Red Herring 杂志评选为“综合评定最佳”和“最具长期潜力”的公司。

1998
Symbian 成立于1998 年6 月,是由爱立信、摩托罗拉、诺基亚和Psion 共同持股的独立私营公司.

Technorati 标签:

谈谈智能手机软件(2):Linux手机软件

fmddlmyy的专栏

 

本文将基于Linux内核的智能手机应用处理器软件简称作Linux手机软件。
1 概述
1.1 为什么要选择Linux平台?
简单说:选择Linux平台的好处就是资金投入少;因为基本上不需要授权费,产品的软件成本也比较低。选择Linux平台的不利之处也是很明显的:
需要很大的研发投入。
北京的一家公司有30多人的研发队伍用QT做智能手机,做了快两年,还没有上市。QT是Linux平台上的一种商用图形用户界面(GUI)开发包,也有GPL版本。深圳一家公司用Linux+GTK做智能手机,完成度比较高了,但还没有推向市场。GTK是与QT齐名的GUI开发包,GTK是以LGPL发布的自由软件。虽然产品没有上市可能有多方面的考虑,但将Linux手机做到产品化的难度也可见一斑。
Linux手机没有统一的应用软件开发平台
Windows Mobile和Symbian都是一家公司主导的,有统一、开放的应用软件开发平台。有很多公司、个人为它们开发应用软件。但是Linux手机没有统一的应用软件开发平台,因此没有大量的第三方应用。这可能是Linux手机最难克服的缺点了。因为这个缺点是Linux作为开源软件所固有的。尽管不少公司或联盟都想统一Linux平台,但至少目前还没有明显的效果。而且统一的Linux应用平台,即使是开源的,似乎也不符合Linux的自由精神。这是自由和集中、开源和商业的一个很难调和的矛盾。
从2007年开始出现的OpenMoko、Android、GPE Phone Edition等开源Linux手机方案开放了自己的参考设计,在一定程度上降低Linux手机软件的研发难度。但这些方案本身还存在各种问题。即使有比较成熟的参考设计,也需要资深工程师才有应用、定制这些方案的能力。即使作出样机,没有充分的测试,也不敢投入量产。
Linux手机没有品牌优势
Linux手机没有统一的品牌,在品牌优势上远低于Windows Mobile或Nokia主导的Symbian,在市场竞争中处于不利态势。
1.2 开源软件的许可证
Linux方案能够降低软件成本的主要原因就是使用了包括Linux内核在内的大量开源软件。 开源软件总是按照某个软件许可证发布的,必须遵守开源软件的许可证,才能合法地使用开源软件。有很多种开源软件许可证。最常见的许可证就是GPL和LGPL。许可证有不同的版本。例如Linux内核使用的许可证就是GPLv2。
GPL和LGPL都是GNU组织开发的许可证,可以见:http://www.gnu.org/licenses/licenses.html。GNU是倡导自由软件的非盈利组织,GNU组织为世界提供了大量优秀的自由软件。GPL代表The GNU General Public License。LGPL代表The GNU Lesser General Public License。尽管这些文本有中文翻译,但法律上生效的还是英文文本。
1.2.1 GPL
我们可以自由地运行GPL软件,例如使用gcc编译器编译商用软件。但如果我们在自己的程序中引用了GPL软件(不管是静态链接还是动态链接),并发布这个程序,我们就必须给获得该程序的人提供相同的权利,通常是也按GPL发布。指责GPL的人根据这个特性将GPL称作病毒。
Linux内核是以GPL许可证发布的。不过,Linus Torvalds(Linux的原作者)在GPL许可证前加了说明:它规定在内核上执行的应用程序不受GPL的制约。所以在Linux上运行的应用软件可以是私有的。但是如果我们修改了Linux内核,就必须以GPL发布修改过的内核。例如Google的Android平台需要修改内核,它在发布二进制映像时就必须发布所修改内核的源代码。当然,Google发布的内核代码只是基于模拟器(QEMU)的内核版本,没有什么参考价值。
关于Linux上的驱动程序模块(需要装载到内核运行)是否要遵守GPL,以前有争议,现在的说法是只要该模块仅使用公开的内核接口,就可以不按照GPL发布。一般而言,GPL不适合于商业软件。除非厂家在用GPL发布软件的同时还能找到盈利模式。确实有不少公司做到了,软件不收费,但服务是收费的。
1.2.2 LGPL
LGPL比GPL友好。我们可以在自己的程序不加修改地引用LGPL程序,只要保留版权声明,还可以将该程序作为私有软件发布。但如果我们修改并引用LGPL程序,我们就不能按照私有软件发布程序,必须遵守LGPL的规定。
除了GPL、LGPL外,常用的许可证还有BSD、MIT、Apache许可证。例如:Google的Android使用Apache许可证。BSD、MIT、Apache许可证都是对商业应用友好的许可证。
1.3 Linux手机软件开发要做什么?
Linux手机软件开发要做的事情主要包括:
根据硬件平台移植、调试引导程序。例如:u-boot、vivi等。
内核移植。选择合适的内核,在自己的硬件平台上跑起来。开发各种外设的驱动程序。
选择GUI开发包,选择组件通信包,选择其它需要的开源软件包,搭建应用软件开发框架。
基于应用软件开发框架开发应用程序。除手机界面之外,至少还要开发与基带处理器通信的程序,也就是AP端的AT命令程序。
开发的输出是引导区映像、内核映像、包含完整手机应用软件的根文件系统。手机软件方案还要包括系统升级方案和应用程序更新方案。手机软件通常包含软件包管理功能,例如OpenMoko就使用了iPKG软件包管理器(http://handhelds.org/moin/moin.cgi/Ipkg),可以从手机的图形界面更新应用程序。图1是一个应用软件开发平台的例子:

图1  GNOME Mobile平台
这是基于GTK的方案,组件通信选择了D-Bus。上图也列出了一些最常用的开源软件包。事实上,在手机软件的发布版本中可能要使用几十个开源软件包。其中GUI开发包的选择是一个很关键的选择,因为GUI开发包的选择会影响大部分其它组件的选择。
Android的做法比较特殊,它没有使用Linux平台的GUI开发包。Android系统中包含一个Java虚拟机,它的GUI开发包、应用开发框架(framework)都用java语言实现,然后由Java虚拟机解释运行。下面还会讨论。
1.3.1 GUI开发包的选择
Linux平台的GUI开发包主要有QT和GTK两个主流产品。KDE是基于QT开发的PC窗口系统,GNOME是基于GTK开发的PC窗口系统。很多Linux发行版的窗口系统都是在KDE或GNOME基础上开发的。图1的GNOME Mobile是GNOME项目组计划开发的移动应用开发平台,目标是规范基于GTK的移动应用开发,这个项目目前还没有完成。
QT是使用广泛的跨平台GUI开发包。QT的嵌入式版本主要有两个部分:Qtopia Core(原来叫QT/Embedded)和Qtopia。Qtopia Phone Edition是在Qtopia和Qtopia Core基础上定制的手机版本。图2是Qtopia Phone Edition的架构。QCop是该平台的组件通信方式,类似于KDE平台的DCop。

图2  Qtopia Phone Edition架构
Qtopia Phone Edition原来是商业软件,从4.3版本开始发布开源软件,使用GPL许可证。从上图可以看到,Qtopia Phone Edition的完成度也不高,从Qtopia Phone Edition出发到完成一个商用手机还需要做大量的工作,例如选择基于QT的浏览器、邮件、即时通讯程序等。
GTK和QT有两个明显的区别:
QT完全采用面向对象方式设计,提供C++开发接口。而且QT对C++的语法进行了扩充,有自己的元对象系统。在QT中,对象通信(进程内通信)所采用的信号/槽机制、运行时类型信息、动态属性等功能都是C++语法不支持的,必须先用QT的moc工具处理成正常的C++源文件,再用C++编译器编译。GTK提供C接口。
GTK采用LGPL许可证,比Qtopia更友好。QT是由商业公司,挪威的Trolltech(奇趣)维护的(http://trolltech.com/products/qtopia)。GTK是由开源组织(http://www.gtk.org/)维护的。
最近,Nokia宣布要收购Trolltech公司,QT的未来有较多未知因素。目前的开源手机方案通常选择GTK。
国内还有一个叫作minigui(http://www.minigui.com/index.php?id=home&L=1)的GUI开发包。原来是开源软件,现在是一家叫作飞漫软件的公司在推广。他们有手机开发平台、浏览器、手写输入的方案,当然都是收费的,也没有GPL版本。minigui目前的应用主要是一些需要简单图形界面的工业控制设备。据飞漫介绍:大唐有一款TD-SCDMA样机采用了ThreadX操作系统和minigui。
从前面的讨论可以看到:Linux手机软件开发尽管可以使用大量开源程序,但要做出手机产品还有很大的工作量。每家公司做一套手机开发平台,各平台的应用程序也不兼容。不少公司和组织通过各种行动以求统一Linux手机开发平台,让第三方应用程序有较好的兼容性。虽然目前还没有什么统一的平台,但确实有一些开源的Linux手机方案。
2 参考设计
前几年网上没有什么开源手机方案,有一些PDA的开源方案,其中比较著名的是Familiar项目(http://familiar.handhelds.org/),这个项目是用Linux实现PDA的操作系统。Familiar项目的目标平台是惠普的iPAQ系列掌上电脑。基于Familiar项目,有两个主要的GUI项目:基于GTK的GPE(http://gpe.handhelds.org/)和基于Qtopia的Opie(http://opie.handhelds.org/cgi-bin/moin.cgi/)。GPE和Opie都是独立的项目,可以应用到使用Linux的其它嵌入式平台。
最近一两年,不断有组织和个人提出“统一”的Linux手机平台方案,主要有:LiMo、OpenMoko、LiPS、Android。下面会分别讨论。此外,还有一些公司有商用Linux手机开发平台:例如前面提到的Trolltech公司的Qtopia。爱可信(ACCESS)的ALP(ACCESS Linux Platform,http://www.access-company.com/products/linux/alp.html)平台。
2.1 平台简介
2.1.1 LiMo
LiMo(http://www.limofoundation.org/)是 Linux  + Mobile 的简写。这是一个产业联盟。他们可能会发布一个应用软件平台,不过现在还没有发布任何东西。LiMo的发起会员是:美国摩托罗拉,日本NEC,日本NTT DoCoMo,日本松下移动通信,韩国三星电子,英国沃达丰。

图3  LiMo的方案架构(左边是大框架,右边要细化一些)
图3是LiMo的系统框架。LiMo把开发工作分配给各个成员,图4是他们的工作分配图。

图4  LiMo的开发工作分工
可以看到LiMo计划采用GTK和D-Bus。
2.1.2 OpenMoko
OpenMoko(http://www.openmoko.org/)是台湾大众电脑(First International Computer,FIC) 发起的开源手机项目。网上有一篇关于OepnMoko的详细介绍,可以见http://gb-www.digitimes.com.tw/gate/gb/tech.digitimes.com.tw/ShowNews.aspx?zCatId=A2O&zNotesDocId=0000079427_A6OLFT3HUX3IY4B646C0Z。

图6  OpenMoko的系统架构
图6是OpenMoko的系统架构。其中Finger application指用手指控制的应用程序,Stylus application指用笔控制的应用程序。图7列出了OpenMoko使用的开源组件以及组件间的依赖关系。

图7  OpenMoko使用的开源组件及组件的依赖关系
OpenMoko的GUI选择了GTK,组件通信选择了D-Bus。在OpenMoko平台中,应用框架(包括libmokocore、libmokoui、libmokopim、libmokonet)、应用程序部分是OpenMoko组织开发的,其它部分使用开源软件。
OpenMoko是目前最开放的开源手机方案。OpenMoko项目还作了样机。第一版样机Neo1973是为开发者做的,可以从网络(https://direct.openmoko.com/)购买。第二版样机Neo FreeRunner计划在3月份投入量产,这版样机是针对最终消费者的。OpenMoko已于2007年10月23日成立公司(我本墨客股份有限公司),研发总部在台北的内湖科学园区。
OpenMoko的软件虽然很接近产品,但还不算成熟。目前存在有时漏接电话,有时打不出去的问题。估计这应该是AT命令部分的问题(gsmd模块)。Trolltech 公司的Lorn Potter 将Qtopia 4.3.1移植到OpenMoko机器上,可以正常运行,通话功能也比较稳定。
除了前面提到的代码(暂时)还不成熟,OpenMoko还有以下缺点:
文档太少。当然这也是开源软件的一个特点。开源软件的开发者通常比较少,他们更愿意把时间花在代码上而不是文档。因为代码发展很快,即使有文档,也很难与代码同步。
OpenMoko把主要精力放在了整机软硬件设计上,对统一的API接口没有给予充分的重视。这一点与LiPS、Android、Nokia的Maemo等有很大区别。其实开源手机方案应该将统一应用软件开发平台作为一个主要目标。虽然很难实现,但Linux手机确实需要一个统一的应用软件开发平台。即使是三国鼎立,也比诸子百家要好。
2.1.3 LiPS
LiPS(http://www.lipsforum.org/)代表Linux Phone Standards Forum。LiPS论坛是法国电信主导的一个行业联盟,目前有33个成员。LiPS论坛的目标也是规范Linux手机软件的开发,它的思路是制定Linux电话终端标准。目前在法国电信北京研发中心任职的黄思源是LiSP论坛的发起者,他在自己的Blog上介绍了论坛的来由(http://blog.sina.com.cn/s/blog_4a09ed6f01000420.html)。

图8  LiPS的任务
如图8所示,LiPS的目标就是指定一套开放、统一的Linux手机API,上图中橘黄色部分就是LiPS希望规范的部分。LiPS把这部分中间件称作LiPS Services Sets。LiPS Services Sets的架构如图9所示:

图9  LiPS的Services Set
其实就我看来,LiPS以标准规范Linux手机的想法是很难成功的。一个优秀的、开放的参考设计比文档更能吸引人,更有可能成为事实标准。不过,LiPS的文档写得不错,如果既有规范的文档,又有开放、完善的参考设计,就更容易胜出。
LiPS确实有一个参考设计,叫作GPE Phone Edition(http://gpephone.linuxtogo.org/),记作G(PE)²。但G(PE)²的设计目标不是一个完整的产品,它只提供符合LiPS的部分参考设计。所以,G(PE)²的完成度要低于OpenMoko。图10是G(PE)²的架构:

图10  GPE Phone Edition的架构
G(PE)²的GUI开发包用的也是GTK,组件通信用D-Bus。G(PE)²项目的公开资料更新较慢。
2.1.4 Android
Android(http://code.google.com/android/)是OHA(Open Handset Alliance)组织发布的一个手机软件栈,包括操作系统、中间件和主要的应用。OHA是Google主导的一个行业联盟。图11是Android的架构。

图11  Android的架构
前面也介绍过,Android的一个重要特点就是它的应用框架和GUI库都用Java语言实现。Android内部有一个叫作Dalvik的Java虚拟机,Java程序由这个虚拟机解释运行。Android平台的应用程序也必须用Java语言开发。网上有评论说Android的虚拟机使用Apache的Harmony类库。Harmony类库是Apache组织开发的开源Java类库,用Apache许可证发布。
Android应用框架采用了Mash-up的组件模型:组件(Activity)向系统注册自己的功能,每个组件要使用其它组件的服务时提出自己的要求(intent),系统根据intent在已登记的组件中确定合适的组件。Android平台的API文档很完善。在我看来,基于Android平台开发应用软件应该是一件轻松、愉快的事情。但是,选择Android平台存在以下问题:
Google目前只开放了SDK,即应用软件的开发接口,没有开放中间件的源代码。
在没有源代码的情况下,也可以把Android移植到兼容的开发板(CPU核采用ARMv5指令集)上,但因为不能定制而无法将其用于实际产品。Google现在没有明确什么时候发布中间件的源代码。其实Google也没有明确说过将发布中间件的源代码。
Google说Android是“the first complete, open, and free mobile platform”。在英文中“free”既可以解释成“自由”,也可以解释成“免费”。如何解释完全在于Google。我觉得Google最想抓住的是应用软件的开发者,即希望公司和个人都学习它的SDK,为它的平台开发应用软件。Google肯定会和厂家合作,开发支持Android平台的手机。但Google是否会在网络上完全开放中间件代码,还是个未知数。
如果Google完全开放这个平台,那么与J2ME类似,各公司肯定会在这个平台上添加自己的扩展,使各平台不能完全兼容。所以,Google很可能用商业手段来保证Android平台的一致性。
Android的设计很漂亮,但是否实用还有待实践检验。
Android使用Java既可以利用Java的平台无关性,又可以降低应用软件的开发难度。但无论怎么优化,Java程序的速度是肯定不如原生代码的。Google的Mash-up的思想虽然不算新颖,但在嵌入式环境中投入实用,也是一个新的尝试。设计总有取舍,Google的选择是否合理,还需要实践检验。
2.1.5 其它平台
除了上述平台,还有一些移动应用开发平台。
2.1.5.1 Nokia的Maemo
Maemo(http://maemo.org/intro/)是Nokia推出的基于Linux的移动应用开发平台。目前用于Nokia的N800、N810等终端设备。N800、N810不是手机,它们被称作互联网设备(Internet Tablet)。不过相信Nokia随时可以将Maemo方案用于手机。目前没有做只是出于商业考虑。

图12  使用Maemo的N810和Maemo平台架构
Maemo也提供了完善的SDK、详尽的文档,组织了Maemo社区,以图吸引个人和公司为Maemo平台开发应用软件。Hildon是Nokia为Maemo平台设计的应用框架。Maemo的浏览器是在Mozilla基础上开发的嵌入式版本,做得比较完善。这是一个开源项目(http://browser.garage.maemo.org/)。
2.1.5.2 Poky
Poky(http://www.pokylinux.org/)是基于OpenEmbedded的一个Linux编译、发布和开发环境,原来是OpenedHand组织内部用来做设备软件开发、配置、调试和性能分析的工具。Poky环境包含了一个实验性的项目Sato,Sato是一个基于GTK+/Macthbox的PDA/智能手机的UI方案。

图13  Poky包含的Sato是一个试验性的PDA/智能手机的UI方案
Poky的blinky版本包含了Sato 0.1版。Sato还处于开发的早期阶段。Poky是采用MIT许可证的开源软件,对商业应用友好。

谈谈智能手机软件(1):概述

fmddlmyy的专栏

1 手机的硬件实现方式
1.1 三种硬件方案
手机的硬件实现方式主要有3种:
只用基带芯片,通常称作feature phone。
基带芯片加协处理器(CP,通常是多媒体加速器)。这类产品以MTK方案为典型代表,MTK全系列的产品基本上都属于这样的方案,展讯等其他公司也在推类似的产品。这是增强了多媒体功能的feature phone。
基带芯片+应用处理器(AP),也就是通常说的智能手机(smart phone)。有的方案将应用处理器和基带处理器做到一颗芯片里面,例如高通的MSM7200A。它有一个ARM11核(应用处理器)和一个ARM9核(基带处理器),两者通过共享内存通信。当然,智能手机也可以使用增强影音处理能力的协处理器。
本文的研究对象是智能手机的应用处理器上的软件,所以仅讨论智能手机,即基带+AP的方案。
1.2 智能手机
在智能手机中,手机功能的实现以应用处理器(AP)为主,基带芯片提供通信功能。可以把AP看作计算机,把基带芯片看作AP的无线modem。这个无线modem通过AT接口(相当于计算机和调制解调器之间的接口,但各厂家都有扩展命令)提供通话、短消息、上网、UIM卡等功能。本文主要讨论AP上的软件。
2 AP软件概述
2.1 什么是AP软件
本文提到的“AP软件”是指应用处理器(AP)上所运行软件的总和,本文也将其称作手机软件或智能手机软件。如果把手机看作一台电脑,手机软件就相当于电脑上的操作系统与所有常用软件的集合。所以手机软件的重要性是不言而喻的。
另一方面,手机软件是智能手机的主要成本因素。按照一位Design House老板的说法:“硬件电路应该没问题.只要软件可以搞定”。当然,AP软件不是那么容易搞定的。在讨论AP软件现状前,让我们先看看AP软件的构成。
2.2 AP软件的构成
从实现的角度看:AP软件=操作系统+中间件+应用软件。以google的android为例:

图1  Android的软件框图
当然这只是个粗略的说法,没有包括引导程序(bootloader)。从执行的角度看,AP软件总是从引导程序开始运行,装载操作系统内核后将控制权交给操作系统;操作系统装载文件系统,执行文件系统上的系统初始化程序,启动所有后台服务程序,运行一个窗口管理器,为用户提供图形用户界面。然后,就是根据用户的操作执行窗口管理器的某项功能或调用相应的程序了。
2.2.1 操作系统
智能手机使用的操作系统主要有Winodws Mobile,Symbian,Linux,还有一些其它专有系统,例如RIM公司的黑莓(BlackBerry)操作系统(http://www.blackberry.com/),苹果iPhone的MAC OS X。

图2  黑莓手机
在这些系统中,只有Linux内核是一个“全裸”的操作系统。Winodws Mobile和Symbian的发布版本都集成了操作系统、中间件和大量应用软件。相对于黑莓、iPhone,我们通常把Winodws Mobile,Symbian,Linux称作“开放”系统,因为不同厂商都可以使用(使用成本各有不同)。
网上在提到智能手机操作系统时通常还会提到Palm OS。Palm OS原来是PDA的操作系统。2003年Palm公司收购了Handspring公司,获得了Handspring的Treo智能手机;同时将自己的软硬件部门分拆为PalmSource(软件)和PalmOne(硬件),其中PalmSource拥有Palm OS。2005年9月,一家叫爱可信的日本公司以3.24亿美元的现金收购了PalmSource。爱可信将Palm OS更名为Garnet OS。爱可信原来的主要业务是一个叫做NetFront的嵌入式浏览器,联通的彩E方案也是这家公司提供的。2006年12月,Palm以4400万美元买下了Palm OS Garnet源代码的非独占性永久授权,用于Palm Treo智能手机等产品。
上海科泰世纪公司一直在研制自己的“和欣”嵌入式操作系统,并宣布自己与TD-SCDMA产业联盟有很好的合作关系,但目前还没有大量上市的产品。“和欣”是一个专有系统,公开的资料很少。“和欣”的主要思想是将软件分解为可以自描述的构件,在使用时根据需要拼装,可以理解为嵌入式领域的SOA(面向服务架构)。SUN的jini在90年代末就提出过“发布和发现服务”的架构,可以将“和欣”看作jini的C/C++实现。最近,Google的Android方案也包含了类似的组件模型,组件(Activity)向系统注册自己的功能,每个组件要使用其它组件的服务时提出自己的要求(intent),系统根据intent在已登记的组件中确定合适的组件。可以,光有好的想法是不够的,还要有将想法付诸现实的能力。
2.2.1.1 “没有”操作系统的AP软件
有些公司在研发智能手机软件解决方案时没有使用开放的操作系统,他们可能使用了一些简单的实时操作系统(RTOS)内核,也可能采用了单任务的方案。这些公司也会向客户提供自己的SDK(软件开发包)或者方案的源代码。使用这些系统可能有以下问题:
系统的稳定性没有经过充分的验证;
没有广泛的第三方软件支持。
如果要定制它们的功能,就要投入研发力量熟悉他们的专有方案。如果开发的产品因为稳定性方面的考虑不能上市,前期的研发投入就会有较大的浪费。
2.2.2 中间件
中间件在操作系统的基础上,为应用软件提供了开发平台。好的中间件可以提供一个完善的应用软件开发框架(Application Framework)。中间件要解决的最基本的问题就是:
GUI开发包。GUI就是图形用户界面。应用程序的开发者使用GUI开发包开发应用程序的图形界面。
组件通信机制。中间件要为应用程序提供通信方式。
中间件的功能是很繁杂的。所谓“中间件,看不见”,应用程序主要负责与用户的交互,大量与用户交互无关的、看不见的功能都是在中间件中实现的,并封装成接口给应用程序调用。
大多数提供操作系统的公司都提供包含中间件的智能手机软件平台。只有在Linux平台,我们才需要自己定制内核,自己构造中间件和应用软件。也有一些提供Linux中间件的公司,例如韩国的MIZI Research(www.mizi.com),国内的飞漫软件(www.minigui.com)等。爱可信也提供基于Linux平台的智能手机开发平台(ACCESS Linux Platform)。
2.2.3 应用软件
应用软件包括厂家定制的用户界面(UI)和第三方提供的应用软件。智能手机的一个强项就是能够自由安装和卸载第三方提供的应用软件。不过,功能手机也可以通过J2ME或BREW开放第三方软件开发平台,只是功能上略弱一些。
2.3 AP软件的现状
目前市场上的手机还是以功能手机为主,特别是加CP的功能手机。例如:很多小公司都在使用从各种渠道获得的MTK方案。也有大公司用MTK,例如PHILIPS的399就使用了MTK的MT6227。但智能手机的市场份额呈明显的上升趋势。

图3  智能手机的市场份额
粗略估计:在出货的智能手机中,AP软件以Symbian和Winodws Mobile为主,有少量采用Linux的手机(摩托罗拉、三星等)。黑莓在国外有较大市场份额,但暂时没有引入国内。另外,还有一个使用专有系统的iPhone。
值得注意的是,Winodws Mobile在国内的出货量在不断上升。按照黄思源(http://blog.sina.com.cn/huangsiyuan)的分析,市场上有5种Winodws Mobile:
“正宗”版。行货的Windows Mobile简体中文版;
“水货”版。往往设备上标有欧洲运营的标志,这种设备兼具第一种的功能和相对较低的价格;
“平民”版。用Windows CE装上一些应用软件,充作Windows Mobile;
“李鬼”版。在其它操作系统上“临摹”的Windows Mobile,第一二层菜单相似,其它就不一样了;
“押寨”版,从其它设备中“扒”下来的,找个相似的设计硬装进去。
为什么这么乱,就是因为好卖。这也从一个侧面说明了品牌的力量。
3 再说智能手机
智能手机和Feature Phone究竟有什么区别?其实,Feature Phone可以实现智能手机的大多数功能。两者最本质的区别就是不同的出发点。Feature Phone是在不断扩充应用功能的无线通信终端(行业术语叫移动台),而智能手机是增加了无线通信功能的手持式电脑。
Feature Phone的软件是从通信行业的无线终端软件发展而来,是不断扩充应用功能的嵌入式软件;智能手机的软件是从计算机行业的通用操作系统按照手持设备的需求裁减、演变而来。两者的软件是不同行业、不同思维模式的程序员开发的,但是这两个行业、这两种思维模式正在不断地融合。手机其实就是所谓3C合一,即计算机(Computer)、通讯(Communication)和消费类电子产品(Consumer Electrics)融合的典型代表。
通信上有个5W,即任何人(Whoever)在任何地点(Wherever)、任何时间(Whenever)可与任何对象(人或计算机,Whomever)互通任何信息(语言、图像、文字和数据,Whatever)。这只是智能手机要实现的通信功能。
3C、5W都是十几年前的概念了,手机将扮演的更重要的角色是就是移动信息终端或者说移动信息平台。在移动状态下,人类通过手机这个终端接入信息社会这个巨大的网络;信息社会通过手机这个平台将内容发布给人类。这也就是为什么Google这样以信息服务为主的企业会重视手机平台的原因。或者说,手机除了融合计算机、通讯和消费类电子产品外,手机还在3C与信息服务业的融合中扮演着重要的角色。
Feature Phone的软件基本上都运行在CPU的特权模式,在PC程序员看来,Feature Phone的软件就是一个做了UI的宏内核。而智能手机的软件体系基本上照搬了PC的软件体系,将内核、驱动(可以编入内核,也可以独立)和应用分开,各种应用包括最基本的窗口管理器都以应用程序的形式存在,在用户空间运行。智能手机软件与PC系统软件的区别主要是在应用层面的,例如显示屏大小、输入方式;另外智能手机作为便携式设备,必须尽量减小功耗。
软件进化的核心思想之一就是复用,不要重复发明车轮。从软件上看,智能手机软件的体系架构更先进、更合理。体系架构才是智能手机软件的最大优势。体系架构使智能手机的可扩展性是近乎无穷的。
一个完善的操作系统需要长时间的积累,巨大的研发投入。我觉得在智能手机领域,相对于传统的实时操作系统(VRTX、VxWorks、ThreadX等),Windows Mobile、Linux这些从PC操作系统演变来的系统更容易获得成功。
4 本文内容
使用Windows Mobile或Symbian需要微软或Symbian(http://www.symbian.com.cn/)公司的授权。黑莓和iPhone这种专有系统,别的厂家只能学习,不能使用。下面主要讨论基于Linux的手机软件。

MIT offering Android class

Boston Business Journal - by Jesse Noyes Journal staff

This semester 25 students at the Massachusetts Institute of Technology will gather in a classroom with one particular purpose: playing with cell phones.

The students are taking a class geared around Android -- the first fully open mobile operating system developed by Mountain View, Calif.-based Google Inc. (Nasdaq: GOOG). The class will cover the ins and outs of the Android platform and build applications to run on the operating system.

The class, which at least 50 students tried to enroll in, is being offered to students in the computer science major at MIT and is designed to give them an early edge in what could soon become a dominant platform among cell phone operating systems. As smart phones and cell phones with Web functions have grown in popularity, there is growing interest among computer science pupils to learn how to create and launch applications and software for mobile operating systems, said Andrew Yu, mobile devices platform coordinator for MIT.

"It's definitely something that captures students' interest," he said. "Given the fact that they actually have the devices, they want to do something with it."

Technorati 标签:

New information about SDK update

 

Submitted by hobbs on Wed, 01/30/2008 - 13:23.

Jars.de has posted some coverage of the Android Workshop in Munich, and it includes some information about the SDK release expected in the next couple weeks. The slide presented by Google's Dan Morrill lists the following about the new SDK:

The new SDK will...
Introduce the new user interface
Include new APIs and improvements to others
Add some cool new features to the Eclipse plugin
Fix many bugs, of course!

This sounds very cool! Can't wait to see how the new UI looks, and can't wait to see what new API's will be revealed.

Good work Android team!

Technorati 标签:

标签分类