話說(shuō)現(xiàn)在智能手機(jī)的計(jì)算能力嚴(yán)重過(guò)剩啊,不玩游戲、不打電話、不刷微信時(shí),要充分利用手機(jī)的計(jì)算潛力為我所用。完全可以把一些臺(tái)式電腦上的計(jì)算任務(wù)移到手機(jī)上來(lái)運(yùn)行。python就是一個(gè)很好的跨平臺(tái)的解決方案。今天談?wù)劙沧渴謾C(jī)上python腳本的定時(shí)運(yùn)行問(wèn)題。
搜索一下,安卓平臺(tái)運(yùn)行python程序可以有多種選擇。如果只是簡(jiǎn)單上載運(yùn)行python,SL4A(Scripting Layer for Android)+Py4A(Python for Android)應(yīng)該是不錯(cuò)的選擇,如果要交互開(kāi)放則可以考慮qpython,它集成了一個(gè)良好的編輯器,以及常用的python庫(kù),更重要的是作者是國(guó)人,有啥問(wèn)題方便咨詢(xún)、交流。
但是要實(shí)現(xiàn)python程序的定時(shí)運(yùn)行,還需要兩個(gè)工具TaskBomb task scheduler和SL4A Script Launcher。這都可以從google市場(chǎng)下載到。其中TaskBomb是一個(gè)執(zhí)行計(jì)劃任務(wù)的app,功能有點(diǎn)類(lèi)似于linux中的crontab。TaskBomb支持通過(guò)SL4A Script Launcher來(lái)運(yùn)行各種腳本程序包括python。
編輯和上傳python程序到手機(jī)有很多種選擇,比如豌豆莢、百度云、手機(jī)QQ等都支持文件傳輸。下面重點(diǎn)介紹一下TaskBomb的用法。這個(gè)工具國(guó)人用的較少,所以中文文檔也不多見(jiàn)。英語(yǔ)好的朋友可以直接去官網(wǎng)http://androidideas.org/taskbomb/help/看介紹,或者上優(yōu)酷看視頻演示。
1.添加一個(gè)Task,先給Task取個(gè)名字,比如Sign。如果是運(yùn)行Python腳本,Action type選VIEW(open a file or url with an app).Data就選你剛才上載的py腳本文件,其他選項(xiàng)默認(rèn)就好了。
2.添加一個(gè)Schedule,取一個(gè)與Task對(duì)應(yīng)的名字方便記憶。然后增加一項(xiàng)Items,Action就選剛剛添加的Task,設(shè)置好Start Time啟動(dòng)時(shí)間和Stop Time結(jié)束時(shí)間,還可以設(shè)置Repeat interval每隔多久重復(fù)運(yùn)行。
3.添加一個(gè)Alarm,Action就選剛創(chuàng)建的Schedule,設(shè)好Start Time,Days選項(xiàng)是按天周期運(yùn)行指定的計(jì)劃任務(wù)。比如工作日運(yùn)行,可以勾選周一到周五。
我理解TaskTomb中的Schedule相當(dāng)于一天內(nèi)的定時(shí)作業(yè)計(jì)劃,Alarm相當(dāng)于以一周為周期的計(jì)劃任務(wù)。所以TaskTomb可以支持豐富的周期性計(jì)劃任務(wù),這一點(diǎn)還是要比crontab強(qiáng)。