Clutter为设备和开发增加了新酷元素


         前年8月,Intel收购了OpenedHand,而该公司的Clutter改善了最终用户体验和开发人员体验。Clutter是一个用C语言编写的开源库,它允许用户在三维空间中处理二维图像。对开发人员来说,Clutter减小了OpenGL和OpenGL ES(嵌入版本)的复杂性,可作为创建特定于用途和设备的工具包的基础,这些工具包将开创下一代用户体验。
         Clutter最初由CEO,开源黑客Matthew Allum和一些OpenedHand工程师开发。Allum发现,台式机和笔记本电脑上的常用功能在三到五年后就会应用到手持设备上。当时,OpenGL在笔记本电脑上很常见,依照这个逻辑,OpenGL ES在不久的将来就会在手持设备上普遍使用。开发人员花在学习如何使用OpenGL上的时间可达数月之久,然而,Allum认为这是一个机会。
           Moblin社区经理Paul Cooper表示,“开发人员不应该花那么多的时间来了解OpenGL的工作方式,他们应该将精力放在用户界面和设备上。”
            Cooper表示,Clutter从2006年就被开发出来并在Moblin内部使用。新的Dell Inspiron Mini运行Ubuntu系统,其特点是启动程序使用Clutter编写。还有其他移动Internet设备(MID)同时提供Moblin 1.0和Clutter。
           Clutter版本0.8由OpenedHand团队和Intel开发人员开发,于2008年12月发布。版本1.0在今年2月底发布。自从它首次与Moblin 1.0亮相,Clutter采用率有了较大的提高,因为第三方参与了错误修复、新功能的开发、测试和文档撰写。与其他开源库相比,Clutter在三维空间中处理二维对象的能力是独一无二的,其他库都是在二维空间中处理二维对象。Clutter能够支持三维对象创建,但目前开发和行业的重点都集中在二维元素上。
在三维空间中处理二维图像通常需要大量的处理能力。为了维持Atom芯片以及为其构建的应用程序的高性能和低电量消耗,Clutter在图形处理单元(GPU)上执行,这样可以使CPU闲置以便执行基于应用程序的任务。
          Cooper表示,“CPU可以用于软件呈现,但遇到动画的复杂用户界面时,使用GPU来呈现更为有效,这样可以让CPU空出来执行应用程序。虽然GPU会消耗电量,但只使用CPU只会让电池的寿命减少几个小时,因为CPU总是需要带电工作。”
           开发人员可以将Clutter用作高级工具包的基础,高级工具包可以在Clutter之上快速开发以适应目标设备的特定大小和性能。由于工具包基于Clutter,因此Clutter在所有设备上自身不会改变,即使其底层GPU性能可能发生变化。
          Clutter git repository拥有一个当前可用的示例工具包,称为Tidy。OpenedHand团队和Intel开发人员正在构建其他工具包和针对特定类型的设备的用户体验。第三方开发人员也参与其中。从irc.gnome.org上可以找到Clutter git库和一个#clutter IRC频道以及邮件列表,从以下网站可以获得文档:http://clutter-project.org/。


        通过降低OpenGL的复杂性,Clutter的易用性大大提高了开发人员的生产效率。从技术角度,Clutter内的各种GL和OpenGL ES版本由COGL抽象,COGL是一个低级OpenGL抽象库。只需COGL就可以抽象OpenGL(和其他类似的库);然而,Clutter提供了一个场景图形,它带有所有需要的元素,如表演者、行为、效果和时间轴,这使开发人员能够快速高效地构建设备和特定用途的工具包。行为、效果和时间轴帮助创建和管理动画。使用行为和效果时,开发人员可以对特定物理效果(可能具有的UI元素与人的交互,如Clutter原型展示的一些效果)建模。时间轴确保行为和效果使用给定的时间帧并以适当的帧速执行。Clutter还允许开发人员在需要时使用原始的GL。
这里需要说明的是,Clutter原型演示只提供了一些开发人员可以使用Clutter做哪些事的示例,这不包括使用Clutter可能做到的所有事情。

       有些开发人员已经使用Clutter为现有界面添加了三维动画效果,还有一些开发人员正在开发全新的应用程序。为了提高执行速度和效率,Clutter使用C语言编写,而且它包括了对C++、C#、Perl、Python、Ruby、Vala和Javascript的绑定。它还包括了对GTK+、QT、Gstreamer、Mozilla、WebKit的集成库,以便开发人员可以用最适合其工作领域的语言编写代码。Clutter还能够与开发人员使用的所有其他库集成。
Clutter对各种版本的OpenGL和OpenGL ES进行抽象,这进一步提高了开发人员的生产力。它支持OpenGL 1.4及更高版本、OpenGL ES 1.1和OpenGL ES 2.0版本。
          Clutter已经被应用于增强基础UI元素,如设备的窗口管理和底层UI shell,并用作渐进的无破坏创新的基础。
通过以全新的方式呈现和表示数据,开发人员可以充分地改进与现有应用程序有关的用户界面。例如,开发人员可以对照相簿启用全屏模式,或者为多媒体播放器添加专辑封面模式。Clutter还让开发人员重新思考他们设计界面及交互的方式,如将二维动画以三维呈现。Clutter开启的创造上的灵活性将促成新类型的应用程序,其中一些极有可能在艺术表现上大放异彩。
           Cooper表示,“Clutter非常高效,并且带来许多乐趣,我们有意不说出Clutter开发的结果‘应该’是什么样子,因为我们希望给开发人员在新的和创造性的用户体验上以自由想象的空间。”。


你可能感兴趣的:(JavaScript,工作,语言,工具,internet,mozilla)