admin管理员组

文章数量:1558102

说明

本文提供的代码仅供参考。不建议用于生产环境。
可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。

Auto.js简介

Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。

Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。

开发文档

Auto.js Pro开发文档
文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。

为什么要使用Auto.js Pro开发脚本,有什么特点?

吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:

  • Auto.js Pro能开发免ROOT的安卓脚本
  • Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型
  • Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面
  • Auto.js Pro使用的javascript的语法比较优雅,代码可读性强
  • Auto.js Pro的命令库非常的丰富,接口比较多
  • Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告

推荐教程

Auto.js Pro安卓全分辨率免ROOT引流脚本开发视频教程(HD超清1080p)

示例代码

//此代码由飞云脚本圈整理提供(www.feiyunjs)
toast("双击气泡即可复读,请慎用,长按按钮5秒退出");
const ACTIVITY_TEXT_PREV = "com.tencent.mobileqq.activity.TextPreviewActivity";
var on = true;
var str;
var f = floaty.window(
    <button id="btn" text="复读:ON"/>);
setInterval(() => {}, 2000);
function onClick(){
    on = !on;
    if (on) {
        f.btn.setText("复读:ON");
        toast("双击气泡即可复读,请慎用,长按按钮5秒退出");
    } else {
        f.btn.setText("复读:OFF");
    }
}
var downtime;
f.btn.setOnTouchListener(function(view, event) {
    switch (event.getAction()) {
        case event.ACTION_DOWN:
            x = event.getRawX();
            y = event.getRawY();
            windowX = f.getX();
            windowY = f.getY();
            downTime = new Date().getTime();
            return true;
        case event.ACTION_MOVE:
            //移动手指时调整悬浮窗位置
            f.setPosition(windowX + (event.getRawX() - x),
                windowY + (event.getRawY() - y));
            //如果按下的时间超过5000ms判断为长按,退出脚本
            if (new Date().getTime() - downTime > 5000) {
                exit();
            }
            return true;
        case event.ACTION_UP:
            //手指弹起时如果偏移很小则判断为点击
            if (Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5) {
                onClick();
            }
            return true;
    }
    return true;
});

while (true) {
    if (!on)
        continue;
    if (currentActivity() == ACTIVITY_TEXT_PREV) {
        var linear = id("content").findOne();
        str = linear.child(0).text();
        log(str);
        back();
        if (id("title").findOne(1000) != null) {
            setText(str);
            click("发送");
        }

    }

}

本文标签: 复读机源代码脚本版本autojs