使用 MeeGo

作者:Ibrahim Haddad

MeeGo 项目自 2010 年 2 月宣布以来,已发布多个版本并取得显著进展。本文为新手概述 MeeGo 项目,回顾 MeeGo 为移动生态系统参与者带来的好处,并讨论最新 MeeGo 1.1 版本的特性,该版本于 2010 年 10 月 28 日发布。

MeeGo 简介

MeeGo 是一个开放、协作的项目,由项目发起者(诺基亚和英特尔)、开源社区以及各种商业和非商业合作伙伴共同参与,旨在加速 Linux 在大量客户端设备上的采用,并将技术 Linux 平台丰富为移动计算设备的首选平台。

MeeGo 是一个基于 Linux 的操作系统,专为跨多种硬件架构的下一代计算设备而构建。与其他移动操作系统不同,MeeGo 是一个开源平台,遵循开源开发的最佳实践。它包括以下内容:

  1. 核心操作系统。

  2. 用户界面 (UI) 库和工具。

  3. 针对多种设备的参考用户体验。

  4. 跨所有目标设备类型的标准应用程序编程接口 (API) 集。

  5. 一个软件开发工具包 (SDK),使应用程序开发人员能够在参考设备或模拟环境中开发、安装、调试和运行应用程序。

MeeGo 支持大量的移动客户端设备(手机、联网电视、车载信息娱乐系统、上网本和平板电脑)。它提供选择和灵活性,以创建和交付独特的差异化服务。这是一个不寻常的项目,因为它与上游项目紧密结合,MeeGo 要求提交的补丁也必须提交给相应的上游项目,并处于被接受的路径上。这种开发模式对改进 MeeGo 中使用的所有上游开源项目具有重要作用,并保证了由上游项目领导的统一技术方法。

MeeGo 和联网设备

我们每天都使用移动设备(例如上网本、联网电视、平板电脑、车载信息娱乐系统和手机)。这些设备的性能和功能已达到惊人的水平。MeeGo 项目的目标是开发最佳的软件平台来配合这些设备。

MeeGo 如何使移动生态系统受益?

如果您是开源开发人员,您将乐于参与一个遵循开源开发实践的开源移动平台项目。您将可以完全访问 MeeGo 的所有内容,并且您可以确信 MeeGo 贡献的任何代码都将提交给相应的上游开源项目。从这个角度来看,其他所有 Linux 移动和桌面工作都将受益于 MeeGo 的工作和贡献。

如果您是应用程序开发人员,您将乐于使用一套 API 在多种客户端设备(手机、平板电脑、上网本、车载信息娱乐系统和联网电视)上工作。您可以访问完善且易于获取和使用的开发工具和基础设施。此外,还有开放论坛,您可以在其中直接与平台和工具创建者进行讨论,交流想法和最佳实践,甚至参与平台的演变。此外,您还将享受在多个应用程序商店中托管应用程序的灵活性。

如果您是设备制造商或无线运营商,希望使用 MeeGo 构建和/或部署设备,该项目将提供巨大的机会。MeeGo 是一个民主的项目,始终对所有人开放。它是业内唯一以无与伦比的开放性构建的同类平台。它将加速您的上市时间,降低针对多种设备类型的复杂性,允许您优化软件堆栈,最重要的是,赋予您平等参与软件平台演进的权利。

MeeGo 2010 年里程碑

自 2010 年 2 月项目宣布以来,MeeGo 除了交付核心软件平台外,还交付了三种用户体验实现(上网本、手机和车载信息娱乐系统),并在其间进行了多次更新。图 1 提供了自项目启动以来的发布路线图,图 2 提供了发布更新的路线图以及它们包含的内容。

Run with MeeGo

图 1. MeeGo 项目宣布以来的版本发布

Run with MeeGo

图 2. MeeGo 版本更新

在主要版本之间,MeeGo 提供更新,这些更新通常包括通用操作系统修复程序,以增强运行 MeeGo 的设备的稳定性、兼容性、安全性和视觉质量。在 MeeGo 1.0 (2010 年 5 月) 和 MeeGo 1.1 (2010 年 10 月) 之间,MeeGo 项目提供了三个更新版本,这些版本对 MeeGo 核心堆栈和上网本版本进行了改进。

