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

2008年2月18日星期一

嵌入式人才的发展方向

From 启凡世界

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。

一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。

另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

从事嵌入式软件开发的好处是:

(1)目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。

(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802.11等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。

(3)哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。土木学院有一个叫启明星的公司开发出一个好象叫“工程e”的掌上PDA(南校区门口有广告),施工技术人员用该PDA可当场进行土木概预算和其它土木计算,据说销路特好。我认识的某大学老师,他开发的饭馆用的点菜PDA(WinCE平台,可无线连网和上网),据他说销路不错,饭馆点点PDA让客户点菜,多显派头档次。我记得00级2+2班当年有一组同学在学Windows程序设计课程时用VC++设计了一个功能很强的点菜系统做为课程项目,当时真想建议他们将这个软件做成PDA,估计会有些销路(上海火车站南广场的Macdonald便使用很漂亮的PDA给用户点食品,像摸像样的)。这些PDA的硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

从事嵌入式软件开发的缺点是:

(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。

(2)这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品创业),知名大公司较少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、Microtek、研华、华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专业找人。

(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。

同学若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面。对于搞嵌入式软件的人,最重要的技术显然是(实际上很多公司的招聘广告上就是这样写的):
(1) 掌握主流嵌入式微处理器的结构与原理
(2) 必须掌握一个嵌入式操作系统
(3) 必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。

嵌入式软件方面最重要的课程包括:

(1)嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,我院用这门课取代了传统的“微机原理与接口”课程(目前国内已有少部分高校IT专业这样做了,因为讲x86微机原理与接口很难找到实际用处,只为教学而已)。我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。

(2) 嵌入式操作系统类课程

除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:

第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。目前很多公司都在往嵌入式Linux转(华为、中兴以及UT目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。

第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在ARM 9上的,一般是将Linux 2.4.18内核移植在其上,可使用更多的Linux功能(当然uClinux更可跑在ARM 9上)。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。缺点是熟悉Linux的人太少,开发难度稍大。另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用用得较少,所以我院不将其作为教学重点,要学习就应学直接实用的,比如uClinux就很实用。况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux开发。目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序的人;三是熟悉Linux内核裁减和优化的人。

第三类、 Windows CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE出来只有几年时间,但目前已占据了很大市场份额,特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减WinCE)。WinCE目前主要为4.2版(.NET),开发平台主要为WinCE Platform Builder,有时也用EVC环境开发一些较上层的应用,对于急于完成,不想拿嵌入式Linux冒险的开发场合,WinCE是最合适了(找嵌入式Linux的人可没那么好找的),毕竟公司不能像学生学习那样试试看,保证开发成功更重要。根据不同的侧重点 ,WinCE还有两个特殊版本,一个是MS PocketPC操作系统专用于PDA上(掌上电脑),另一个是MS SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台。在PDA和手机市场上,除WinCE外,著名的PDA嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian等,但在WinCE的强劲冲击下,Palm和Symbian来日还能有多长?

总结关于嵌入式操作系统类课程,若您觉得自己功底较深且能钻研下去,则可去学嵌入式Linux;若您觉得自己VC++功底较好且想短平快地学嵌入式开发,WinCE是最好的选择。

(3) 嵌入式开发的其它相关软件课程

搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:

A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。

B、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无结通信协议包括无线局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。

C、网络与信息安全技术:如加密技术,数字证书CA等。我院有这方面的选修课。

D、DSP技术:DSP是Digital Signal

Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。

(4)嵌入式开发的相关硬件基础

对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件。

研究生里有些是学电子、通信类专业过来的,有较好的模拟电路和单片机基础,学嵌入式非常合适。嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度要求较高的场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术,这方面的人目前市场上也很缺。

题外话

另外,能写驱动程序的人目前是非常紧缺的(驱动程序也可归于嵌入式范畴),包括桌面Windows中的DDK开发环境和WDM驱动程序。公司每时每刻都要推出新产品,每一个新产品出来了,要能被操作系统所使用,是必须写驱动程序的。写驱动程序就必须掌握操作系统(如Windows或Linux)的内部工作原理,还涉及到少量硬件知识,难度较大,所以这方面的人很难找。想成为高手的同学,也可从驱动程序方面获得突破。

我可说一下自己的经历,三年前我曾短暂地在一家公司写过WinCE驱动程序(正是因为知道这方面的人紧缺,所以才要做这方面的事),尽管那以前从未做过驱动程序,应聘那个职位时正是看准了公司是很难招聘到这方面的人,既然都找不到人,驱动还得有人做,这正是可能有机会切入这一领域的大好机会。面试时大讲自己写过多少万行汇编程序,对计算机工作原理如何清楚,简历中又写着我曾阅读完两本关于Windows Driver Model的两本英文原版书,写过几个小型的驱动程序练习程序(其实根本没写过,我们的同学将来千万不要像我这样,早练就些过硬功夫,就不至于沦落到我这等地步,就不用像我那样去“欺骗”公司了,我这是一个典型的反面教材),居然一切都PASS(当然最重要的是笔试和面试问题还说得过去),这只能说明这一领域找人的困难程度。公司本就未指望找到搞过驱动的人,找个有相关基础的人就算不错了。做了以后,发现也并不是怎样难的。其实搞驱动程序的工作是很舒服的,搞完一个版本就会空一段时间,只有等公司新的芯片推出或新的OS出现后,才需要再去开发新一版驱动,那时有将近一个月时间空闲着在等WinCE .NET Beta版推出,准备将驱动程序升级到CE .NET上,现在在软件学院工作整日忙,无限怀念那段悠闲时光。

很巧合,最近本人无意中再次体会到了嵌入式的迷人之处。上周我那用了3年的手机终于不能WORK了。此次更新,除要求有手机常见功能外,最好有MP3功能(现在很多英语听力都有MP3文件),最好有英汉词典,最好还能读WORD文档。最后选了个满足以上条件的最便宜的手机DOPOD 515(斩了我2.2K,但想想这也算自己对嵌入式事业的支持,这样便也想开了),算得上最低档的智能手机了。回来一查,手机的about显示,本手机Processor是ARM,其OS是MS Smartphone(即WinCE .NET 4.2),这么巧合,简直可做为学习嵌入式课程的产品案例了(等我们的WinCE课程开得有声有色后,希望能从微软研究院搞些Smartphone来开发开发)。有OS的手机果然了得,金山词霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在download时都可被自动转换成smartphone格式,真是爽。完全可用Windows CE自己开发一些需要的程序download到自己的手机上。现在市面销售PDA智能手机火爆,MS总是财源滚滚。但我已发现国产的ARM+LINUX手机出现在市面上,价格只1.2K。

在GOOGLE网上能搜索太多的关于嵌入式系统的讨论了,有很多有经验者谈自己的体会,投入到其中的论坛中,你会切身感到嵌入式学习的热潮。

要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每个搞嵌入式的人都可选一条路,条条大路通罗马。

手机开发平台指南、教程和资料介绍

From 手机即信息 http://blog.csdn.net/canco/archive/2008/02/06/2085208.aspx

欢迎转载,转载请注明出处。
近来无事,把手机开发平台的学习指南、教程和资料总结一下,方便大家参考。
手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多。
手机可分为智能手机开发和feather phone手机。开发平台可分为开放式平台和封闭式平台,开放式平台包括symbian、windows mobile、linux、Android、BlackBerry、j2me、brew等,支持手机应用程序通过OTA下载和安装;封闭式平台包括MTK、展讯、TI、飞利浦等。下面分别介绍。


1. Symbian:
Symbian平台为目前智能手机市场的老大,智能手机全球市场占70%以上,在欧洲和亚洲占绝对优势,只是在美国市场份额少得可怜,希望今年nokia在美国发力,赶上其它智能手机。根据UI风格的不同,Symbian分为s60和UIQ两个平台,其中nokia使用s60平台,索爱和moto采用UIQ平台。Symbian平台由于发展时间较长,又是市场老大,目前中文资料也较多,不像几年前刚接触时只有英文资料。以下书籍值得推荐:
《SYMBIAN OS软件开发开发--应用C++开发智能手机应用程序入门》(其中UI部分为UIQ平台),
《Series 60 应用程序开发》(以s60平台为主,重点推荐)
《Symbian OS C++手机应用开发 (第2卷)》
另外今年将出来一本有关uiq3.0的新书,值得期待。
关于symbian的开发网站和论坛:
诺基亚论坛:最好的symbian论坛,
http://discussion.forum.nokia.com/forum/forumdisplay.php?f=6,其中还有中文论坛。
UIQ官方论坛:http://developer.uiq.com/
Symbian公司中文论坛:http://developer.symbian.com/forum/forum.jspa?forumID=37
NewLC网站:http://www.newlc.com/
索爱uiq官方论坛:http://developer.sonyericsson.com/category.jspa?categoryID=3
索爱uiq中文论坛http://developer.sonyericsson.com/forum.jspa?forumID=133

 

2.windows mobile:
智能手机全球市场中windows mobile占12%左右市场份额。开发与windows平台类似,所以熟悉windows开发的能很快上手。目前没有较好的针对windows mobile的书,经典书籍《Windows 程序设计(第5版)》对于开发win32程序依然是最好的,经典的书就是牛啊!虽然pocket pc支持MFC,但smartphone不支持,所以为了更好的移植,用win32开发较好。由本书做基础,再参考windows mobile的sdk以及示例代码,应该能很快上手。
关于windows mobile的开发网站和论坛:
Windows mobile中文社区:http://www.winbile.net/BBS/
Pocket pc forum:http://www.windowsmobiledn.com/forum/
微软官方网站:http://www.microsoft.com/windowsmobile/developers/default.mspx

 

3. linux:
智能手机全球市场中linux手机仅占可怜的4.4%市场份额。原来moto还出过不少linux手机,如A768、A1200、E680、E2、E6、V8等,07年8月份还信誓旦旦预测60%手机采用Linux OS,但moto后来回购了UIQ的股份,又与微软合作,还加入了google的开放手机联盟,看来要抛弃自己的linux平台了。另外,moto的策略是linux+j2me的模式,虽然采用linux os,但并不对外开放linux的sdk,只有和moto合作的厂家才能获得native linux sdk,所以导致目前linux手机开发的资料和论坛较少。虽然有民间linux高手破解了moto的linux的sdk,可以开发native linux的程序,但native linux的程序不能直接安装在moto的linux手机上,还必须安装一个插件,这对普通用户又是难以跨越的一个门槛。所以个人觉得native linux手机的开发将走向末路。大部分linux手机的ui开发都是基于QT,关于QT开发,可参考《C++ GUI Qt3编程》、《精通Qt4编程》,如果有moto官方的sdk,参考API文档以及一些示例代码,将可以较快上手,如果没有官方的sdk,那就要话很长时间hack了。目前没有很好的关于linux手机开发的论坛,个人推荐陈罡的博客http://www.cublog.cn/u/26691/,内有moto a1200开发随笔,对于熟悉和了解手机native linux开发有很大帮助。

4. MTK:
MTK最近几年异军突起,近70%的国产手机采用MTK的芯片和平台,黑手机更几乎是MTK的代名词。国内厂家只有夏新没有采用MTK的方案。MTK的模式名为“Turn-key”的全面解决方案,厂商采用了这个方案,只需要加一个手机外壳即可成品——这能大大降低了出货时间,一般厂家只修改界面、铃声以及增加一些应用软件。有关MTK平台的介绍,见环球企业家杂志的文章“国产手机操纵者联发科的秘密”。
MTK是私有平台,目前没有书籍介绍MTK平台,所以只能从网上查找MTK的资料。以下资料大家可以从网上获得,对于了解MTK很有帮助:《mtk 训练课程.pdf》、《MMI Platform Source Code Training.pdf》主要是MMI界面开发介绍、《MMI Resource & Customization Tool.pdf》MMI资源工具介绍。
最近,MTK平台MMI设计牛人FUGUI自己编写了一本有关mtk平台MMI开发的实例教程,书名为《MMI实例培训教程》(本书大家通过Google下载到),此书深入浅出,全面的介绍了MTK平台MMI开发的各个方面,通过本书,开发人员将能很快进入MTK平台开发领域,实为MTK平台MMI开发的圣经!MTK平台的操作系统为nucleus,有关nucleus的介绍网上有一篇文章《Nucleus实时操作系统分析报告》。MTK平台主要用C语言开发,所以要熟悉MTK开发,首先必须熟悉掌握C语言,MTK的sdk与vc6集成,MMI的各控件和窗口之间通过回调函数实现通讯。
关于MTK的开发网站和论坛:
我爱研发网:http://www.52rd.com/ 上面几篇文章和书籍都能从本网站找到。
手机研发论坛:http://www.1mp.cc/bbs/index.asp

 

5. 展讯:
展讯平台07年也发展很快,利用MTK下半年PA放大器缺货的机会,趁势而入,抢走mtk很多市场份额。展讯的开发模式和MTK的很类似,基本也是给厂家提供整体解决方案,与MTK的差别见此链接。国内主要是夏新、联想、文泰等采用展讯平台。展讯平台采用的嵌入式操作系统是threadx,关于threadx的有一本中文书《嵌入式实时操作系统的多线程计算:基于ThreadX和ARM》。同MTK平台一样,为封闭平台,开发语言为C,开发环境为vc6, MMI的各控件和窗口之间与windows类似通过消息进制实现通讯。另外也没有书籍介绍展讯平台,以下资料值得推荐:
《Spreadtrum_SAP.ppt》
《MMK_Kernel软件API接口说明书.doc》
《MMK_Window_Table开发说明书.doc》
《展讯平台MMI窗口开发说明书.pdf》
《展讯手机平台软件简介.pdf》
关于展讯的开发网站和论坛:
我爱研发网:http://www.52rd.com/ 上面几篇文章都能从本网站找到。
手机研发论坛:http://www.1mp.cc/bbs/index.asp

 

6. J2ME:
J2ME平台为手机上运用最广泛的开放式平台,绝大部分手机均已经支持J2ME了。关于J2ME的书籍数不胜数,个人推荐以下书籍:
《j2me技术手册》
《J2ME开发大全》
《J2ME移动应用程序开发》
关于J2ME的开发网站和论坛:
J2ME开发网:http://www.j2medev.com/Index.html
中国Java手机网:http://www.cnjm.net/
以及各手机厂商的官方java论坛

 

7. Brew
Brew 的全称是无线二进制运行时环境。Brew平台是高通公司开发的,从无线应用程序开发、设备配置、应用程序分发以及计费和支付的完整端到端解决方案中的无线应用程序开发部分。目前绝大部分CDMA手机都支持Brew平台。学习Brew平台,首先需要熟悉c语言。学习步骤和方法可参考” BREW高手之路-解析BREW学习过程”。
学习书籍:
《深入BREW手机游戏开发》
《BREW 技术开发与应用》
这些书虽然不够深入,但对于入门还是可以参考的。
关于Brew的开发网站和论坛:
Brew官方论坛:http://brewforums.qualcomm.com/index.php

 

8. Blackberry,Android,iPhone
黑莓公司BlackBerry手机和Google的Android手机均只支持java开发。苹果的iPhone不支持第3方开发,只能开发网页,据说将来开放sdk,值得期待。
BlackBerry的开发网站和论坛:
BlackBerry开发者指南:http://www.cnblogs.com/confach/category/36451.htmlBlackBerry

官方网站:http://na.blackberry.com/eng/developers/community.jsphttp://bbs.maxpda.com/forum-184-1.html


Android的开发网站和论坛:
http://www.androiddev.net.cn/bbs/
http://www.androidin.com/http://www.androidcn.net/


iPhone的开发网站和论坛:
一群苹果fans成立的网站:http://apple4.us/
http://bbs.maxpda.com/forum-190-1.html
http://lordhong.javaeye.com/blog/153315
http://lordhong.javaeye.com/blog/152774

9. 其它Feather phone平台
其它feather phone平台,如TI、飞利浦、英飞凌(Infineon)、飞思卡尔(Freescale)、Broadcom、Skyworks等平台,由于平台私有,并且不提供第三方sdk,所以也没有相关资料和文档,希望有了解的朋友介绍一下。

New Android SDK Released

Submitted by hobbs on Wed, 02/13/2008 - 13:37.

On behalf of the entire Android team, I'm happy to let you know that an updated version of the Android SDK — we're calling it m5-rc14 — is now available. Today, we're continuing the early look at the Android SDK that we started back in November by providing updates to the Android APIs and the developer tools based, in part, on the great feedback and suggestions developers have been giving us. We're excited about the progress that we've made and look forward to making additional updates in the future as the platform evolves towards production-readiness.

There are a couple of changes in m5-rc14 I'd like to highlight:
New user interface - As I mentioned when we introduced the m3 version of the Android SDK, we're continuing to refine the UI that's available for Android. m5-rc14 replaces the previous placeholder with a new UI, but as before, work on it is still in-progress.
Layout animations - Developers can now create layout animations for their applications using the capabilities introduced in the android.view.animation package. Check out the LayoutAnimation*.java files in the APIDemos sample code for examples of how this works.
Geo-coding - android.location.Geocoder enables developers to forward and reverse geo-code (i.e. translate an address into a coordinate and vice-versa), and also search for businesses.
New media codecs - The MediaPlayer class has added support for the OGG Vorbis, MIDI, XMF, iMelody, RTTL/RTX, and OTA audio file formats.
Updated Eclipse plug-in - A new version of ADT is available and provides improvements to the Android developer experience. In particular, check out the new Android Manifest editor.

You can find more information about what's changed in a couple of documents that we've published. First is an overview of the changes to the Android APIs in API Changes Overview. If you want a more granular view of what's changed, an API diff between m3-rc37 and m5-rc14 is also available. Finally, Upgrading the SDK provides links to the two previously referenced documents and the release notes, as well as instructions on how to upgrade your development environment.

[...]

Technorati 标签:

GPhone 原型机亮相

在今天巴塞罗那的 Mobile World Congress 上,第一个 GPhone 原型机终于亮相 了,上图即为被狗饭们期待了很久的原型机照片,以及在会上还更多的提到了有关 Google Android 的数据和信息.

 

From zagang

Technorati 标签:

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 标签:

2008年2月2日星期六

BREW、JAVA、.NET 三大平台之比较

http://games.sina.com.cn 2004-01-07 16:00 新浪游戏

 

       高通的BREW平台是一种为无线设备提供开放式标准平台的瘦应用程序执行环境,是无线应用程序开发、设备配置、应用程序发布以及计费和支付的完整端到端解决方案的一部分。完整的BREW解决方案包括面向开发者的BREW SDK (tm)(软件开发包)、面向设备制造商的BREW应用程序平台和移植工具以及由运营商控制和管理的BREW分发系统(BDS)。利用该系统,他们可以轻松地将开发者开发的应用程序投入市场并协调计费和支付过程。利用运营商基于BREW的服务,用户可以通过从运营商的应用程序下载服务器上无线下载应用程序来自定

义手持 
设备。

BREW是一种独立于空中接口的技术,可以运行在诸多网络中。但目前来讲,由于 CDMA2000 1X的技术在现有的技术标准中是在商业运行中最为稳定和成功,并经过多次验证。BREW在CDMA2000 1X网络中可以充分利用其高速的数据传输速率,为最终用户带来极具冲击力的用户体验。即:与芯片级电话功能的紧密集成,更高地展现声音和动画功能,用C/C++编写的应用程序,运行起来速度更快,BREW扩展技术支持用Java和Flash等制作的应用程序端对端的商业模式提供透明的计费和支付纪录,并可通达全球市场开发商,可以通过联通博路无线技术有限公司从高通和联通获得支持。

由于BREW平台是独立于空中接口的技术,所以BREW与任何网络的结合都非常平滑。同时,它又是一个端到端的解决方案,特别注重满足整个价值链的所有要求。BREW平台包括针对运营商的BREW分发系统,针对开发商的SDK(软件开发工具包),针对终端厂商的移植工具包,和BREW计费系统。BREW使中国联通能够为其用户提供不断丰富的应用。到目前为止,中国联通基于BREW平台所开发的商用程序包括: Adventure(环球历险记)、Any Flash (安凯软件)、 City Online(都市在线)、 E4E Stock(股票)、 Hit Submarine(决战四大洋)、 Instant Weather(天气快报)、 Mobi Escape(莫比大逃亡)、 Suc Esc(星际生存)、Yao Ming Basketball(姚明篮球)等。

为了应对移动数据的发展,推进无线电子商务等业务的发展,J2ME(Java 2 Micro Edition)即用于嵌入式系统的Java被引入无线领域。随着J2ME的应用,它为移动互联引入了一种新的模型,即允许手机可以从互联网上下载各种应用程序,并在手机创造可执行环境离线运行这些程序。由于定义了可执行程序下载的标准,并在手机上创立了可执行环境和程序开发语言,由此,在移动通信业第一次为软件开发商创造了巨大的商业机会,手机用户在得到丰富应用体验的同时,也大大提高了运营商的网络流量。

J2ME的出现实际上是Java技术的回归,作为Java 2平台的一部分,J2ME与J2SE、J2EE一道,为无线应用的客户端和服务器端建立了完整的开发、部署环境。由于专门针对多样化的嵌入设备和消费电子设备,J2ME的结构与传统的编程序语言和规范有很大的不同,它是由配置(Configuration)、概要(Profile)和可选包(Optional Package)三要素构成。J2ME技术由一个虚拟机和一组API组成,这组API适合于为消费和嵌入式电子设备提供经过剪裁的运行环境。J2ME主要有两种组件:配置(configuration)和概要(profile)。J2EE的一个关键优点是它能同时为多种连网的便携机、台式机或其他工作站和服务器提供服务,无论运行在这些客户机上的软件是Java applets 、独立的Java程序、HTML浏览器还是本地的应用程序,它都可以同时支持。利用J2ME,这些企业系统也可以直接与各种电子设备进行通信。

1999年,Sun公司将广为普及的Java技术架构进行了重新定义,J2ME作为Java技术在移动电话等小型设备的版本应运而生,它针对屏幕、电能和内存等资源有限的移动设备进行了优化和定义,为了解决无线设备多样化的矛盾,Sun依照各种设备的资源特性将J2ME技术架构分为Java Virtual Machine(JVM)、配置(configuration)和说明(profile)三层,然后再进一步细分,这使J2ME能够在每一类设备的限制下工作,而同时提供最低限度的Java语言功能性。

Microsoft(r) .NET 是Microsoft XML Web services平台。 XML Web services允许应用程序通过Internet进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。 Microsoft.NET平台提供创建XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。

从根本上讲,Microsoft (r) .NET是关于使技术为人们所用,而不是强制个人适应其计算机的限制。利用.NET,无论何时何地,您总能连接到您首选设备上的信息。利用.NET,您可以保护您的个人信息和企业数据,同时允许有您的授权的他人连接到这些信息。

.NET体验:.NET体验是相当个性化的,集成的最终用户计算交互,它们通过新型智能设备提供的连接的 XMLWeb 服务来实现。从技术层面上讲,.NET体验就是XML Web服务与(在适当时)本地应用程序代码的结合。

.NET框架:.NET框架是一个用于生成、部署和运行XML Web服务及其他应用程序的环境。它包含三个主要部分:公共语言运行库、框架类和ASP.NET。.NET框架压缩版是伴侣结构,它有一套编程接口,以供开发人员开发面向智能电话和PDA等移动设备的软件。

.NET平台:.NET平台是一组开发工具和操作系统集,用来生成、公开和消费XML Web服务,通过智能设备实现个性化的集成Web。它由四部分组成:.NET框架和 Visual Studio.NET ,服务器结构,构造块服务,智能设备软件.

Technorati 标签:

Brew 资料大全

原帖: http://www.kudev.net/bbs/thread-1957-1-1.html

 

什么是BREW?
http://www.kudev.net/bbs/thread-78-1-5.html

无线二进制运行环境-BREW
http://www.kudev.net/bbs/thread-1780-1-4.html

Starting Brew
http://www.kudev.net/bbs/thread-1122-1-5.html

BREW SDK入门篇
http://www.kudev.net/bbs/thread-1518-1-5.html

BREW新手入门
http://www.kudev.net/bbs/thread-1808-1-3.html

BREW究竟是什么-BREW本质之我见
http://www.kudev.net/bbs/thread-1822-1-2.html

从零开始创建 BREW? 应用程序
http://www.kudev.net/bbs/thread-1821-1-2.html

BREW 入门常识
http://www.kudev.net/bbs/thread-1820-1-2.html

解析BREW体系结构
http://www.kudev.net/bbs/thread-79-1-5.html

BREW高手之路-解析BREW学习过程
http://www.kudev.net/bbs/thread-894-1-5.html

BREW技术概览
http://www.kudev.net/bbs/thread-1781-1-4.html

BREW和J2ME的来源
http://www.kudev.net/bbs/thread-1519-1-5.html

BREW & J2ME:在差别中联合
http://www.kudev.net/bbs/thread-1517-1-5.html

BREW的事件处理
http://www.kudev.net/bbs/thread-1786-1-4.html

BREW开发--创建新的BREW应用程序
http://www.kudev.net/bbs/thread-1886-1-1.html

BREW开发--使用Applet和模块
http://www.kudev.net/bbs/thread-1885-1-1.html

BREW开发--BREW简介
http://www.kudev.net/bbs/thread-1877-1-1.html

BREW开发--工程管理(Makefile)基础
http://www.kudev.net/bbs/thread-1876-1-1.html

BREW开发—编译器基础
http://www.kudev.net/bbs/thread-1875-1-1.html

BREW-软件开发基础
http://www.kudev.net/bbs/thread-1869-1-1.html

BREW实现原理
http://www.kudev.net/bbs/thread-1868-1-1.html

Brew 硬件基础
http://www.kudev.net/bbs/thread-1866-1-1.html

dynamic app(module) access oem layer的机制介绍
http://www.kudev.net/bbs/thread-1850-1-1.html

基于COM思想实现AEEINTERFACE
http://www.kudev.net/bbs/thread-1848-1-1.html

BREW Applet框架
http://www.kudev.net/bbs/thread-1843-1-1.html

BREW SDK的Media程序分析
http://www.kudev.net/bbs/thread-1839-1-1.html

阅读mediaplayer源代码
http://www.kudev.net/bbs/thread-1827-1-2.html

如何删除目录?
http://www.kudev.net/bbs/thread-1836-1-2.html

使用BREW开发定位应用程序
http://www.kudev.net/bbs/thread-1835-1-2.html

sig文件
http://www.kudev.net/bbs/thread-1833-1-2.html

接口函数替换技术及其应用
http://www.kudev.net/bbs/thread-1832-1-2.html

深入BREW模块加载机制
http://www.kudev.net/bbs/thread-1831-1-2.html

深入BREW抽象接口机制
http://www.kudev.net/bbs/thread-1830-1-2.html

深入BREW消息处理机制
http://www.kudev.net/bbs/thread-1834-1-2.html

如何用BREW短消息启动BREW应用程序
http://www.kudev.net/bbs/thread-1828-1-2.html

如何利用AEEINTERFACE和QINTERFACE构造自己的类
http://www.kudev.net/bbs/thread-1826-1-2.html

开发BREW扩展类
http://www.kudev.net/bbs/thread-1825-1-2.html

BREW平台Callback分析
http://www.kudev.net/bbs/thread-1824-1-2.html

BREW回调技术分析
http://www.kudev.net/bbs/thread-1803-1-3.html

BREW资源问题总结
http://www.kudev.net/bbs/thread-1823-1-2.html

BREW常见问题解答
http://www.kudev.net/bbs/thread-1801-1-2.html

Brew常见错误整理
http://www.kudev.net/bbs/thread-1796-1-3.html

BREW - 声音相关问题
http://www.kudev.net/bbs/thread-1819-1-2.html

BREW中 - 显示和图像
http://www.kudev.net/bbs/thread-1818-1-2.html

BREW终端下通过http协议访问jsp的编码问题
http://www.kudev.net/bbs/thread-1792-1-3.html

Brew线程和ISource_Readable回调协同工作的一段示例代码
http://www.kudev.net/bbs/thread-1795-1-3.html

BREW接口的继承和多态
http://www.kudev.net/bbs/thread-1799-1-3.html

在BREW中使用Gzip压缩来减少应用程序包的大小
http://www.kudev.net/bbs/thread-1800-1-3.html

EVT_APP_MESSAGE消息的处理
http://www.kudev.net/bbs/thread-1802-1-3.html

在 BREW 中处理 SMS
http://www.kudev.net/bbs/thread-1804-1-3.html

BREW的资源文件概述及问题
http://www.kudev.net/bbs/thread-1809-1-3.html

BREW-IThread接口 ( BREW Client 3.1 )
http://www.kudev.net/bbs/thread-1810-1-3.html

Cooperative Multithreading in BREW with IThread
http://www.kudev.net/bbs/thread-1811-1-3.html

BREW AMR 编译错误 L6248E
http://www.kudev.net/bbs/thread-1812-1-3.html

BREW应用移植的体会
http://www.kudev.net/bbs/thread-1813-1-3.html

ISHELL_SendEvent() 和 ISHELL_PostEvent() 有什么区别
http://www.kudev.net/bbs/thread-1814-1-3.html

创建 BREW 应用程序的方法
http://www.kudev.net/bbs/thread-1815-1-3.html

一定时间后延时变长问题
http://www.kudev.net/bbs/thread-1816-1-3.html

实现一个简单的图形菜单
http://www.kudev.net/bbs/thread-1791-1-4.html

显示程序使用最大内存
http://www.kudev.net/bbs/thread-1790-1-4.html

基于BREW的mod文件压缩技术
http://www.kudev.net/bbs/thread-1789-1-4.html

BREW应用的c++实现注意点
http://www.kudev.net/bbs/thread-1785-1-4.html

Brew知识简表
http://www.kudev.net/bbs/thread-1784-1-4.html

CDMA增值业务平台BREW的研究与应用
http://www.kudev.net/bbs/thread-1783-1-4.html

BREW的全方位盈利之道
http://www.kudev.net/bbs/thread-1782-1-4.html

中止和恢复应用程序
http://www.kudev.net/bbs/thread-1593-1-5.html

BREW网络和套接字指导原则
http://www.kudev.net/bbs/thread-1525-1-5.html

构建可移植 BREW 应用程序的方法
http://www.kudev.net/bbs/thread-1817-1-2.html

构建可下载的 BREW 应用程序的方法
http://www.kudev.net/bbs/thread-1523-1-5.html

用 BREW 绘制预定义位图的方法
http://www.kudev.net/bbs/thread-1522-1-5.html

在 BREW 小程序中构建对话框的方法
http://www.kudev.net/bbs/thread-1521-1-5.html

CDMA增值业务平台BREW的研究与应用
http://www.kudev.net/bbs/thread-1520-1-5.html

 

Technorati 标签:

Introduction to BREW - a mobile handset application development platform

From xiangxiangouhongyuan的专栏

Introduction

As we know, Mobile phones are a wonderful means for communicating with our dear ones in addition to helping us to maintain our contact lists, to do lists etc. As time passed with additional features on these devices piling they made way for Smartphones which in addition to providing phone functionality also provided the functionality of a Personal Digital Assistant (PDA). A Smartphone also allows new applications to be installed on it. To manage these ever increasing list of functionalities, a Smartphone needs a operating system. Currently there are various smartphone operating systems in the market like Symbian, Microsoft Windows Mobile, Palm OS etc. BREW comes in this category.

As a technology hobbyist, I have been exploring BREW for sometime. As such I found resources in the web. But being a impatient reader and lacking in telecom domain knowledge, I found it difficult to understand some aspects of BREW. I also couldn't get the full picture of how BREW works. As a result, I have to look at various sources from which I got a full picture. In this article, I'm just sharing all the information I accumulated to get a full picture of how BREW works. First I will give a overall introduction of BREW and after that I will concentrate on giving introduction to developmental aspects of it.
Objective

At the end of the article you will know
What is a application development platform ?
How does BREW fit in to the role as a application development platform for Mobile Handsets?
What makes BREW different from other handset platforms like Windows Smartphone, Symbian etc?
What are the merits and demerits of using BREW to develop applications for Mobile Handsets?
What are the various phases of BREW application development life cycle?
What type of applications can be developed in BREW platform?
What are the basic components of a BREW application and how does it work?
How to setup a development environment to start developing applications for BREW platform?
What are the steps to develop a basic 'Hello World' application in BREW?
Where can I get more information about BREW platform?
Target Audience
People interested in Mobile handset application development
Background

The term Platform is used to describe a hardware or software configuration of a computer. In case of hardware configuration we used the term to depicit the processor architecture of the computer. Examples being Intel x86 platform, PowerPC platform etc. In case of software configurations, we use the term 'platform' to depicit the operating system the computer is running. Examples being windows platform, Macintosh platform etc. Operating systems sit on top of the machine hardware. So they must be ported for different hardware platforms which they want to support.

An Application Development Platform or Framework is basically a collection of tools and libraries which enable developers to develop application targetting a hardware of software platform. Some of the well known application development platforms like Java, .NET framework target and get ported on various software platforms or operating systems. BREW is a application development platform or framework which targets and get ported on various hardware platforms. In short unlike Java or .NET framework which sits on top of operating systems, BREW sits on top of hardware layer of the device.
BREW Overview
stands for Binary Runtime Environment for Wireless. As the term 'Binary Runtime' suggests, BREW runs on top of hardware platform and can be ported to different hardware platforms.
Product of QUALCOMM Internet Services (QIS, a division of Qualcomm Wireless & Internet (QWI) group of QUALCOMM
Currently supported on all QUALCOMM handset hardware but like other application development platforms, can be ported to non-QUALCOMM Handsets
Can co-exist in a handset with any other mobile operating system
Size wise, is about 150k much smaller than most of other handset operating systems available in the market
To the telecom domain guys, it is said to be air interface independent ie it can run on CDMA or GSM/GPRS or UMTS handsets. But again currently it is running only on CDMA handsets
Enables native application development in C,C++. Applications can also be developed in Java using a Java Virtual Machine (JVM) developed for BREW platform. Recently, IBM has come up with a Java Virtual Machine for BREW
Handset manufacturers can integrate BREW into their device by using the BREW Porting kit provided by QUALCOMM
BREW Application Development Cycle
Software developers can develop applications in C/C++ using the freely downloadable BREW SDK
The SDK comes with a application called BREW Emulator (known as BREW Simulator from version 3.0). This application simulates the look and behavior of a BREW handset device and can be used to test and debug BREW applications during development process.
Applications to be executed on BREW Emulator are compiled to native code of the operating system on which the Emulator is running and linked with a compatible x86 BREW runtime library. For instance, if BREW SDK is installed in a windows machine, BREW applications to be executed on BREW Emulator are compiled to windows native code and linked with a x86 compatible BREW runtime library
After the application has been tested thoroughtly with Emulator, it has to be compiled and link into ARM binary form to run in BREW handset. For that QUALCOMM provides a GNU Cross compiler which can be freely downloaded and RealView Compilation Tools for BREW which is available for a fee
Unlike other mobile handset platforms, BREW applications cannot be directly tested on BREW handsets. QUALCOMM has implemented this feature for reasons of security as BREW gives complete control over handset's hardware
Before testing the applications, they should be digitally signed. QUALCOMM provides tools for generating digital signatures only to content providers and Authenticated BREW Developers
After digitally signing the applications, they can be uploaded to a BREW handset using a USB or serial cable using a tool called AppLoader. The AppLoader tool is part of the BREW Testing and Commercialization Utilities provided by QUALCOMM which are available only to BREW Authenticated Developers
Once the application has been thoroughly internally tested, it must be submitted to QUALCOMM for TRUE BREW Testing. Again True BREW Testing is available only for BREW Authenticated developers
After the application passes True BREW testing, it may be offered to Mobile Network operators supporting BREW handsets from which it can be download by subscribers to their handsets
Merits of BREW Platform
Since BREW runs directly on top of hardware layer, application execution is fast when compared to other application frameworks like Java Mobile Edition.
BREW API is consistent across supported handsets than other application frameworks like Java Mobile Edition API
Since BREW from version 2.0 allows direct access to screen buffer, developers have lot of control while creating Graphics intensive applications like Games
Handset manufacturers can add new features and fix bugs over-the-air to already deployed BREW handsets by using BREW extensions. BREW extensions are additional code modules written by OEMs and third party software vendors to include additional functionalities in the handsets. Some Examples for BREW extensions are Java Virtual Machine, Game engines etc.
DeMerits of BREW Platform
Unlike other handset platforms, applications cannot be directly tested on BREW handsets
Only BREW Authenticated Developers can test and deploy applications in handsets. Becoming a BREW Authenticated Developer involves a set of procedures which is not freely available for individuals
Testing and debugging of BREW applications difficult and cumbersome due to differences in emulation and actual hardware environments
BREW Application Development Concepts

BREW application environment supports a event driven architecture similar to Microsoft Windows, Macintosh and other opeating systems. There are two types of applications which can be created on BREW. One is Applet and the other is Extension. An Applet is a GUI application having a user interface and reusable code encapsulated in one or more classes if any. An extension is a reusable code module written by OEMs and third party software vendors to include additional functionalities in the handsets. Some examples for extensions are Java Virtual Machine, Game engines etc.Extensions can be loaded or unloaded on needed basis.

Each BREW application is represented by a single Module object and one or more applets and classes. Each Applet or Class must have a unique 32 bit identifier known as a Class ID. Dummy Class IDs can be used during development process. Unique Class IDs have to be inserted before the application is tested in the BREW handset. QUALCOMM provides a Web based tool called BREW ClassID Generator which allows developers to generate unique Class IDs. Note that this tool is only available to BREW Authenticated Developers.

Each BREW application is associated with a corresponding Module Information File (MIF)which is required to ship along with it. The Module Information File contains vital information about a BREW application like
Supported classes
Supported applets
Applet details like title, icon etc
Class IDs for each of application's applets and classes
Classes exported for use by other applications
The Module Information file for application can be generated using BREW MIF Editor tool which comes with SDK. Language and device specific data for BREW applications can be stored in resource files making localization possible. The application resource files and its corresponding headers can be generated using BREW Resource Editor tool which comes with SDK.

BREW SDK overview

BREW SDK is can be downloaded for free from QUALCOMM site. QUALCOMM has provided detailed instructions on the steps to install the SDK on the pdf document Starting with BREW. The user guide document which comes with the SDK also gives detailed information on the same in addition to many other useful details.

The SDK provides a appwizard addin for Microsoft Visual Studio 6.0 which generates skeletal code for a BREW application making it easy to get started with application development. This addin is available from BREW SDK 1.1 version onwards. Again step by step instructions on using the appwizard to develop a BREW application has been given in the SDK user guide as well as in the pdf document Starting with BREW.

Other development environments like Visual Studio.NET and Visual Studio 2005 can be used to create BREW applications. But developers have manually link the SDK headers and libraries to compile the application code. Again detailed instructions documents are provided by QUALCOMM on this aspects. The SDK also includes a rich set of example application which are very helpful for developers to learn various aspects of BREW development.
Writing our first BREW application

Again lots of documentation in this aspect has been already provided by QUALCOMM. Some of them are as follows:
Creating BREW application from scratch
Starting with BREW
Creating BREW applications using Visual Studio.NET
Creating BREW applications with Visual Studio 2005

Conclusion

I thought it would be better for stop this article with these information. I hope by reading this article you guys would have got a general picture of how BREW works and a eagerness to explore it further. On the contrary some of you would also be feeling sleepy or lost or angry or hungry or blank by now. Can't rule out that also. I have also felt like that after reading other's articles :) To those people, I would request them to send their feedback on suggestions to improve this article.
Resources
How smartphone works
How cell phone works
How telephone works
Application Specific Integrated Circuits
BREW knowledge base
Writing BREW extensions
BREW application development step by step guide
Ten Developer commandments of BREW
History
published on 28/07/2006
updated on 31/07/2006 - some typing mistakes
updated on 14/08/2006 - adding objectives and target audience sections and some more links

Technorati 标签:

标签分类