Auto.js一些高级用法

  1. 判断本脚本是否重复运行
my_count = 0;
ne = engines.myEngine();
my_path = ne.mTags.get("execute_path") + "/" + ne.source;
engines.all().forEach(e => {
    path = e.mTags.get("execute_path") + "/" + e.source;
    if(path == my_path) my_count++;
});
if (my_count > 1) toast("本脚本重复运行");

  1. 在坐标位置显示一个十字架,提示2秒后关闭,方便调试
function showXyTap(x,y){
    var xy = floaty.window(
        <frame gravity="center" w="30" h="30" alpha="0.6">
            <View w="2" h="30" bg="#ff00e4"></View>
            <View w="30" h="2" bg="#00ff42"></View>
        </frame>
    );
    xy.setPosition(Math.abs(x-15),Math.abs(y-15));
    setTimeout(()=>{
        xy.close();
    }, 2000);
}
  1. 监控脚本是否卡在某界面不动,发现此情况重启脚本
function Observer() {
    function unique(arr) {
        let newArr = [arr[0]];
        for (let i = 1; i < arr.length; i++) {
            let flag = false;
            for (var j = 0; j < newArr.length; j++) {
                if (arr[i] == newArr[j]) {
                    flag = true;
                    break;
                }
            }
            if (!flag) {
                newArr.push(arr[i]);
            }
        }
        return newArr;
    }
    currentActis = new Array();
    for (let c = 0; c < 100; c++) {
        sleep(500);
        currentActis[c] = currentActivity();
    }
    ac = unique(currentActis);
    if (ac.length == 1) {
        return false
    }
    return true
}

// 》》》》》》》》》》》》》》》》》》》 START
work_thread = threads.start(function () {
    Main();
});


observer_thread = threads.start(function () {
    while (true) {
        sleep(5000);
        if (!Observer()) {
            work_thread.interrupt();
            work_thread = threads.start(function () {
                console.setPosition(device.width / 2, device.height / 1.5);
                console.show();
                console.warn("Main线程在5秒后重启!");
                sleep(5000);
                console.hide();
                Main();
            });
        }
    }
});

  1. 兼容安卓7.0以上与6.0以下的点击,6.0需要root
function clickHelper2(x, y) {
    showXyTap(x, y);
    if (IS_GT_SDK23) {
        click(x, y);
    } else {
        try {
            // 容易出毛病,toomanyevenliserException
            Tap(x, y);
            runtime.sleep(1000);
        } catch (e) {
            try {
                if (!ra) {
                    ra = new RootAutomator();
                }
                // 保险点击
                ra.tap(x, y, 1);
                runtime.sleep(800);
                // ra.press(x, y, 10, 1);
            } catch (e) {
                ErrorHandle("在此设备上需要Root权限才能运行本脚本!", true);
            }

        }
    }
}

  1. 跳转到加QQ
                app.startActivity({
                    action: "android.intent.action.VIEW",
                    data: "mqqapi://car/show_pslcard?&uin=542999277"
                })

  1. 提醒开启无障碍服务
ui.autoService.on("check", function (checked) {
    // 用户勾选无障碍服务的选项时,跳转到页面让用户去开启
    if (checked && auto.service == null) {
        app.startActivity({
            action: "android.settings.ACCESSIBILITY_SETTINGS"
        });
    }
    if (!checked && auto.service != null) {
        auto.service.disableSelf();
    }
});


  1. 跳转到开启悬浮窗(在其它应用窗口上显示,貌似要先设置一下无障碍,才能成功跳这个)
        int = app.startActivity({
            packageName: "com.android.settings",
            className: "com.android.settings.Settings$AppDrawOverlaySettingsActivity",
            data: "package:" + auto.service.getPackageName().toString()
        });

8.结束autojs自己

var nowPid = android.os.Process.myPid();
var am = context.getSystemService(java.lang.Class.forName("android.app.ActivityManager"));
var list = am.getRunningAppProcesses();
for(var i=0;i<list.size();i++){
	var info = list.get(i)
	if(info.pid != nowPid){
		kill(info.pid);
	}
}
kill(nowPid);
function kill(pid){
   android.os.Process.killProcess(pid);
}

