×
Namespaces

Variants
Actions

Archived:在S60 3rd Edition 上的PySymbian 简介

From Nokia Developer Wiki
Jump to: navigation, search

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

All PySymbian articles have been archived. PySymbian is no longer maintained by Nokia and is not guaranteed to work on more recent Symbian devices. It is not possible to submit apps to Nokia Store.

Article Metadata

文章
Amyhuang 在 19 Mar 2007 创建
最后由 hamishwillee 在 31 May 2013 编辑

S60 3rd Edition 上的PySymbian 简介


海勤

版本0.3

2007年3月6日


Contents

简介

本文简介在 S60 3rd Edition 上的PySymbian 文档所述内容并不针对运行于S60 1st或2nd Edition的PySymbian,那些平台上的开发者不必参考本文。 S60 3rd Edition及后续版本引入了平台安全特性,这就要求对整个PySymbian的框架结构作一些改变,以便支持S60 3rd Edition。 在 S60 3rd Edition 上的PySymbian方案基于下面两方面的用例:

独立安装

本质上,这使得各种Python应用与本地Symbian应用毫无区别,用户并看不出这是一个Python应用还是C++应用。应用在终端主菜单中可见。

嵌入式安装

在终端菜单中可见的脚本shell,用户能运行单独的Python脚本。 本文所提供的信息介绍新引入的平台安全特性对PySymbian的影响,以及在本地扩展方面的开发选项和建议等。


面向S60 3rd Edition的PySymbian 概述

S60 3rd Edition终端强制实施平台安全。这意味着,所有SISX文件的安装都需要经过事先认证。软件安装器将检查SISX包中的应用是否经过认证。有关认证方面的更多信息请参阅“认证与分发”一节。 平台安全的基本概念是'capability',这一术语指出正在终端中运行的进程能做什么。由于标准PySymbian应用与某个本地应用并无差别,它们都运行于某个独立的线程,如果它使用了一些受控的API或通过SISX包发行,就必须经过认证。 一个Python独立应用的功能受限于分配给解释器DLL的capabilities。“认证与分发”一节中列出了这些capabilities。换句话说,这是使用诺基亚签名的PySymbian的所有Python应用的上限。如有需要,当然也可以为某些特殊目的以更大的capabilities对Python解释器DLL进行认证签名,但这不在本文讨论范围内。 作为从终端主菜单看到的Python应用,脚本shell也需要经过认证。脚本shell不会让脚本程序以比自己大的capabilities运行,因而也就不会被诺基亚授予与解释器DLL同等的capabilities。这并不会影响开发工作,因为开发者可以用开发伙伴证书对脚本shell进行认证。关于开发伙伴证书方面的信息请访问 https://www.symbiansigned.com/ 。由于需要对解释器DLL和脚本shell进行分别认证,就需要两个包('X'表示版本号): • PythonForS60-X_X_X_3rded.SIS – 含有解释器DLL、诺基亚提供的所有本地Python扩展和其他需要的文件 • PythonScriptShell-X_X_X_3rded.SIS – 含有脚本shell应用,需要与上面的包一起运行 开发伙伴们需要牢记的是:脚本shell只是一个普通应用,类似于您用py2sis包装了一个应用,必须遵循上文讲述过的那些安全先决条件。解释器DLL用于所有标准的Python应用,但为使一些Python应用能尽可能自由地访问受控资源,解释器DLL这一实体需要用更大的capabilities集合来认证。

注:终端主菜单中可见的脚本shell应用与其他独立的Python应用没有任何关系(即,它们之
间没有逻辑上和概念上的依存关系)。

更多信息请参阅由Symbian和诺基亚提供的平台安全资料,请参阅如下Symbian signed过程和平台安全概要介绍 https://www.symbiansigned.com/How_has_Symbian_Signed_evolved_with_Symbian_OS_v9.pdf


认证与分发

多种认证和发行方法可用于在S60 3rd Edition实际终端上运行脚本,如:

1) 使用开发伙伴证书认证SISX

2) 自认证SISX

3) 用上述1) 或2) 对Python脚本shell进行认证

4) 用py2sis工具对脚本打包(并对这个SISX包进行认证)。有关py2sis的更多信息请参阅《一步一步创建3rd Edition独立应用》。

如选用第一种方法,开发伙伴们能在正式提交Symbian Signed认证之前用开发伙伴证书对应用进行认证,并在产品终端上以几乎全部capabilities对应用进行测试。再者,您计划为S60 3rd Edition终端发行的应用需要经过认证,因为在目标终端上实施了平台安全限制措施。

