一、环境搭建

代码编程建议使用vscode编写

下载安装autojs(建议还是下载4.1.1版本):​​​​​​Auto.js Pro (autojs.org)

2023-2-18免费版已经无法使用,建议使用 autox.js:Releases · kkevsekk1/AutoX · GitHub

调试建议下载雷电模拟器 :雷电安卓模拟器 (ldmnq.com)

安装好auto.js之后记得开启以下操作:

1、先在vscode中下载auto.js插件,并且在查看--控制面板 中输入auto.js回车,就会有相应的命令,

2、开启auto.js的无障碍服务、悬浮窗、连接电脑

3、查看电脑ip:

二、auto.js官方文档

Auto.js Pro文档 (autojs.org)

注意!!!!

因为抖音短视频的机制是,当进入页面的时候会有上下视频先进性加载缓存,如下图,所以当我们直接按照控件属性去寻找控件的时候,会一次性找到好多个,一般往往都会取第一个,所以我们一般都要加上visibleToUser()这个属性表示在可视范围内的。

三、开发遇到问题记录

1、当使用截图找相似图的时候,最好不要采用scrcpy的投屏形式进行截屏,直接采用手机截图(因为这样分辨率一样,更好找)

因为有些手机没法永久设置同意截图的权限,导致每次运行都要在截图的时候进行同意权限,那么在刚开始运行脚本的时候就进行设置权限,而这个权限只需要同意一次就可,请求截图只要请求一次,否则会堵塞。

