提到编程我们往往想到的是在windows下用那庞大的stdio.net下编写应用程序,可你想到了 在手机上也可以编写手机应用程序吗?这里就要请出我们symbian操作系统中的软件开发程序python for s60。顾名思义python for s60即为在s60平台上编写python应用程序的软件。python是一个强大的脚本语言,它是一种写好就可以直接运行的语言,省去了复杂的编译环节。可以说它和java类似,但学习起来又远远易于java。著名的自由软件作者Eric Raymond在他的文章《如何成为一名黑客》中,将Python列为黑客应当学习的四种编程语言之一,并建议人们从Python开始学习编程。下面就详细介绍怎样在手机上快速编写并执行python脚本。
一、开发环境介绍及安装
开发环境共又三个程序,分别为python for s60、PythonScriptShell和ped。python for s60是程序的运行环境,相当于java的虚拟机,PythonScriptShell为一个shell程序,主要负责人机交互,把用户输入的内容发送给内核执行同时把执行结果反馈给用户。而ped为python IDE环境(用python语言开发的python集成开发环境,有点绕口呵呵!!)我们以后的python脚本主要在这上面编写运行。
安装过程比较简单,首先运行python for s60,如果安装完成后没有发现程序图标请不要奇怪,因为作为程序运行环境它是不能与人直接交互的,因此也就不会有个图标让你来运行。然后安装PythonScriptShell,最后安装ped,整个开发环境就安装完成了。注意:在这里安装是有些人会说一定需要把python for s60以及相对应的python应用程序(如ped)安装到C盘,其实不然,我们只需将python for s60以及相对应的python应用程序安装到相同的盘符下即可,如python for s60安装到C盘,python应用程序也需要安装到C盘,同理也可安装到E盘(如果提示证书过期请把手机时间前调半年)
二、熟悉python开发环境
先打开python,点选项--runscript,程序内置了几个demo小程序,可以试着运行一下。运行以后有些windows变成老鸟可能就会发现它仅仅提供了执行脚本的功能,既不能编写脚本又不能对错误的脚本返回错误信息。要想真正脱离电脑,用手机来编写脚本程序,就要用到ped。打开软件,点选项--file-new--python就创建了一个空白的python脚本文件,在这里面就可以编写脚本程序了。有时候我们可能想测试一句脚本的效果,或者想将一整段脚本一句一句运行(类似于单步执行),我们可以使用python shell模式,打开选项--python shell即可进入python shell模式。基本上编写脚本就运用到上述内容,未介绍的在脚本编写过程中有介绍。(注意:对于该环境不是太熟悉的读者请尽量不要更改settings中的内容,否则可能无法正常执行程序)
(由于在symbian系统中字符编码比较特殊,有些看着完全相同的字符,可能编码并不相同,如果含有这种字符的脚本在手机上执行可能会有意想不到的效果,因此安有其他输入法的用户一定要把输入法切换为系统自带的输入法,同时对于特殊字符一定在abc状态下输入)
三、手机端编写python脚本初步
1、(1)首先我们编写一句最简单的hello world脚本:
建立空白python脚本文件输入:
print"hello"
然后点选项--run,
注意:在python中判断是否为一段语句的方法和c语言不同,c语言是同过判断是否有“;”,而python则是看一句脚本是否换行,如果换行则认为是两句,因此python中每句句末是没有“;”的。
(2)创建一个具有图形界面的hello world脚本:
import appuifw
appuifw.note(u"hello","info")
执行,效果如图3所示。
appuifw是symbian提供的一个API函数库,主要包含一些输入输出函数,而import appuifw则说明后续脚本中使用到了appuifw库中的函数,appuifw.note(u"*****","info")的效果为弹出一个信息提示窗口,星号为你想输出的内容。
3、创建一个单输入区对话框:appuifw.query()
appuifw.query(label,type)
创建文本:
appuifw.query(u"what is your name", "text")
执行效果如图4
数字:appuifw.query(u"Typing your number:", "number")
日期:appuifw.query(u"Typing a date:", "date")
时间:appuifw.query(u"Typing a time:", "time")
密码: appuifw.query(u"Typing a code:", "code")
询问:appuifw.query(u"Are you ok:", "query")
4、创建一个双输入区对话框:
import appuifw
date1,date2=appuifw.multi_query(u'first',u'second')
appuifw.note(date1+date2,"info")
这里两个对话框的名字分别为first和second,然后分别将first和second中输入的内容给date1和date2,最后再将date1和date2的内容输出
5、创建一个通知:
信息:appuifw.note(u"Hello", "info")
错误:appuifw.note(u"err", "error")
返回状态:appuifw.note(u"complete!", "conf")
6、最后,我们编写一个简单的脚本,功能为:输入一个名字,提交后系统会以一个信息提示框的形式显示刚才输入的名字,代码如下:
import appuifw
date=appuifw.query(u"what is your name:","text")
appuifw.note(u"your name is:/n"+date,"info")
注:当编写的脚本出现错误无法运行时,
右图中的信息可以知道,错误出现在第四行appuifw.note(u"your name is:/n"+date,"in")中,unkonwn note type,未知note的类型,原来我们将表述note类型的info错写为了in。
总之,软件的功能还是比较强大的,虽然有人说它的象征意义远比它的实用意义深刻,因为在手机中输入实在是太困难了,但是手机的便携性确实其它设备所无法比拟的,设想在不久的将来,随着电子设备小型化的普及,它的实际作用也会越来越大。
后记:1、因为经本人测试,汉化的python应用程序可能会无法正常执行。
目前我所见到的ped汉化程序只有一种,然而那个汉化版本已经对原版进行了修改,使得无法安装到E盘,这有对那些因某种需求而想要把python for s60安装到E盘的人带来了极大的不便。况且软件中的英文比较简单,浅显易懂,因此这里所用的所有软件均为原版软件,未经汉化的英文版。
2、论坛上其实已经有很多相关的软件,然而正如我上述所说,那些都是些汉化版的软件,本人测试从未成功过,因此就再将最新版的原版软件发上来(原版软件真不好找,在E文网站上逛了N久才找到的)
3、以上内容仅仅是对python在Nokia上编程最简单的介绍,不要期望看完本帖以后就可以编写应用程序;然而这部分内容又是最基础的内容,在应用程序的人机交互过程中,这部分内容优势必不可少的。
4、如果大家对这方面内容非常规感兴趣,那么以后我会根据我写的小脚本继续组织文章,当然如果大家响应不够,那就算了,毕竟这方面的内容太浪费精力了。
5、python语言格式较为严格,即使错一个空格有时你的程序也会无法正常执行,有些初学者可能百思不得其解(正如我当时那样)。为了方便初学者,这里我将以上所有内容py格式的源代码也发了上来,友友们可以用电脑上的记事本或手机上的ped打开学习。需要注意的是,由于python语言的严格性(有点啰嗦,呵呵!!),请千万不要用记事本对py源码进行编辑修改,只能用对应的python开发环境如ped进行编写,否则你写出的看着完全相同的东西永远也经不起机器的检验。这里就有个不爽的地方,那就是在网上看到自己想要测试的程序就不能Ctrl C+Ctrl V了,只能老老实实的一个字母一个字母的编辑。