如选用第四种方法,开发伙伴们可以使用py2sis程序对脚本打包成可安装的SISX包。用py2sis打成的这些包要求在终端上已经安装有'PythonForS60-X_X_X_3rded.SIS'。

下表简要说明了平台安全所影响到的一些Python函数或模块:

CN Python Module Screenshot.jpg

ACS =表示需要ACS Publisher ID获取这个级别的开发伙伴证书。

  • = 如果这个可执行文件没有经过特定的capabilities认证,将给出错误数据。

无需capabilities: • camera • e32db • inbox • audio • socket • graphics

诺基亚为PySymbian所分配(不包括脚本shell应用在内)的capabilities如下图所示:

CN Python on S60 3rd edition Screenshot.jpg

注:如需要更多的capabilities,就应如前所述修改Python DLL的 capabilities并具   
有足够capabilities的证书对SISX包进行认证。 


一步一步创建S60 3rd Edition独立应用

• 步骤1:安装一个工作版的S60 3rd Edition C++ SDK(只在Windows环境中测试过)。

注:安装后的SDK将能编译如’helloworld’基本范例程序。

• 步骤2:还需要有一个工作版的Python(测试过Python 2.4.4)。 欲获取Python 2.4.4,请访问:http://www.python.org/download/releases/2.4.4/ • 步骤3:标准的PySymbian源代码版,附py2sis(测试过pys60-1_3_15_src)工具,可用于从您的Python脚本创建独立应用。对终端用户来说,被打包的Python应用与本地应用并无区别。如欲获取pys60-1_3_15_src,请访问:http://sourceforge.net/projects/pys60/files/pys60/ • 步骤4:将PySymbian源代码包解压到C:\Symbian\9.1\S60_3rd_MR\ • 步骤5:目前Py2SIS还要求SDK配置已被subst,也就是说, C:\>subst V: C:\Symbian\9.1\S60_3rd_MR

注:Py2SIS必须存在于S60 3rd Edition SDK所处的被subst的相同盘符上,在上例中,正确的盘符是'V:'

• 步骤6:调用下列代码(如"ball.py"是我们要打包的脚本): V:\pys60-1_3_15_src\src\py2sis>C:\Python24\python py2sis.py ball.py --uid=0x01234567 --sdk30 --caps="NetworkServices LocalServices ReadUserData WriteUserData" –leavetemp • 步骤7:用"SignSIS"对创建好的包进行认证,操作举例如下: V:\pys60-1_3_15_src\src\py2sis> signsis ball.sis ball.sisx yourcert.cer yourkey.key password


总结

本文介绍了S60 3rd Edition上的PySymbian。文档内容可概述如下:

•脚本shell应用被从主Python解释器发行版中分离出来成为一个新的SISX文件。这两个Python文件可以用不同组合的capabilities认证。

•为能使用PySymbian中更为广泛的功能,也为了能访问终端中更多的地方,开发伙伴们可能需要一个开发伙伴证书。

•Python的一些特定文件产生了变化。这些变化会影响到如解释器搜索路径等。


术语解释

Capability

一种能力,当被某个运行中的进程所持有时,这个capability将准许其访问一些系统资源。

PySymbian

PySymbian,在本文中,这个术语还指解释器DLL和一些本地扩展。

SISX

用于软件安装器(Software Installer)的SIS文件新格式。请注意文件后缀还是.sis

Script shell

脚本shell。在本文中,就是终端菜单中可见的一个S60应用,让用户能运行各个Python脚本。 PySymbian发行产品的一部分。

py2sis

一个工具,能将Python脚本打包成SIS包,用于让软件安装器将之安装到某台Symbian OS终端中。PySymbian发行产品的一部分。


参考资源

1.Python网站,http://www.python.org/


2.诺基亚论坛,http://www.developer.nokia.com/ ,“Python for S60 Platform API参考”


3.诺基亚论坛,http://www.developer.nokia.com/ ,“用Python for S60 Platform编程”


4.PySymbian Wiki Nokia Open Source


5.PySymbian开发伙伴讨论区 http://www.developer.nokia.com/Community/Discussion/forumdisplay.php?102-Python


6.更多信息,http://www.developer.nokia.com//

This page was last modified on 31 May 2013, at 04:10.
201 page views in the last 30 days.
×