Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

应用开发 S60 3rd Edition

From Wiki
Jump to: navigation, search
Article Metadata

代码示例
文章
Amyhuang 在 15 Mar 2007 创建
最后由 hamishwillee 在 30 May 2013 编辑

Needs-update.png本文需要更新: 如果您发现这篇文章有用,请修复下面的问题,然后从文章中删除 {{ArticleNeedsUpdate}} 模板,以消除此警告。

原因: hamishwillee (07 Sep 2011)
Article is out of date:

  • Incorrect links for Symbian Signed
  • Many broken links to defunct pages on this site (fixed some, but all should be checked)
  • Toolchain has changed and part of this is now incorrect. For example, no need to mention codewarrior. Carbide.c++ now only comes in one version so no need to mention the express or professional variants. Also Carbide.vs has been discontinued so should not be mentioned.

S60 3rd Edition应用开发

作者:刘晓国


Contents

简介

S60平台是全球领先的智能手机软件平台,它为具有先进数据能力的手机奠定功能丰富的软件基础。S60平台支持应用间的多任务,其用户界面支持在运行中的应用间相互切换及当其他应用正在运行时启动新的应用。

本文面向应用开发伙伴、内容供应商、系统架构集成商、规范制定者、需求规范分析经理、产品经理,及那些直接使用S60平台或设计应用以发挥其各项功能的人。

本文对S60平台作了介绍。文档集中介绍了S60平台的一些详细概念。同时,文档也完整介绍了如何在诺基亚 S60平台上开发应用。特别是,重点讲解了作为S60平台最新版本的S60 3rd Edition的开发。这个版本在开发流程和平台安全方面与之前的S60版本有很多不同。

平台概述

S60平台是市场领先的智能手机平台,它构建于Symbian OS之上。它集成了越来越专业的企业用户和消费用户所能期望的全部关键性移动技术,同时也向移动市场的所有参与者提供了获取收益的机会。随着S60平台的发展,它通过提供开发和实现方面的众多创新能力,大大提升了智能手机的配备标准。

S60平台的架构

下图展示了S60平台的高层架构。该平台基于Symbian OS,但另外也提供一些功能:

S60.Architecture.gif
图1:S60平台的架构

如上图所示:

S60平台基于Symbian OS,而后者还在不断演进中。因而,S60平台就有不同的版本。S60平台已经经历了1st Edition, 2nd Edition和最新的3rd Edition。各个版本(Edition)中都有一些不同的feature packs,它们对各自版本作了一些功能修订。

Symbian OS基于开放标准,这使开发伙伴们能在Symbian/S60上进行开放性开发。S60平台上所进行的开发是向后兼容的,尽管在2nd Edition和3rd Edition之间存在一些兼容断点,这是因为在新的平台中引入了平台安全概念及新的编译器而造成的。

S60的版本及各自的操作系统是:


  • S60 1st Edition, Symbian OS v6.1
  • S60 2nd Edition, Symbian OS v7.0s
    • S60 2nd Edition, Feature Pack 1 — Symbian OS v7.0s
    • S60 2nd Edition, Feature Pack 2 — Symbian OS v8.0a
    • S60 2nd Edition, Feature Pack 3 — Symbian OS v8.1a
  • S60 3rd Edition, Symbian OS v9.1
    • S60 3rd Edition, Feature Pack 1 — Symbian OS v9.2
    • S60 3rd Edition, Feature Pack 2 — Symbian OS v9.3
  • S60 5th Edition, Symbian OS v9.4
S60.evolution.gif
图2:S60平台的演进


开始开发S60应用前,开发伙伴们可以访问诺基亚论坛网站 文档 查阅各个Edition或Feature Pack所采用Symbian OS版本方面的详细信息。开发者可以在连接S60 3rd Edition 对开发者来说有什么新的变化来查看S60 3rd Edition对开发者带来的影响。


Symbian OS Extensions是一套功能扩展组件,它们让S60平台与终端硬件功能(如震动提示、终端背光,及电池电量指示等)进行交互。

S60 platform services是由S60平台提供的基本服务,包括:

  • 应用框架服务—为启动应用和服务器、数据存储管理,及UI组件等提供基本功能。
  • UI框架服务—为UI组件提供具体的外观表现,并处理UI事件。
  • 图形服务—为创建图形和其他屏幕绘制服务提供功能。
  • 定位服务—让S60平台能获得终端的位置信息。
  • Web服务—提供的服务用于建立连接并与基于Web的功能进行交互,这些功能包括 浏览、文件下载,及消息等。
  • 多媒体服务—提供的服务用于播放音频和视频,并支持流媒体和语音识别。
  • 通信服务—为本地和广域通信提供支持,覆盖范围从蓝牙技术到语音呼叫。

S60 application services是一套供S60应用使用的服务,这些服务也可被第三方开发伙伴们使用以提供一些应用基本功能。其中包括“PIM应用服务”、“消息应用服务”及“浏览器应用服务”。

