cron 适合周期性的执行某些任务,比如删除临时目录、清理微信垃圾等。

安卓控制台我用的是 Termux,可以通过 pkg install busybox 来安装 crond 。

但是待机一段时间后,系统会自动杀掉 Termux 程序。即使已经把 Termux 加入内存加速保护名单,也无济于事。

而以root用户运行的 crond,则不会被系统自动杀掉。

在 Termux 控制台运行

# 编辑cron计划
su -c "/data/data/com.termux/files/usr/bin/applets/crontab -e"

# crontab例子,每天上午9:00执行 doClean.sh 脚本
0 9 * * * /data/data/com.termux/files/usr/bin/doClean.sh
 
# 运行crond
su -c "/data/data/com.termux/files/usr/bin/applets/crond"

如果不想每次重启手机时,手动输入crond命令,也可以在~/.bashrc 添加,这样每次打开 Termux 就会以root用户判断 crond 是否已运行,如果没有,则以root用户运行它。

# 添加到 .bashrc 文件末尾
# 位于 /data/data/com.termux/files/home/.bashrc
su -c "pgrep crond > /dev/null"
if [ $? != 0 ];then
    su -c "/data/data/com.termux/files/usr/bin/applets/crond"
fi

注:高版本的安卓reboot时自动执行命令的一些方法已无效,比如 /system/bin/install-recovery.sh,以及 /data/adb/service.d/ 等,所以暂时使用以上方法。

如果不想安装 Termux,也可以直接下载 busybox for arm64,放到 /system/xbin 目录下,添加执行权限。
然后用adb或安卓自带终端,新建软链接 crond和crontab。