sfware / autojs4 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from blackcd318/autojs4
autojs4.1.1alpha2改了几个bug,加了几个添加任务的函数,仿照pro版的,不过只是基础的功能,然后在
This project forked from blackcd318/autojs4
autojs4.1.1alpha2改了几个bug,加了几个添加任务的函数,仿照pro版的,不过只是基础的功能,然后在
国内上github速度不敢保证,偶尔只剩下readme那是暂时上传不了,可以等等再看. 以下是原作者的github地址(https://github.com/hyb1996/NoRootScriptDroid) 因为原作者已经不维护免费版,我没事的时候还会去搞搞,所以替换掉了原作者的这个信息,希望觉得我修改的还行的用户在你决定软件有bug时可以到我的github来下载最新修改的版本,如果这个文件里没有列出你遇到的问题,你可以在Issues给我留言,有时间的话我可以尝试修改掉bug. autojs4.1.1alpha2改了几个bug,加了几个添加任务的函数,仿照pro版的,不过只是基础的功能,凑合能用(armeabi是用在arm cpu的app, x86是用在intel cpu的,7z是源码压缩了,因为windows的git做的太啰嗦,不想装) 1.有些界面使用id()不能得到控件 2.开机后不手动启动app而使得device.height和device.width返回值为0的不正确 3.添加了timers.addDisposableTask, timers.addDailyTask, timers.addWeeklyTask, timers.addIntentTask几个函数使脚本可以添加定时任务。使用方法参照pro版本(例子我放进去了),只有基础功能 4.删掉了社区和市场(只是简单的不显示,初始化没改,代码挺复杂的,不想折腾) 5.版本号 + 1 6.安卓原始输出RECT会把左上和右下两个坐标中间的‘,’换成‘-’,我总怀疑那是个负号,看着很不习惯,替换成','了 7.在添加一次性定时任务时,选择日期时会比实际月份早一个月,修改了(因为12月不能选,1月时直接程序崩溃退出了,不能忍) 8.2022-02-05 修正boundInside有些时候会判断出错(rect为右上左下形式,右上在范围内,左下x<0,y在范围内) 9.2022-02-17 总感觉运行时间长了有内存泄漏,因为有时候手机慢了清理运行程序,关掉autojs可以增加500多M的内存,而一开始运行autojs只占用不到150M的内存,这次改了一个地方,猜测可能是这里出问题了,到今天使用了4天了吧,没什么坏感觉,至于内存泄漏,因为最近不怎么刷视频,autojs用的也少了,下前面版本的可以下一下这个,比前面好不好不知道,至少是不差的。 10.2022-02-28 sleep在我的红米手机屏幕关闭后运行有问题,时间会延长很多,大概2倍多3倍左右的样子,猜测是因为屏幕关闭后系统进入节能模式,cpu时钟降低造成的,看代码thread的sleep是调用系统的,所以可能是系统底层的问题,彻底修改是不可能了,我在autojs的sleep里加了几个循环,把一个长的时间分成了很多小的时间休眠,昨晚到今早试用,效果还不错,计算了一下,如果sleep(24*60*60*1000),会分成大概60来个sleep吧(多数会发生在时间快到的一分钟里),感觉对系统性能不会造成大的影响 11.2022-03-15 原版的autojs里,在查找控件时是由root节点开始,一个个遍历后面的节点,找到符合条件的节点返回,我觉得因为这个才导致的运行时间很不稳定,有时候会延迟好几秒到好几十秒,于是修改了代码,我只试了几个,感觉比原版的因为条件设置可以少搜索一半以上,但是时间花费上似乎并不是很明显,不知道是这个手机速度快还是不是因为这个影响了速度,不过能少比较一些,总也不是坏事,就发布出来了.使用方法是在条件里加上bounds()、boundsContains()、boundsInside()过滤,感觉范围越小越接近目标大小越能减少搜索次数,可能contains更好,因为同样大小的控件,contains肯定比inside小对吧 12.2022-03-20 最近发现autojs的console.time() 和console.timeEnd()在关屏后计时会很不准,查找问题才知道原来是原作者使用的函数android.os.SystemClock.uptimeMillis是从开机到现在的毫秒数(手机睡眠的时间不包括在内),所以我改成了java.lang.System.currentTimeMillis,按照函数说明应该是没有原来的问题,具体没试验,若有问题,在后面会休正. 13.2022-03-26 10的修改失败了,当系统休眠以后,sleep时间无论如何都会大幅度地增加,而且还没什么规律.好在任务的定时运行是可以到毫秒级别,只是原作者在设计程序是用的TimePicker控件只能选到分钟,我查了这控件确实是不能到分钟以下的单位,再修改就要重载系统的控件,应该会加大程序的大小,所以找了个折衷的办法,在(3)的基础上修改了函数,可以在设置task.time时设置到秒,例如每天晚上7点30分45秒运行脚本xx,可以这样写 timers.addDailyTask({ time: "21:30:45", path: "xx" }); 管理下定时任务列表里时间也设置的能显示秒了 另外,此版本还修改了(11)的算法,在前面判断会有问题,不能如愿,感觉这个好了,下载过的人可以试试这个 14.2022-04-09 (13)不是只能脚本设置定时任务到秒吗,这个版本可以手动设置了.另外把自己的github页面也加进了里面,走了一圈,留个名也不是很坏的事 15.2022-05-19 前两天才发现一次性任务只是显示到秒,一设置秒就成00了,今天休正了 16.2022-06-03 运行带建立自动任务的脚本几遍就会出几个任务,没有删除任务会很乱,添加了几个函数 queryTimedTasks, 返回时间任务数组,参数为id, time, scheduled, delay, interval, loop_times, millis, script_path中的0-n个 queryIntentTasks, 返回事件任务数组,参数为id, script_path, action, category, data_type, local中的0-n个 这两个函数我尽量做的兼容后面pro版的同名函数 removeTimedTask, 删除时间任务,参数同queryTimedTasks removeIntentTask. 删除事件任务, 参数同queryIntentTasks 这两个本来想兼容pro版同名函数的,后来发现还要新增几个函数,关键的原因是这俩函数不能直接使用,还要先得到任务id才能删除,觉得不方便,就改成了这样的参数,可以直接删任务 下面拿timedtask举个例子,intenttask仿照就行 timers.queryTimedTasks({ id:1, path:'/storage/emulated/0/脚本/hd.js' }).forEach(v => {log(v)}); log("-------------------"); timers.queryTimedTasks().forEach(v => {log(v)}); log("-------------------"); timers.removeTimedTask({ path: '/storage/emulated/0/脚本/hd11.js' }); 这里的path等价script_path, pro版里这样, 我做了下兼容, remove的两个函数参数不能为空,会抛出异常,总不能一个失误没写参数把所有任务都删了吧 17.2022-09-03 原版411偶尔会退出程序,不知道什么原因,换用debug版后会报有资源没回收,但是又没有退出程序,查找问题,更改了TemplateMatching.java里面的几行,试验了快两个星期了吧,没再报错,也不知道改的这处与程序退出有没有关系,总之小小升级一下. 18.2022-09-14 411在使用engines.execScriptFile时,如果只使用第一个参数,平时没什么问题,但是如果运行的脚本不在默认目录(例如原始的/sdcard/脚本),而是在脚本下面的目录a里(engines.execScriptFile("/sdcard/脚本/a/tst.js"),不巧的如果脚本里使用了require,而且它的参数是相对路径,我的是这样的,require("../myfun.js"),脚本运行时出错了(大概意思是没有myfun.js这个文件,我没细看),但是在autojs程序里直接点击该脚本运行又不报错.觉得这是个bug,于是就改了一点__engines__.js的fillConfig函数,上面调用它的三个地方也修改了一下. 19.2022-11-04 添加了UiObject.clickCenter()函数(仿照pro版做的,我自己对安卓程序不熟悉),作用相当于click(UiObject.bounds().centerX(), UiObject.bounds().centerY()),用法跟UiObject.click()一样. 20.2023-02-13 今天软件异常退出再登陆突然弹出一个窗口,说"当然版本为公测版,显现和潜在的问题很多,不再适合继续使用",然后下面的两个按钮一个是更新,一个退出,就是说不更新就不能用,好在原来定时的任务都能执行,中午赶紧把这部分去掉了,毕竟新的pro版上很多app都不限制了. 21.2023-02-15 使用打包插件会提示没安装插件,我因为不用这功能,一直也不知道,感谢huayangnw的提醒,我看了下代码,可能是两个程序的签名不一样的问题,我把签名验证部分跳过去了,也不知道行不行,不行的话请把提示信息一并发给我.(另>上传了个打包插件,我没源码,这个是在网上下到的,怕以后用的时候找不到才上传,图省事的可以下载) 22.2023-03-25 这次修改了两个地方,(1)把能找到的连接网络的地方都禁止了,因为上次的修改后觉得重启的次数少了,所以想重启是不是跟软件连接网络请求一些数据有关系.---没有太细的测试是不是完全不连接网络 (2)对搜到的控件使用log toast toastLog函数打印信息里面增加了 indexInParent,觉得这个在使用控件的parent, child来找到指定控件时比较有用 ps: 2022-01-25前面的版本在安卓11(我现在手机是这个版本,再前面是不是这样我没试验)上把大的js脚本缩小会导致文件后面的内容删不掉(这不是原生的bug,是我去掉原作在修改脚本后备份文件时产生的),这个改了,因为没维护版本号,下新的就行,后面的比前面的bug会有修改
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.