//封装一个截图函数
function imageClick(smallImgpath, saveImgPath, threshold, screen) {for (var i=0; i<=5; i++) {if (screen) {if (sig) {if (!requestScreenCapture()) { // 请求截图// console.log("请求截图失败");exit();}sig = false}var img = captureScreen();  //截图images.saveImage(img, "/sdcard/Download/" + saveImgPath);}var bg = images.read("/sdcard/Download/" + saveImgPath);var smallImg = images.read("/sdcard/Download/" + smallImgpath);var p = findImage(bg, smallImg, {threshold: threshold});if (p) {click(p.x, p.y)return 1}sleep(1000)}
}//在需要的地方的调用即可
imageClick("send.jpg", "3.png", 0.6, true)   //第一个参数是需要找的小图,第二参数是大图,第三个参数是相似度,第四个参数是是否需要截图

2、安装问题:

2.1  launchApp(‘应用名’);会失效:因为存在同名软件,这时候使用包名;

2.2  无障碍服务经常被停止,导致AutoJs或者Apk不干活了:给软件设置允许【后台弹出界面】权限

2.3  使用图片识别的方法打包成apk,无法正常执行脚本,应该是打包后的图片路径与代码中的路径不一致,所以导致无法正确识别找到,可以换成计算图形位置来进行计算。

2.4  进行http请求,需要把http写在线程中,吧请求写在关闭弹窗--即关闭脚本处时,会产生异步问题,往往会直接先执行关闭脚本再进行请求——这样就是错的请求不出去,所以可以采用settimeout进行异步处理。

3、 控件属性

 3.1 选择框:单选框和多选框都是利用 attr()方法进行塞值

// 修改cb3的checked属性
$ui.cb3.attr("checked", "true");

3.2 bounds范围使用坐标:可以用bounds这个范围来定位这个控件。尽管用这个方法定位控件对于静态页面十分准确,却无法兼容不同分辨率的设备;同时对于列表页面等动态页面无法达到效果,因此使用不推荐该选择器。

3.3

4、UI界面

4.1 列表展示:直接渲染出来一个数组里面的数据

参考文章: autojs之同一种布局的多种实现方式 - 知乎

 而<list></list>布局只能是垂直布局,不能横向列表遍历

   4.2 在子线程中更改UI的操作

参考文章:https://www.cnblogs.com/x666-6/p/15006044.html

要在ui.run()中进行操作UI界面的改动 - 增删改

4.3 引用VIew,使用setVisibility属性

参考文章: autojs一个经典的飘浮工具栏界面源码_autojs悬浮窗ui界面

5、悬浮窗

5.1 悬浮窗拖动:主要是setOnTouchListener监听事件

在同一个id控件上,既可以移动也可以进行点击事件,这就是监听移动事件,根据移动的距离足够短,我们就可以认为这是点击事件。

6、按钮

6.1 按钮修改状态 

四、打包后运行速度很慢

参考文章: autojs内存处理机制代码,避免经常崩溃_autojs运行久了崩溃_

autojs本身的线程代码threads.start(action)有内存泄露

但是使用 Java 的线程存在问题: thread线程中的代码执行结束就会关闭,但是如果该线程代码未执行完毕,即时主线程关闭,该线程也不会关闭 ,没有一种能够安全关闭线程的方法。

如果线程中有死循环.线程是不会运行完就结束的.

因为未跳出子程序.所以结束不了线程.反之,跳出子程序了就说明自动结束了线程.

死循环子程序的解决方法.可以用强制结束线程 ()或用变量来结束线程

题外话:脱离打包插件,自主打包

AutoJs制作简易自动化脚本(持续更新)相关推荐

  1. (目录)[0]尝试用Unity3d制作一个王者荣耀(持续更新)-游戏规划

    太得闲了于是想写个农药,虽然可能会失败但是还是要试一试. 因为是自学的不是Unity专业的可能表达语言会有些不标准!望见谅! 结构: 以组件式(比如说摇杆控制和玩家部分的编写是分离的,可以自由拼装)作 ...

  2. autoJS pro-手机自动化脚本(douyin App模拟人工操作点赞、评论、收藏、转发)

    autoJS自动化 本人是一个web前端开发工程师,没想到可以用javascript来实现手机自动化,就有了之后的一系列文章,有好建议的同学欢迎评论区分享 ;-) 专栏地址:点击此处 文章目录 aut ...

  3. autoJS pro-手机自动化脚本基础小功能篇(截图、版本号、打印日志)

    autoJS自动化 本人是一个web前端开发工程师,没想到可以用javascript来实现手机自动化,就有了之后的一系列文章,有好建议的同学欢迎评论区分享 ;-) 专栏地址:点击此处 文章目录 aut ...

  4. 【计算机网络】从零开始的个人网站1 从部署轻量应用服务器到搭建简易网站(持续更新中!)

    文章目录 1. 部署服务器 (1) 为什么要使用云服务器 (2) 购买云服务器 (3) 服务器基本配置 (4) 远程连接服务器 (5) 安装宝塔面板 2. 搭建简易个人网站 (1) 通过宝塔面板建站 ...

  5. [1]尝试用Unity3d制作一个王者荣耀(持续更新)-AssetBundle管理器

    如果已经看过本章节:目录传送门:这是目录鸭~ 1.AssetBundleManager: 首先我们创建一个文件夹,叫AssetBundleManager,再创建Csharp(即C#)脚本,名为Asse ...

  6. python简易问答(持续更新)

    1 课后题--开发环境介绍 <代码题> 1. python应用场景有哪些? 应用场景: web网站, 服务器,数据分析,爬虫,科学研究,运维,快速完成产品原型 <简答题> 2. ...

  7. 自动化刷取购物红包脚本@安卓(每年持续更新)

    目录 引言 一.安装某宝/某猫/某东 二.安装配置AutoJS 1.下载 2.配置 三.获取脚本 四.运行 引言 如何让手机/平板等终端自动化地刷那些获得购物红包的活动呢?不得不说每年那几次盛大的电商 ...

  8. linux自动化脚本制作参考文档

    linux自动化脚本制作参考文档 一.环境部分 1.0.启动盘制作 前提:1个8G以上的U盘,想要安装的系统ISO镜像 参考连接: 1.windows系统 #打开'运行' => win + r ...

  9. Web安全—脚本木马工作原理(持续更新)

    Web安全-脚本木马工作原理(持续更新) Webshell分类: 一句话木马 大马 小马 打包马 脱裤马 拿到网站Webshell意义(Webshell的权限取决于Web容器运行的权限,通常为网络服务 ...

最新文章

  1. python3 中 布尔 bool 类型转换
  2. linux中配置DHCP基本操作
  3. 【控制】傅里叶系列(二)傅里叶变换的推导
  4. java实现多线程断点续传,上传下载 分享
  5. [Java Web – Maven – 1A]maven 3.3.3 for windows 配置(转)
  6. 【牛客 - 1080B】tokitsukaze and Hash Table(STLset,并查集,Hash)
  7. 小学生眼里的飞鸽传书
  8. 【网络流24题】No.4 魔术球问题 (二分+最小路径覆盖)
  9. oracle get wkt,Bing Maps开发扩展:Oracle Spatial的空间数据渲染
  10. 网盘纷纷“隐退” 云存储仍是刚需
  11. 计算机内存的存储原理,存储器原理
  12. 飞机飞行原理之空气流动基本规律
  13. scala安装与使用
  14. 蓝桥杯 -罗马数字问题
  15. python将两列内容合并_在pandas/python中,将两列合并为同一数据帧中的一列
  16. autosar-Layered Software Architecture
  17. 线段树,方差,数学(Variance,玲珑杯 Round#5 H lonlife 1063)
  18. 解决AppBarLayout嵌套WebView滑动冲突的问题
  19. 第二章-连接到WAN
  20. 【host文件的用法】windows的hosts文件

热门文章

  1. 2023 08-01
  2. ZZ 自制低成本3D激光扫描测距仪(3D激光雷达),第一部分
  3. Mil学习之Mapp
  4. Homestead环境搭建及简介
  5. layui table 光标根据上下左右按键在table中移动并选中单元格内容
  6. 20145315何佳蕾《网络对抗》免杀原理与实践
  7. talend导出数据到oracle,Talend使用步骤.pdf
  8. 谷歌插件 Talend API Tester
  9. 000709,G唐钢,今天2.92元进入,立此存照!
  10. 软考备考-系统构架师-23-系统架构师考试经验总结