推荐一款好用且能兼职赚钱的自动化工具 - Hamibot
1. 前言
大家好,最近发现一款神器「 Hamibot 」,它是一款 Android 端的自动化工具,它基于 AutoJS 源码进行的二次开发 官方网站:https://docs.hamibot.com/ Hamibot 脚本市场提供了很多脚本,我们都可以免费导入进行试用 首先,我们在 PC Web 的控制台添加一个机器人,然后使用手机通过「 配对码 」进行配对,接着从脚本市场选择一个功能脚本导入,最后在控制台运行脚本就可以在手机上运行一系列自动化操作了 当然,我们也可以根据官方文档编写一些实用的脚本上传到平台上,获取一些佣金提成 由于 Hamibot 基于 AutoJS,语法都大同小异,所以本篇文章将只介绍 Hamibot 一些实用的使用技能2. 实用技能
2-1 App 保活在线 自动化脚本运行实际上是 App 接受到 Web 端 Hamibot 控制台发送的指令,进而驱动手机进行的一系列动作,所以保证 Hamibot App 在后台一直运行变得非常重要 程序保活主要包含 6 个方面,分别是:- 前台服务 打开 Hamibot App,从侧边栏中开启「 前台服务 」功能
- 悬浮窗 打开 Hamibot App,从侧边栏中开启「 悬浮窗 」功能
- 应用自启动 手机进入到设置中,搜索关键字「 应用管理 」,选择 Hamibot 应用,开启「 自启动 」功能
- 不锁定屏幕 首先手动开启开发者选项( 不同厂商系统手机的开启方式不一致,一般是在系统版本连续点击多次就可以开启开发者选项 ),然后在开发者选项中开启「 不锁定屏幕 」功能,这样在手机充电时,屏幕不会休眠
- 关闭省电策略 在手机应用设置中,选择省电策略为「 不限制 」,这样 App 会在后台一直运行
- 保证手机一直联网 只有手机一直联网,Hamibot 控制台才能将指令传输给设备进行运行
# 启动应用的3种方式
# 方式一:通过应用的名称
# 比如:某宝、某多、某条
app.launchApp("某宝");
# 方式二:通过应用的包名
# 包名通过adb命令或者Android Studio 去解析 APK 获取
# 比如:启动 Hamibot 应用
app.launch("com.hamibot.hamibot");
# 方式三:与第二种类似,全局函数
# 通过应用包名启动应用
launchPackage("com.hamibot.hamibot");
// 使用触摸操作点击某个元素
// 获取某个元素
var widget = id("xxx").findOne();
// 获取其中心位置,执行点击操作
click(widget.bounds().centerX(), widget.bounds().centerY());
// 1-GET请求
// 网络请求,获取响应值
var r = http.get("www.baidu.com");
// 响应码
log("code = " + r.statusCode);
// 响应体(字符串)
log("html = " + r.body.string());
// 2-POST 请求
var url = "http://www.**.com/api/login";
//直接传入一个字典作为参数
r = http.postJson(url, {
username: "xag",
password: "123456"
});
//获取请求的响应并弹出吐司
toastLog(r.body.string());
auto.waitFor();
//开启一个子线程
threads.start(function() {
//在新线程执行的代码
while (true) {
log("子线程");
}
});
//主线程
while (true) {
log("脚本主线程");
}
3. 拓展一下
在实际使用 Hamibot 的过程中,发现其提供的定时任务没有 AutoJS 使用起来方便 比如,如果我想固定在每一天的某个时间执行某个脚本,可惜的是,官方提供的任务功能没有实现 这时候,我们就需要我们在代码中自己去实现这个功能点了function setScheduledTask(hour, minute, callTask) {
let taskTime = new Date();
taskTime.setHours(hour);
taskTime.setMinutes(minute);
let timeDiff = taskTime.getTime() - (new Date()).getTime(); // 获取时间差
timeDiff = timeDiff > 0 ? timeDiff : (timeDiff + 24 * 60 * 60 * 1000);
setTimeout(function() {
callTask();
setInterval(callTask, 24 * 60 * 60 * 1000); // 24小时为循环周期
}, timeDiff);
}
//获取配置文件中设置的时间(小时、分钟)
const { hour,minute } = hamibot.env;
toastLog(hour);
toastLog(minute)
function create_thread_and_do_something(){
//定义子线程
var my_thread = threads.start(function(){
console.log("开始执行子线程。 。。。")
...
console.log("结束执行子线程。。。。")
})
}
// 每天某个时间开启一个子线程,执行一个任务
setScheduledTask(hour, minute, create_thread_and_do_something);