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

2008年2月5日星期二

Windows Mobile 6 SDK 中的 GPS 工具

来自:http://www.cnblogs.com/upto/archive/2007/02/15/gps-tools-in-wm6sdk.html

GPS Intermediate Driver

自从 Windows Mobile 5.0 引进了 GPS Intermediate Driver(GPS 中间驱动程序,以下简称 GPSID),开发基于 GPS(Global Positioning System,全球定位系统)的 Windows Mobile 应用程序变得简单多了。原因是它在开发人员编写的应用程序和 GPS 设备之间加入了一个中间层,使开发人员不需要通过串口直接访问 GPS 设备,而是访问 GPSID 提供的 API 函数,GPSID 再去访问 GPS 设备。这样一来,编写出来的 GPS 应用程序具有设备无关性。另外,GPSID 还有下面两个好处:
1. 多个应用程序可以同时访问同一个 GPS 设备,因为你访问的是 GPSID
2. 不需要去解析 NMEA 命令,GPSID 帮你解析好了

关于 GPSID 的详细介绍请参阅 GPS Intermediate Driver Reference,还可以观看张汝颇的 Windows Mobile 轻松接轨GPS Webcast,在本文不会展开讨论。

这次 Windows Mobile 6 SDK 提供的 Fake GPS 和 GPS Settings 这两个针对 GPSID 开发和使用的辅助工具,基于 .NET Compact Framework 1.0 编写,所以适用于 Windows Mobile 5.0。在 C:\Program Files\Windows Mobile 6 SDK\Tools\GPS 目录下可以找到这两个小工具。

Fake GPS

如果你想开发一个运行在 Windows Mobile 系统的 GPS 应用程序,但是找不到 GPS 设备用来调试,或者你在室内调试程序,GPS 设备接收不到卫星信号,那 Fake GPS 正是你急需的工具了。

GPSID 的所有设置信息都保存在注册表中,可以通过修改注册表来更改 GPSID 的设置。其中有个一个设置,可以让 GPSID 从一个包含 NMEA 命令的 .txt 文件读取 GPS 数据,而不需要从 GPS 设备读取数据。这个在张汝颇的 Windows Mobile 轻松接轨GPS 中也有介绍。Fake GPS 的工作原理就是修改注册表的 GPSID 设备,让  GPSID 从一个文本文件读取 GPS 数据。而对于我们开发的应用程序来说,跟访问真实的设备并没有两样。

在使用 Fake GPS 之前需要将它安装到你 Windows Mobile 设备上或者仿真器上,安装文件是 FakeGPS.CAB。这里我把 Fake GPS 安装到 Windows Mobile 6 Standard 的仿真器里。安装成功后在开始菜单中找到它并运行。

Fake GPS 的设置默认没有生效,我们可以在第一个输入框把它的状态改为 Enabled,现在可以在第二个输入框中选择从哪个文件读取 GPS 数据。Fake GPS 默认带了两个测试文件,fakegpsdata.txt 在打开后会让 GPSID 马上接收到位置信息,而 dixies.txt 需要等待一段时间才能接收到位置信息。

如果你想使用自己的测试数据,可以将编写好的 .txt 文件复制到 \Program Files\FakeGPS\GPSFiles 目录下,在重新运行 Fake GPS 就可以在 NMEA File 列表中看到了。

下面有一段 NMEA 数据可供测试:
$GPGLL,4738.0173,N,12211.1874,W,191934.767,A*21
$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E
$GPGSV,3,1,9,8,71,307,43,27,78,59,41,3,21,47,0,10,26,283,40*77
$GPGSV,3,2,9,29,13,317,0,28,37,226,37,13,32,155,36,19,37,79,42*42
$GPGSV,3,3,9,134,0,0,0*46
$GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,,*21
$GPGGA,191935.767,4738.0172,N,12211.1874,W,1,06,1.4,32.9,M,-17.2,M,0.0,0000*75
$GPGLL,4738.0172,N,12211.1874,W,191935.767,A*21
$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E
$GPRMC,191935.767,A,4738.0172,N,12211.1874,W,0.081611,15.81,291004,,*2A

这里我选择了 fakegpsdata.txt  作为测试数据。点击 done 按钮保存设置并关闭 Fake GPS。然后运行我前段时间编写的一个坐标采集工具 Smart GPS Tracker,它是基于 Windows Mobile 5.0 GPSID 编写的,效果如下:

