Autojs - 用 JavaScript 实现自己的安卓手机自动化工具脚本
我是风筝,公众号「古时的风筝」,一个不只有技术的技术公众号,一个在程序圈混迹多年,主业 Java,另外 Python、React 也玩儿的 6 的斜杠开发者。
Spring Cloud 系列文章已经完成,可以到 我的github 上查看系列完整内容。也可以在公众号内回复「pdf」获取我精心制作的 pdf 版完整教程。
一个神奇的 APP
这个软件叫做 Auto.js,只支持安卓,是一个不需要 Root 权限的 JavaScript 自动化软件。什么意思呢,就是在你的安卓手机上安装这个 APP,然后通过编写 JS 脚本的方式实现自动化操作。类似的也有其他的一些软件,比如苹果自带的快捷操作,可以通过自定义配置完成一系列的流程,但是由于其目标是所有人都可以使用,所以定制的时候就没有那么灵活。
而 Auto.js 通过写代码的方式定制,那不用多说,灵活性肯定是没的说,关键的是,竟然写 JS 就可以,不用懂 Java,也不用懂 kotlin,是不是有点儿优秀呢。
有人说了,这有什么用呢,一般人看到还真觉得用处不大,但是,我们先来看看通过 AutoJS 能实现什么功能吧,只有你想不到的,没有做不到的,随便举几个例子:
- 基本操作,比如安装、卸载 、启动、停止APP,切换网络模式、自动打开网址等;
- 微信轰炸机,也就是自动不断的给某个人发消息;
- 自动收取蚂蚁森林能量;
- 百度贴吧签到;
- 王者荣耀刷金币;
- 抖音、快手自动养号;
是不是操作逐渐具有迷惑性、邪恶感,有一些人可以用它来赚钱,那就是搞手机群控的,当然中间少不了黑灰产,以至于作者都已经在应用商店将 APP 下架。
当然,违法犯罪的事儿是绝对不能干的,我们就是学习学习,做点提高学习、工作效率的事儿而已。
来做一个练练手
现在抖音这么火,几乎人人都想在抖音上火一把,有的专业做短视频的团队或个人会同时运营好多个抖音号,而抖音的一些策略导致在开了新号之后必须要有个养号的过程,也就是模拟正常人刷抖音的方式,告诉抖音后台这是个正常的账号。
下面我们就来用 VSCode 写个自动刷抖音的脚本,来完整看一下如何使用 VSCode 配合手机完成自动刷抖音的自动化操作。
此自动化流程包括:
- 自动打开抖音 APP;
- 随机观看 20 秒以内;
- 随机打开观看 15秒以上的评论区,然后随机查看3页以内的评论;
- 关闭评论,继续随机等待3秒以内;
- 自动观看下一个视频;
下面是演示 gif,gif 质量太差,可以点击查看视频演示
安装 APK
首先下载 Auto.js APK 安装包,由于已经在应用商店下架,需要的同学可以扫码文章末尾的二维码关注我的公众号,在公众号内回复 「autojs」获取安装包和自动刷抖音脚本。
打开已安装好扩展插件的 VSCode
开发者的目的是为了让大家可以在手机上就能通过编写 JS 的方式实现自动化操作,比如下面这个是 APP 内置的手机编辑器界面。
但是,在手机上写代码岂是程序员所为,有点束手束脚的感觉,还是得上电脑,没错,还得电脑。当然也可以,作者为我们提供了 VSCode 插件。
打开 VSCode,通过菜单"查看"->"扩展"->输入"Auto.js"或"hyb1996"搜索,然后安装即可。
点击可以查看插件的官方介绍
新建一个项目
通过菜单“查看”->“命令面板”->"Auto.js: New Project "新建一个项目,项目包括一个 main.js 和一个project.json 文件,main.js 就是写主要逻辑的文件,project.json 是项目的一些配置信息,这和其他前端项目类似。
编写自动化逻辑
根据你的需要在 main.js 中编写 js 代码,作者已经提供了各种包装好的 API,你可以到官方网站上去查看,官方地址 https://hyb1996.github.io/AutoJs-Docs/#/,例如打开抖音,只需要以下一行代码:
launchApp("抖音短视频");
我写的这个例子主要用到了基于坐标的操作,其实就是模拟做一些点击、上划等的手势操作,可以说没有任何难度,当然,离不开作者完美的 API 保证。
在 VSCode 中启动服务
通过菜单“查看”->“命令面板”->"Auto.js: Start Server "来启动项目,启动成功后,会在右下角显示“Auto.js server running”,只有启动了电脑端的服务,才能进行下面的连接操作。
在 Auto.js APP 中连接电脑
如果你做过安卓开发,那应该很清楚真机调试,要么用数据线,要么保证电脑和手机在同一局域网之下,Auto.js 也一样的,其实就是真机调试。
打开 Auto.js APP,点击右上角菜单按钮,在划出的左侧抽屉框中打开连接电脑。
然后在弹出的输入框中输入电脑的 IP ,点击确定即可。
打开 Auto.js 的无障碍模式
Auto.js 的实现就是依靠的无障碍模式,但是这个模式需要对应用单独打开。仍然在 APP 的左侧抽屉框中打开。
然后会自动跳到手机自身设置中的无障碍模式界面,在下方找到 Auto.js 这个应用,然后打开即可。
就算这里你暂时没有打开,等到之后调试的时候会自动提示你要打开无障碍模式的。
保存项目到手机
当你写完脚本之后,可以通过菜单“查看”->“命令面板”->"Auto.js: Save Project "来保存修改到你的手机上,之后,你就可以在 Auto.js 中看到你做的修改。
调试,查看效果
当你写好了一部分代码后,肯定要看一下效果,也很简单,通过菜单“查看”->“命令面板”->"Auto.js: Run On Device "来运行,当然,前提是你已经安装上面的步骤操作过,并且 Auto.js 处于活动状态。
之后,会在菜单下方显示你已连接到此电脑的设备,我这儿只有一台,所以只显示一个,如果你同时调试多台的话,这里应该显示多个。
当你点击这个设备后,就会在你的手机上执行你编写的逻辑,就像我前面的那个演示效果一样。
如何确定坐标
大部分的操作其实都是对坐标的模拟手势操作,虽然 Auto.js 也支持更复杂的控件操作,甚至能直接连接 Java。
那么如何能确定你要操作的坐标位置呢,比如我这个例子中,评论图标的位置,上划刷新下一个视频时的起止坐标,总不能截个图然后再量吧,那肯定姿势有问题。
首先你要打开手机的开发者模式,一般的手机都是找到设置->关于本机->版本号,然后在版本号上连续点击几次打开开发者模式。
打开之后,在开发者模式中有个指针位置的开关。
然后会在手机屏幕上方显示横纵坐标,手机型号不同,显示位置和效果也有可能不一样。
最好不要有强迫症,不然这么凌乱的画面接受不了,还好我没有,这个指针位置我可以一直开着没什么影响(摊手)。
最后
好用归好用,但是不要用到违法乱纪的地方,一旦用技术作起恶来是很可怕的。
要拿去学习学习的同学可以扫码文章末尾的二维码关注我的公众号,在公众号内回复 「autojs」获取安装包和自动刷抖音脚本。
感觉有意思的话,给个赞吧,总是被白嫖,身体吃不消!
我是风筝,公众号「古时的风筝」,一个在程序圈混迹多年,主业 Java,另外 Python、React 也玩儿的很 6 的斜杠开发者。可以在公众号中加我好友,进群里小伙伴交流学习,好多大厂的同学也在群内呦。
技术交流还可以加群或者直接加我微信。
Autojs - 用 JavaScript 实现自己的安卓手机自动化工具脚本的更多相关文章
- 安卓手机ADB驱动干什么的?
Adb驱动是什么意思? /div> Adb是英文Android Debug Bridge的英文缩写,是debug工具,如果不是写IT的可能也很难理解debug的意思.说的直白一点就是Adb就是手 ...
- 使用Scrcpy实现电脑控制安卓手机
很多时候我们想要在电脑上使用一些手机软件,使用模拟器当然是一种选择,但是这些模拟器要不然不免费,要不然广告多不放心.Scrcpy是一个开源免费的软件,通过abd命令实现了安卓手机投屏和控制功能,并且支 ...
- 部分安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
前端JS中使用XMLHttpRequest 2上传图片到服务器,PC端和大部分手机上都正常,但在少部分安卓手机上上传失败,服务器上查看图片,显示字节数为0.下面是上传图片的核心代码: HTML < ...
- H5音乐自动播放ios//禁止安卓手机图片点击
定义音乐按钮 <div id="music-btn" class="o-play" style="width: 24px; height: 24 ...
- 安卓手机牛逼软件Termux中安装Archlinux,安装Jdk
说出来你可能不信,手机上居然装了两个linux系统,和真实的linux有些许些差别. 首先安装了Termux以后你发现,好多linux常用功能都有,什么Pyhton,gcc,g++,ruby,Php, ...
- 安卓手机 HTML5 手机页面 输入表单被键盘遮挡住了
TML5 手机页面 输入表单被键盘遮挡住了 请问 大神 怎么 js 或者 JQ 判断安卓手机软键盘的键盘隐藏键按下去了? 有使用 uexWindow 方法 能判断到确定键 是 13 但是不知道这个键的 ...
- 安卓手机APP压力monkey测试
一.Monkey概述 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行 ...
- PowerShell脚本自动设置安卓手机wifi代理
在实际测试工作中,经常要将安卓手机通过wifi代理的形式连接到本机的fiddler或charles服务器代理进行抓包测试.最近一直在想,有没有什么方法可以自动设置安卓手机的wifi代理,曾经想通过修改 ...
- HTML 判断手机的类型(苹果手机安卓手机)
function isJudege_PlatForm() { var version = navigator.appVersion; var platName = navigator.userAgen ...
随机推荐
- 永恒之蓝MS17010复现
MS17010复现 靶机win7:192.168.41.150 攻击kali: 192.168.41.147 扫描 通过auxiliary/scanner/smb/smb_ms17_010模块扫描 ...
- PHP 语法字符串函数 strcmp、strlen 使用及实现
说明 这里基于 php7.2.5 进行测试,php7 之后内部结构变化应该不是太大,但与 php5.X 有差别. 函数分类 用户自定义函数 say(); function say() { echo & ...
- Spring Boot 自定义kafka 消费者配置 ContainerFactory最佳实践
Spring Boot 自定义kafka 消费者配置 ContainerFactory最佳实践 本篇博文主要提供一个在 SpringBoot 中自定义 kafka配置的实践,想象这样一个场景:你的系统 ...
- Caused by: java.io.IOException: Type mismath in vlaue from map: excepted org.apache.hadoop.io.InaWritable,received SC
解决办法: 看map和reduce的输入是不是对应,看看map和reduce设置的参数和下面的是否一致
- 一些软件的 Basic Auth 行为
一个 WBEM 在2003年的bug I'm trying to access the WBEM service of the CIMOM on the ESX Server 3i and all m ...
- windows server 2012 R2系统安装部署SQLserver2016企业版(转)
转自 https://blog.csdn.net/qq_35938548/article/details/80272288 安装sql server是一个很繁琐的事情,花了一下午时间倒腾,现记录下整 ...
- 鸟哥Linux私房菜(基础篇)——第十一章:认识与学习Bash
1.变量的取用与设定 ●变量的取用:echo ●变量的设定规则 变量与变量内容以一个等号『=』来连结. 等号两边不能直接接空格符. 变量名称只能是英文字母和数字,但是开头字符不能是数字. 变量内容若有 ...
- 【DNS域名解析命令】 nslookup
1. nslookup作用 nslookup用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题 nslookup - query Internet name servers in ...
- SVN签出,回退
2019独角兽企业重金招聘Python工程师标准>>> yum install -y subversion 安装SVN 签出代码 : [root@test svn]# svn che ...
- JAVA编程思想 Ch3.6题
练习6:在练习5的基础上,创建一个新的Dog索引,并对其赋值为Spot对象.测试用==和equals()方法来比较引用结果. public class quan { String name; Stri ...