Junkrat686 / autojs4

autojs4.1.1alpha2改了几个bug,加了几个添加任务的函数,仿照pro版的,不过只是基础的功能,然后在

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

国内上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的提醒,我看了下代码,可能是两个程序的签名不一样的问题,我把签名验证部分跳过去了,也不知道行不行,不行的话请把提示信息一并发给我.(另>上传了个打包插件,我没源码,这个是在网上下到的,怕以后用的时候找不到才上传,图省事的可以下载)

ps:
2022-01-25前面的版本在安卓11(我现在手机是这个版本,再前面是不是这样我没试验)上把大的js脚本缩小会导致文件后面的内容删不掉(这不是原生的bug,是我去掉原作在修改脚本后备份文件时产生的),这个改了,因为没维护版本号,下新的就行,后面的比前面的bug会有修改

About

autojs4.1.1alpha2改了几个bug,加了几个添加任务的函数,仿照pro版的,不过只是基础的功能,然后在