到此为止,我没有用到一台真实的设备。Fake GPS 适用于 Pocket PC 和 Smartphone 两种操作系统,它会自适应。

GPS Settings

在 Windows Mobile 5.0 和 Windows Mobile 6 的 Pocket PC 版操作系统中自带了一个 GPSID 的配置程序,在 Windows Mobile 6 Professional 中可以通过选择“Start-->Settings-->System-->External GPS”打开。

而 Smartphone 版的操作系统中并没有自带类似的 GPSID 配置程序,这为开发 Smartphone 上的 GPS 应用程序带了一些不便。我是自己写了一个,其实也不难,就是读/写几个注册表的键值。

Windows Mobile 6 SDK 中提供了一个叫 GPS Settings 的工具,用于在 Smartphone 的操作系统配置 GPSID,功能跟 Pocket PC 上的一样。在 C:\Program Files\Windows Mobile 6 SDK\Tools\GPS 目录下找到 Settings.exe,并将它复制到 Smartphone 上运行。

关于 GPSID 如何设置,这里不展开了,如果你感兴趣可以看我上面推荐的学习资料。

总结

GPS Intermediate Driver 为我们开发 GPS 应用程序带来了很多好处,而 Windows Mobile 6 SDK 中提供的 Fake GPS 和 GPS Settings 这两个小工具,弥补了 Windows Mobile 5.0 SDK 中的空缺,使得开发基于 GPSID 的应用程序更加方便。如果你对这两个工具的工作原理感兴趣,可以自己用 Reflector 打开它们的程序集,好好研究一番,不明白的地方可以查 SDK 的帮助。另外,Windows Mobile 6 SDK 自带了一个 GPSID 示例的完整项目代码,对于理解 GPSID 的工作原理很有帮助,并且它的代码具有很高的重用价值,在 D:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS 目录下可以找到这个示例。

参考:
What's New for Developers in Windows Mobile 6
GPS Intermediate Driver Reference

Technorati 标签:

Windows Mobile开发资源介绍(转)

From "海水火焰"的专栏"

目前Windows Mobile的开发资源已经非常多了,我们在这里试着对这些资源进行一个归纳,使第一次进入Windows Mobile领域的开发者能够更容易得找到有用的开发资源。

Windows Mobile是什么

Windows Mobile是微软为智能手机和PDA提供的操作系统,在Windows Mobile 5.0之前分为Pocket PC和Smartphone两种版本,Pocket PC中包括PDA版本和带电话功能的Phone Edition。在Windows Mobile 6.0中分为三类:Professional,即Pocket PC Phone Edition; Standard, 即Smartphone;Classic,即无电话功能的Pocket PC。

Windows Mobile是基于Windows CE操作系统开发的针对智能手机和PDA的操作系统平台。所以Windows Mobile的硬件与应用程序都是由相关的标准要求,符合标准才能够运行Windows Mobile操作系统。

获取开发工具

