1、S60入门基础S60入门基础 编辑文档 S60入门基础本文是一篇Symbian出版社/诺基亚论坛官方文档Essential S60 - Developers Guide的非正式中文翻译版本。希望本文能够为广大中国的非移动开发者了解S60平台,加快入门速度带来帮助:) 目录 S60平台介绍 版本和功能包 C/C+ Symbian C+ 标准 C Java 开发 Python Flash Lite SVGT 浏览器 Web网站 Web运行时环境 测试 进入市场 获取更多帮助 小结 显示部分显示全部编辑本段回目录S60平台介绍自从2001年发布以来,S60平台已经成为世界最流行的智能手机开发平台。在
2、2007年初,已经有6家授权手机制造商生产了超过一亿部基于S60平台的手机。第一部S60设备,Nokia 7650智能手机,体现了广泛的特性,包括个人信息管理(PIM)、浏览器、图片和音乐功能。随着技术不断地成熟,包含有高分辨率照相机、功能完整的web浏览器、立体声音乐、地图和VoIP电话等的手机已经上市,并且这还只是一小部分功能。S60手机的范围已经扩大,为消费者、企业及其它特定市场提供了各种不同样式的选择。 图1 各式各样的S60手机S60平台之所以能够成功的原因之一是它能使用户通过安装第三方应用程序和内容的方式往其*的手机内添加特性。首先,这个平台支持由Java语言和纯Symbian C
3、+程序语言编写的第三方应用程序。随着平台的扩展,越来越多的开发选择变得可用。应用程序开发者现在可以从Symbian C+,Open C,Java Micro Edition(Java ME), Python,Adobe的Flash Lite,Web运行时环境及可缩放矢量图形(Scalable Vector Graphics Tiny,SVG-T)技术之间任意选择。同时,Web内容开发者已被标准Web技术比如HTML, 动态级联表(CSS), JavaScript, 异步JavaScript和XML(ajax), Flash Lite及SVG-T,来使得S60手机可以浏览所有网页。该文档首先对S
4、60系列精髓来说是一个选择开发S60应用程序的指南。它的目的是帮助开发者选择最合适的开发方式和特定的应用程序语言。该文档概括了各种开发技术的主要特性,描述了有助于开发的可用工具,并提供了何处能找到有用信息的向导。 当到随后开始手机应用程序开发时,编写代码和使之能够运行只是一部分工作。测试是很重要的步骤,它确保应用程序能可靠地完成程序自身本应具备的功能。该文档提供了来自诺基亚论坛(中文, 英文)的可用测试工具及应用程序测试领域(Symbian Signed和Java Verified)的介绍。 因为我们的目标是获取应用程序和安装内容并将其应用在S60手机上,该文档包括了展望如何将应用程序带入市场
5、的过程。它也为可应用程序提供了指导来帮助开发者获取技术和商业支持以发展他们的手机软件业务。 编辑本段回目录版本和功能包随着移动技术的进步,Symbian OS和S60平台正在不断与时俱进地发展、添加新的特性和功能。为了帮助开发者了解S60平台不同发布版本的特性,我们使用了术语“版本(Edition)”和“功能包(Feature Pack)”表达不同的概念。版本指发布版本之间更新时增加的东西,它们大都和Symbian OS上的版本改动相关。功能包指示出版本内更新时增加的东西,通常包括新的C+ API和其他一些功能附件、其它开发技术的改进及S60 UI的改进。表格1提供了S60版本和功能包的概述。
6、 S60各个版本和功能包的信息详解S60平台 Symbian OS C+ Open C Java ME Python Flash Lite SVG-T Web 2.0 Web运行时环境首款机型S60第一版 v6.1 MIDP 1.0 插件Nokia 7650 S60第二版 v7.0s MIDP 2.0 插件Nokia 6600 S60第二版,功能包1 v7.0s MIDP 2.0 插件Nokia 6620 S60第二版,功能包2 v8.0a MIDP 2.0 插件Nokia 6630 S60第二版,功能包3 v8.1a MIDP 2.0 插件1.1(部分地) NokiaN90 S60第三版 v
7、9.1 插件 MIDP 2.0 插件1.11.1NokiaN91 S60第三版,功能包1 v9.2 插件 MIDP 2.0 插件2.01.1NokiaN95 S60第三版,功能包2 v9.3 内置 MIDP 2.1插件2.11.1严重期待 表1:S60各个版本和功能包支持的开发技术和Symbian版本熟悉S60版本和功能包是理解哪个手机可以运行已有应用程序的关键。 一般说来,使用由特定版本和功能包提供的API编写的应用程序将可以在同样版本和功能包的S60平台手机上运行。例如,一个为Nokia N93多媒体手机开发的应用程序,它基于S60第三版,应该能够在所有基于第三版的手机上运行,比如同样为S
8、60第三版FP1的Nokia N95多媒体手机。目前已发布不少于50款S60手机,所有的型号列表都列在S60网站。 相关的详述和S60平台信息请查阅诺基亚论坛的设备规范部分。 编辑本段回目录C/C+Symbian OS的原生开发语言是Symbian C+,它提供了访问S60平台的最强大而完整的功能。作为补充,自从2007年初,Open C技术作为一个开发平台也被引入。Open C技术旨在完成一些使用C语言开发的桌面应用程序引擎部分到Symbian OS的过渡,使得桌面应用开发者可以很快适应S60平台的开发。 编辑本段回目录Symbian C+ Symbian C+应用程序开发给开发者提供了利用
9、S60平台全部优势的最大灵活性。C+被用来完成S60平台的UI和附加中间件API的开发。通过使用Symbian C+,开发者可任意使用S60平台的公共API。这意为着,第三方应用程序同样可以提供象S60手机中内置的应用程序一样丰富的功能。 Symbian C+开发需要S60平台SDK,每个S60平台SDK包含Symbian和S60 API函数库、命令行开发工具、详尽的文档、一系列应用程序范例和手机模拟器。手机模拟器是应用程序开发里重要的组件,因为当使用WINSCW编译器和Carbide.c+进行交互连接时,它允许应用程序的测试过程在PC上进行。模拟器允许开发者像在真机上一样运行其应用程序,提供
10、诸如模拟呼叫、网络连接、UI方案的整体模拟及定位、声音甚至模拟本地化等功能。使用模拟器,开发者可在其PC上完成他们大部分的开发,这将加快开发周期。 图2 S60 Symbian OS C+ SDK中的模拟器运行截图S60平台的新版本里,S60手机模拟器允许在新设备可用之前就可进行应用程序的开发:不同的S60版本和功能包的SDK通常在其手机发布前就已发布。 S60 SDKs可从Forum Nokia网站的工具和SDKs部分下载。 一个集成开发环境(IDE)可帮助加速应用程序开发进度。为此,Nokia为Symbian C+开发提供了名为“Carbide.c+”的IDE。Carbide.c+ 有四个
11、版本: Carbide.c+ Express. 该Carbide.c+ IDE的免费版本可用来进行任何类型的开发,包括商业应用程序。它包含所有的工具用来编码、生产、打包、测试和debug应用程序。测试功能是通过S60手机模拟起用来完成的。 Carbide.c+ Developer Edition. 这是Carbide.c+ IDE三个商业版之一。除了Carbide.c+ Express版本的特性之外,它还提供了用于真机debug和可视化S60 UI设计器的工具。 Carbide.C+_Professional Edition. 除了Carbide.c+ Developer Edition的特性
12、之外,该版本包含其它执行工具,包括更多真机debug工具和能够检查应用程序CPU、内存及电量使用的性能分析器。 Carbide.c+ OEM Edition. 该版本是为手机制造商设计的,包括能够和开发板及生产前硬件一起运行的工具。 图3 Carbide.C+的运行截图更多信息和Carbide.c+ Express及其它改进版的免费下载链接可从Forum Nokia网站的Carbide.c+部分获得。 喜欢使用命令行的开发者也能通过使用Carbide.c+ Express版本和S60 SDK提供的工具进行命令行操作。 新的Symbian C+开发者需要学习很多概念。每个C+开发者都应该掌握S6
13、0、Symbian API中创建应用程序UI和进入操作系统及平台特性的知识。 S60 UI借助其平台特性为用户提供了简单有效的人机操作界面。用户通过标准手机键盘或全键盘和UI进行交互,这两种键盘都由两个软键组成,一个导航键一个选择键,电话功能键,菜单键,笔形键和清除键。UI同时也提供多语言支持,而且其API被设计为具有通过使用资源文件就可被应用程序灵活本地化的特性,这样增添本地化特性甚至并不需要重新编译源代码的过程。 Forum Nokia发布的两篇文档:S60 UI Style Guide和S60 3rd Edition FP2: UI Style Guide详细介绍了有关S60 UI风格的
14、内容。这些文档也可在Forum Nokia网站的文档部分找到。 为了高效地使用Symbian OS或S60 API,C+开发者必须掌握新的C+编码规范。Symbian C+开发的程序是用于运行在手机上的,这一环境的特点是:有限的内存、有限的进程力及手机能够在不重起的状态下运行数周甚至数月。例如,任何函数的trap-harness机制可被退出以防止在创建对象时的内存泄漏,该对象可能由于内存资源不足而失败。然而Symbian C+采用的方式和其它许多C+语言不同,关于这点需要阅读很多文档和培训资料,以此来以帮助开发者更进一步掌握这项技术。 对于新的Symbian C+开发者来说, Forum No
15、kia提供了很多可用资源。我们最好从开发者资料库(Developer Library)开始, 这里提供了有关S60 C+应用程序的全部资料。该资料库可直接在浏览器中浏览(进入资料库),也可以将其下载后作为单机程序运行或是嵌入Carbide.c+作为在线帮助。另外Forum Nokia网站文档部分的提供了阐释S60 API用法的文档和范例源代码。 许多开发项目是由将应用程序定位在单一手机或是单一版本和功能包开始的,但请注意:S60平台使开发者可以编写能在多部手机及多种版本和功能包上运行的软件。S60平台文档:在主打机型和特定设备之间开发应用程序就为创建多对象应用程序提供了极佳的方案。更多信息仍然
16、请您访问,Forum Nokia网站的文档部分。 C+开发者可从Symbian Developer Network(SDN)网站上找到丰富的相关信息。SDN是由Symbian创建的,网址为 Wiki和讨论区等Symbian C+开发常用的信息。感兴趣的开发者在这里还能找到有关认证Symbian程序员(Accredited Symbian Developer)的信息。该项目是一个开发者资质认定项目,即他们可以检验并证明自己在Symbian C+应用程序开发方面的技能。详细的内容可从SDN网站的Symbian Academy部分查阅到。 Symbian Press, SDN的一个服务提供商,出版了
17、大量的有关Symbian OS开发内容的书籍。详细的内容可查阅SDN网站的Symbian Press部分。 对于Forum Nokia,它提供了一系列相关的培训机会,包括使用eLearning部分的自修教材和中文多媒体自学教程,以及由全球的认证培训中心提供的课堂培训。详情可查阅 Forum Nokia网站的培训部分。 编辑本段回目录标准 C当Symbian C+作为一个非常理想的选择适用于资源有限的移动手机的应用程序开发的同时,手机的计算能力也在S60平台发布之后得到了突飞猛进的发展。这些硬件的改进使桌面环境开发者非常熟悉的标准C技术融入S60平台。 Open C提供了来自9大注明的标准POS
18、IX和C语言中间件的一系列函数库,他们是:libc,libdl, libpthread, libm, libz, libcrypt, libcrypto, libglib和libssl。开发者可使用Open C很轻易地把桌面或服务应用程序移植到S60手机上。Open C是P.I.P.S.的一种扩展,代替P.I.P.S的是Symbian OS中的POSIX。更多有关P.I.P.S.的详细内容可查阅SDN Wiki网站。 Open C的设计特点决定了它是用来帮助开发者创建中间件或应用程序引擎;Open C不提供基于C的UI组件。所以尽管Open C能够使桌面开发者把他们的应用程序引入S60而不需要
19、学习如何如何使用Symbian C+或S60 API,然而S60手机UI应用程序的开发需使用另一套S60开发语言。于是开发者有两个选择:他们要么可以使用Symbian C+要么使用Python里的UI元素来实现S60的UI开发。一般来说,Python对原型或开发初期阶段而言是很好的选择,而在应用程序即将发布的最后阶段建议使用Symbian C+。这其中的主要原因是用Symbian C+编写的S60 UI运行时无需任何附加软件,而Python UI却需要在对象手机上安装Python解译器。用一个应用程序安装Python解译器并不复杂,所以对很多应用程序来说它也是很好的选择。 Open C已被成功
20、地用于大量项目源代码到S60平台的移植,包括FTP客户端和SQLite。 更多内容可查阅Forum Nokia网站的Open C部分。Open C页面上的文档链接提供了有关Open C开发的几个范例。其中最有趣的范例是“Open C:短信加密范例(使用Python作为用户界面) v1.1”,它阐述了S60 C+ UI和基于Python的UI都使用Open C的方法。 Open C是S60第三版功能包2上已经成为一个标准内置技术,它也可作为S60第三版和S60第三版,功能包1的插件存在。 Carbide.c+目前已支持所有的Open C的开发。 编辑本段回目录Java 开发自从S60平台发布以来
21、,Java ME开发就一直是其重要的特性。和Symbian C+相比,Java MIDP为开发者提供了轻便的操作环境,它允许应用程序不仅仅只为S60适用,而且可在来自各个不同手机制造商的Java手机上运行,特别是Nokia的Series 40手机也适用。然而这个轻便性是有代价的:和Symbian C+相比,它对使用S60平台有严格的限制。即使并非所有的S60手机都能使用Java环境,但S60上Java API的应用还是相当广泛的。对平台开发来说,Java能够达到的很多特性是可以和Symbian C+相媲美的。在S60第三版,功能包2手机上所支持的Java规范标准(Java Specificat
22、ion Requests,JSR)和附加的API如下: j2me PDA扩展包(JSR-75),该规范提供了文件系统和个人信息管理(PIM)功能,允许数据的本地存储及使用S60日历和名片夹应用程序的内容。 蓝牙OBEX(JSR-82)支持的Java API, 可让用户使用蓝牙通信。 无线消息API(JSR-120),允许发送和接收短消息(SMS)。 移动多媒体API(JSR-135), 可使用并控制声言和多媒体资源。 J2ME Web服务规范(JSR-172)API,使Java应用程序能够解析XML文件并和周边Web服务交互。 J2ME 安全和信任服务API(JSR-177),包括Crypto
23、和PKI包,通过附加的密码API、数字签名服务和用户认证管理扩展了Java ME技术的安全性。 J2ME 位置API(JSR-179),提供了确定手机(来自内部或外部的全球定位系统GPS)当前位置以及获取标志信息的方法。 J2ME SIP API(JSR-180),允许使用会话发起协议(SIP)服务来发送和接收SIP消息。 J2ME 移动3D图形API(JSR-184),提供达到交互内容要求的帧速率的3D图形功能。它包括3D场景管理和动画的设备,以及有关3D内容的高效空中下载(OTA)部署配置的文件格式。 无线消息API 2.0 (JSR-205),允许发送和接收包含照片、语音及文本的多媒体信
24、息(MMS)。 J2ME 可缩放2D矢量图形API(JSR-226),提供由应用程序生成的大小可变的2D矢量图片,包括W3C SVG-Tiny 1.1格式的外部图像。该API对地图可视化、可扩展图标及需要可缩放图形的应用程序、丰富的动画图形来说是很有用的。 高级多媒体支持(JSR-234),允许Java应用程序使用手机的FM收音机调频及操作音乐和3D音响。 Nokia UI API,为过去MIDP 2.0出现之前提供的UI特性增强的API,目前仅作为确保应用程序兼容性之用。 Java开发的好处之一是它通过大量的手机向可执行应用程序提供了路径选择。同时,当目标应用程序被大范围支持时,我们需格外注
25、意。S60平台为Java应用程序提供了更多资源,另外S60手机有着比其它手机更大的显示屏。所以,如果应用程序需要在尽可能大的手机范围内推广,我们的开发需要定位在资源最受限的手机上。相比在功能特性很弱的手机上最佳化一个具有S60全部特性的Java应用程序来说,在S60平台上利用其附加特性的优势来扩展应用程序的特性是比较容易的。S60平台上的Java开发由SDK支持。每个SDK包括S60平台Java API、有用的文档、一系列范例应用程序代码及手机模拟器。因为使用C+开发,手机模拟器支持PC测试。 这里要为S60 Java应用程序开发推荐两个IDE:NetBeans和Eclipse.特别为MIDP
26、开发设计的插件在两个IDE上都有很好的例子。对NetBeans来说, NetBeans Mobility Pack可以被整合在IDE内。更多详情可查阅NetBeans网站。对于Eclipse, 提供Java ME支持的插件是EclipseME。更多相关信息可查阅Eclipse和EclipseME网站。 对于移动应用程序开发或S60平台新的Java开发者来说,Forum Nokia提供了一些相关资源。Forum Nokia的Java资料可查阅Forum Nokia网站的Java部分。感兴趣的开发者也可查阅Java ME开发者资料库, 它可在线阅读,作为一个单机帮助系统或作为Eclipse在线帮助
27、组件。该库为手机Java应用程序的开发提供了全面阐述。SDN也为Java开发者提供了相关资源,另外Symbian Press已出版了相关主题的书籍。更多消息请访问Symbian Developer Network 网站. 编辑本段回目录Python 基于S60的Python(也称作PyS60)为开发者提供了C/C+和Java之外的一个十分可行的选择。Python是一种动态的面向对象的程序语言,它使用更接近自然语言的关键字,有很强的可读性。它也被看作是简单易学的语言,提供给那些只有不多开发背景的开发者,拥有较短的学习周期。 S60的Python提供了Python标准库和S60平台之间的紧密整合。
28、这种整合给开发者使用S60特性提供了更高级的方法,包括大多数UI组件和大量平台功能函数。S60的Python开发者所能使用的特性有,S60联系人和日历数据、声音录制和重放、手机摄像机、系统信息(包括国际移动设备识别码IMEI)、语音呼叫、通用分组无线业务(GPRS)、蓝牙网络支持及短消息(SMS)发送。S60的Python也是可扩展的,允许通过C+模块添加新的特性。与其它开发语音编写的应用程序不同,S60的Python应用程序可在S60手机以及PC上直接开发。这个优势源于Python是一种解释语言而不是编译语言。基于手机和基于PC上的Python开发最显著的唯一区别就是基于PC的开发需要用工具
29、来把应用程序打包到一个单机安装包。 基于手机的开发要求有对象手机设备的版本和功能包对应的正确的手机安装包。该安装包含有Python解释器,Python标准库,一个用于启动Python脚本的外壳脚本,一系列完整的原生扩展量和一个用于开发的交互性Python控制台。 图4 在手机上开发Python程序为了能在PC上开发S60平台的Python应用程序,开发者需要为他们将要开发的对象安装合适的S60 SDK。每个S60 SDK上都要添加一个S60 SDK的Python插件;每个SDK都有其各自的Python插件,该插件包含了完整的文档和范例代码。 因为S60的Python是一个开源项目,它由Sour
30、ceForge网站提供页面维护,最新的SDK插件,手机上运行的解释器及外壳程序,都可以从这里下载。关于S60的Python 开发方面有两个有用的信息资源:他们是诺基亚开源技术项目社区维基的Python for S60一文和Forum Nokia网站的Forum Nokia Start2Finish博客。Symbian Press也于2007年10月最新出版了有关该主题的书籍:Mobile Python Rapid Prototyping of Applications on the Mobile Platform,作者:Jurgen Scheible。 译者注:对中文开发者来说,如果您想了解S60的Python平台,在S60 3rd Edition 上的Python for S60 简介这篇文章可以说是必读篇目。 编辑本段回目录Flash Lite由Adobe公司开发的Flash已成为Web上传送丰富的互动图形的实质标准。在S60平台第三版以后的版本中Flash Lite的可用性允许Flash的开发者将他们的Web开发技术运用于手机开发领域。 到目前我们所讨论的开发技术候选来看,Flas
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1