Coder Social home page Coder Social logo

autojs4's Introduction

国内上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来找到指定控件时比较有用
23.2023-04-16 添加了一个函数,releaseScreenCapturer(),这个函数很多时候不需要调用,但是在两个脚本都运行了requestScreenCapture,得到了截屏权限,不知道为什么,先运行的会无法销毁申请到的内存,造成内存泄漏(验证的代码我写在了帮助文档里),找遍了那一片的代码,也没有找出问题出在哪,似乎逻辑都对,但还是会出问题,猜测会不会是安卓系统的限制???实在解决不了这问题,找了这个折衷的办法,但是如果两个脚本交替申请截屏,这个函数就没用了,这个函数只是在另一个脚本申请截屏权限前先把申请到的内存释放,不能做到他们交替的截屏.
24.2023-04-26 这次下载安装前记得备份好上一次的安装包,现在我还在测试,不知道会不会有问题.
              这次还是补23的问题,我猜测问题是在安卓不能同时申请两个虚拟屏,所以我希望修改是实现在所有脚本里使用一个虚拟屏,然后顺便休正了以前一直存在的问题(在一个脚本里使用两次requireScreenCapture()函数,我的机子上脚本就会卡住,原来还能避免一个脚本里运行两次来避免问题,这次因为要在所有脚本里都使用一个虚拟屏,这问题就避不开了).另外,在编译时看到as报了几个函数废弃的警告,因为要解决,把glide从4.8.0提到了4.9.0.
              我试了两天,还没什么问题,不过在修改中间我曾经遇到过在退出后又打开app时设置的一个软件启动时运行的脚本没正常运行完,卡在了那里,这次倒是没有,不过我因为想看看能几天这软件不自动退出,就没有刻意的去试验,有谁还能遇见这问题记得留言.在之前把你备份的上一个app安装了
25.2023-07-24 这次修改是因为我在一个脚本截图搜索时总是会莫名其妙的退出,其实发现这问题很长时间了,只不过换成debug版本后就基本不出问题了,release下又不会出提示,所以一直就放着了,这次是实在有点忍受不了了,就从js函数一步步的看了上去,修改了一个地方,我自己测试了一下,原来截图搜索4600+次时autojs就会退出,这次我试到了17000+还没退出,改好没是不知道,不过起码是比原来好些了.
26.2023-07-31 首先,25的修改似乎失败了,我手机的autojs前两天又自己退出了,问题在哪还在寻找ing.... 先说说这次更新的始:我用的busybox来提供ftp服务,然后这玩意太简单了,阉割了不少功能,他虽然提供了ftp服务,但是只是最简单的功能,不能设置字符集,于是,电脑上反问手机时中文文件名就是乱码,偏偏autojs中文时默认默认的文件夹名是"脚本",于是,乱码....这次的修改就是把默认文件夹改成了/Scripts/,然后顺便的吧autojs做了下多国语言,把默认的语言改成了英语(这个默认是在autojs没有手机系统的语言时采用的语言,虽然autojs国人用的多,不排除将来老外也会用用,英文毕竟用的还是最广的),先道个歉,我英语不怎么样,好多是bing翻译的目标语言,还有不少词不知道用在什么地方,所以翻译的是直译,很可能在环境里看是莫名奇妙.
              然后还改了个地方,原来在脚本设置定时任务时没注意,原来直接time:"xx:xx:xx"是有问题的,这次改了,虽然用的人很少

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

autojs4's People

Contributors

blackcd318 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.