让你的Android系统实现类linux的crontab定时计划任务详细教程以及问题处理


一、先决条件
1.驱动   #一般手机插入会安装驱动的,不赘述
2.获取root权限  #自己网上查,这步过不去,后面就不要看了先~,一般可以通过刷开发版ROM获取
3.安装busybox.apk   #安装busybox来支持类linux的一些指令操作

二、PC端通过adb shell链接手机
1.查看adb可连接的设备:adb devices

2.登录adb方式:
adb root  #root权限很重要,涉及到后面是否可以解除只读
adb remount
adb shell

三、功能安装:
1.term-init.sh      #init.d功能   下载:term-init.sh

2.SP8CRON        #crond功能  下载:SP8CRON

安装过程参考链接:
http://blog.sina.com.cn/s/blog_5374096d0101jmel.html
https://blog.csdn.net/tianjiewang/article/details/100710262


四、这些都搞定之后,就可以开始设置计划任务啦!

计划任务文件,和linux书写格式相同:/data/cronjob/root
例1(每天16点拨打电话):
echo '0 16 * * * am start -a android.intent.action.CALL tel:1313131313' >> /etc/cron.d/root

例2(自定义时间进行电话呼叫转移到18888888888)
echo '0 16 * * * am start -a android.intent.action.CALL tel:**21*18888888888%23' >> /etc/cron.d/root  #此处的%23为'#'号的转义符,不转义无法成功哦

更多新花样等你来发现

五、虽然站在前辈们的巨人肩膀但过程中还是遇到的一些小问题,如下:

1.无法执行计划任务,查看日志有如下报错:

crond: child running /bin/sh
crond: can't execute '/bin/sh' for user root

解决方法:ln -s /system/bin/sh /bin/sh ,如果提示file system read-only, mount -o rw,remount / 然后再操作。

参考链接:
https://stackoverflow.com/questions/16747880/how-to-use-crontab-in-android

2.接上面的问题,手机重启后可能软连接会失效,需要每次手动重新建立
解决方法:如果没有read-only问题,就直接在/etc/init.d/下的脚本追加一条:ln -s /system/bin/sh /bin/sh
如果有read-only问题,那就先追加remount 然后再追加软连接。
重启手机后查看crontab日志测试结果

3.adb shell中ls时文件名乱码问题
解决方法:alias ls='ls --color=never'   #关闭颜色显示

4.暂时想不起来其他的了,有问题可以留言

猜你喜欢

转载自blog.51cto.com/9499607/2491926
今日推荐