大家好,我是皮皮。前言我们之前玩过一些手机自动化软件,比如Airtest,ADB,通过这些软件我们可以和自己的手机进行关联,使用程序代替我们自己来操作手机。今天我们要说的是另一个强大的自动化APP,这里要介绍的不是Windows平台的可执行文件,而是Android平台的JavaScriptIDE。更重要的一点是,这个工具是国人开发的,必须支持一个。而且AutoJs的兼容性更好。传统的按钮精灵和脚本精灵虽然上手快,门槛低,但都是基于坐标的,容易出现分辨率问题。AutoJs是基于控件的,所以功能更强大,而我们在玩自动化的时候不需要Root;那么话不多说,让我们来看看这个强大的IDE吧。1.安装AutoJs为了运行Autojs脚本,我们需要使用Android平台。这里小编选择Yeghen模拟器,将我们下载的AutoJs.apk安装到Yeghen模拟器中。下载地址:https://u062.com/file/7715018-454641893然后我们开启无障碍服务,这时Autojs就可以正常打开运行了,如图:2.基本使用百科来写脚本,我们需要点击蓝色圆圈中的加号来创建一个Script文件,我们来创建一个简单的脚本,如下:1.Selector因为AutoJs有一些JavaScript的特性,它也有选择器供我们选择元素。一共有四种,如下:ID选择器Text选择器ClassName选择器Desc选择器2.打开应用程序在打开应用程序之前,我们需要对Autojs进行授权,很简单,如下:auto();//authorizeauto.js然后我们就可以打开对应的应用了。比如我要打开浏览器,如下:launchApp('browser')#打开浏览器如果我们要自定义打开的应用,可以通过输入法添加一个交互,如下:varapp=rawInput("","");launchApp(app);我们还可以添加一个控制台来显示我们操作的进度,如下:auto();console.show()//显示控制台log('hello')//控制台输出console.log('打开浏览器')//控制台输出sleep(1000)//sleepvarapp=rawInput("","");//custominputlaunchApp(app);//我们也可以检查是否有Root权限运行App,如下:if(auto.waitFor()){toastLog('hasauthority')}else{toastLog('没有权限')}3。屏幕操作setScreenMetrics(1080,1920);#屏幕大小toast("欢迎大家来到我的世界,Helloworld,520");#屏幕通知toastLog('hello')#屏幕通知+控制台日志images.requestScreenCapture()#应用于屏幕截图权限系统images.captureScreen()#Screenshotswipe(100,200,130,320,230)#滑屏,只支持Android7.0及以上img=images.load('读取本地或网络图片')#读取images.save('图片来源','图片名称')#保存varc=findColor(img.'Colorhexadecimal')#找到对应的颜色对象c.xc.y#对应颜色图像的横坐标和纵坐标.findColorEquals(img,color[,x,y,width,height])#区域颜色找图像.findColorInRegion(img,color[,x,y,width,height])device.width#取屏幕宽度device.height#取屏幕高度toast('Welcome')if(requestScreenCapture()){console.log('截屏成功')}else{console.log('截屏失败')}我们还可以将网络上的图片保存到设备中,如:varpic=images.load('http://wnk5.fulitmm.cn/comm/2020053009318366378.jpg');images.save(pic,'/sdcard/mm.jpg')另外我们还可以通过颜色来定位目标,如图:可以看到横向和纵向标记1254.返回退出back()#Returnexit()#Exit5.睡眠如果我们想让程序等待一段时间,可以使用睡眠函数,如下:sleep(3000);#Sleep6.文字操作有时候我们需要进入应用程序进行一些操作。这时候我们就可以通过查找文本在应用中的位置来进行精确操作,如下:text('PleaseentertheURL')#Findtext7.AutoJsUI这里我想说的是,虽然我们的之前的操作都比较方便,但是如果要把这些操作做成一个界面,就需要用到UI,这样会更方便。像一些自动化工具,比如自动电击器,就是这个原理。我们来看一个最简单的例子,如下:"ui";ui.layout(
