FB LIKE JACKER

【开发教程连载】第一章第二讲:webOS

2011 年Mar月 9 日由 发布 | 类别: MoJo开发, 实用webOS开发教程, 开发者社区 | Tags:

从硬件到软件:webOS

在上一节中我没有提到的,实际上是第二个贯穿于Palm的重要因素。Pre,其所有硬件的辉煌都无法使得让它再次回到顶峰,因为在大部分人看来,iphone是一台神奇的设备足够让它站在顶峰上。因此Palm要有区别与苹果或是其他设备的东西。

如果智能手机没有一个强大的操作系统,那它仅仅是一个令人印象深刻的技术而已。操作系统使手机变得有用的、有价值的,正是因为这个才使得iphone如此的被看好。这是WEBOS发展的第二个也是最重要的方向。

webOS让pre区别于其他的竞争对手,并且很多人觉得这是个革命性的成就。首先要做的就是要让Pre在外形或是形式上有别与其他。WEBOS能很好地运行与其他的系统,相反,苹果却只能运行于IPHONE。从以往的苹果作为看来,不管你个人更喜欢与否,它都控制了这一切,包括软件、硬件等,这些都在苹果iphone的控制范围内。

Palm,在另一方面有点像微软,因为它创造了一个能运用与多个设备的系统。但又不像微软,PALM同时也创造了第一个运行webOS的设备——PRE.

到底是什么让PALM与众不同?最重要的事是开发一个webOS的应用,除了写网络应用就不再需要其他的了。你编写HTML、CSS、JavaScript。webOS提供了一个丰富的应用程序接口(API),还有能够让你整合JavaScript代码到设备的服务。我再重复一遍,你别再错过了:开发webOS程序或是运行这个系统的设备(比如PALM PRE)不仅仅是编写一个网络应用。编写WEBOS程序,你需要像编写网络程序一样的全部技术和技巧。

————————————————————————————————————————-

注:然而,有一个重要的区别:有没有像一个典型的Web程序一样有响应周期。webOS的应用更像一个所谓的主权网络应用程序,换句话说,可以被载入本地文件系统并在一个完全独立的方式下运行。

————————————————————————————————————————–

这是一个革命性的概念,这并非完全原创,因为也有其他像这工作方式的系统,但Palm是真正的第一家主流公司,在智能手机领域,也是唯一一家提供这个的。

为什么这个是革命性,还是如此重要的?简单的说,因为开发的门槛远低于其他竞争对,开发者10—15年以前的知识同样还能用。

另一个webOS的革命性概念就是“云端”,数据存储,甚至在程序执行都可以通过网络。换句话说,远程数据源、数据更新和远程同步都是用户体验的核心,这是操作系统最基本的处理方式。这些不仅仅是对其他平台的一个附加。

所有的这一切意味着webOS给你的本地应用能力,同时通过建立Web发展模式的强项,提供更丰富的经验,这重点是正视现代移动用户的关注。

如果你对更多的技术细节感兴趣,那你也有可能知道WEBOS是一个基于Linux2.6内核的衍生产品。它使用标准的通过udev管理的驱动器架构,并利用其专有的引导加载程序(我想你也应该猜的到, Palm-provided组件就像开源能够很好地融入WEBOS。存在两个文件系统分区:一个私人的ext3-based分区供内部使用;FAT32-based“媒体”分区是你自己的存储空间,这个是通过USB模式来传递文件的。媒体文件是通过gstreamer来处理的,这项对于很多的音频和视频解码都能支持。

————————————————————————————————————————-

注:在这以前,大部分时间你不在乎webOS是基于Linux或AmigaO,但在这样的情况下你必须得注意了:调试模拟器。你会进入操作系统、查看文件和Linux标准命令行工具。我不知道你们怎么想的,但是事实上,我可以SSH我的手机!关于这点我今后还会谈的更多。

————————————————————————————————————————-

图1-9,你能看到webOS的整体结构,它不是一个其他扩展的复杂模式,不过他能够帮你认识到你所写代码的位置。简单地说,图形说明了你的应用程序是最高等级的,它与Mojo框架是相互的,这个我们看到的不少,通过MOJO你能够访问on-device服务。系统用户界面管理组件是WEBOS最基本的部分。,在某种意义上协调这些部件的服务,提供用户体验。最后,Linux-based “core,” 或webOS是所有的最底层。

1-9. 高等级的webOS结构框架

这门书的大部分都是学习编写程序的MOJO框架。简而言之,MOJO是进过webOS和Palm Pre的大门。应用环境是你在Palm圈里所听到的。他指的是webOS中部分暴露在你的应用中,也就是说,MOJO和Palm Pre是提供应用“低水平”类型功能的on-device服务。比如加载MP3到播放器,浏览器打开网页、发送邮件,这些都是服务允许你做的。应用环境同事也包括用户界面,我们将在下面说明。

户界面是问题的关键所在

最重要的一个方面是webOS的用户界面(UI),因为这里是实际上代表提供大部分用户丰富的webOS体验. webOS的为用户提供了简单而丰富的隐喻,逻辑的方式等。webOS的用户界面考虑的是用户的第一感觉:他们是手机!他们没有全键盘,他们没有强大前置摄像头。他们往往甚至没有舒适的椅子来坐下。

很多智能手机和这之前的手机对用户界面都没有足够的考虑。Iphone在这领域根据你的喜好提供了合适的UI设计。比较简单事,比如在触摸屏上提供大的目标方便点击,用手势来代替键盘的操作,这些对用户来说都使得用户体验有了很大的提升。我所提到的webOS是不是听起来很漂亮?确实!见图1-10.

1-10. Palm PreUI

正如你所看到的,这是一条漫长的从黑到白的路,过去的PalmPilots分辨率比较低。事实上,pre和webOS的用户界面跟其他的智能手机比起来是相当好的。

多任务和动作

很多人认为webOS超越iphone的最主要的因素就是webOS的多任务。可以肯定的是在今天的只能手机领域,这不是一个最初的想法,甚至不是独特的,但却很有操作系统能做好它。举个例子,iphone在同一时间只局限运行一个应用程序运。webOS设备,如pre,就没有这样的限制,事实上,我们是鼓励你保持应用程序在后台运行,因为在那时webOS能够参与cloud-based服务,例如, 更新信息等等。

随着webOS,Palm介绍了动作的特殊意义。这个想法就是一个给定的动作可能包括许多不同应用或是多个不同独立角度看的应用。例如,也许你是组成一个电子邮件给朋友,期间需要在网页上去寻找信息。所以,你打开网络浏览器,进入你需要的网站,并将你想要发送的信息复制出来。然后你把电子邮件应用调回到最前面,粘贴信息,然后继续。所有这些都可被视为相同动作的一部分

卡片式界面

支持多任务用户界面是最基本的。用户界面在一个基本的水准上支持这个想法的多任务处理,它并不仅仅只是个补充。它的主要是为了引入卡片式界面。见图1-10。

简单的说,所有正在运行的程序都在屏幕上扩展,就像一副牌,你可以用你的手指在它们之间来回切换.你可以在屏幕上左右滑动你打开的卡片。你可以重新调整他们的位置,通过按住一张卡片,然后拖动到任意你想要的位置。

所有这一切都是通过动画和滑动来实现的,因此这样的体验是顺畅和有趣的,并且很有指导作用。在用户界面滑动对有助于引导用户,这样会让他们更加高效。

一个程序可能同时有多张卡片打开。例如,如果你在浏览器打开两个书签,那就会有两张卡片,就像是开着两个浏览器一样。一张卡片可以集成很多个应用,这是根据设计者来决定的。

在webOS中,卡片式界面是程序间的基本操作,并且简单、典雅,而有力的UI界面是唯一的用户体验。

导航和手势

你会注意到,我之前提到的触摸、滑动、拖拽。这些的手势操作的例子。还有许多会出现在webOS里:

  • 触摸是最普遍的,这是简单的把你的手指按下去又迅速的拿开,相当于你在电脑上点鼠标一样,并且激活对象。比如,触碰那个按钮就相当于点击了那个按钮。
  • 快速地从手势区往上滑(就是PRE下方那块区域,专门为手势操作设计的),当前打开的程序就会缩小,变成卡片。如果程序已经是卡片了,那么这个手势就打开Launcher界面。
  • 快速地在手势区从右边滑到左边就是后退手势。这个类似于浏览器的后退按钮。如果有个新的程序出现在屏幕上,那就可以通过这个手势退回到之前的状态。(如果程序最大化了,那这个操作就会使得程序缩小成卡片)。
  • 在卡片模式下,你可以按住卡片,往顶部拖动卡片,然后扔出屏幕外来关闭程序。
  • 滚动,通过这个你可以向上或向下来滚动列表。只要在屏幕任何地方点击就可以停止滚动。这个遵循物理学原理,你会看到它慢慢地慢下来,最后停止(换句话说,它又动力,并受虚拟重力的影响)。

还有其他很多的手势操作,但这是最基本的,经常使用webOS程序你还会发现更多。这些都可以通过你的手指来实现,并且是非常直观:比如激活按钮,你就用手点击它,就像你在真实的世界一样。

The Launcher

Launcher是webOS的另一个重要部分。图1-11所看到的就是Launcher界面,简单的说,它就是你所有的应用程序的图标所在的界面,启动程序的地方。底部是快速启动栏,如果你没有最大化程序,那快速启动栏就会一直呈现着。快速启动栏可以让你启动你喜欢的程序或是其他添加的Launcher

1-11. webOS Launcher, 应用程序的家

如果你打开一个程序,它就会出现在屏幕上,并在前面显示。换句话说,就像你在电脑桌面最大化程序一样。

快速启动栏跟Launcher是相似的,这是一条很小的图标栏。你也可以用自己喜欢的图标来代替,并且这个图标总是存在于Launcher。快速启动栏也可以网上拖,就是我们平时所见的波浪了。这个很漂亮的说!

状态栏

状态栏是webOS用户界面的另一个元素,它存在于顶部,正如你所见的,电池状况、连接状态和当前时间等。同时,你也注意到了,左上角有个下拉菜单。这些叫做应用菜单,它跟当前的程序息息相关。有的程序可能会用到应用菜单,也可能不会用到,但是,如果应用程序需要,它给人好的、交互的感觉。

————————————————————————————————————————–

注:如果想应用程序全屏显示,可以通过状态栏。我想在一般情况下,你不想让一个应用程序去全屏显示,从一个可用性的角度来看, 如果你想或需要的话,你是可以的。同时,应用菜单也会发生变化,基于当前视图应用,这是有程序本身来控制的。

————————————————————————————————————————-

后台活动的用户警示:仪表盘

既然webOS有基本的多任务环境,允许你在后来运行程序,当有需要的时候这些后台程序要跟用户互动。在其他手机上,无论你怎么去做,这种类型的互动是完全突出的和突破性的。webOS采取了与众不同的方式。

当一个后台应用程序想要传递某种信息给用户时,它有以下两种方式。第一个是以突出性的方式:弹出。这个不同于其他你所熟悉的弹出:这是个模态式的(意思是阻止其他所有的用户界面,直到你处理它)互动对话框,使用者必须采取一些措施来继续。比如接听来电,这个弹出是合理的。另外种情况,如你的股票价格每天在更新500次,那就要弹出500次,这就杯具了。图1–12是弹出的一个例子

1-12.弹出式对话框

对于有些事情,例如那些股票价格,就会有一个栏目出现。栏目是以图标和一些文字的组合出现在屏幕底部,就在程序的下面区域(这个区域叫通知栏)。这不是当前程序的一部分,但是当前程序区域会在底部出现通知栏。如果你想要看到更多的信息,你可以在提示栏滑动。图1-13显示的是通知栏的例子。

1-13.通知栏

通知栏可以像蛞蝓缓慢移动, 在屏幕的滚动栏里滚动,然后留下自己剩余的部分。同时还有很多功能可以通过轻轻敲击提示栏提供给用户。这时就出现了仪表盘,就如图1-14所示。

1-14.仪表盘

在仪表盘你能找到任何通知消息,就像信息栏一样,以前被显示而没有清除的。不仅如此,这些信息版面还能够扩大以显示扩展信息。这也可以包括应用程序的组件和控件;例如,音乐播放程序,它就显示的是当前播放轨迹(就是播放到哪了)以及一些向前向后的控制,还有暂停当前的轨迹。

所有的UI元素都被描述到了,从手势到卡片式界面,状态栏、启动界面、仪表盘和各类的通知,所有的这些都在一个多任务的环境中,这些都让你工作在高效的webOS里。

与此同时,使用和看起来的快感,归结于小出动,比如当你启动一个程序,点击它的时候,你就会看到水一样的“波纹”。通过webos和延伸的palm pre设备在如今市场上站立起来的时机即将到来。(事实上,那正是palm的webos目标)。

本地存储设备

Palm的webOS提供了几个不同的本地存储数据机制。

  • Cookies,在浏览器中无处不在的数据存储方式。对这些小块信息来说,Cookies能很好的处理,而不需要将这些储存到坚固耐用的永久性储存中。用户能在任何时候清理Cookies,所以他们一般被认为不是持久的。但是,也应该看到只有当应用被删除时,Cookies也会被清理。可用的SDK版本写得相当的粗糙,因此,即使是删除了程序cookies依然还是在的。关于这点,残留的依然是有效的,即:cookies不应该被认为是数据的持久形式,除非是可接受的丢失(换句话说,用户设置可能是好的;联系人信息却不一定。
  • HTML5储存是嵌入式的SQLit数据库引擎,提供了一个或多或少的全功能关系型数据库管理系统(RDBMS)。在这里你可以创建数据库、附录和储存你的相关数据。
  • MOJO仓库(实际上是一个API的封装,围绕着HTML的储存原理)给你的工作对象提供了一种更高级的数据存储接口。 你将创建JavaScript,并储存起来,而不必担心涉及到的底层桌面结构。这类似于流行的object-based储存系统,比如Java的Hibernate。你所选的储存机制很大程度地影响着选择权。然而HTML5或是 Mojo 仓库数据储存应该持续很长一段时间,因为这些储存比Cookies更久持久。

最后,动用你的头脑,你对你所决定的将会很高兴!你将有机会看到这三种方式运用于即将到来的项目,因此,你就能够提前肯定的决定。

———————————————————————————————————————–

注:我其中一个技术专家指出,仓库机制要求仓库内的完整内容能够通过应用被立即加载和处理。因此, Depot并不真正适合大型数据集。如果在特定的时间,你能访问它比如任何SQL-based数据库和仅加载你需要的内存,那么在这种情况下,HTML5的储存机制是更好的选择。

———————————————————————————————————————–

指导原则、webOS UI设计

Palm已经提出一些原则,这是“好的”webOS应用程序应该遵循的。这些方针是为了取得更好的用户体验——对用户来说简单而有用,用起来也轻松。这些原则包括如下:

  • webos本来就是为了使用的快速、简单而设计的,因此,平台的应用应该争取做到这样。用户在程序上施加的工作应该能有快速的响应,对初级用户来说,能够让他们容易上手,而对有经验的用户还应该高效。
  • 你要尝试根据自然现象来设计程序。意思是说,在程序列表中,要有主体、按钮或是清单,有了这个,用户才能互动。例如,在webos中一个普通的现象,就是你能够通过从左到右的滑动来删除它。Webos提供了很多其他方面的指导。比如,自动滚动列表(它们有动力,并随着会慢慢的慢下来,直至停止)和视觉过渡。但至于能达到什么程度就要看你怎么处理了,你应该争取做到跟webOS提供的一样。
  • 尽可能确保数据是当前的。你的程序应该能做到自动地从远处读取数据,或是能够接收更新数据,同时还必须能够管理自身的缓存数据,这样的更新就能反馈到云同步中去。另外一方面,当设备离线的时候,程序还应该是可用的。虽然这个很明显地否定100%的上传数据信息的能力,但你的程序要能做到处理这一系列的问题(当然是在技术范围内)。
  • 容易并快速存取是一个应用程序的共同功能。例如,最常用操作应该是有大的好看的图标在屏幕上这样就容易被发现。而比较少用到的功能能够在程序菜单中隐藏起来。
  • 记住,用户希望在没有被打断的情况下完成工作,因此,那样的情况你应该尽量少让它出现。意思就是最少使用弹出对话框,而使用提示功能,这样他们就能获取他们需要的信息,而不用中断他们的思路。
  • 你设计的程序是一致的。确保程序内的东西是一致的,但它也意味着你的程序类似于webos应用一样运行。当然要包括必要的许可,但是举例来说,能够在列表上快速点击一个清单从左到右滑动来删除它,这样的话,用户就知道怎么去用你的程序了,以他们之前的经验。相反,如果你的程序跟他们之前用的程序不所不同的话,他们就不怎么愿意去喜欢你的程序。
  • 始终保持主题的统一。这可以让用户重复动作,也可以很容易退出动作。。同时,替换一致的界面元素,使得用户不用离开要找的东西,对于他们不知道的一些原因,提出他们。一言以蔽之:一致性、一致性、一致性!

有一点要知道,PALM并没有白费力气做重复工作:这个原则的可用性是公认的,这就似乎人类设备的互动科学。根据这些原则,即使是webos以外的设备也将允许你创建用户想要的应用程序。

———————————————————————————————————————–

翻译不足,欢迎指正!

译者:zxac1987

PhoneKr出品

« Pre 2的webOS 2.1在线更新放出,伴随展览模式
【爆炸头条】£499.00?Touchpad?Pre3?Veer! »

About QiiQiii

» has written 12 posts

  • webos pm

    great article

  • Littlewey

    支持,看完了,期待下回。

  • webOS新闻组

    呵呵!长了不少知识!

锋客的朋友们

  • 少数派
  • 煮机网

签订契约成为机油吧!

Buy me a coffee~ ;-)

Buy me a coffee~ ;-)
閃開│讓專業的來 沒辦法│我這個人就是太正直了