这些版本遵循项目承诺的六个月周期,并按时交付。MeeGo 源代码存储库是开放的,人们可以随时拉取源代码,如果他们不想受限于六个月的发布周期。发布更新是根据需要提供的,具体取决于安全/稳定性/兼容性更新。但是,您无需等待官方更新发布,因为您可以访问代码存储库,并且可以为您的目标设备从头开始创建更新的镜像。

MeeGo 1.1 的新特性?

任何运行 MeeGo 的设备都需要两样东西:MeeGo 核心软件堆栈和针对该特定设备的 MeeGo 用户体验 (UX),尽管您不限于使用 MeeGo UX,并且可以创建和部署您自己的品牌 UX。目前,MeeGo 可用于上网本、IVI 和手机。

MeeGo v1.1 核心软件平台

MeeGo Core 1.1 版本为所有受支持设备类别的用户体验提供了一个通用的基础操作系统。它为移动计算提供了一整套使能技术。MeeGo 堆栈包含 Linux 内核 2.6.35、X.org 服务器 1.9.0、Web Runtime、Qt 4.7 和 Qt Mobility 1.0.2,支持联系人、位置、消息、多媒体以及传感器和服务框架。它还包括许多领先的组件,例如 oFono 电话堆栈、ConnMan 连接管理器、Tracker 数据索引器、Telepathy 实时通信框架、Buteo 同步框架等等。

这些技术通过 MeeGo API 提供给应用程序开发人员,MeeGo API 基于 Qt 和其他技术,例如 MeeGo Touch Framework。借助最新的 Qt 4.7 版本,MeeGo 开发人员体验现在通过引入 QML 得到增强,QML 是一种易于使用的脚本技术,用于创建动画触摸式 GUI 应用程序。

表 1. MeeGo v1.1 核心软件平台主要特性列表

主要特性描述相关上游项目
完整的 MeeGo 兼容软件包确保兼容性。不适用
GCC 4.5.0 工具链包括对 Intel Atom 微架构的支持以及针对 Intel SSSE3 指令集优化的运行时库函数。gcc.gnu.org/gcc-4.5
Linux 内核 2.6.35包括对 Intel Atom 处理器 Z6xx 系列家族的支持。kernel.org
X.org 服务器 1.9.0 和 Mesa 7.9改进 2D 和 3D 图形。www.x.org/wikiwww.mesa3d.org
Qt 4.7 和 Qt-mobility 1.0.2为创建引人入胜的应用程序提供丰富的 API 集,其中包括位置、传感器、联系人和消息。qt.nokia.com
QtWebKit 2.1WebKit 的 Qt 端口。developer.qt.nokia.com/wiki/QtWebKit
BTRFS下一代文件系统,旨在实现高级功能,同时专注于容错、修复和易于管理。https://btrfs.wiki.kernel.org
ConnMan 连接管理器提供对静态 IPv6、dhcp-lib 和 VPN 的支持。connman.net
新的 oFono 电话堆栈提供对电话功能的支持。ofono.org
PulseAudio提供对音频功能的支持。www.pulseaudio.org
GStreamer 0.10.30,支持 liborc通用性能改进。www.gstreamer.net
Zypper/libzypp 软件包管理。提供完整的软件包管理功能,例如存储库访问、依赖关系解决、软件包安装等等。en.opensuse.org/Portal:Zypper
Udisks 和 upower取代已弃用的 devicekit-disks 和 devicekit-power。freedesktop.org/wiki/Software/udisksupower.freedesktop.org
Buteo 同步框架和个人信息管理基于 Tracker。projects.gnome.org/tracker
DeviceKit 和 udev用于与硬件设备交互。fedoraproject/wiki/Features/DeviceKitgit.kernel.org/?p=linux/hotplug/udev.git
传感器框架允许开发人员利用平台传感器,例如加速度计、指南针和陀螺仪。Qt 的一部分
通用即插即用 (gUPnP)支持 gUPnP,为创建设备和控制点提供易于使用、高效且灵活的框架。gupnp.org
MeeGo v1.1 上网本用户体验

