python 米家_在S60 3rd Edition 上的Python for S60 简介

简介

本文简介在 S60 3rd Edition 上的Python for S60 文档所述内容并不针对运行于S60 1st或2nd

Edition的Python for S60,那些平台上的开发者不必参考本文。 S60 3rd

Edition及后续版本引入了平台安全特性,这就要求对整个Python for S60的框架结构作一些改变,以便支持S60 3rd

Edition。 在 S60 3rd Edition 上的Python for S60方案基于下面两方面的用例:

独立安装

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

嵌入式安装

在终端菜单中可见的脚本shell,用户能运行单独的Python脚本。 本文所提供的信息介绍新引入的平台安全特性对Python

for S60的影响,以及在本地扩展方面的开发选项和建议等。

面向S60 3rd Edition的Python for S60 概述

S60 3rd

Edition终端强制实施平台安全。这意味着,所有SISX文件的安装都需要经过事先认证。软件安装器将检查SISX包中的应用是否经过认证。有关认证

方面的更多信息请参阅“认证与分发”一节。

平台安全的基本概念是'capability',这一术语指出正在终端中运行的进程能做什么。由于标准Python for

S60应用与某个本地应用并无差别,它们都运行于某个独立的线程,如果它使用了一些受控的API或通过SISX包发行,就必须经过认证。

一个Python独立应用的功能受限于分配给解释器DLL的capabilities。“认证与分发”一节中列出了这些capabilities。换句话

说,这是使用诺基亚签名的Python for

S60的所有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应用没有任何关系(即,它们之

间没有逻辑上和概念上的依存关系)。

认证与分发

多种认证和发行方法可用于在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函数或模块:

sg_trans.gif

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

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

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

graphics

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

sg_trans.gif

注:如需要更多的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:标准的Python for

S60源代码版,附py2sis(测试过pys60-1_3_15_src)工具,可用于从您的Python脚本创建独立应用。对终端用户来说,被打包的

Python应用与本地应用并无区别。如欲获取pys60-1_3_15_src,请访问:https://sourceforge.net/project/showfiles.php?

group_id=154155&package_id=171153 • 步骤4:将Python for

S60源代码包解压到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上的Python for S60。文档内容可概述如下:

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

•为能使用Python for

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

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

术语解释

Capability

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

PyS60

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

SISX

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

Script shell

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

S60发行产品的一部分。

py2sis

一个工具,能将Python脚本打包成SIS包,用于让软件安装器将之安装到某台Symbian OS终端中。Python for

S60发行产品的一部分。

参考资源

2.诺基亚论坛,http://www.forum.nokia.com,“Python for Series 60

Platform API参考”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值