+
95
-

回答

AutoJs是一个很强大的工具,它能让你在Android设备上自动化各种操作。这个应用程序主要依赖于JavaScript作为脚本语言,让用户可以编写脚本来模拟触摸、滑动、按键事件等用户操作。这些脚本能够帮助用户自动执行一些重复的任务,比如打开应用、模拟点击、填写表单、游戏自动化等。有点类似于PC上的宏软件。

AutoJs的核心功能包括:

UI自动化:模拟触摸和滑动操作,可以在UI界面上点击按钮、滑动屏幕等。

控件操作:通过定位到Android界面中的控件,进行各种操作,如点击、长按、输入文字等。

脚本编写和管理:提供一个脚本编辑器,可以编写、导入、编辑和管理自动化脚本。

定时任务:可以设定脚本在特定时间自动运行。

事件监听:可以监听设备上的各种事件,如收到短信、电话、设备启动等,并响应这些事件。

图像识别:可以进行简单的图像识别和图像搜索,以实现基于图像内容的自动化。

AutoJs可以在没有root权限的设备上运行,但对于某些高级功能,可能需要root权限才能完全发挥出它的能力。它非常适合那些想要提高手机使用效率、自动执行一些繁琐任务的用户。不过,编写AutoJs脚本需要有一定的JavaScript编程基础。

下面是autojs操作微信app进行收发消息的示例代码:

auto.waitFor()

console.show();
log("微信自动聊天机器人")
id("f67").waitFor()//等有收到新消息
toast("程序开始")
id("f67").findOne().children().forEach(child => {
    var target = child.findOne(id("iot"));
    if (target) {
        child.click();
        var name = child.findOne(id("fzg"));
        log("进入*" + name.text() + "*聊天对话")
        sleep(1000);
        
        var input_text = className("EditText").findOne();
        var location = id("au0").findOne().bounds();
        var last_msg = "初始化";
        input_text.click();
        while (true) {
            var all_msg = id("auk").find()
            if (all_msg.length > 0) {
                var new_msg = all_msg[all_msg.length - 1].text();
                log("新消息*" + new_msg + "*");
                if (last_msg != new_msg) {                
                    var res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + new_msg);
                    if (res.statusCode != 200) {
                        log("请求失败: " + res.statusCode + " " + res.statusMessage);
                        last_msg = "初始化";
                    } else {
                        var r_msg = res.body.json();
	                    input_text.setText(r_msg.content);
	                    if (click(location.centerX(), location.centerY())) {
	                        log("消息发送成功")
	                    }
						last_msg = new_msg;
					}
                    sleep(2000);
                }
            } else {
                log("未找到聊天消息")
            }

        }
    }
});

exit();

网友回复

我知道答案,我要回答