S60 Java技术服务支持Java™ 2 Platform, Micro Edition (J2ME™) Java™ Technology for the Wireless Industry (JTWI) specification (JSR 185)。S60平台支持有限连接设备配置(Connected Limited Device Configuration, CLDC)1.1 (JSR 139)和针对此配置的移动信息设备描述(Mobile Information Device Profile, MIDP)2.0 (JSR 118)扩展。此外,它也支持某些附加的APIs。

S60 Applications,终端用户可以使用的一些应用,包括个人信息管理程序(personal information manager, PIM),消息,媒体应用,情景模式,等等。

S60平台定义了User Interface Style,但并不强制规定屏幕尺寸,也没有规定输入方法。获授权厂商可以自由实现其自己的用户界面。开发伙伴们在编制用户界面应用时必须具备可缩放概念,因为无法预先假设特定的用户界面的大小。

目前,随着可缩放用户界面的推出,S60支持3种屏幕尺寸:176x208像素,240x320像素,及352x416像素,显示屏既可以是横向的,也可以是竖向的。开发者只需编写一次应用(考虑到可缩放用户界面)就可以将其部署到不同的屏幕尺寸。 有关S60的更多信息请访问下列网站:

S60.com

诺基亚论坛

诺基亚论坛-中文部分

S60 3rd Edition的重大变化

在S60 3rd Edition中有一些重要变化,而且也引入了一些重要的概念。在进行S60 3rd Edition开发之前理解这些概念是十分重要的。 简而言之,S60 3rd Edition和以前版本之间的最大差别在于:


  • 针对ARM架构的ABI 编译器

针对ARM架构的ABI编译器

从S60 3rd Edition开始,以面向ARM®架构的应用二进制接口(Application Binary Interface)为基础的编译器被用于编译各种应用。ARM C/C++ ABI是行业标准,它确定如何让各种可执行文件和共享对象协同工作。采用ARM ABI编译器标准之后,S60平台通过提升内存使用效率和缩短数据访问时间,系统和第三方应用的性能表现将得到提升。目前有两种编译器:GCCE, ARMV5GCCE在SDK安装的过程中会被自动安装,而且是免费的。ARMV5的编译器是一个商业化的编译器,用户需要去购买。更多关于该编译器的信息可以在ARM公司网站找到。

实时内核 (Real–time kernel)

S60 3rd Edition的底层操作系统是Symbian OS v9.1,该操作系统具有一个实时内核,即EPOC Kernel Architecture 2 (EKA2)。(EPOC是Symbian OS的原名,其早先内核是EKA1, Epoc Kernel Architecture 1)。新版多线程内核的许多内核服务时间是可预测的,且降低了延迟时间,因而非常适用于诸如通讯和IP栈这类时间敏感应用、诸如视频流,及IP电话(VoIP)等需要很高带宽的多媒体应用。

平台安全性 (Platform security)

S60 3rd Edition引入了平台安全新方案。这方面改变的初衷是要确保S60终端的完整性,使消费用户们对其终端具有信心,相信它是安全、可靠,可预测的。为此目的,第三方应用软件对手机的敏感数据和终端的某些操作的访问是受控制的。
这些改变意味着:开发伙伴们只要得到验证就可以访问更加广泛的API。这些改变也提供了一些保护,从而避免了因为一些应用的某些缺点而产生不希望出现的副作用。从商务角度看,这些增强提升了S60平台作为稳定、安全的操作系统的良好声誉。平台安全得到模拟器的充分支持,从而使开发伙伴们能测试这些功能对其应用的影响。
请注意,“平台安全”并不是指S60平台已经提供的功能,也不是指第三方对该平台的扩展中所提供的功能,如加密、防火墙、Java MIDP安全域模型、防病毒,或一些通信协议的安全版等。


信任计算基(Trusted Computing Base)
为执行S60 3rd Edition所引入的一些安全措施,系统中使用了名为信任计算基(Trusted Computing Base)的一组软件。TCB包含内核(kernel)、文件系统(file system),及软件安装器(software installer)。它负责保证:只有具有必要许可及权限的应用才能被安装到终端上,及被允许访问终端的受限制区域。


数据锁定(Data caging)
数据锁定的目标是:控制对文件系统的访问(access)以保证数据安全。每个应用都有其自己的private目录用于储存私有数据,且不允许其他应用访问(除非该应用具有足够的capabilities)。某个应用能访问文件系统中其private目录之外的大部分区域,但是也有限制。如果与终端制造商之间没有协议,储存可执行文件的/sys目录是不允许访问的,而保存诸如位图等应用资源文件的/resource目录则为只读。为能访问那些特定的目录,某个应用需要具备一些capabilities。对终端中特定目录的capability需求如下表所示:


目录 (包括子目录) 需要的能力
读访问 写访问
/resource None TCB
/sys AllFiles TCB
/private/<ownSID> None None
/private/<otherSID> AllFiles AllFiles
/<other> None None