目前Windows Mobile的主流开发平台/语言分为两种:.NET(包括C#和VB.NET)和C++。微软已经将这两种开发语言的支持加入到Visual Studio中。Visual Studio 2005和2008均内置了Windows Mobile的SDK,可以直接开发Windows Mobile应用程序。Visual Studio也支持安装最新版本的Windows Mobile SDK。

如果想用Visual Studio开发Windows Mobile应用程序的话,必须已经获取了Visual Studio Professional或以上版本。

除了Visual Studio外,我们还可以使用免费的eMbedded Visual C++ 4.0来开发C++应用程序。在安装SP4版本后,可以支持基于Windows CE 5.0设备的应用开发(目前Windows Mobile 5.0和6.0均基于Windows CE 5.0)。下载地址如下:

http://www.microsoft.com/downloads/details.aspx?FamilyId=1DACDB3D-50D1-41B2-A107-FA75AE960856&displaylang=en

eMbedded Visual C++ 4.0 SP4下载地址:

http://www.microsoft.com/downloads/details.aspx?familyid=4A4ED1F4-91D3-4DBE-986E-A812984318E5&displaylang=en

在安装完成开发工具后,还需要根据不同的目标设备安装不同版本的Windows Mobile SDK。我们可以在MSDN网站的下载中查询“Windows Mobile x.0 SDK”,或者直接去下面链接中查找:

http://msdn2.microsoft.com/en-us/windowsmobile/bb264327.aspx

比如,Windows Mobile 6.0 SDK的下载地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=06111a3a-a651-4745-88ef-3d48091a390b&DisplayLang=en

如果要开发中文版的应用程序,还需要安装单独的本地化模拟器映像文件。Windows Mobile 6.0的语言映像文件下载链接如下:

http://www.microsoft.com/downloads/details.aspx?familyid=38C46AA8-1DD7-426F-A913-4F370A65A582&displaylang=en

除此之外,我们还需要安装ActiveSync 4.5,来使开发环境与Windows Mobile设备相连接。在Vista中Windows Mobile Device Center与ActiveSync的功能相同。

如果使用.NET Compact Framework来开发应用程序,还需要保证目标设备上安装了.NET CF的CLR,如果没有目标设备安装.NET CF,可以下载单独的.NET CF再发布包:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9655156b-356b-4a2c-857c-e62f50ae9a55

网络资源

Windows Mobile开发中心

http://msdn2.microsoft.com/en-us/windowsmobile/default.aspx

Windows Mobile产品主页

http://www.microsoft.com/windowsmobile/

http://www.microsoft.com/china/windowsmobile

Windows Mobile移动解决方案联盟

http://www.wmisv.com.cn/

Pocket PC Developer Network

老牌Pocket PC开发者网站,在EVC和EVB时代曾经是开发者唯一的选择,不过后来风头逐渐被OpenNETCF盖过,但目前依旧是最完整的开发文章目录

http://www.pocketpcdn.com/

Smartphone Developer Network

Pocket PC Developer Network的姊妹网站

http://www.smartphonedn.com/

Code Project

综合性开发者网站,其中CE开发和.NET CF开发部分由许多值得借鉴的示例代码

http://www.codeproject.com/KB/mobile/

DEVBUZZ.COM

老牌Embedded Visual Basic开发网站,转型.NET CF后,仍然有一些开发资源值的一看

http://www.devbuzz.com/

开发资源

OpenNETCF

著名的开源类库,早先由多位MVP发起,进行公司化运作,后被Novell收购,先为咨询公司。OpenNETCF的最新版本仍可以免费使用,但不提供源代码。

http://www.opennetcf.com/

InTheHand

著名的开源类库,32feet.NET是以Bluetooth和IrDA开发为主的Shared Source类库。

http://inthehand.net/

Mobile Line of Business Solution Accelerator

由微软开发的一套移动商业软件开发指导包

http://www.microsoft.com/downloads/details.aspx?FamilyId=80A5C2C5-4F9B-4C1A-BFF6-2A3C6B68D15B&displaylang=en

Mobile Client Software Factory

微软开发的一套软件工厂框架,将设计模式应用于Mobile软件开发

http://msdn2.microsoft.com/en-us/library/aa480471.aspx

下载地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=F9176708-9F57-4C0F-97FB-F9C65A9BBF22&displaylang=en

开发社区

中文的开发论坛:

l  微软移动开发者论坛

微软的官方开发者论坛,目前的版主是微软最有价值专家(MVP)。

http://forums.microsoft.com/china/default.aspx?ForumGroupID=459&SiteID=15

l  CSDN嵌入式开发论坛

最大的开发者社区,硬件/嵌入式开发板块中包括“嵌入开发(WinCE)”板块和移动平台板块中包括“Windows Mobile”板块

http://community.csdn.net/

l  Windows Mobile开发者社区

CSIP创建的开发者讨论社区

http://www.winbile.net/BBS/

l  马宁的Windows Mobile开发研究

http://groups.csdn.net/aawolf_Mobile

l  博客园的Windows Mobile应用开发团队博客

shttp://mobiledev.cnblogs.com/

英文论坛:

l  MSDN开发者社区:Smart Device Development

http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=11&SiteID=1
Webcast

l  中文MSDN与TechNet Webcast

Windows移动开发系列课程

http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/Series/WindowsMobile.aspx

Windows Mobile 技术开发黄金周

http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/Series/Mobilegoldenweek.aspx

Windows Mobile 2nd 开发黄金周

http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/Series/Mobilegoldenweek2nd.aspx

Windows Mobile 3rd 技术开发黄金周

http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/Series/mobile3rd.aspx

TechNet Windows 移动系列课程

http://www.microsoft.com/china/technet/webcasts/class/mobile.mspx

l  英文Webcast和Virtual Labs

Windows Mobility Marvels

主要针对的是Windows Mobile开发者,包括Webcast和Virtual Labs

http://www.microsoft.com/events/series/msdnmobility.aspx

Windows Mobility Marvels部分课程下载

http://www.microsoft.com/downloads/details.aspx?FamilyID=08e4391d-e07d-41fe-b2b8-aa4225281347&DisplayLang=en

Windows Mobile Solutions

针对IT Pro和Windows Mobile用户的Webcast系列

http://www.microsoft.com/events/series/msecmobility.aspx

BLOG

l  Windows Mobile产品组英文BLOG

Windows Mobile Team Blog

http://blogs.msdn.com/windowsmobile/

.NET Compact Framework Team Blog

http://blogs.msdn.com/netcfteam/

Visual Studio For Device

http://blogs.msdn.com/vsdteam/

SQL Server Compact

http://blogs.msdn.com/SQLServerCompact/

l  产品组成员BLOG

Mike Hall的BLOG

http://blogs.msdn.com/mikehall/

Rob Tiffany's Windows Mobile Accelerator

主要研究领域为SQL CE和BOL Accelerator

http://blogs.msdn.com/robtiffany/

David Kline

.NET Compact Framework应用领域

http://blogs.msdn.com/davidklinems/

Steve Lasker's Web Log

SQL CE和Sync Service for ADO.NET

http://blogs.msdn.com/stevelasker/

Steven Pratschner's .Net CF WebLog

.NET Compact Framework CLR运行机制

http://blogs.msdn.com/stevenpr/

l  英文开发者BLOG

OpenNETCF Blogs

以开发OpenNETCF开源类库闻名的公司,拥有多位重量级MVP的BLOG

http://blog.opennetcf.org/

In the hand Blogs

另一个以开发InTheHand开源类库闻名的开发者BLOG

http://inthehand.net/blogs/

l  中文开发者BLOG

马宁的移动开发BLOG

http://blog.csdn.net/aawolf

张欣的BLOG

http://twodays.cnblogs.com/

黎波的BLOG

http://www.cnblogs.com/upto/

Technorati 标签:

WAP网关服务器应用介绍

From unp的专栏

      在这里讨论了wap网关服务器与移动网络的几种连接方式,以及相应的协议栈,并对其进一步应用作了一些初步探讨。
1. 简介
目前wap已成为信息技术(it)领域内的热门话题,有关这方面的文章和论述了较多,涉及到wap的方方面面,例如协议栈本身、wap的各种应用等。的确,wap实现了21世纪人们随时随地'上网冲浪'的梦想,是无线通信和internet结合的最佳模式之一。wap应用领域也相当丰富,其最大特点在于系统结构的灵活性和协议的开放性,wap网关服务器(wap gateway server)是其中的关键部分,它与移动网络的连接方式直接决定了其应用模式生效能。本文将对进一步加强wap网关服务器功能方面谈一下初步看法。

2. 经典的wap应用结构模型
由wap论坛(wap forum)制定的wap协议廾基本结构为底层承载(bearer)+ 无线数据报协议(wdp)+ 传输层安全协议(wtls)+ 事务层协议(wtp)+ 会话层协议(wsp)+ 无线应用环境(wae),在最新的wap1.2版本中啬了许多新的应用模式,如'推'(push,即将internet内容主动发送给移动用户的一种协议)等。wap协议栈应用于结构模型如图1所示。其中作为核心成分的wap网关服务器主要完成两个功能:实现wap协议栈(wsp/wtp/wtls/wdp)与internet协议栈(http/tls/tcp/ip)之间的协议转换;信息内容的编解码,即将wap数据压缩编码以减少网络数据流量,最大限度利用无线资源。
wap实现手机上网,是由移动终端、移动网络(由基站和交换机组成)、wap网关服务器和网络内容供应商(icp)、网络服务供应商(isp)之间协调完成。这一典型手机上网过程可简述如下:
(1) 手机发出请求;
(2) 移动网络(gsm、cdma或其它移动网络)接通本地isp;
(3) 本地isp连接wap网关服务器;
(4) wap网关服务器向目标内容服务器发出请求;
(5) 目标内容服务器将信息传给wap网关服务器;
(6) wap网关服务器将处理后的信息发送到本地isp;
(7) 本地isp将住处传回移动网络;
(8) 手机接收到internet信息;
可见实现这一过程所参与的网络实体比较多,相互的协调也较为复杂。同时,wap网关服务器仅仅作为一网关来使用,承担功能相对不足。因此不妨利用wap协议的开放性,改变这种单一的连接形式,来达到充分利用wap网关服务器强大存储和处理能力的目的,让它成为真正意义上的'服务器'。

3. wap服务器与移动网络(mn)连接的几种形式以及协议栈的变化

3.1 连接形式
wap作为一种网关服务器(连接mn与internet的gateway),与移动网络的连接方式是决定其结构和功能的主要因素,即所谓的'wap网关服务器解决方案'。对采用分组交换的移动网络,如gprs以及第三代网络等,wap网关服务器可与其采用ip直连的方式,这里就不多加探讨。但对于非ip网络,如gsm电路交换数据(csd)网等,就有可能采用不着一些变化的连接形式。下面以目前应用较为普遍的csd和短消息(sms)承载实体为例来说明这些变化,以及由此带来的利弊和wap网关服务器效能的改变。
(1) 用在电路交换数据承载实体上
在电路交换数据承载实体上,wap网关服务器与mn可以有三种连接情况,如图2所示。 第一种形式是经典方法,csd经过一系列的中间转换(依次经过iwf、pstn、modem),最后由isp提供与wap网关服务器的ip连接; 第二种方式由移动网络交换机直接提供数字中继连接到isp,由isp提供与wap网关服务器的ip连接,isp起到了csd与ip之间协议转换的作用。 第三种方式是由移动网络交换机直接提供数字中继,连接至wap网关服务器。 第一种方式可充分利用目前的基础设施,即数量庞大的用户线都可实现与wap网关服务器的连接,直接的好处就是wap服务供应商会增多,可充分引入竞争和改善服务等。 第二种方式中isp商需要租用相对昂贵的中继线,同时也要承担csd和ip之间协议转换的任务,可能会影响isp商参与wap服务的积极性。 第三种方式连接最为简洁、可靠,但需由wap网关服务器来承担csd至ip的协议转换工作,在这种方案中wap网关服务器也扮演了isp的角色。从充分利用wap网关服务器功能的角度出发,第三种方案将是一种较好的解决方案。

(2) 在短消息业务承载实体上
在短消息业务(sms)承载实体上,wap网关服务器与mn也有两种连接情况,如图3所示。第一种方案是经典方案。第二种方案在保留短消息中心的情况下,将无线数据网关的功能移至wap网关服务器,这是让wap网关服务器承担尽可能多的功能。目前移动网络所支持的短消息业务其流量有限(最多只能传送140bytes的内容),用它来承载internet并无多大意义。进一步的考虑是将wap网关服务器应用为一短消息业务中心,这样具有更大的实用价值。 从电信设备制造商的角度出发,两个承载实体(实际上可推广到所有承载实体)都趋向于选择使wap网关服务器的功能更强大的方案。从技术上讲,wap网关都是由存储量大、处理能力强的计算机来承担,若仅仅完成网关的作用,有'大材小用'之嫌。因此为充分利用已有的能力,将一部分功能移至wap网关服务器,是完全可行的。而且对运营商来讲,这样的组网方式连接简单、成本相对较低、运行可靠、维护方便。从理论上讲,wap协议的开放性是可以保证这些多种连接的灵活性的。

Technorati 标签:

WAP技术简述

From gullsky的专栏

解析WAP

手机上网是一个非常美好的梦想。为实现这个梦想,各种新技术正在加紧开发研制中,而WAP是这些技术中闻关键的技术之一。
在信息时代,如何从有线的缠绕中解脱出来,随时随地获取文件、Email、公司内部 资料和Internet信息呢?无线应用协议(WAP)为无线用户提供了高速、移动的解决方案。据预测,2000年底全球将有1亿部兼容WAP的设备出现,到2003年,美国的西欧两地将可交付多达5.25亿台的WAP设备。
什么是WAP?
WAP是一个用于向无线终端进行智能化信息传递的无需授权、不依赖平台的协议。WAP论坛成立于998年,由Nokia、Ericsson、Motorola和Unwired Planet等四家公司发起组成,现拥有100多个公司和机构的行业协会,它致力于开发用于数字移动电话和其他无线终端设备的无线信息与电话服务在事实上的全球标准。论坛的目标是将无线行业价值链各个环节上的公司联合在一起,以保证产品的互操作性和无线市场的发展。
WAP针对屏幕较小、连接速率较低和内存较小设备的上网需求而设计。通过WAP,人们可以利用手机或寻呼机等进行联网查账、存钱、转账、或是通过手机来浏览一些服务信息,如旅馆、天气、交通信息等。在电子商务、企业网、信息服务等各个方面,WAP将大有作为。WAP提供一种以安全迅速、灵活、在线和交互的方式连接服务、信息和其他用户的媒介。用户可以从通过移动电话、寻呼机或其他无线设备实现的对相关Internet/Intranet信息的方便安全的访问;还可以得到消息通知与呼叫管理、电子邮件、电话增
值服务与联合消息发送、地图与定位服务、天气与交通预报、新闻、体育信息服务、电子商务交易与银行服务、在线地址薄与目录服务以及企业Intranet应用等多项服务。
WAP可以建立在GSM-900、GSM-1800、GSM-1900、CDMA IS-95、TDMA、IS-136(即DAMPS)、IMT-2000、UMTS、W-CDMA、宽带IS-95、FLEX寻呼系统,CDPD等系统上。
WAP的几个协议:
1.Wireless Application Environment(WAE)无线应用环境
WAE是建立在移动技术与WWW结合基础之上的应用环境。它的目标是在不同无线平台上创建一个允许用户和服务供应商进行交互操作环境。WAE包含一个微型浏览器,具有以下功能:
(1)无线标记语言WML;
(2)WMLScript;
(3)无线电话应用;
(4)内容格式。
2.Wireless Session Protocol(WSP)无线会话协议
WSP协议栈已经为高延迟、低带宽的网络进行了特别优化。WAP/B允许使用WAP Proxy连接WAP/B的客户端和标准的HTTP服务器。WAP为两种会话服务提供统一的接口:一个是在传输层协议WTP之上的面向连接的服务;另一个是在安全或非安全数据报服务(WDP)之上的非连接服务。
3.Wireless Transaction Protocal(WTP)无线传输协议
WTP提供了一个适用于瘦客户(移动终端)的面向传输的轻载协议。WTP可有效地运行在安全或非安全的无线数据报网络上。
4.Wireless Transport Layer Security (WTLS)无线传输层安全
WTLS是一个建立在TLS上的安全协议,以前称为SSL。WTLS具有数据完整性、传输保密、校验、拒绝服务保护等特征。
5.Wireless Datagram Protocol(WDP)无线数据包协议
WAP中的传输层协议涉及到WDP,WDP建立于各种网络之上,为WAP的上层协议提供统一的接口,使会话层,应用层可以相对独立于下面的无线网络。
WAP的现状和将来
WAP v1.0由WAP论坛在1998年4月发布,WAP V1.1与WAP v1.0具有相同的功能,并在为商业应用准备的新版本中增加了来自于第一批用户的详细反馈。WAP使用了许多Internet标准,如XML、UDP和IP。许多预留协议基于像HTTP、TLS这类Internet标准,且为适应无线环境的特殊限制而进行了优化。未来的WAP将包括端到端安全性、智能卡接口、面向连接的传输协议、持续存储、计费接口和推送技术,并且将向支持多媒体移动服务发展。

WAP技术
一、背景
移动通信和因特网是目前通信行业发展最快的两个领域。移动通信使得人们可以随时随地和他人通信,因特网使人们可以获得丰富多彩的信息。根据预测到2001年全球移动用户将超过5亿(包括模拟,数字蜂窝,PCS,PHS)到2005年将超过10亿。另据统计,截至到1999年7月连人因特网的主机数已达到56218000(来源WWW.iSC.org)。但目前移动通信业务只限于话音和短消息,因特网只提供固定接入方式。移动通信和因特网结合起来将创造一个新的市场--无线因特网市场。人们通过手持终端,可以随时随地连接因特网,享受各种服务如收发E-mail,获得交通信息,股票信息,天气信息,新闻以及电话簿查询。
二、为什么需要WAP
但是将Internet业务引入无线网络还存在许多困难。因为和固定Internet接入相比,无线网络在市场应用,网络带宽和终端能力等方面有很大差异。
首先,移动用户可能没有任何使用桌面计算机的经验,因此无线计算设备必须简单易用,要比最简单的桌面机还要简单。在移动环境中,用户不是做"网上冲浪"而是要获得有价值的信息,长时间的等待网页下载是让人无法忍受的。与通常价格在1000美元左右的桌面计算机相比,手机价格平均在150美元左右,因此必须给市场提供低成本,高附加值的产品。WAP应用是专为手机用户开发的,能够为用户提供实时,准确的信息。
其次,无线网络与有线相比,带宽要窄得多,且延迟大,误码率高,连接稳定性差。因此要求协议必须简单。WAP协议栈专为无线网络进行了优化,适用于各种无线传输技术,如GSM,CDMA,PDC等。
最后,与性能优越的PC机相比,手机的CPU运算速度慢,内存容量小,显示屏幕小,键盘小,电池寿命有限。针对这种情况,需要开发手机专用的WAP微浏览器,这种微浏览器只需要最低限度的RAM,ROM,CPU显示和键盘就可以工作。由此可见,WAP技术适用于无线环境,是实现无线因特网的关键技术之一。
三、WAP概述
WAP(Wireless Applicaton Protoc)是由WAP论坛制定的一套全球化无线应用协议标准。WAP论坛是由EricssonMotorala,Nokia和Phone.com于1997年6月发起成立的一个工业组织。它的目标是使互联网的内容和各种增值服务适用于手机用户和各种无线设备用户,并创立一种全球化的无线应用协议,使其适用于不同的无线网络技术,并促使业界采用这种标准。目前WAP论坛的成员超过100个,其中包括全球90%的手机制造商总用户数加在一起超过1亿的移动网络运营商,以及软件开发商。WAP论坛和其他电信标准化组织如欧洲电信标准委员会(ETSI)万维网联盟(W3C)电信工业协会(TIA)和因特网工程任务组(IETF)等有着密切的合作关系。WAP协议是基于已有的因特同标准,如IP,HTTP,XML,SSL,URL,Scripting等。并针对无线网络的特点进行了优化。WAP是一个开放的标准,能保证不同厂家的产品之间互相兼容,并允许不断引入新技术。WAP协议独立于底层的承载网络,可以运行于所有网络之上,包括现在的GSM,窄带CDMA,CDPD,以及将来的GPRS,宽带CDMA等无线网络。WAP标准和终端设备也相对独立,适用于各种型号的手机,寻呼机和PDA已发布的WAP规范有WAP1.0WAP1.1,最新的WAP1.2将于1999年12月发布。
WAP1.1规范定义了无线应用环境(Wireless Application Environmen)和无线协议(Wireless Protocol)无线应用环境包括
※WML微测览器
※WMLScrPt语言
※WMLSCript标准库
※无线电话应用接口(Wireless TB6phony Application Interface)
※WAP内容类型
※无线协议包括:
※无线会话协议(WSP)
※无线传输层安全性(WTLS)
※无线事务处理协议(WTP)
※无线数据报协议(WDP)
※线网络接口定义
四、WAP应用环境
WAP应用环境包括WAP客户机WAP网关WAP内容服务器。
WAP客户机包括WAP微浏览器和无线电话接口(WTAI)。微浏览器负责解释WML和WML Script。
微浏览器类似于标准的Web例览器,是专为手机设计的,其生成的代码紧凑、高效并能提供灵活,强大的用户界面。无线电话应用接口用于电话业务的扩展,包括呼叫控制,网络文本消息,电话簿接口,事件处理,指示控制。例如。对于呼叫前转业务,可以提供给用户一个界面,提示用户选择是接受呼
叫,还是前转给其他人或前转到语音信箱。
WAP网关位于Web服务器和WAP客户机之间,它的主要作用是将HTTP协议以及TCP/IP协议转换为 WAP协议。用户请求内容在WAP同关中翻译成普通HTTP请求,通过URL寻址到普通HTTP Server,取得内容后转换成WMLdeck返回给移动用户。
WML是一种标记语言,与HTML类似,是基于W3C的XML语言。WML文件由一组用户交互的定义好的单元组成。用户交互的一个单元称为卡片,用户可以在卡片之间前后浏览。WML采用小的标签,比HTML更适用在手持终端上实现。
WML Script是一种脚本语言,类似于JaVa Script。Web服务器提供信息内容,内容可以HTML格式的文件或编译过的WML和WML SCriPt格式的文件。
五、WAP协议
WAP协议栈参照了Inernet协议,针对无线环境进行了优化。WAP协议是一种轻量级的协议。
适用于各种无线网络。
无线会话协议(WSP)提供两种会话服务:
※在WTP上基于连接的服务该服务确保数据传输。
※无连接的服务、该服务不确保数据传输。
WSP主要用于测览器应用主要特性包括:
※HTTP1.1头,指出扩展模式
※能力协商
※二进制编码,以减少协议开销
※对例如内容类型,字符集,设备能力及其他静态参数使用客户/服务头
※异步请求应答(同时处理多个请求应答)
无线事务处理协议(WTP)是轻量级的传输协议,能在无线数据包网络中有效运行。
实现WTP能够提高数据包服务的可靠性(可靠性通过唯一的传输标示,确认,重传及删除重复消息获得)。与基于连接的服务相比提高效率(WTP没有显示的连接建立与拆除)WTP基于消息能较好地为例如浏览等应用服务。
WTP应实现3种不同传输类别类别o,类别1,和类别2:
※类别0:不确保传输消息,无结果消息。用于不可靠的PUSH服务。
※分类别1:确保传输消息,无结果消息。用于可靠的PUSH服务。
※类别2:确保传输消息,不确保传输结果消息。该类别用于基本的请求/应答传输服务。
一个WAP会话可以包含多个该类型传输。可靠性通过唯一的传输标示,确认重传,及删除重复消息获得。
无线传输层安全性(WTLS)是WAP结构中的安全层,提供加密,授权及数据完整性功能。WTLS从TLS派生得到,运行在不可靠的传输层上。
WTLS定义3种类别下列功能必须由不同类别提供:
※1类服务能使用交换的公共密钥建立全传输,使用对称算法加密解密数据,使用消息授权编码算法、协商算法和安全性参数检查数据完整性。
※2类服务除完成1类服务的功能外能交换服务器确认。服务器确认用于对服务器授权。
※2类服务除完成2类服务的功能外能交换客户确认。客户确认用于对客户授权。
安全的WTLS连接必须在对等双方握手时协商。在握手过程中协商参数县交换公共密钥信息。
WTLS可以提供两种不同类型的握手过程:完全或简略握手。
无线数据报协议(WDP)运行于不同网络类型支持的数据承载能力上.WDP是一般数据报服务,使用下层承载能力为上层提供一致的服务与下层承载网络无关。
五、WAP标准化的进展
WAP论坛于1999年12月推出的WAP1.2规范包括以下新的特性:
※用户档案管理
允许服务器获得更多的客户信息如用户个人资料,手持终端类型。允许服务器基于用户的喜好而制定发送的内容。终端用户可以发送个人化的信息。运营商可以为用户提供特定服务。
※PUsh
Push是指网络主动向用户发送消息
PUSH消息可以是警告或内容。运营商利用PUSh技术可以增加提供业务的深度和广度,如提供新闻更新,邮件警告,股票到价提示等。
※无线电话应用(WTA)
WTA使得语音与数据业务更完整的结合,如提供WML脚本到手机呼叫控制的接口。
※安全机制
用于电子商务的安全机制,如加密算法数字签字公众加密钥匙

Technorati 标签:

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

MIT offering Android class

Boston Business Journal - by Jesse Noyes Journal staff

This semester 25 students at the Massachusetts Institute of Technology will gather in a classroom with one particular purpose: playing with cell phones.

The students are taking a class geared around Android -- the first fully open mobile operating system developed by Mountain View, Calif.-based Google Inc. (Nasdaq: GOOG). The class will cover the ins and outs of the Android platform and build applications to run on the operating system.

The class, which at least 50 students tried to enroll in, is being offered to students in the computer science major at MIT and is designed to give them an early edge in what could soon become a dominant platform among cell phone operating systems. As smart phones and cell phones with Web functions have grown in popularity, there is growing interest among computer science pupils to learn how to create and launch applications and software for mobile operating systems, said Andrew Yu, mobile devices platform coordinator for MIT.

"It's definitely something that captures students' interest," he said. "Given the fact that they actually have the devices, they want to do something with it."

Technorati 标签:

New information about SDK update

 

Submitted by hobbs on Wed, 01/30/2008 - 13:23.

Jars.de has posted some coverage of the Android Workshop in Munich, and it includes some information about the SDK release expected in the next couple weeks. The slide presented by Google's Dan Morrill lists the following about the new SDK:

The new SDK will...
Introduce the new user interface
Include new APIs and improvements to others
Add some cool new features to the Eclipse plugin
Fix many bugs, of course!

This sounds very cool! Can't wait to see how the new UI looks, and can't wait to see what new API's will be revealed.

Good work Android team!

Technorati 标签:

标签分类