话说现在智能手机的计算能力严重过剩啊,不玩游戏、不打电话、不刷微信时,要充分利用手机的计算潜力为我所用。完全可以把一些台式电脑上的计算任务移到手机上来运行。python就是一个很好的跨平台的解决方案。今天谈谈安卓手机上python脚本的定时运行问题。
搜索一下,安卓平台运行python程序可以有多种选择。如果只是简单上载运行python,SL4A(Scripting Layer for Android)+Py4A(Python for Android)应该是不错的选择,如果要交互开放则可以考虑qpython,它集成了一个良好的编辑器,以及常用的python库,更重要的是作者是国人,有啥问题方便咨询、交流。
但是要实现python程序的定时运行,还需要两个工具TaskBomb task scheduler和SL4A Script Launcher。这都可以从google市场下载到。其中TaskBomb是一个执行计划任务的app,功能有点类似于linux中的crontab。TaskBomb支持通过SL4A Script Launcher来运行各种脚本程序包括python。
编辑和上传python程序到手机有很多种选择,比如豌豆荚、百度云、手机QQ等都支持文件传输。下面重点介绍一下TaskBomb的用法。这个工具国人用的较少,所以中文文档也不多见。英语好的朋友可以直接去官网http://androidideas.org/taskbomb/help/看介绍,或者上优酷看视频演示。
1.添加一个Task,先给Task取个名字,比如Sign。如果是运行Python脚本,Action type选VIEW(open a file or url with an app).Data就选你刚才上载的py脚本文件,其他选项默认就好了。
2.添加一个Schedule,取一个与Task对应的名字方便记忆。然后增加一项Items,Action就选刚刚添加的Task,设置好Start Time启动时间和Stop Time结束时间,还可以设置Repeat interval每隔多久重复运行。
3.添加一个Alarm,Action就选刚创建的Schedule,设好Start Time,Days选项是按天周期运行指定的计划任务。比如工作日运行,可以勾选周一到周五。
我理解TaskTomb中的Schedule相当于一天内的定时作业计划,Alarm相当于以一周为周期的计划任务。所以TaskTomb可以支持丰富的周期性计划任务,这一点还是要比crontab强。