这里的SID指的是应用独有的安全ID(SecureID).每个应用都有自己的安全ID及按照安全ID而定义的独有的私有目录,如c:/private/20000001。 应用的SecureID一般是由在工程文件.mmp中的UID3来决定的(如果没有特别定义的话)。


能力模型(Capability model)
Capability模型的目的是确保:只有获信任的应用才能使用某些敏感的API和系统资源。用户可以在应用被安装时授予某些许可,如发送短消息(SMS)及读写用户数据等。然而,有许多capabilities则只授予给通过Symbian Signed认证的应用。
在S60平台上,共有四套capabilities:
  • 完全开放—这些capabilities对所有应用都开放,应用无需Symbian Signed。
  • 安装时由用户授予—这些capabilities(完整的位置信息除外)由用户在安装时向应用授予,并被称为未认证沙箱(unsigned sandbox)。通过Symbian Signed的应用无需用户授予许可就可以使用所有这些capabilities。
  • 通过Symbian Signed授予—这些capabilities包括安装时由用户授予的那些capabilities加上需要Symbian Signed后应用才能使用的一个capabilities扩展集。
  • 制造商授予—这些capabilities需要与制造商签订协议,以允许在Symbian Signed过程中授予这些capabilities。
不同的capabilities需要不同种类的证书。在开发阶段,用户也许需要申请不同的证书用于测试。一个证书可用于认证具有该证书中所定义的capabilities的子集的任何应用。 关于能力的详细说明,请在如下的Symbiansigned章节中得到详述.


Symbian Signed” 和“Tools”将在本文稍后部分介绍。
如果开发者想知道关于每个capability相关的终端特性方面的更多信息,请参阅 诺基亚网站文档]《Symbian OS:安全概览》

S60产品

S60平台被授权许可给行业中的一些厂商,它们为市场开发终端产品,如联想、LG电子、诺基亚移动电话、松下及三星等。S60终端的产品范围不断变化,如欲了解目前的终端范围,请访问S60网站终端分区和如下一些网站:

S60产品

Nokia S60手设备

诺基亚论坛的设备规范表

S60应用开发

对开发新手来说,在S60 3rd Edition上进行开发在某种程度上是比较困难的。本节着重介绍S60 3rd Edition的开发步骤,它与之前的一些平台(1st和2nd平台)相比,S60 3rd Edition的应用在向真实终端部署上略有不同,并在开发上有一定的难度。下面详细介绍了所有的相关步骤。

安装

在诺基亚论坛网站上注册一个账户

诺基亚论坛网站上的许多下载需要预先注册,虽然也有一些下载无需注册。注册是免费的,所有的SDK、文档和范例代码等下载都是免费的。进入 诺基亚论坛注册网站

安装开发工具

目前有很多开发工具可供S60 3rd Edition开发使用,如:


  • Microsoft Visual Studio .NET 2003/2005
