之前用3.6.0,跑一段时间后3个进程总会重启,acc进程重启还好,另外两个只要一个重启,脚本就停了。一直以为是内存不够导致的,因为能观测到内存泄漏,反复尝试控制剩余内存还是有概率出问题。
试了群里的3.8.3,同样内存泄漏,同样概率性出问题。
但是3.8.3异常时(都是无障碍或录屏炸了),2个进程并不重启,脚本停止后还会弹出日志,表明脚本还在运行,只是看不见或者点不了。
这种情况下,如果利用exec执行sh脚本来重启自身,就能恢复正常,实现永续。
目前已稳定挂机快一周,之前每天都有机子停,现在能放心挂机了。
重启自身时,用exec启动一个外部shell,在这里即使force stop软件自身,shell依然能继续跑。
shell里先重启软件,软件可能有弹窗,比如是否打开无障碍,再利用安卓内置的uiautomator来点击这些提示,启动脚本,当游戏来到前台就可以退出了。
红手指、雷电云、雷电模拟器测试都没问题。
代码可以参考 https://github.com/tkkcc/ArkLigh ... til.lua#L5129-L5191。
3.8.3不会自己开录屏权限,可以在脚本内用节点点击方式开。
|