PyS60 in Action

PyS60 in Emulator中介绍了如何在模拟器上测试Python程序,本文介绍PyS60在手机上部署过程。

首先,需要在手机上安装PyS60 Runtime,目前第五版S60对应的PyS60版本是1.9.0这个版本,第三版对应1.4.5这个版本,找到对应的版本将其安装到手机的C:,开始我一直将PyS60 Runtime安装在手机的存储卡上,PythonForS60Shell始终无法打开,安装到C:上一切正常。

接下来我们准备一个Python测试程序,这个程序很简单,使用Note显示当前剩余电量,程序如下:

import sysinfo
import appuifw

format = "Battery: %d"
text = format %  sysinfo.battery()

appuifw.note(text.decode("utf8"))

将上面的程序保存为battery.py,可以将该文件上传到手机C:\Python目录下使用PythonForS60Shell测试该脚本,若是运行正确,我们就可以对该程序进行打包。

接下来我们将使用py2sis,打包battery,在执行py2sis之前需要将S60 C++ SDK安装好,可以通过编译SDK自带的Helloworld程序确认SDK是否安装正确,安装SDK是需要注意配置EPOCROOT,需要将其设置为EPOC32的上一级目录。

将pysis复制到EPOCROOT所指向的目录,然后使用subst将EPOCROOT所指向的目录,虚拟成一个独立的盘符,命令如下

subst v: C:\S60\devices\S60_5th_Edition_SDK_v0.9\

最后一步,对py文件进行打包,命令如下

C:\>V:

V:\>cd py2sis

V:\>py2sis.py --uid=0x01234567 battery.py –sdk30 –leavetemp

Creating SIS for SDK3.0 and later
Processing template V:\py2sis\build\00000000.rss.template
Processing template V:\py2sis\build\Icons_aif.mk.template
Processing template V:\py2sis\build\PyTest.cpp.template
Processing template V:\py2sis\build\PyTest.rss.template
Processing template V:\py2sis\build\PyTest_reg.rss.template
Processing template V:\py2sis\build\app.mmp.template
Compiling...
Done.
makesis V:\py2sis\temp\battery.pkg V:\py2sis\battery.sis
Unique vendor name not found.

Note: Sign the created SIS file prior installation (tool "SignSIS")

打包成功后我们还需要到https://www.symbiansigned.com/app/page,对battery.sis进行签名。

打开https://www.symbiansigned.com/app/page页面选择Open Signed Online,输入测试手机的IMEI,Email,选择好做需要的权限,和battery.sis文件,点击send,这时候网站会发一个确认函到刚才输入的Email地址里面,我们需要点击发送过来的地址进行确认,确认后系统会对上传的battery进行签名,签名完成后会发送一封电子邮件提示下载,签名好的应用,至此我们就可以将签名好的battery.sis安装到手机上运行了。

可能遇到问题,在是py2sis进行打包的时可能会提示有某些路径找不到,出现该提示的时候,只需要将S60 SDK所在根目录中的epoc32目录复制到EPOCROOT所指向的目录,就可以解决该问题了。

以上这个方法在Nokia S60第三版系统上测试,通过第五版还未通过测试,这可能和我们用的py2sis版本有关。

回复

CAPTCHA
回答问题
Copy the characters (respecting upper/lower case) from the image.