mirror of
https://github.com/TonyJiangWJ/Auto.js.git
synced 2026-06-21 21:01:43 +08:00
一个支持无障碍服务的Android平台上的JavaScript IDE
java.lang.IllegalStateException: Calling View methods on another thread than the UI thread. at com.android.webview.chromium.WebViewChromium.createThreadException(WebViewChromium.java:248) at com.android.webview.chromium.WebViewChromium.checkThread(WebViewChromium.java:263) at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:163) at android.webkit.WebView.<init>(WebView.java:548) at android.webkit.WebView.<init>(WebView.java:483) at android.webkit.WebView.<init>(WebView.java:466) at android.webkit.WebView.<init>(WebView.java:453) at org.autojs.autojs.ui.widget.CommonMarkdownView.<init>(CommonMarkdownView.java:49) at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:288) at android.view.LayoutInflater.createView(LayoutInflater.java:611) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747) at android.view.LayoutInflater.rInflate(LayoutInflater.java:810) at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) at android.view.LayoutInflater.inflate(LayoutInflater.java:508) at android.view.LayoutInflater.inflate(LayoutInflater.java:418) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at android.view.View.inflate(View.java:18461) at org.autojs.autojs.ui.update.UpdateInfoDialogBuilder.updateInfo(UpdateInfoDialogBuilder.java:45) at org.autojs.autojs.ui.update.UpdateInfoDialogBuilder.<init>(UpdateInfoDialogBuilder.java:40) at org.autojs.autojs.ui.update.VersionGuard.showUpdateInfoIfNeeded(VersionGuard.java:58) at org.autojs.autojs.ui.update.VersionGuard.access$200(VersionGuard.java:21) at org.autojs.autojs.ui.update.VersionGuard$1.onNext(VersionGuard.java:49) at org.autojs.autojs.ui.update.VersionGuard$1.onNext(VersionGuard.java:42) at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onNext(ObservableSubscribeOn.java:58) at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51) at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37) at com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual(CallObservable.java:43) at io.reactivex.Observable.subscribe(Observable.java:10901) at com.jakewharton.retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34) at io.reactivex.Observable.subscribe(Observable.java:10901) at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96) at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452) at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61) at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818) |
||
|---|---|---|
| .idea | ||
| app | ||
| autojs | ||
| automator | ||
| common | ||
| coolapk/release | ||
| gradle/wrapper | ||
| inrt | ||
| screen-captures | ||
| .gitignore | ||
| .gitmodules | ||
| build.gradle | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE.md | ||
| Readme.md | ||
| settings.gradle | ||
| version.json | ||
Auto.js
简介
一个主要由无障碍服务实现的不需要Root权限的类似按键精灵的自动操作软件,可以实现自动点击、滑动、输入文字、打开应用等。
同时有Sublime Text 插件可提供基础的在桌面开发的功能。
下载地址:酷安
Alpha版本:Releases
特性
- 简单易用的自动操作函数
- 悬浮窗录制和运行
- 更专业&强大的选择器API,提供对屏幕上的控件的寻找、遍历、获取信息、操作等。类似于Google的UI测试框架UiAutomator,您也可以把他当做移动版UI测试框架使用
- 采用JavaScript为脚本语言,并支持代码补全、变量重命名、代码格式化、查找替换等功能,可以作为一个JavaScript IDE使用
- 支持使用e4x编写界面,并可以将JavaScript打包为apk文件,您可以用它来开发小工具应用
- 支持使用Root权限以提供更强大的屏幕点击、滑动、录制功能和运行shell命令。录制录制可产生js文件或二进制文件,录制动作的回放比较流畅
- 提供截取屏幕、保存截图、图片找色等函数,可进行简单的游戏脚本制作;未来将加入找图功能
- 可作为Tasker插件使用,结合Tasker可胜任日常工作流
- 带有界面分析工具,类似Android Studio的LayoutInspector,可以分析界面层次和范围、获取界面上的控件信息
与脚本精灵、按键精灵等软件的区别是:
- Auto.js主要以自动化、工作流为目标,更多地是方便日常生活工作,例如启动游戏时自动屏蔽通知、一键与特定联系人微信视频(知乎上出现过该问题,老人难以进行复杂的操作和子女进行微信视频)等
- Auto.js兼容性更好。以坐标为基础的按键精灵、脚本精灵很容易出现分辨率问题,而以控件为基础的Auto.js则没有这个问题
- Auto.js执行大部分任务不需要root权限。只有需要精确坐标点击、滑动的相关函数才需要root权限
尽管如此,Auto.js的大部分用户仍然是用来点赞、签到、刷游戏的:)
信息
- 官方论坛: autojs.org
- 文档:可在这里查看在线文档。目前文档仍然不完善。
- 示例:可在这里查看一些示例,或者直接在应用内查看和运行。
截图
License
基于Mozilla Public License Version 2.0并附加以下条款:
- 非商业性使用 — 不得将此项目及其衍生的项目的源代码和二进制产品用于任何商业和盈利用途