开发伙伴需要先安装Microsoft Visual Studio. NET 2003/2005,然后去诺基亚论坛网站免费下载“[

http://www.developer.nokia.com/Resources/Tools_and_downloads/Other/Carbide.c++/ Carbide.c++ 3.2]”。开发伙伴可以在诺基亚论坛主页上选择“Tools and SDK”,然后选择“All tools and SDKs”。进入页面后就可寻找所需的“Cabide.vs”插件。开发者可以和 Visual Assist X 配合使用以达到很好的效果。

如果开发者在安装完3rd Edition, FP2及Carbide.vs 2.02或Carbide.vs 3.01后,在Visual studio中仍然不能看到3rd Edition, FP2版本的SDK,请参阅:S60 3rd Edition FP2 SDK迂回解决方案


  • Metrowerks Codewarrior
诺基亚将不再继续提供这个产品(诺基亚拥有该产品),它将逐步淡出。取而代之的是一个全新的开发工具,名为“Carbide.C++”。开发伙伴可以从诺基亚论坛网站下载Professional, Personal版本,或OEM版本。安装后可获得一定时间的试用期。开发伙伴可以在诺基亚论坛主页选择“Tools and SDK”, 然后选择“Symbian/C++ tools”,找到这个工具。
该工具支持终端在线调试。为支持终端在线调试,开发伙伴需要安装下列CodeWarrior更新:
CodeWarrior On-Device Debug Kit for Series 60 3rd Edition
开发伙伴可以到诺基亚论坛网站下载视频文件“Symbian OS C++应用的终端在线调试”。
诺基亚论坛网站还提供了有关终端上调试的用户指南“Symbian OS软件的终端在线调试”。
请注意:如果开发者想使用下列命令
bldmake bldfiles
abld build winscw udeb
abld build gcce urel
利用命令行Cmd.exe来编译自己的应用,请下载并安装CodeWarrior,否则这些命令可能无法正常运行。如果没有许可证书,Codewarriro IDE界面可能无法启动,但是只要CodeWarrior被安装,这些命令行命令是可以被成功执行的! 当在MS-DOS命令框中编译一个应用时,请确保EPOCROOT环境变量设置恰当。关于EPOCROOT设置方面的更多信息请参考SDK帮助。另一种方法是不使用EPOCROOT, 而使用devices命令来选择所需的SDK,如果在PC上安装了多个SDK的话。开发伙伴们可以在MS-DOS命令框中输入下列命令,获得有关devices命令的更多信息:
devices --help


  • Carbide C++
Carbide相关信息


对Carbide.c++ 工具来说, 开发者也可以下载 C++ Developer's Library.
开发者可以按如下的步骤来启动MS-DOS来进行命令行编译:
Start ==> Programs ==> Carbide.c++ 3.2 ==> Configure environment for WinsCW command line


建议开发伙伴们先安装这些工具,然后才安装S60 3rd Edition SDK,因为安装SDK会更新相关工具中的某些组件。

安装S60 3rd Edition SDKs

用户请到下列网站下载S60 3rd Edition SDKs:

诺基亚论坛

请在主页选择Tools and SDKs, 然后选择“Symbian C++/tools”。网站上有好几个版本的S60 3rd Edition SDK。用户可以在该网站上下载下面这些SDK用于S60 3rd Edition应用开发:


  • 3rd Edition
  • 3rd Edition, Maintenance release
  • 3rd Edition, FP1
  • 3rd Edition, FP2


用户也许会发现有两个版本的“3rd Edition”. 3rd Edition是在刚刚推出时的较早发行版。开发伙伴们如果想开发能运行于所有S60 3rd Edition手机(包括那些FP1/FP2及后续版本)上的应用,我们建议去下载Maintenance release版的SDK用于开发工作,因为这是一个比较成熟的版本,也是以后所有S60 3.0 SDK的基础,尽管以后的feature packs会引入一些高级功能。在这个SDK上开发出来的应用应该可以运行于以后所有的S60 3rd Edition版本上的手机.

如果开发者在安装完3rd Edition, FP1后,请安装File:NCNList fix.zip。否则,在Emulator时,会显示“Application closed: ncnlist KERN-EXEC 3”错误信息。

对中文开发者来说,并没有独立的中文版SDK供下载,虽然以前某些S60的版本出现过中文版本的SDK。中文版本的SDK已经被集成到了欧洲语言版的SDK中。开发伙伴在电脑上的桌面上需通过下列步骤就能启用中文环境:

Start ==> Programs ==> S60 developer tools ==> 3rd Edition SDK ==> 1.1 MR ==> Languages ==> Change to Chinese


但是,使得中文输入在模拟器上工作并不很直接。开发者通过按下“#”键并不能使得中文输入方法呈现。一个迂回的解决方案是在编辑控件被显示时,开发者可以按下ABC键(在键的上面有一个笔的形状)来选中输入的方法,然后用鼠标选中数字键1--9来输入中文或相应的被选的语言的字符。


请注意,S60 SDK必须安装在和将来要建立应用项目盘符一致的硬盘上。否侧将会出错!另外安装的路径中不能有空格字符。一般情况下,我们选择默认的路径。


插件:

  • 开发者也可为诺基亚的体育手机5500安装“Sensor plug-in”.
  • 在S60上进行Open C/C++语言设计S60 Open C plug-in"。 现在Open C/C++除了支持POSIX C/C++,同时也支持 RGARealtime Graphics and Audio APIs)以支持使用C/C++语言来开发游戏。


如果开发伙伴不能成功安装SDK,建议其参阅诺基亚论坛网站的下列帖子:

Can't install S60 3rd SDK

这个帖子提供了解决这一问题的迂回方案。开发伙伴需要创建一个空文件S60_3rd.xml,并将其置于3rd Edition SDK安装包被解压缩到的那个安装目录中。

如果开发伙伴们多次安装并卸载S60 3rd edition maintenance SDK,安装文件目录的名字将不断改变,如\Symbian\9.1\S60_3rd_MR_1\Symbian\9.1\S60_3rd_MR_2. 为去除安装序列号12,开发伙伴需要于安装前在您PC的Windows注册码数据库中删除下列注册码:

HKEY_LOCAL_MACHINE\SOFTWARE\Nokia\com.nokia.s60

如果开发伙伴们希望用命令行编译其应用,请参阅SDK帮助以获取更多信息。有时候在一台计算机上需要安装几个SDK,为了便于从一个SDK切换到另一个,请使用“environmentswitch.exe”工具,该工具并不存在于3rd edition SDK中。开发伙伴们可以到早先的SDK安装中寻找这个工具。例如,在2.0平台的SDK中:

\Symbian\8.1a\S60_2nd_FP3\Series60Tools\environmentswitch\environmentswitch.exe

如果开发者没有安装相应的SDK的话,开发者可以到连接S60 3rd Edition Application Development去下载EnvironmentSwitch.zip到自己的电脑。

安装Java运行时环境

开发伙伴可以到下列网站下载最新版Java SDK和运行时环境:
Java.Sun.com
请确保使用“控制面板”将所需的路径和环境变量正确添加到计算机的环境变量中。

安装perl

请从下面的网站下载最新版perl:
ActivePerl-5.6.1.635
请在PC的“控制面板”中为perl设定正确的路径。请注意就按照S60 3rd Edition SDK release note中的Perl的版本进行安装。也不必安装比它要求更高的版本。一些开发者在安装最新的版本后,还出现了问题。

S60 3rd Edition应用开发过程

本节介绍在S60 3rd Edition上进行开发的过程。由于在S60 3rd Edition中引入了平台安全概念并使用了新的编译器,其开发过程与S60 2nd Edition上的开发略有不同。
在S60 3rd Edition上的开发过程可以用下图表示:
S60 3rd Ed development process.jpg

图3. S60应用开发流程


文档《S60 3rd Edition:工具链、IDE,及开发过程》讲解了整个过程。
SymbianSigned.com网站上也有一篇介绍开发过程的好文章:


如上图所示,可对开发步骤作如下描述:


1. 编码(Coding)
开发伙伴可以导入一个.mmp文件来启动一个现有的工程,也可以用IDE工具中的“Wizard”来生成一个模板应用。通常这是推荐的方法。
对于一些以前没有涉及到Symbian OS C++ 编程的程序员来说,Symbian OS C++ 的编程可以说是比较难以理解的。开发者可以阅读如下的文章以对Symbian OS及其编程有更深的认识:


  1. Symbian OS 编程规范
  2. Symbian OS 编程手册
  3. 客服端与服务器
  4. :S60 为Symbian OS 开发平台独立的引擎--模块化设计
  5. ANSI C++ 和C++ for Symbian OS的比较
  6. 创建定制的UI控件
  7. Symbian OS 窗口架构
  8. 活动对象 Active Object
  9. 可缩放用户界面
  10. 怎么在Symbian OS上进行开发


在开发阶段,请预先安排好本地化可缩放用户界面问题。因为该应用可能运行于所有的终端上,而这些终端又可能具有不同的屏幕尺寸和显示屏布局。此外,应用也许要支持不同的语言。在.loc或.rls中定义本地化字符串永远是获得良好的本地化支持的好习惯。如果需要支持本地化,请不要在.cpp文件或.rss文件中定义这些本地化字符串。一个好的本地户的例子可以在如下的地方找到:
\S60\devices\S60_3rd_FP2_SDK\S60CppExamples\Localization
这个例子在s60的第三版上只能在它的S60 3rd Edition FP2 SDK的安装中找到,另外一个例子可以在如下的地址下载
中文显示本地化例程,还有一篇好的文章是:Symbian多语言应用开发语言代码(language code)可以在网址找到
在S60 3rd Edition 的编程和移植中,把在.mmp栈的大小设置为如下:
POCSTACKSIZE 0x5000
是非常重要的。一些开发者没有把缺省的栈的大小设为大一些,结果造成这样或那样的错误!
在这里必须指出的是:要建立应用项目盘符必须和S60 3rd Edition SDK 安装的盘符是一致的。否侧将会出错!而且,在项目的路径中不能含有空格字符。


2. 编译(Building)
开发伙伴既可以使用IDE工具中的编译功能也可以使用MS-DOS命令来编译范例代码。至于如何编译一个应用请到SDK帮助中寻找更多信息。
对于Emulator的编译在MS-DOS窗口中可以使用如下的命令进行编译(当然环境必须设置好)
bldmake bldfiles
abld build winscw udeb


对于运行于手机的目标机的编译,可以使用如下的命令:
bldmake bldfiles
abld build gcce urel
这里使用的GCCE编译器是免费的。在安装SDK时会被自动安装!
对于有些对性能要求很高的应用来讲,建议开发者可以购买商业化的RCVT ARMV5编译器。编译出来的目标代码相比GCCE编译器来说更小,执行效率更高。
有些IDE开发工具(Carbide.c++)集成了相应的编译器,使得我们的编译更加简单方便!


3. 测试(Testing)
开发伙伴们可以在PC模拟器环境中编译并运行应用。如果没有发现问题,就能将这个应用部署到一台真实的目标机中进行测试。在S60 3rd edition上,应用的部署与S60 2nd edition也略有不同,同时还涉及到Symbian Signed。后面几节将有更为详细的介绍。在开发阶段中,开发伙伴可以申请开发伙伴证书,用于对正在开发的应用进行认证以便测试。后面章节将介绍如何申请开发伙伴证书。
开发伙伴可以到SymbianSigned.com中寻找有关Symbian Signed测试标准方面的更多信息Category:Symbian Signed
如果出于某些商业原因某个应用需要被预装到一款诺基亚终端上,那么这个应用就必须通过诺基亚测试标准(Nokia test criteria)。更多详情请访问

Symbian Signed Test Criteria V4 Wiki version


4. 认证(Signing)
所有S60应用都必须强制签名,然后才能被部署到真实终端上。有两种认证:


  • 自认证:一个应用使用的UID位于0x80000000 – 0xFFFFFFFF之间,即非保护区域,这个应用只能使用某些基本的capabilities。关于如何签名一个自签名的应用可参阅文章怎么用自签名证书签名一个应用.特别值得注意的是:自签名的应用只能够使用LocalServices, ReadUserData, WriteUserData, NetworkServiceUserEnvironment能力. 更多信息请参考图4。当然这也并不妨碍开发者把具有这些能力的的应用送到测试公司进行测试而得到Smbian签名.当然在这种情况下,开发者必须把自己的应用的UID改到如下的受保护的区域。开发者可以参阅文章如何用自签名证书签名一个SIS文件


  • Symbian Signed:一个应用使用的UID位于0x00000000 – 0x7FFFFFFF之间,即保护区域,这个应用可能使用某些敏感APIs。关于Symbian signed的描述是比较复杂的.开发者可以下载File:Symbian Signed - Webinar.pdf


S60 capabilities.png

图4:S60的capabilites


有关UID范围方面的说明在 这里 有更为详尽的信息。关于UID的范围说明,也可以在UID及能力介绍看到。
如图3所示,Symbian的能力(Capability)可分为四部分:
  1. 用户能力(User capabilities): LocalServices, ReadUserData, WriteUserData, NetworkServices, UserEnvironment
  2. 系统能力第一套(System capability set 1): Location,SwEvent, ProtServ, TrustedUI, PowerMgmt, SurroundingDD, ReadDeviceData, WriteDeviceData
  3. 系统能力第二套(System capability set 2):CommDD, DiskAdmin, MultimediaDD, NetworkControl
  4. 制造商能力(Manufacturer):AllFiles, DRM, TCB, needs approval from manufacturer of mobile phones


请注意:从S60 3rd Edition FP2以后, Location能力将被移到用户能力组中。在开发过程中,如果一个开发者还不能确定自己的应用要用到那些能力,开发者可以参阅文章如何解决平台安全问题


依赖于一个S60应用所使用的能力, 签名一个应用也分为如下的几个方面:


  • User grantable: 应用使用的能力在安装时由用户授予. 该应用所使用的UID必须是在非保护的区域(0x80000000-0xFFFFFFFF). 开发者可以使用自己生成的证书来签名所开发的应用,并且该应用只能具有LocalServices, ReadUserData, WriteUserData, NetworkServices, UserEnvironment 其中的能力(从S60 3rd Edition FP2 以后,开发者也可以使用Location能力)。
  • Open signed without publisher ID: 用户必须在www.symbiansigned.com网站进行注册登记, 并且开发者必须提供一个真实的电子邮件地址及手机的IMEI号码. 该签名的应用只能安装到所指定的手机上,并且只能在36个月内有效. 开发者无须提供一个Publisher ID. 该方法是为在开发阶段测试而设计的. 所使用的能力只限于用户能力系统能力第一套
  • Open signed with publisher ID: 开发者必须在TC TrustCenter购买一个Publiser ID. 对于中国的开发者来说,开发者可以在GlobalSign购买一个Publisher ID. 有了Publisher ID, 开发者可以到www.symbiansigned.com网站上进行登记并上传自己证书请求文件(由DevCertRequest应用产生)而得到证书. 一旦得到证书,开发者可以使用该证书来签名一个应用, 并且该应用可以使用在不多于1000个手机上. 同样该证书的有效期是36个月. 该方法是为在开发阶段测试而设计的.开发者可以使用用户能力, 系统能力第一套系统能力第二套的能力。
  • Express signed: 开发者必须具有一个Publiser ID, 并且在www.symbiansigned.com上进行登记。在开发者支付一定的费用后(目前是每签名一个应用20美元的价格),在网站进行上传自己开发的.sis文件后, 开发者可以很快地得到签名过的应用,并且该应用可以在任何一个被支持的手机上进行安装. 该签名方法适用于商业化一个应用.开发者可以使用用户能力系统能力第一套
  • Certified signed: 开发者必须具有一个Publisher ID. 开发者必须按照Open signedSelf-signed 的测试标准进行测试。应用必须使用一个受保护区域的UID(0x00000000-0x7FFFFFFF)。 开发者然后可以把自己的应用送到Symbian指定的测试公司进行严格的测试,并支付一定的费用。 如果该应用已经通过Symbian的测试标准,该应用可以被成功签名而进行商业化。
  • Symbian signed for Nokia: 任何一个需要在Nokia手机上进行预安装(Preinstall)的应用必须通过Nokia的测试标准。该测试必须由Symbian指定的三个测试公司完成,并且支付一定的费用。 Nokia的测试标准比Certified signed更加严格. 该测试也必须由Symbian指定的测试公司进行测试. 更多的信息可以在www.symbiansigned.com. 签名后的应用可以商业化. 应用可以使用任何的能力. 对于制造商能力能力的使用, 开发者必须提出具体的商业目的以供Nokia进行商业评估. 如果可以地话, 在开的过程中,开发者可以使用Open signed with publisher ID进行签名测试。更多关于申请manufacturer的信息可以在Access Manufacturer Capabilities


如果一个开发者想开发一个免费(Freeware)的应用软件,开发者可以参考连接如何签名一个Freeware应用


请注意: 只有成功登录该网站后后方可点击该链接。
开发伙伴全面测试某个应用之后,如果需要通过Symbian Signed,就应该将这个应用递交到测试机构进行进一步的测试。目前在全球范围有三家测试机构:
  • mPhasis (中国上海)
  • Capgmini
  • NSTL
三家测试机构的价格各不相同,开发伙伴可以自由选择任何一家。
请到SymbianSigned了解更多有关Symbian Signed及测试帮助方面的信息。在这个网站上可以找到有关认证过程的详细信息
请注意,开发伙伴向测试机构递交应用前需要申请一个ACS publisher ID,而在开发阶段申请开发伙伴证书就不需要。如果开发伙伴拥有一个ACS publisher ID,就可以用这个ID来申请一张适用于100台移动终端的证书。有关开发伙伴证书方面的更详细信息请参阅Developer_Certificate_Request_Process_v2.0.pdf
由于一些原因,中国开发伙伴们申请ACS publisher ID可能会比较困难。根据与Verisign达成的一项协议,已经为中国的开发伙伴们设立了一个“绿色通道”。请于SymbianSigned了解更为详细的信息,文档则位于:SymbianSigned-General2006_v1_1.pdf
关于SymbianSigned专区的讨论可以在Symbiansigned研讨专题
如果一个开发者想要开发一个免费的应用软件供其他用户使用, 请参阅如下的连接:如何签名一个Freeware应用来提交自己的应用软件以来得到免费的签名.


5. 传送和发布(Transferring and distributing)
应用经过正式认证之后,就可以发布了。下面一些章节提供了一些发布的链接,同时诺基亚NCD((Nokia content Discover)也可用于分发。NCD是一个安装于手机客户端的应用。用户使用NCD可以方便地下载所需要的应用。

S60 3rd Edition的部署

开发并在模拟器环境中充分测试应用之后,可以将该应用部署到某台真实的终端上。如上所述,必须对S60 3rd edition进行强制认证然后才能将其部署到真实终端上。

  • 对于自认证应用,开发伙伴需要在命令行中用“makekeys”来生成一个密钥及证书,用于对该应用进行认证:
makekeys -cert -password 12345 -dname "CN=username OU=NOKIA CO=GB EM=xyz@abc.com" mykey.key mycer.cer

另一种方法则是用Symbian 的“Certificate Request”(后面介绍)应用来生成一个密钥。这种方法产生的密钥可以用来签名一个应用。但是该应用只有在签名后的6个月内是有效的。开发者也可以使用另外一种方法使我们签名过的应用多过6个月!

  • 对于Symbian Signed应用,开发伙伴使用下列步骤来生成所需的开发伙伴证书
  1. SymbianSigned下载最新版“DevCertRequest”应用。安装该应用。
  2. 启动“Certificate Request”应用。选择一个.csr名(证书请求)。在步骤2,如果并没有有效的密钥文件,请不要在文本编辑器字段输入密钥文件,而是在“Private Key”字段点击“…”按钮。这时当创建一个请求文件时会生成一个密钥文件。
  3. 完成余下步骤,最后生成了一个.csr和一个.key文件。
  4. 进入SymbianSigned网站。注册一个账户,登录到这个网站。登录后,"My Symbian Signed"标签成为可见。请在该页面上选择Open Signed->Request,并上传先前生成的.csr文件。如果这个证书申请过程并不涉及到制造商capabilities,那么开发伙伴就可以在上传请求后立即从这个网站下载一个.cer证书文件。对于含有制造商capabilities的那些证书,请联系诺基亚论坛业务经理或相关的业务集团,要求协助以证明这些业务理由的正当性,然后才能递交请求。
  5. 针对gccearmv5(如果开发伙伴具有这个编译器)对应用进行编译。通常情况下,armv5编译器比gcce要小得多。开发者如果想购买该编译器,可以在ARM公司的网站找到更多的信息。但是gcce是SDK安装包中自带的免费编译器。开发伙伴可以使用下列命令来对应用进行针对gcce的编译:
    bldmake bldfile
    abld build gcce urel
  6. 使用makesis命令来生成一个.sis文件:
    makesis myapp_gcce.pkg在“myapp_gcce.pkg”文件中,它定义了所需安装文件安装的路径。


开发伙伴得到了.key.cer文件之后就可以使用以下命令对应用进行认证,以便将其部署到真实的终端上:

signsis myapp_gcce.sis myapp_gcce.sisx mycer.cer mykey.key mypassword

这里,signsis 命令用于认证应用,而“myapp_gcce.sisx”是输出的被认证文件,尽管在这种情况下扩展名并不重要。开发伙伴也许需要在命令中放置正确的路径,以便使该命令能得到正确执行。应用被认证之后就可以通过蓝牙或红外部署到真实终端中进行测试。

更多关于Symbian signed的视频资料可以在网上找到。

某些IDE提供一些用户界面来管理证书和密钥。开发伙伴可以方便地选择针对“gcce” 还是“armv5”的编译,然后在编译阶段对应用进行自动认证。Carbide.c++

关于Symbian签名的eLearning模块可以在“Symian签名在线学习”找到。

S60支持及一些有用链接

S60支持

目前开发伙伴们可以通过下面一些网站找到有关S60的所有最新信息:

我的个人博客(Blog)

S60.com

诺基亚论坛

S60 C++ 应用开发库

对于中文开发伙伴,也可以使用下面的网站: 诺基亚论坛中文网站

在这个网站中,开发伙伴们能找到一些已经本地化了的中文文档和最新的S60新闻更新。

在诺基亚论坛网站,开发伙伴们可以免费下载所有文档和范例代码。网站上还能找到一些很好的范例代码,这些范例展示了某些技术领域的API的使用。开发伙伴们通过在主页上选择“Technologies”然后选择“Symbian C++”找到这些范例。在该页面上开发伙伴们还可以找到“Code and examples(代码与范例)”链接

开发伙伴们可以使用诺基亚论坛网站上的“Discussion boards(讨论区)”提交一些问题,许多热心的开发伙伴会回答您的问题。当然,开发伙伴们也可以在讨论区搜索一些关键词找出相关的帖子/论题。开发伙伴们可以去诺基亚论坛网站的主页,选择“Discussion Boards(讨论区)”。对于中文开发伙伴则可以访问一个独特的中文讨论区。根据诺基亚论坛网站的统计,这是该网站最为热门的讨论区之一。

除了网站和讨论区之外,诺基亚论坛也为全球范围的开发伙伴提供咨询服务。这是一项收费服务,对所有开发伙伴开放。这方面的更多信息请联络诺基亚论坛业务发展经理或技术支持和咨询团队。

开发伙伴们还能从诺基亚论坛得到培训服务。诺基亚论坛已经在全球范围认证了一批培训讲师,他们向开发伙伴们提供专业的培训服务。更多信息请在诺基亚论坛网站选择“Trainings”访问Training(培训)专区。

对一些重要的开发伙伴,诺基亚论坛还提供名为“Nokia Developer Pro”计划的专业支持服务。请于诺基亚网站的开发伙伴专区进入市场链接获取详情。

相关链接

除了上面介绍的一些连接之外,在互联网上还有很多对开发伙伴有用的链接:

开发伙伴总能从中发现许多有用的新信息。这个网站上有许多文档、白皮书、范例代码,及各种规范等。

可以在诺基亚论坛网站上免费得到这些课件。开发伙伴可以选择其中的许多课件包。 Nokia Developer video casts (诺基亚论坛视频广播,中文) 这是中文网站,其中有许多介绍各种不同技术领域的演讲稿。

这是面向开发伙伴的开源资源区。其中有许多开源项目。

这个网站介绍应用认证。开发伙伴们可以到那里申请开发伙伴证书,寻找测试文档。 S60 testing 开发伙伴们能在这个网站上找到有关S60应用测试方面的众多信息。

获取支持指南等信息的网站。

销售应用的好网站

销售及宣传Symbian应用的网站。

当然,互联网上还有许多有用的链接无法在此一一列举。欢迎开发伙伴们在此添加更多信息。

结论

S60是移动电话市场中的先进平台,被一些移动电话制造商广泛采用。这是一个面向第三方开发伙伴的开放平台,正在不断变化和发展。S60 3rd Edition集成了一些新特性,如相对其早期版本的平台安全性等。由于引入了新的安全模型,S60 3rd Edition上的开发过程与其早期版本(S60 2nd Edition)略有不同。

S60终端是安全的,覆盖各个细分市场的广泛范围。同时,新ARM二进制接口和平台安全的引入要求开发伙伴们改变其使用的开发工具,且在某些应用中需要使用附加的证书。

S60 3rd Edition的推出向开发伙伴们既提供了机会,也发出了挑战。诺基亚也向开发伙伴们提供了通过诺基亚渠道销售其内容和Java Verified™应用的诱人机会。这些渠道是:诺基亚软件市场和诺基亚应用目录。此外,某些应用还可能被选用而预置到新款诺基亚终端中。

This page was last modified on 30 May 2013, at 04:42.
3267 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×