`
javasogo
  • 浏览: 1777801 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

MeeGo开发者(一):何为MeeGo?

阅读更多

  MeeGo给我的感觉就是Only make noice but no product,月圆月亏,花开花落,年过一年,我们只是听到了noice,尤其是在handhold的领域,进展之缓慢考验我们的耐心。我们安装了开发环境之后,关心的是,如何开发我们的project,对于一个开发人员,如何体现MeeGo与Andriod的最大区别,就是其完全建立在opensource的基础上。因此还是要有点耐心,将wiki中的developer的内容过一过。即使我们的目的只是想作一点点应用的开发,但是MeeGo的框架仍需要了解,否则我们不清楚需要去查哪些API。So, 我们需要对MeeGo Architechure quick view.在此之前,我们需要了解What is MeeGo?

  在wiki上的一篇MeeGo Introduction 是很好的开始。我们将去掉一些美好未来的描述,看看何为MeeGo,并加上我们的意见。

MeeGo = Moblin + Maemo

  2010.2.15,最大的芯片公司Intel和最大的手机工厂Nokia宣布正和他们的开源项目Moblin和Maemo,组成MeeGo,并由Linux基金会掌管。而我们也记得,大致也在这个时间,Linux将Andriod的贡献代码剔出了Linux kernel,这源自于开源项目和Google对产品理念的思维无法兼容,从这个角度看,MeeGo符合Linux的宗旨,将开源进行到底。Nokia正在饱受Apple和Andriod的威胁,很有迟暮的苍凉。Intel缺乏作系统软件和应用软件的整机产品的经验,可谓一拍即合。无论是珠联譬合还是各怀鬼胎,总之MeeGo成立。鼓舞者有之,讥笑着有之。

  Maemo的末代设备是Nokia N900, Maemo 5,重新设计了手指触摸的UI。Moblin是Intel为其Atom系列芯片设计的,Mobiln的最大贡献是系统fastboot,而我们看到ubuntu9.x的快起就是得益于Intel工程师卓有成效的贡献。

Linux-based, 适用于多类硬件设备

  MeeGo是Linux based。Andriod的产品分裂,有不同尺寸屏幕的,流行的有手机,正在向平板扩张。而MeeGo在设计的时候,目标就已经包含多类的计算设备,包括handsets, netbooks, tablets, connected TVs and in-vehicle infotainment systems(车载信息娱乐系统),正如Intel在Mobiln中所言,这点在文档中反反复复提及。但是我们也必须看到这些设备的UI有很多的区别,主要原因在于屏幕尺寸大小的差异,我们看MeeGo project网站中看到netbook,handset,IVI的界面是不完全不一样,只能说美工的风格一致,而UI的framework有差异,netbook中保留了Moblin的GTK/Clutter,而手机中采用了MTF。这种产品的分裂可能会给MeeGo的未来发展(如果有未来的话),尤其它说号称的能在多种硬件设备上加载,并不那么真切。而UI,由于Apple的革命性的革新,是应用/系统非常重要的一部分,消费者最直接的直观感受。我们最后看到的可能是MeeGo的平板版,手机版,上网本版(netbook觉得没有未来,无法定位这个产品,你选择手提还是netbook,你选择平板还是netbook,在这两个二选一的选择题,我都会抛弃netbook)等等。

  支持ARM和X86。

真正的开源系统(特别和iOS,Andriod对比)

  遵循完全开源的路线,将会有得到很多开源社区的青睐。MeeGo将贡献给upstream project,包括有GStreamer,Telepathy,oFono, Fennec,Clutter,Connman,Qt,webkit,Pluseaudio等等。你对MeeGo的贡献会上溯到上游开源社区。值得注意的是,其中不少,例如QT和webkit本生就是cross-plateform的开发工具。 这给我们提供了跨OS移植应用的可能。这也是iOS和Andriod不能提供的。

  Nokia和Intel分别提供为产业生态链提供OVI和AppUP两个软件商店。软件商店利益巨大,两个大头都要自己hold着。MeeGo正在制定其遵守原则来确保兼容问题。

A glance of MeeGo架构

  这是一张标准的MeeGo架构图。从下往上看。这个架构的各个模块也是有不同的开源项目组成的。这次先快速浏览一下架构,具体的参见http://meego.com/developers/meego-architecture/。

1. The Os Base Layer.包含硬件适配软件用以使得MeeGo在不同的硬件上运行,Linux Kernel以及core services.这一层,确保经过MeeGo裁减和优化的Linux内核在硬件上跑起来。如果不设计kermel module开发,可以跳过这一层。

2. MeeGo OS Middleware Layer。提供于硬件和使用模式无关的API ,用于建立native应用和web runtime应用。这一层是MeeGo选取的开源项目组层的中间件,是上层应用开发的基础,也是我们开发MeeGo兼容程序所需关注MeeGo选择了哪个开源项目了提供。对于我们自行定制的产品,这部分的API应不要改动以及裁减,以免上层应用出现不兼容的问题。但是由于这些都是开源project,我们可以根据我们自己的需求对他们进行扩展和补充。当然我们也可以选择整个替换,这样将会在MeeGo上来出自己的一条私有分支,这是不推荐的,看看中国移动的OMS,就知道这样会有什么下场。当然,这只是一个原则,对于目前尚没有任何商用产品的MeeGo,市场化远比遵守这些条条框框要优先。我们也可以选择整个更换某个模块,例如移动通信,使用自己的,扔掉oFono的。这些需要考虑开发商和用户之间的关系,例如某些特定行业的定制终端,可以采用这种方式。

3.MeeGo User Experience Layer.这里我们很遗憾地看到Netbook和Handset UX有差异。我们关心的Handset UX使用的手指驱动替代鼠标驱动,设备形态的差异,使得统一UX困难。MeeGo也给出了一个MeeGo的UI Guideline,很值得一读。也允许厂家定制自己的UX。
  对于一个用户的应用,需要适应中间曾提供的MeeGo API,并通过UX层给出的界面设计和UX事件驱动来完成。由于存在不同UX,这个架构也很好地提醒我们在开发过程中,将功能和UI独立开来,容易替换不同的UX framework ,而不影响主题代码。这在MeeGo开发中尤其注意。 MeeGo的第一个UI是MeeGo1.0的netbook版本,在2010.5.25释放。我在Netbook上安装过,整个界面实际上很适合触摸屏,例如图标的尺寸。

相关链接:我的MeeGo相关文章

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics