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

2008年2月5日星期二

WAP 知识

From unp的专栏

WAP的产生
--------------------------------------------------------------------------------
    在过去,互联网的无线接入受到便携终端及无线网络功能的限制,1997年 6月,爱立信、摩托罗拉、诺基亚和无线星球(Unwired Planet)共同组成了WAP论坛,该论坛旨在将Internet 的大量 信息及先进的业务引入到无线数字话机及终端中,目标是产生一个适用于不同无线网络技术的全球 无线协议规范,以供适当的工业标准组织采纳。
    WAP 论坛设立以后得到了业界的积极响应,各路人士纷纷汇聚旗下。 1998年初, WAP规范正 式公布。WAP 是一个开放的全球标准,可以使移动电话和其他无线终端的用户快速安全地获取互联 网及企业内部网的信息及其他通信服务。 带有基于WAP 浏览器的手机能获取一系列新的增值服务, 由于其使用方便,从而给手机用户带来极大的自由度。 WAP使用Internet的一些标准,如XML,UDP 及IP等。此外,许多WAP协议都基于如HTTP、TLS等Internet标准,并根据无线通行环境的特点如带 宽窄、延迟大、稳定性差等进行了改进。WAP 内容既可以是一两行文本,也可以是全屏图表。
    WAP 的出现,使电信产业中发展最为迅速的移动通信完全加入到电脑网络世界中来,同时也为 将来的电信产业的发展指明了方向,WAP 产生以后,人们才真正架起了移动世界与Internet之间的 桥梁,移动用户终于能够从他们的手机上获取丰富的信息资源,就像目前在台式机上那样。WAP 的 出现,标志着INTERNET进入了一个崭新的时代。
WAP的设计思想
--------------------------------------------------------------------------------
    WAP 提供了一套开放、统一的技术平台,用户使用移动设备很容易访问和获取以统一的内容格式表示的国际互联网或企业内部网的信息和各种服务。
    WAP 定义了一套软硬件的接口,实现了这些接口的移动设备和网站服务器可以使人们像使用PC 机一样,使用移动电话收发电子邮件甚至浏览Internet。实质上,WAP 是一种通信协议,它提供了 一种应用开发和运行环境,支持当前最流行的嵌入式操作系统PalmOS、EPOC、WindowsCE、FLEXO、 JavaOS等。
    WAP 可以支持目前使用的绝大多数无线设备,包括移动电话、FLEX寻呼机、双向无线电通信设 备等等。这些设备相对于台式个人计算机而言,CPU 功能弱,内存小,无线环境下电力供应受限, 显示屏较小,输入功能有限。在传输网络上, WAP也可以支持目前的各种移动网络,如GSM、CDMA、 PHS等等,它还可以支持未来的第三代移动通信系统。但相对使用 Internet的有线网络带宽,无线 网络的带宽资源永远是有限的。考虑到以上的限制和不利因素,WAP 充分借鉴了Internet的思想, 并加以一定的修改和简化。这就是,应用程序和网络内容采用标准的数据格式表示,使用与在PC机 上使用的浏览器软件相类似的微浏览器,应用标准的通信模式进行上网浏览。
    WAP 标准定义了一种应用环境,让设计人员能够开发独立于设备的用户界面,然后使用WMLSc_ript (WML脚本) 的WAP 编程语言,把可执行的逻辑嵌入到移动终端中。 这样,在移动终端上实际 运行了一种微型浏览器,它非常像PC机上使用的IE或Netscape浏览器。
因特网WAP网络架构


--------------------------------------------------------------------------------
WAP 网络架构由三部分组成,即WAP 网关、WAP 手机和WAP 内容服务器,这三方面缺一不可! 其中 WAP网关起着协议的‘翻译’作用,是联系GSM网与万维网的桥梁;WAP内容服务器存储着大量 的信息,以提供 WAP手机用户来访问、查询、浏览信息等。上图表明了WAP 网络的基本架构。当用 户从 WAP手机键入他要访问的 WAP内容服务器的URL 后,信号经过无线网络,以 WAP协议方式发送 请求至 WAP 网关,然后经过‘翻译’,再以HTTP协议方式与 WAP 内容服务器交互,最后 WAP网关 将返回的内容压缩、处理成BINARY流返回到客户的WAP 手机屏幕上。编程人员所要做的是编写 WAP 内容服务器上的程序或曰WAP网页。
WAP的技术特点
--------------------------------------------------------------------------------
    过去,无线Internet接入一直受到手机设备和无线网络的限制。WAP 充分利用了诸如XML,UDP 和IP等Internet 标准,它的许多规程建立在HTTP和TLS等Internet标准之上,但进行了优化,克服 了原无线环境下低带宽、高延迟和连接稳定性差的弊病。
    原来的Internet标准诸如HTML,HTTP,TLS和TCP用于移动网络是远远不能满足要求的,因为极大的文本数据信息需要传送。标准的HTML内容已不可能有效地显示在袖珍手机和寻呼机狭小的屏幕上。
    WAP 采用二进制传输以更大地压缩数据,同时它的优化功能适于更长的等待时间(long late_ ncy)和低带宽。WAP的会话系统可以处理间歇覆盖 (intermittent coverage),同时可在无线传 输的各种变化条件下进行操作。
    WML和WML Script用于制作WAP内容,这样可最大限度地利用小屏幕显示。 WAP的内容可从一个 最新式的智能电话或其它通信器的两行文字的屏幕上显示出来,也可以转变为一个全图像屏幕显示。
    轻巧的WAP 规程栈式存储器的设计可使需要的带宽达到最小化,同时使能提供WAP 内容的无线 网络类型达到最多。 它适用于多种网络, 诸如全球移动通信系统GSM900,GSM1800和GSM1900;过 渡性标准(IS)-136; 欧洲制式DECT;时分多址接入;个人通信业务,高速寻呼(FLEX)和码分 多址等。同时它也支持所有的网络技术和承载业务,包括短消息业务(SMS)、 非结构式辅助业务 数据(USSD)、 电路交换蜂窝移动数据(DSD)、蜂窝移动数字分组数据(CDPD)和通用分组无线 业务(GPRS)。由于 WAP建立在可升级的分层结构基础上,每一个分层可独立于其它分层而发展。 这就使得在不需要对其它分层改变的情况下就可以引进其它承载业务或使用新的传输规程。
WAP协议层
--------------------------------------------------------------------------------
WAP协议包括以下几层:
Wireless Application Environment (WAE)
Wireless Session Layer (WSP)
Wireless Transaction Layer (WTP)
Wireless Transport Layer Security (WTLS)
Wireless Transport Layer (WDP)

WAP 体系结构为流动通信设备的应用发展提供了一个可缩放和可扩展的环境。这通过完全协议堆的分层设计完成(如下图)。体系结构的每一层会受到上面一层与其它服务器以及应用的影响。
协议堆体系结构原理的说明:
无线应用环境(WAE): 无线应用环境是基于WWW和移动电话技术的结合的一种通用应用环境。WAE的基本目的是建立一 个可共同操作的环境,该环境允许操作人员和服务供给者用有效的方法创建能达到大量不同无线平 台的应用和服务。WAE 的一个微浏览器包含以下内容:
无线标识语言(WML):普通的标识语言,类似HTML,单为了在手提移动终端中的应用而进行了优化
WML脚本:普通脚本语言,类似JAVA脚本语言
无线电话技术应用(WTA,WTAI):电话技术服务和程序设计界面
内容文本:一组明确的数据格式,包括图象,电话本记录和日期信息
无线对话协议(WSP): 无线对话协议向两个对话服务提供了有一致接口的WAP应用层。首先是在WTP办理层上操作的连 接导向服务。其次是在安全或非安全数据包服务上操作的非连接服务(WDP)。 无线对话协议当前由 与浏览应用相匹配的服务组成(WSP/B),WSP/B 提供下列功能:
在压缩的超空间编码中的HTTP/1功能和语义
长久对话状态
通过对话移动暂停和恢复
可靠和不可靠数据的普通设备
协议特性流通。WSP体系的协议由于需要较长反应时间的低带宽载体网络的应用而进行优化, WSP/B的设计允许WAE代理把WSP/B客户连接到HTTP服务器。
无线办理协议(WTP): 无线办理协议(WTP)是在数据包服务顶端运行,并提供适合在"瘦"客户 (移动网络站)上执行的 普通办理导向协议。WTP在安全和非安全数据包网络上有效地操作并提供以下特性:
三个级别的办理服务
不可靠单向请求
可靠单向请求
可靠双向请求答复办理
可选择的用户间可靠性---WTP用户触发各收到的信息的确认
可选择的超频带数据确认
PDU串联延迟确认以减少传送信息的数量
异步办理
无线传输层安全性(WTLS): WTLS是基于工业标准传输层安全协议也就是以前的安全插槽层(SSL)上的一个安全协议。WTLS 是为WAP传送协议的使用而设计的,并由于低带宽通信信道上使用而进行了优化。WTLS提供下列特 性:
数据完整性---WTLS包含保证数据在终端和应用服务器间稳定准确无误地传送的设备
保密性---WTLS提供了保证数据在终端和应用服务器间传输保密性的设备, 如果截取了数 据流的中间就不能对其进行识别
真实性---WTLS包含建立终端应用服务器真实性的设备
拒绝服务保护---WTLS提供能检测和驳回重放和不能顺利进行核对的数据的设备。 WTLS多个拒绝服务使其难以完成并以此保护上面的协议
WTLS也可以用于终端间的安全通信,如电子商务卡互换的鉴别。应用能够根据 WTLS的安全请 求和潜在网络的特征有选择地激活其特性或使其失效。 (已经在低层服务中提供保密功能的网络中,保密性不能被激活)。
无线寻址信息协议(WDP):
WAP 体系结构中的传输层协议作为无线寻址信息协议(WDP)被提交。 WDP在支持不同网络类型 的载体服务的数据上运行。作为通用的传输服务, WDP向WAP上层协议提供一致的服务,并在其中 可用的载体服务上进行透明通信。WDP协议向上层协议提供普通接口,安全对话和应能够独立运行 下部无线网络,这是通过使传输层适应下部载体的特性来完成的。 在保持传输接口和基本特性一 致的情况下,用中间网关可以实现全局工作互联。
WAP的局限性
--------------------------------------------------------------------------------
    WAP前景一片光明,但目前在技术上仍受到一定的制约:
首先,无线数据网络和有线网络相比,具有更小心严格的通信环境,提供的范围和活动也受到 一些基本限制,具体表现如下:
较低的带宽
较高的隐蔽性
较少的联系稳定性
较低的可预测获得性

    其次,随着带宽的增加,手机能量消耗也会增加,这样就使移动通信器件中有限的电池寿命负 荷加重。因此,即使无线网络提高释放高带宽的能力,手机可获得的能量也会使数据通过元件的有 效性受到影响。一个无线数据协议必须克服这些网络限制,才能使用户获得满意的使用效果。

    另外,WAP的发展还受到元件不足的影响。 目前市场上的手机配件和台式机相比,具有更为严格的运算环境。由于其电池寿命和形式方面 受到一些基本限制,表现出如下不足:
不甚强大的CPU(主机)
较小的内存(ROM和RAM)
能量消耗受到严格限制
较小的显示屏
不同的输入设备(例如:电话按键盘,声音输入器等)

    由于这些限制,无线手机要使用完全不同于台式机的用户接口,具有一定的局限性,但这些问 题必将会随着技术上的进步而得到改进。

WAP网站建设方案
--------------------------------------------------------------------------------
    移动互联网的是建立在WAP技术之上的,要真正应用需要三个环节,即WAP网关的建设、WAP内容服务器和WAP终端,其中缺一不可。WAP 网关的建设一般由运营商(移动通讯公司或与大的ISP等有关的企业) 来建设,WAP 终端由通讯硬件生产厂家来制造, 有了可以上网的移动终端和无线互联网基础,还需建立WAP内容服务器,为移动用户提供可以浏览的内容。以下是 移动互联网的一个简单示意图:


WAP 网站有两种基本解决方案:WAP 内容网站+公共网关、WAP 内容网站+WAP网关。WAP网站是寄存于WEB服务器上的,是因特网业务向移动终端的延伸,所以WAP网站需要WEB服务器,WAP网站可以于WEB网站共用同一服务器,也可以独立使用。

WAP内容网站+租用网关
--------------------------------------------------------------------------------
    这一种方案比较投入较少,而且维护费用减少。适合一些中小企业。具体实施方案也可根据企业的需求做一选择: 名    称    WEB服务器    WAP服务器    说明
方案一    专线T1/EI    专线T1/EI    配置灵活,利于维护、开发有特色、功能强大的复杂的应用网站。可自由选择开发平台、编程语言,采用新技术等优点。缺点:费用高。
方案二    主机托管    主机托管    配置灵活,可自由选择开发平台、编程语言,采用新技术等优点。 缺点:维护,开发不是很方便。
方案三    租用虚拟主机    租用虚拟主机    配置取决于所租用主机的配置,可开发功能简单的一般性网站。 优点:费用少,维护简单。缺点:无自由配置和选择开发语言的权力,无法应用最新的一些技术。

    WAP网关则选用一些开放的公共网关如:中国移动通讯或中国联通或其他公司的WAP网关。但是要支付服务费。

WAP内容网站+WAP网关
--------------------------------------------------------------------------------
    这一种方案比较投入较多,而且维护费用高。适合一些大型有实力的企业。具体实施方案也可根据企业的需求做如下选择:名    称    WAP 网关    WEB服务器    WAP服务器    说明
方案一    可以有很多选择诺基亚、爱立信、PHONE.COM或其他公司等的WAP网关    专线T1/EI    专线T1/EI    配置灵活,利于维护、开发有特色、功能强大的复杂的应用网站。可自由选择开发平台、编程语言,采用新技术等优点。缺点:费用高。
方案二    可以有很多选择诺基亚、爱立信、PHONE.COM或其他公司等的WAP网关    主机托管    主机托管    配置灵活,可自由选择开发平台、编程语言,采用新技术等优点。缺点:维护,开发不是很方便。
方案三    可以有很多选择诺基亚、爱立信、PHONE.COM或其他公司等的WAP网关    租用虚拟主机    租用虚拟主机    配置取决于所租用主机的配置,可开发功能简单的一般性网站。优点:费用少,维护简单。缺点:无自由配置和选择开发语言的权力,无法应用最新的一些技术。

WAP网站服务器配置

基于WINDOW NT平台的IIS设置WAP SERVER
--------------------------------------------------------------------------------
    只要按照以下的简单设置,就可以让NT IIS成为WAP服务器,您可以撰写WML网页或者开发各种服务。未名工作室
设定方式:(先确定NT Server已经安裝IIS了服务)
执行NT操作系统下的【开始】/【程序】/【Windows NT Option Pack】/【IIS 4.0】/Internet服务管理员。
在IIS服务管理员窗口內,点选主机电脑名称后,按鼠标右鍵,点选“属性”选项;
在属性窗后下部有一个文件类型按钮,单击此按钮,会出现文件类型界面;
单击‘新增类型’按钮,然后在相关的扩展名栏中填写 .wml ,在内容类型(MIME)栏中填写 text/vnd.wap.wml
单击‘确定’按钮
重复以上步骤将以下WML类型新增至MIME内:相关的扩展名    內容类型(MIME)
.wml    text/vnd.wap.wml
.wmlc    application/vnd.wap.wmlc
.wmls    text/vnd.wap.wmlscript
.wmlsc    application/vnd.wap.wmlscriptc
.wbmp    image/vnd.wap.wbmp

设置APACHE WEB SERVER
--------------------------------------------------------------------------------
不管是NT 还是UNIX 或LINUX ,都是修改 Apache 安装目录下的conf/mime.types文件
在该文件中增加以下内容:
text/vnd.wap.wml .wml
image/vnd.wap.wbmp .wbmp
application/vnd.wap.wmlc .wmlc
text/vnd.wap.wmls .wmls
application/vnd.wap.wmlsc .wmlsc

存盘
重新启动APACHE WEB SERVER 即可。

Technorati 标签:

MTK平台发展及各芯片功能介绍

From 曹纪乾的专栏

MT6205、MT6217、MT6218、MT6219、MT6226、MT6227、MT6228均为基带芯片,所以芯片均采用ARM7的核。
MT6305、MT6305B为电源管理芯片。
MT6129为RF芯片。
RF3146(7×7mm)、RF3146D(双频)、RF3166(6×6mm)为RFMD的PA集成度较高 成本低。 
MT6205为最早的方案,只有GSM的基本功能,不支持GPRS、WAP、MP3等功能。(2003年MP)
MT6218为在MT6205基础上增加GPRS、WAP、MP3功能。MT6217为MT6218的cost down方案,与MT6128 PIN TO PIN,只是软件不同而已,另外MT6217支持16bit数据。(2004年MP)
MT6219为MT6218上增加内置AIT的1.3M camera处理IC,增加MP4功能。
8bit数据。(2005年MP)
MT6226为MT6219 cost down产品,内置0.3M camera处理IC,支持GPRS、WAP、MP3、MP4等,内部配置比MT6219优化及改善,比如配蓝牙是可用很便宜的芯片CSR的BC03模块USD3即可支持数据传输(如听立体声MP3等)功能。
MT6226M为MT6226高配置设计,内置的是1.3M camera处理IC。(2006年MP)[52RD.com]
MT6227与MT6226功能基本一样,PIN TO PIN,只是内置的是2.0M camera处理IC。(2006年MP)
MT6228比MT6227增加TV OUT功能,内置3.0M camera处理IC,支持支持GPRS、WAP、MP3、MP4。(2006年MP)
从MT6226 后软件均可支持网络摄像头功能,也就是说你的机子可以用于QQ视频。[52RD.com]MT6226A是MTK的26平台早期的产品,现在已经切换到成熟的MT6226B,主要区别在于声音处理AMR解码方面改善,MT6226M则是将内置摄像处理IC提高到130万象素,MT6226C是可以硬件锁网(即如转供移动、连通某一运营商的)。
MT6229……在6228的基础上多了个EDGE GPRS功能  其他的一样

诺基亚收购奇趣为哪般?

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的手机软件。

标签分类