虽然我支付宝加了好多好友,平时有很多能量可以“偷”,但由于太懒,至今一棵树都没种成,所以心心念念把偷能量这事自动化。之前通过用代码模拟手机点按的方式,实现了朋友圈自动点赞,但当时蚂蚁森林的操作流程要比朋友圈点赞复杂很多,所以当时就没有实现自动偷能量。
后来有网友推荐了appium和uiautomator2这两款工具,最近抽空研究了下,发现用uiautomator2的话这事简单了好多,而且由于蚂蚁森林改版,连续偷能量的操作流程也简单了好多,于是乎我就实现了自动偷能量,效果如下。
接下来介绍下原理和实现方式,首先如果让你手动去收能量的话,你是什么流程?
打开支付宝;
打开蚂蚁森林;
先收取自己的能量;
跳到下一个有能量的人那边;
收取ta的能量
重复4和5,直到没有能量可以“偷”
幸运的是,借助Uiautomator2,这些都可以自动化。
UiAutomator是Google提供的用来做安卓自动化测试的一个Java库,可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作。Uiautomator2是在Uiautomator之上的Python的接口封装,简单来说Uiautomator2可以看到手机当前屏幕上有哪些控件,其坐标,并且还可以模拟点击。
Uiautomator2的安装和使用
详细可以参考下官方文档Uiautomator2,安装方式很简单,下面一条命令即可。
pipinstall--upgrade--preuiautomator2
使用的话这里有几个坑,手机接入电脑前首先需要开启开发者模式,并开启USB调试,USB安装(如下图),这样才能保证uiautomator2有足够的权限操作你的手机。
第一次使用过uiautomator2后,它会在你手机上安装ATX这个应用,打开这个应用你就可以之后通过无线的方式操作你的手机了。
具体实现
如何打开支付宝并进入蚂蚁森林?
Uiautomator2
可以直接通过应用包名调起应用d.app_start("