还有什么实用的功能可以说一下 后边补充

  • 11
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: updateutil.js_autojs是一个用于自动化脚本更新的工具,主要用于Auto.js这个自动化脚本编写工具中。 Auto.js 是一款支持JavaScript编程语言的自动化工具,它可以模拟人的操作来执行一系列的自动化任务,例如自动化点击、滑动、输入等。 而updateutil.js则是Auto.js中的一个辅助工具,它可以帮助用户自动检测脚本是否有更新并进行更新操作。它的主要功能包括: 1. 检查更新:updateutil.js_autojs可以与服务器进行通信,检查脚本是否有新的版本可用。 2. 下载更新:如果检查到有新版本的脚本,则updateutil.js_autojs可以自动下载最新的脚本文件并替换原有的脚本。 3. 更新通知:updateutil.js_autojs可以在脚本更新完成后弹出通知,告知用户新版本已经更新成功。 使用updateutil.js_autojs可以方便地确保自动化脚本始终是最新的版本,保证脚本的稳定性和功能的完整性。使用这个工具可以节省用户手动检查和更新脚本的时间和精力,提高工作效率。 总之,updateutil.js_autojsAuto.js中的一个脚本更新工具,它可以自动检测脚本是否有更新,并自动下载和更新最新版本的脚本文件。这个工具简化了脚本更新的流程,提高了自动化脚本的使用便捷性。 ### 回答2: updateutil.js_autojs 是一个用于自动化脚本开发的工具库,主要用于更新和管理 Auto.js 脚本。 Auto.js 是一款基于 JavaScript 的 Android 自动化工具,可以帮助用户快速编写脚本实现自动化操作,如模拟点击、滑动、截屏等。updateutil.js_autojs 就是为了方便 Auto.js 用户进行脚本更新和管理而设计的。 通过使用 updateutil.js_autojs,用户可以实现以下功能: 1. 脚本更新:updateutil.js_autojs 可以检测脚本的最新版本,并自动下载更新到本地。这样用户就不需要手动下载更新,节省了时间和精力。 2. 脚本管理:用户可以通过 updateutil.js_autojs 进行脚本的管理,包括查看已安装的脚本、卸载不再需要的脚本等。这样用户可以更方便地管理自己的脚本库。 3. 脚本备份和恢复:updateutil.js_autojs 还提供了脚本备份和恢复的功能。用户可以将自己编写的脚本备份到云端或本地存储,以防脚本丢失或更换设备后重新恢复脚本。 总之,updateutil.js_autojs 是一个在 Auto.js 脚本开发中非常实用的工具库,它提供了脚本更新、管理和备份恢复等功能,帮助用户更便捷地进行脚本开发和维护。 ### 回答3: updateutil.js_autojs是一个与Auto.js脚本相关的更新工具,可以帮助用户在Auto.js脚本中实现自动更新的功能。 使用updateutil.js_autojs,用户可以通过编写更新脚本来实现自动检查和下载最新版本的脚本。这个工具提供了一些方法和函数,可以帮助用户实现更新的不同功能,如获取服务器上最新版本的脚本信息、下载最新版本的脚本、检查新版本的更新等。 用户可以在其脚本中引入updateutil.js_autojs,并使用其中的函数来实现自动更新的功能。比如,用户可以通过调用updateutil.js_autojs提供的getUpdateInfo()方法,获取服务器上最新版本的脚本信息,并与本地版本进行比较,判断是否有新版本的脚本可供更新。然后,用户可以调用downloadUpdate()方法,下载最新版本的脚本文件。 此外,updateutil.js_autojs还提供了一些其他的功能和方法,帮助用户实现更高级的更新功能。例如,用户可以使用setUpdateUrl()方法,设置更新地址,以便从指定的服务器获取最新版本的脚本信息。用户还可以使用setUpdateCheckInterval()方法,设置更新检查的时间间隔,以便自定义更新的频率。 总的来说,updateutil.js_autojs是一个方便实用的更新工具,它可以帮助用户在Auto.js脚本中实现自动更新的功能。用户只需要在脚本中引入该工具,并使用其中提供的方法和函数,就可以轻松实现自动更新的功能,提升脚本的稳定性和功能性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值