MeeGo v1.1 上网本 UX 提供了一整套核心应用程序,并提供视觉效果丰富的上网本用户体验,该体验针对功耗和性能进行了优化,所有这些都构建在最新的开源技术之上。一些主要特性包括:

  • 集成触摸支持。

  • 易于使用的应用程序。

  • 从 MeeGo 主屏幕(又名 Myzone)即时访问核心应用程序。

  • 社交网络内容聚合,使您可以在一个屏幕上查看您的社交网络活动,轻松与朋友互动并更新您的状态和站点信息。

  • 为了获得快速而丰富的互联网体验,MeeGo 上网本 UX 集成了 Google Chrome,或者如果您愿意,也可以使用完全开源的浏览器解决方案。还提供了 Google Chromium。

MeeGo 在上网本上

鉴于上网本的普及性和可用性,体验 MeeGo 在上网本上非常容易。您只需要一台配备 Intel Atom 或 Intel Core 2 CPU 的上网本、一个用于保存 MeeGo 镜像并使用其启动的 USB 驱动器(U 盘)以及 MeeGo 镜像。逐步说明可从 meego.com/devices/netbook 获取。Linux、Windows 和 Mac OS X 用户均可获得说明,因此您没有理由不试用一下。

Run with MeeGo

图 3. “设备”屏幕,显示三个已连接的 USB 设备,包括一个显示为 1GB 文件系统的 Olympus 相机、一个用于复制屏幕截图的 HP USB 设备以及一个保存用于安装 MeeGo 1.1 的 MeeGo 上网本镜像的 USB 设备。

Run with MeeGo

图 4. “区域”屏幕,显示三个不同的活动区域或工作区。

Run with MeeGo

图 5. “设置”屏幕,用户可以在其中配置 MeeGo 上网本设置的各个方面。

Run with MeeGo

图 6. WeTab 的用户修改后的主屏幕,其中包含作者最常用应用程序的一些直接快捷方式。WeTab 使用 MeeGo 上网本堆栈作为开发基础。

Run with MeeGo

图 7. WeTab 上的 Web 浏览器,显示 MeeGo 主页和虚拟触摸屏键盘。右侧有四个不同的虚拟工作区,左侧有基本的浏览器菜单项。

Run with MeeGo

图 8. WeTab 设置,展示浏览器设置。

MeeGo v1.1 IVI UX

车载信息娱乐 (IVI) 系统是在车辆(例如汽车、卡车、飞机、船只和公共汽车)中提供导航、娱乐和网络计算服务的设备。

特别是汽车制造商越来越将 IVI 系统视为其产品中的关键差异化因素。驾驶员和乘客开始期望在他们的车辆中看到他们在其他设备(例如移动计算机和手机)中看到的相同类型的创新。随着车辆连接到互联网,对基于互联网的娱乐应用程序和服务的需求增加,MeeGo 致力于加速 IVI 的创新步伐。MeeGo IVI 软件平台旨在为车辆实现丰富的互联网和多媒体消费者体验。表 2 快速概述了 MeeGo 1.1 IVI 版本中可用的主要特性。

表 2. MeeGo IVI v1.1 主要特性列表

主要特性描述
示例 IVI 主屏幕和任务栏任务栏的设计考虑了汽车中控台 HMI 的要求。
文本转语音 (TTS)TTS 使用 Festival Speech Synthesis 提供支持,并且默认在 ivihome 菜单导航中启用。
语音识别初始语音识别已添加到 ivihome 中,使用集成的 PocketSphinx 0.6.1 软件包。它是一个轻量级的跨平台引擎,使用最新的 Sphinx 语音识别工具包构建。PocketSphinx 提供了一个 GStreamer 插件,允许应用程序创建一个管道来解析人声,基于字典中定义的单词。ivihome 的语音命令已预定义,用于导航滚动菜单。
MeeGo 触摸框架 (MTF)MTF 集成包含示例应用程序,其中包括但不限于以下内容:视频播放器、歌曲播放器、照片查看器、免提拨号器和设置管理。
开源汽车项目存储库中提供了来自开源汽车项目的多个软件包,用于音频管理、资源管理、持久存储管理、CE 设备管理和系统健康。
Run with MeeGo

图 9. MeeGo IVI 主屏幕,任务栏显示在屏幕左侧。任务栏通过一些简单的自定义,可以移动到屏幕右侧,以根据需要优化驾驶员或乘客的访问。它可以通过 Contour ShuttleXpress 滚轮、触摸屏或鼠标控制,并且它的设计反映了滚轮的使用,能够通过旋转菜单选项并进行选择或返回,通过按下两个按钮或点击触摸屏(照片来源:meego.com)。

MeeGo v1.1 手机 UX

今天的用户要求更强大、功能更丰富的设备随身携带。下一代智能手机允许用户在小尺寸设备上享受丰富而动态的互联网体验,观看高清电影并以前所未有的方式进行多任务处理。MeeGo 平台专门设计用于为这些移动、富互联网和以媒体为中心的设备启用应用程序和服务生态系统。

MeeGo v1.1 手机 UX(图 10)提供了一个技术快照,其中包含关键手机技术,例如蜂窝、连接、传感器和移动浏览,以及用于语音通话、短信、Web 浏览、音乐和视频播放、照片查看和连接管理的基本开发 UX。

通过此项目发布,开发人员将能够从事未来的设备和用户体验软件开发,同时参与 MeeGo 项目,以完成即将发布的 1.2 版本中的手机 UX。

Run with MeeGo

图 10. MeeGo 手机拨号器(照片来源:meego.com)

MeeGo 在手机上

如果您可以使用 Nokia N900 手机或 Aava 手机,您可以从 meego.com/devices/handset 找到有关如何在这些设备上安装和运行 MeeGo 的逐步说明。这些说明将指导您在外部 micro-SD 卡上安装根文件系统。不妨试一试,尽情享受实验的乐趣。

MeeGo SDK 1.1 Beta 版

MeeGo SDK 1.1 Beta 版于 2010 年 11 月 10 日发布,可从 meego.com/developers 下载并获取说明。它使应用程序开发人员能够开发、安装和调试应用程序,以及在配备 MeeGo 的 Nokia N900、上网本和 Aava 设备上运行应用程序。对于没有参考硬件的开发人员,QEMU (qemu.org) 提供了一个模拟环境,用于调试和测试应用程序。

MeeGo 项目鼓励开发人员使用 MeeGo API,该 API 目前由 Qt 4.7 和 Qt Mobility 1.0 组成。MeeGo API 具有向前兼容性承诺,并将在未来的版本中扩展。最终的非 Beta 版 SDK 将与 MeeGo 合规性规范(在撰写本文时正在最终确定)保持一致。有关 MeeGo 合规性的更多信息,请访问 wiki.meego.com/Quality/Compliance

结论

MeeGo 是一个开源项目,在 Linux 基金会的支持下公开开发。自 2010 年 2 月宣布以来,全世界都能够观看和参与该项目的构建,并交付了核心软件堆栈以及针对手机、IVI 系统和上网本的三种参考用户体验,随着 MeeGo 也将目标对准联网电视和平板电脑,未来还将有更多成果。

开发工作继续遵循六个月的发布计划。MeeGo 1.2 计划于 2011 年 4 月发布。目前,已有数百个针对 MeeGo 1.2 的特性已在 MeeGo Featurezilla(一个跟踪特性开发的工具)中提交。MeeGo 1.2 的开发树是开放的,开发工作正在进行中。

资源

MeeGo 项目:www.meego.com

开发人员资源:meego.com/developers

邮件列表:meego.com/community/mailing-lists

IRC 讨论:meego.com/community/irc-channel

MeeGo 源代码:meego.gitorious.org

MeeGo Bugzilla:bugs.meego.com

MeeGo 论坛:meego.com/community/forum

预编译镜像:meego.com/downloads

MeeGo 版本:meego.com/downloads/releases

MeeGo OBS:wiki.meego.com/Build_Infrastructure

Ibrahim Haddad 负责管理 Linux 基金会的移动 Linux 倡议,并与社区合作,为推进 Linux 平台用于下一代移动计算设备创造一个供应商中立的环境。Ibrahim 是 Linux Journal 的特约编辑。

加载 Disqus 评论