102 KiB
Языки
Текущий файл README.md поддерживает следующие языки:
- 简体中文 [zh-Hans]
- 繁體中文 (香港) [zh-Hant-HK]
- 繁體中文 (台灣) [zh-Hant-TW]
- English [en]
- Français [fr]
- Español [es]
- 日本語 [ja]
- 한국어 [ko]
- Русский [ru] # текущий
- العربية [ar]
Введение
Auto.js — это инструмент автоматизации на языке JavaScript для платформы Android с поддержкой службы доступности.
Auto.js был выпущен hyb1996 в 2017/01/27, и его поддержка прекратилась в 2020/03/13, финальная версия - 4.1.1 Alpha2, номер сборки - 461.
AutoJs6 разработан на основе финальной версии проекта Auto.js и вышел в 2021/12/01, оставаясь бесплатным с открытым исходным кодом.
В таблице ниже перечислены некоторые проекты, связанные с Auto.js (отсортированы по дате начала разработки):
| Проект | Название приложения | Основные Разработчики | Дата начала разработки | Дата окончания разработки | Период активного обслуживания (год) |
|---|---|---|---|---|---|
| Auto.js | Auto.js | hyb1996 | 2017/01/27 |
2020/03/13 |
3.13 |
| Auto.js Pro 7 | Auto.js | hyb1996 | 2019/03/13 |
2019/07/08 |
0.32 |
| Auto.js Pro 8 | AutoJsPro | hyb1996 | 2019/10/13 |
2021/07/24 |
1.78 |
| Auto.js | Auto.js M | TonyJiangWJ | 2019/11/21 |
- | < 6.32 > |
| AutoX | Autox.js | kkevsekk1 | 2020/07/24 |
[ 2025/01/07 ] |
4.46 |
| Auto.js Pro 9 | AutoJsPro | hyb1996 | 2021/03/28 |
2023/02/09 |
1.87 |
| AutoJs6 | AutoJs6 | SuperMonster003 | 2021/12/01 |
- | < 4.28 > |
| autojs4 | Auto.js | blackcd318 | 2021/12/15 |
2023/07/31 |
1.62 |
| AutoX | Autox.js v6 | wilinz / aiselp | 2022/05/26 |
[ 2025/01/07 ] |
2.62 |
| openautojs | OpenAuto.js | openautojs | 2023/02/17 |
2023/04/16 |
0.16 |
| AutoJs4 | AutoJs4 | SuperMonster003 | 2023/04/11 |
- | < 2.93 > |
| AutoX | Autox.js v7 | aiselp | 2024/04/21 |
- | < 1.90 > |
| Autoxjs_v6_ozobi | Autox.js v6_ozobi | ozobiozobi | 2024/10/01 |
- | < 1.45 > |
| AutoX | Autox.js v6 | autox-community | 2025/03/30 |
- | < 0.96 > |
Даты в таблице являются оценочными и могут отличаться от фактических.
В таблице Auto.js Pro 7/8/9 указаны как платные версии, остальные являются бесплатными версиями с открытым исходным кодом.
В таблице данные в столбце Дата окончания разработки, содержащие квадратные скобки ([]), означают, что открытый проект временно недоступен.
В таблице данные в столбце Период активного обслуживания, содержащие угловые скобки (<>), учитываются по состоянию на 14 March 2026 года.
Функции
- Можно использовать в качестве JavaScript IDE (автодополнение кода / переименование переменных / форматирование кода)
- Поддержка автоматизации на основе службы доступности
- Поддержка быстрых действий через плавающую кнопку (запись скриптов и их выполнение / просмотр имени пакета и активности / анализ макета)
- Поддержка API селекторов, предоставляющая возможности обхода виджетов / получения информации / управления виджетами (аналогично UiAutomator)
- Поддержка анализа интерфейса макета (аналогично LayoutInspector из Android Studio)
- Поддержка функции записи и воспроизведения записанного
- Поддержка создания скриншотов / сохранения скриншотов / поиска по изображениям / сопоставления изображений
- Поддержка написания интерфейсов с использованием E4X (ECMAScript для XML)
- Поддержка упаковки файлов скриптов или проекта в APK файл
- Поддержка расширенных функций с использованием привилегий Root (нажатия на экран / пролистывания / записи / Shell)
- Поддержка работы в качестве плагина для Tasker
- Поддержка подключения к VSCode для разработки на рабочем столе (требуется плагин AutoJs6-VSCode-Extension)
Окружение
Руководство
- Документация приложения
- Пользовательское руководство (в разработке)
- Устранение неполадок
- Компиляция и сборка проекта
- Помощь в разработке скриптов
Основные изменения
По сравнению с окончательной версией с открытым исходным кодом Auto.js 4.1.1 Alpha2, AutoJs6 включает следующие основные обновления или изменения:
- Поддержка получения привилегий ADB через Shizuku и использование системных API
- Поддержка построения экземпляров WebSocket для выполнения сетевых запросов на основе протокола WebSocket
- Добавлены новые модули [ base64 / crypto / sqlite / i18n / notice / ocr / opencc / qrcode / shizuku / ... ]
- Поддержка нескольких языков [ испанский / французский / русский / арабский / японский / корейский / английский / упрощенный китайский / традиционный китайский / ... ]
- Адаптация темы [ Группировка / Локация / Поиск / История / Автоматическая адаптация яркости и контрастности / ... ]
- Поддержка ночного режима [ страница настроек / страница документации / страница анализа макета / плавающее окно / ... ]
- Плагин VSCode поддерживает варианты подключения клиента (LAN) и сервера (LAN/ADB)
- Движок Rhino обновлен с версии v1.7.7.2 до версии v2.0.0-SNAPSHOT (обновлено 25 December 2025 года)
- Поддержка Unicode для экранирования кодовых точек и символов в дополнительных плоскостях
'\u{1D160}'; /* означает "𝅘𝅥𝅮", традиционный метод: '\uD834\uDD60'. */ - Поддержка Object.values()
Object.values({name: 'Max', age: 4}); // ['max', 4] - Поддержка Array.prototype.includes()
[10, 20, NaN].includes(20); // true - Поддержка BigInt
typeof 567n === 'bigint'; // true - Поддержка шаблонных строк
`Lucky number: ${(Math.random() * 100).toFixed(0)}` - Просмотр новых функций движка Rhino новые функции
- Просмотр списка совместимости движка Rhino список совместимости
- Поддержка Unicode для экранирования кодовых точек и символов в дополнительных плоскостях
История Релизов
v6.7.0
2026/03/14
НовоеФункция Центр плагинов, поддерживающая установку/удаление/обновление плагинов и другие операции (вход: кнопка боковой панели главной страницы/вкладка главной страницы)НовоеФункция История версий, поддерживающая просмотр/восстановление исторических версий редактируемых файлов (вход: кнопка боковой панели главной страницы/меню файлового менеджера/меню редактора кода)НовоеФункция Корзина, поддерживающая просмотр/восстановление удаленных файлов/папок (вход: кнопка боковой панели главной страницы)НовоеПлагин Paddle OCR (PP-OCRv5), для оптического распознавания символовНовоеМодуль cvt, для преобразования единиц данных (см. Документация проекта > Преобразование единиц)НовоеМодуль fmt, для форматирования данных (см. Документация проекта > Форматирование)НовоеМодуль zip, для операций сжатия и распаковки файлов (Ref to Auto.js Pro) (см. Документация проекта > Zip)НовоеМодуль mediainfo, для просмотра подробной информации о медиафайлах (см. Документация проекта > Информация о медиа)НовоеМетод cvt.bytes, для преобразования единиц байтовых данных (см. Документация проекта > Преобразование единиц)НовоеМетод fmt.bytes, для форматирования байтовых данных (см. Документация проекта > Форматирование)НовоеМетод s13n.bytes, для стандартизации байтовых данных (см. Документация проекта > Стандартизация)НовоеМетод app.isDualInstalled, для определения, установлено ли двойное приложение (требуются права Shizuku или Root)issue #450НовоеМетод device.getSharedDeviceId, для получения единого общего ID устройства между приложениямиissue #455НовоеМетод device.setPointerLocation и другие методы серии Toggleable, для установки или получения системной настройки положения указателяissue #381НовоеМетод dialogs.build поддерживает параметры textAllCaps/(positive/negative/neutral)TextAllCaps, для управления тем, должен ли текст кнопок отображаться полностью заглавными буквамиНовоеМетод images.loadAsync, для асинхронного получения сетевых графических ресурсовissue #327НовоеМетод ui.getNavigationBarHeight/свойство navigationBarHeight (getter), для получения высоты панели навигацииissue #456НовоеМетод ui.getVisible(Status/Navigation)BarHeight/свойство visible(Status/Navigation)BarHeight (getter), для быстрого получения видимой высоты строки состояния или панели навигацииissue #456НовоеМетоды http.put/del(ete)/head, для отправки сетевых запросов с использованием разных HTTP-методовНовоеМетоды http.getAsync/postAsync/requestAsync и другие, для асинхронной отправки сетевых запросовissue #423НовоеОбъект body, получаемый методами запросов модуля http, дополнен методами stream/saveToFile/close и др.issue #452НовоеМетоды запросов модуля http поддерживают параметры управления кешем (cacheBody/bodyCacheThresholdBytes)НовоеМетоды запросов модуля http поддерживают небезопасные параметры (isInsecure/insecure), для игнорирования исключений, связанных с сертификатамиissue #417НовоеМетоды запросов модуля http поддерживают опцию options.client, для настройки OkHttpClient.Builder (например, followRedirects и т. п.)issue #454НовоеСвойство auto.state (getter) и свойство shizuku.state (getter), для получения состояния службы специальных возможностей и службы ShizukuНовоеМетоды runtime.(set/is)JavaPrimitiveWrap, для установки или получения стратегии обертки примитивных типов Javaissue #435НовоеМетоды autojs.(restart/exit), для перезапуска или выхода из приложения AutoJs6, а также с поддержкой автоматического запуска указанного скрипта при перезапуске приложенияissue #460НовоеМетод UiObject#isShifted, для определения изменения положения элементаissue #469НовоеМетод UiObject#snapshot, для захвата текущего состояния элементаissue #469НовоеМетод engines.myEngine().getStartTime(), для получения временной метки запуска движка скриптовissue #449НовоеГлобальный метод crash, для тестирования страницы отчета о сбоеНовоеГлобальный метод structuredClone, для глубокого копирования объектов JavaScript (см. MDN)НовоеСелекторы серии эквивалентности (UiSelector#id/text/...) и серии содержит (UiSelector#xxxContains) поддерживают параметры регулярных выраженийНовоеПараметры регулярных выражений селекторов поддерживают флаги (i, m, s, u)НовоеРегулярные выражения поддерживают синтаксис lookbehindissue #464НовоеВ файловом менеджере добавлены пункты меню "Переместить в" и "Копировать в" с поддержкой прерывания операции и отображения состояния прогрессаНовоеВ редакторе кода добавлен пункт меню "Многофункциональная клавиатура" - "Настройки символов", с поддержкой редактирования символов и создания/импорта/экспорта символов по уровням профилейНовоеВ боковую панель главной страницы добавлен инструмент "Положение указателя"НовоеВ боковую панель главной страницы добавлен переключатель "Доступ ко всем файлам"НовоеВ боковую панель главной страницы добавлен переключатель "Показывать интерфейс из фона" (для устройств [Xiaomi/Vivo])НовоеНа странице настроек добавлена опция "Обертка примитивных типов Java"issue #435НовоеНа странице настроек добавлена опция "Движок планировщика задач" с поддержкой AlarmManager/WorkManager/JobSchedulerissue #457issue #434issue #449issue #388issue #378issue #163issue #53issue #21НовоеНа странице настроек добавлена опция "Значок лаунчера приложения" с поддержкой адаптивных значков/значков с прозрачным фономissue #405НовоеНа странице настроек добавлена опция "Стратегия перезапуска", для настройки использования стратегии быстрого перезапуска кнопкой перезапуска на боковой панели главной страницыНовоеНа странице настроек добавлена опция "Задержка запроса разрешения на захват экрана", для предотвращения перекрытия экрана окном запроса разрешенияНовоеВ ярлыки лаунчера на странице настроек добавлена опция "Плагины", для перехода на страницу Центра плагинов через ярлыкНовоеУпакованные приложения поддерживают автозапуск при загрузке системы, а на странице конфигурации добавлен соответствующий переключательНовоеУпакованные приложения поддерживают ярлыки приложения (страница журналов/страница настроек)НовоеНа странице конфигурации упаковки приложения добавлены кнопки отмены/повтора/сохраненияНовоеНа странице конфигурации упаковки приложения добавлен механизм профилей с поддержкой создания/изменения/удаления/импорта/экспорта профилейissue #483НовоеИнструмент Scrapers (run-scrapers.mjs), для автоматического обновления структурированных данных в скриптах сборки Gradle/общих данных README/данных шаблона README и др.НовоеИнструмент Gradle Wrapper switcher (gradle-wrapper-switcher), для переключения локальной основной версии Gradle (например, Gradle 8.x и Gradle 9.x)ИсправлениеОшибка ограничений по количеству и типам параметров метода noticeissue #462ИсправлениеПроблема, из-за которой свойство ui.R (getter) не могло использоваться корректноИсправлениеПроблема, из-за которой исключения в callback-параметрах метода ui.post могли тихо игнорироватьсяИсправлениеПроблема, из-за которой глобальные методы вроде isJavaClass/isJavaPackage были неработоспособныИсправлениеПроблема, из-за которой параметр timeout метода timers.keepAlive не работалИсправлениеПроблема, из-за которой методы floaty.window/rawWindow не принимали строковые параметрыissue #467ИсправлениеПроблема, из-за которой floaty.rawWindow отображал некоторые элементы некорректно из-за передачи неправильного контекстаИсправлениеПроблема, из-за которой метод util.isString был неработоспособенИсправлениеПроблема, из-за которой util.class[Name]/getClass[Name] могли возвращать неверные результатыИсправлениеПроблема, из-за которой util.java.array не мог корректно использовать параметры типов вроде BooleanИсправлениеПроблема, из-за которой объект, возвращаемый threads.disposable(), мог неожиданно упаковываться при доступе к даннымissue #435ИсправлениеПроблема, из-за которой при многократном вызове метода console.build параметры стиля плавающего окна журналов не сбрасывались корректноИсправлениеПроблема, из-за которой параметры (title/content)BackgroundColor метода console.build могли перезаписывать прозрачность или параметры тонированияissue #458ИсправлениеПроблема, из-за которой методы console/toast и подобные могли терять конечные нули при отображении Java DoubleИсправлениеПроблема, из-за которой было невозможно отображать тип данных BigInt через методы console/toast и подобныеИсправлениеПроблема, из-за которой метод toast мог вызывать утечку памяти из-за удержания сильной ссылки на экземпляр ToastИсправлениеПроблема, из-за которой некоторые глобальные объекты могли терять свойства и методы прототипа JavaScriptИсправлениеПроблема, из-за которой объект this мог указывать неверно при использовании JavaScript-выражений как значений атрибутов в XML-синтаксисеИсправлениеПроблема, из-за которой параметр linkify метода dialogs.build не работалИсправлениеПроблема, из-за которой метод dialogs.build мог повреждать исходные данные объектного параметраИсправлениеНеверный внутренний расчет частоты кадров в методе setMaxFps элемента canvasИсправлениеНеверный расчет ширины при вертикальном объединении в методе images.concatИсправлениеПроблема, из-за которой отмена авторизации в методе images.requestScreenCapture могла приводить к сбою приложенияИсправлениеПроблема, из-за которой скриншоты, полученные методом images.captureScreen, могли иметь неправильную ориентацию или черные поляissue #337ИсправлениеПроблема, из-за которой значение 1 ошибочно интерпретировалось как процент при использовании параметров области в некоторых методах imagesИсправлениеПроблема, из-за которой флаг oneShot переставал работать при возникновении исключений в некоторых методах imagesissue #372ИсправлениеПроблема, из-за которой некоторые методы images могли вызывать утечки памятиissue #372ИсправлениеПроблема, из-за которой images.save и метод ImageWrapper#saveTo не могли корректно записывать файл, если переданный путь не существовалИсправлениеПроблема, из-за которой метод ImageWrapper#recycle не выполнял корректное освобождение ресурсов изображенияИсправлениеПроблема, из-за которой некоторые перегруженные методы ocr могли работать некорректноИсправлениеПроблема, из-за которой результаты метода ocr.detect могли не соответствовать ocr.modeissue #468ИсправлениеПроблема, из-за которой события службы специальных возможностей, зарегистрированные через auto.registerEvent, могли ошибочно очищаться другими скриптамиissue #466issue #343ИсправлениеПроблема, из-за которой метод UiObject#child мог вызывать ArrayIndexOutOfBoundsException на Android 10issue #416ИсправлениеПроблема, из-за которой при вызове методов встроенных модулей мог возникать несогласованный контекст RhinoИсправлениеПроблема, из-за которой после создания большого количества плавающих окон в скрипте после его завершения могли оставаться остаточные окнаИсправлениеПроблема, из-за которой параметры конфигурации project.json могли некорректно разбираться при запуске проектаИсправлениеПроблема, из-за которой параметр excludedDirs в project.json мог вызывать сбой разбора конфигурации при упаковке проектаissue #428ИсправлениеПроблема, из-за которой функция упаковки могла некорректно работать на Android 7.xИсправлениеПроблема, из-за которой исходные имена ключей могли изменяться при сохранении файла конфигурации проекта скриптаИсправлениеПроблема, из-за которой большие значения номера сборки или времени сборки в файле конфигурации проекта скрипта могли вызывать сбой приложенияИсправлениеПроблема, из-за которой частое получение или пересоздание ImageReader могло приводить к сбою приложения из-за временного отсутствия доступных кадров в буфереИсправлениеПроблема, из-за которой наблюдатель событий ввода InputEventObserver мог вызывать заметные подвисания при запуске приложенияИсправлениеПроблема, из-за которой пользовательский сервисный процесс Shizuku не завершался корректно, что приводило к накоплению процессовissue #474ИсправлениеПроблема, из-за которой упакованные приложения не могли корректно использовать функции Paddle OCR и Rapid OCRИсправлениеПроблема, из-за которой значение ключа key в файле конфигурации project.json упакованного приложения могло неожиданно изменятьсяИсправлениеПроблема, из-за которой при прокрутке списка "Требуемые разрешения" на странице конфигурации упаковки приложения могли мерцать значки флажковИсправлениеПроблема, из-за которой на странице История версий статистические данные на некоторых системах отображались неполно из-за различий в шрифтахИсправлениеПроблема, из-за которой MLKit Google OCR не мог корректно инициализироваться на некоторых устройствах (пробное исправление)issue #8ИсправлениеПроблема, из-за которой на некоторых устройствах кнопки функций файлового менеджера не срабатывали корректно при нажатии (пробное исправление)issue #465ИсправлениеПроблема, из-за которой пустые строки в редакторе кода отображались квадратными символами на некоторых устройствах (пробное исправление)ИсправлениеПроблема, из-за которой экранная клавиатура могла перекрывать текст в редакторе кодаИсправлениеПроблема, из-за которой редактор кода позволял редактировать содержимое даже в режиме только чтенияИсправлениеПроблема, из-за которой нажатие на область заголовка и некоторые пункты меню в режиме только чтения вызывало сбой приложения в редакторе кодаИсправлениеПроблема, из-за которой загрузка больших файлов в редакторе кода могла вызывать сбой приложения (пробное исправление)ИсправлениеАномальная инициализация состояния функциональных кнопок при автоматическом открытии нового файла редактором кодаИсправлениеПроблема, из-за которой перевод приложения в фон во время редактирования файла в редакторе кода мог вызывать сбойИсправлениеПроблема, из-за которой на Android 15+ нажатие кнопки fx в редакторе кода не показывало быстрый модульный панель функций (пробное исправление)ИсправлениеПроблема, из-за которой ErrorDialogActivity мог не запускаться корректно или автоматически исчезать через короткое времяissue #479issue #471issue #414issue #340ИсправлениеНеверные типы параметров, принимаемые конструктором Canvasissue #402ИсправлениеПроблема, из-за которой функция копирования подробной информации не работала на странице отчета о сбоеИсправлениеПроблема, из-за которой пользовательская логика кнопки Назад переставала работать на Android 16+, вызывая некорректное поведение возвратаИсправлениеПроблема, из-за которой приложение могло падать при нажатии кнопки Назад или переключении вкладок после отображения результатов поиска файлового менеджераИсправлениеПроблема, из-за которой интерфейс не обновлялся автоматически после удаления папок проекта в файловом менеджереИсправлениеПроблема, из-за которой приложение могло падать при частом изменении элементов списка панели задачИсправлениеПроблема, из-за которой цвет переднего плана панели навигации мог работать аномально с ночным режимом при использовании жестовой навигации "три кнопки"ИсправлениеПроблема, из-за которой диалог информации о типе APK-файла мог не получать имя приложения и сведения об SDKИсправлениеПроблема, из-за которой в режиме клиента при быстром отключении и повторном подключении после соединения возникал таймаут рукопожатия, и повторно установить соединение было трудноИсправлениеПроблема, из-за которой в режиме клиента действия вроде поворота экрана или смены языка, приводящие к пересозданию Activity, заставляли AutoJs6 каждый раз пересоздавать соединениеИсправлениеПроблема, из-за которой в режиме сервера действия вроде поворота экрана или смены языка, приводящие к пересозданию Activity, мешали консоли VSCode выводить журналыissue #385ИсправлениеПроблема, из-за которой при подключении к плагину VSCode несколькими способами одновременно количество выводимых журналов могло многократно увеличиватьсяИсправлениеПроблема, из-за которой генерация кода на странице анализа макета могла завершаться неудачей для коллекционных элементов (пробное исправление)issue #328ИсправлениеПроблема, из-за которой переключатель "Использовать кнопку 'Уменьшение громкости' для управления записью" на странице настроек не работалissue #480ИсправлениеПроблема, из-за которой координаты в сгенерированном файле кода записи скрипта могли не совпадать с фактическими пикселями экранаissue #480ИсправлениеПроблема, из-за которой первое действие в сгенерированном коде записи скрипта (например, нажатие или свайп) всегда игнорировалосьИсправлениеПроблема, из-за которой выполнение фоновых операций с файлами из плавающего диалога "Запустить скрипт" могло вызывать сбой приложенияИсправлениеПроблема, из-за которой состояние плавающей кнопки могло сбрасываться при повторном входе на главную страницу после завершения жизненного цикла главной ActivityИсправлениеПроблема, из-за которой переключатель "Показывать поверх других приложений" на устройствах Xiaomi мог открывать неправильную страницу настроекИсправлениеПроблема, из-за которой после прерывания загрузки обновления сетевые пакеты продолжали загружаться в фоне (пробное исправление)ИсправлениеПроблема, из-за которой задача Rebuild Project не могла корректно завершиться при включенной опции isCleanup[Paddle/Rapid]Ocr в инструментах сборкиУлучшениеПлагинизация функций, связанных с Paddle OCR (PP-OCRv3)issue #334issue #331issue #325УлучшениеПовышена совместимость метода runtime.loadJar (by LYS86)pr #475УлучшениеУлучшена совместимость метода ui.getStatusBarHeight/свойства statusBarHeight (getter) в определенной степениУлучшениеМетоды вроде console.log теперь поддерживают вывод подробной информации при печати глобальных объектов (images, app, ocr и т. д.)УлучшениеМетод dialogs.build поддерживает нативные параметры MaterialDialog.BuilderУлучшениеМетод dialogs.build поддерживает гибкое строковое сопоставление для параметров animation/linkifyУлучшениеУлучшены стабильность и согласованность получения ориентации экрана и данных ширины/высоты методами device.rotation/rotation/width/heightУлучшениеПовышены эффективность выполнения и совместимость методов вроде app.launchDual/startDualActivityУлучшениеandroid.graphics.Paint#setColor теперь корректно разбирает цветовые параметры вроде ColorInt/ColorHex/ColorNameУлучшениеСообщения об исключениях типов аргументов встроенных модулей теперь содержат краткую сводку типовУлучшениеВстроенные модули (dayjs/cheerio/dayjs/i18n) больше не используют режим выполнения скрипта и переходят на глобальную ленивую загрузкуУлучшениеПри выводе огромных данных методами консоли часть содержимого теперь разумно опускается в пределах лимитов, чтобы сократить время печатиУлучшениеНачальное значение обратного отсчета плавающего окна консоли увеличено с 6 до 9 секундУлучшениеВнутренняя реализация плавающего окна консоли переведена на безблокировочную и очередную обработку для повышения эффективности и успешности применения параметровУлучшениеAPI, связанные с поведением фонового цвета плавающего окна консоли (прозрачность/тонирование/базовый цвет), теперь лучше соответствуют рекомендациям Androidissue #458УлучшениеОптимизирован момент сворачивания меню при нажатии на пункты после раскрытия плавающей кнопки в файловом менеджереУлучшениеФайловый менеджер/панель задач поддерживают отображение статистики количества файлов/задачУлучшениеПри сбое сохранения в редакторе кода файл автоматически сохраняется как черновик и поддерживает сохранение как нового файлаУлучшениеВ определенной степени повышена плавность загрузки больших файлов в редакторе кодаУлучшениеФункция "Найти/Заменить" в редакторе кода поддерживает сохранение состояния и отображение количества совпадений в реальном времениУлучшениеПри предложении сохранить редактор кода теперь убеждается в успешном сохранении перед выходом, чтобы снизить вероятность сбоев сохраненияУлучшениеСостояние кнопки сохранения в редакторе кода теперь лучше соответствует пользовательской логикеУлучшениеРедактор кода поддерживает длительное нажатие для клавиш вроде "-", "=", "(", "[", "{", "<"УлучшениеВ диалог процесса упаковки приложения добавлена кнопка "Прервать"УлучшениеУлучшен способ отображения диалога процесса упаковки приложения и добавлена статистика затраченного времениУлучшениеПри установке упакованного приложения с новой конфигурацией связанные настройки старого приложения будут перезаписаныУлучшениеНа странице конфигурации упаковки приложения по умолчанию отмечаются необходимые разрешения (WAKE_LOCK/INTERNET/WRITE_EXTERNAL_STORAGE/...)issue #397УлучшениеСтраница конфигурации упаковки приложения поддерживает чтение и настройку большего числа опций (показывать журналы при запуске/показывать экран запуска при запуске/текст слогана экрана запуска/...)УлучшениеНа странице настроек упакованного приложения добавлен переключатель foreground serviceissue #406УлучшениеПри сохранении файла конфигурации проекта скрипта добавлен механизм обнаружения конфликтов имен ключей для предотвращения неоднозначностиУлучшениеСтраница отчета о сбое поддерживает масштабирование двумя пальцами для изменения размера шрифта и добавляет кнопки часто используемых функцийУлучшениеЗначки лаунчера приложения теперь поддерживают возможности адаптивных иконокissue #405УлучшениеЕсли движок Rhino не может разобрать сигнатуры дженериков, он теперь откатывается к исходным типам reflection, улучшая доступность reflection-методов на старых версиях AndroidУлучшениеЭлементы-переключатели на боковой панели главной страницы получили разделители, поддержку нажатия по области заголовка для показа диалога деталей и, при необходимости, быстрый переход в системные настройкиУлучшениеПри запуске или перезапуске AutoJs6 теперь можно нажать на область заголовка "Режим клиента" на боковой панели главной страницы, чтобы прервать попытку подключенияУлучшениеРежим клиента поддерживает подключение по адресам IPv6 и доменным именамУлучшениеРежим клиента поддерживает подсказки для специальных IPv4-адресов (loopback/broadcast/multicast/reserved/...)УлучшениеРежим клиента поддерживает отображение и управление состоянием подключения (исправить адрес/прервать подключение)УлучшениеРежим сервера поддерживает отображение количества подключенных клиентовУлучшениеЧтение разрешения на уведомления поддерживает механизм автоматического переподключения (requestRebind) для повышения стабильности функций прослушивания уведомленийУлучшениеПлавающая кнопка повышает безопасность запуска Activity из фона, чтобы избежать сбоев приложенияУлучшениеДиалог "Еще" плавающей кнопки использует асинхронную загрузку данных для более плавного отображенияУлучшениеВ диалог "Запустить скрипт" плавающей кнопки добавлен пункт меню "Главная"УлучшениеДиалог "Запустить скрипт" плавающей кнопки поддерживает сворачивание и восстановление состояния и по возможности сохраняет окно постоянно активным или автоматически восстанавливает егоУлучшениеПоддерживается использование разрешения Shizuku для записи и воспроизведения скриптов (плавность воспроизведения может быть частично снижена)issue #320УлучшениеНа странице настройки цвета темы используется быстрый способ позиционирования для повышения эффективности поиска нужного цвета темыУлучшениеВместо устаревшего LocalBroadcastManager используются LiveData и SharedFlowУлучшениеСкрипты сборки Gradle улучшают эффективность распаковки файлов формата 7zУлучшениеСкрипты сборки Gradle поддерживают получение подробной версии Android Studio IDE (например, "2025.1.4.7")УлучшениеСкрипты сборки Gradle поддерживают автоматическую генерацию данных, необходимых классу VersionCodesList, чтобы сократить задержку запуска скриптовУлучшениеИспользование Version Catalogs для централизованного управления версиями зависимостей и плагинов GradleУлучшениеМодульные скрипты сборки Gradle, с переносом общей логики сборки в build-logic и абстрагированием ее в convention pluginsУлучшениеИспользование convention plugins Gradle для упрощения логики загрузки локальных AAR-библиотекУлучшениеУдалена опция Gradle "android.enableJetifier=true" для адаптации к Gradle 9УлучшениеИспользование Toolchain вместо sourceCompatibility/targetCompatibility для уменьшения различий среды сборкиУлучшениеИзменения версий некоторых зависимостей или локальных библиотекCHANGELOG.md
v6.6.4
2025/05/31
ПодсказкаИзменение API: ui.(status/navigation)BarAppearanceLight[By] -> ui.(status/navigation)BarIconLight[By]НовоеМетоды util.dpToPx/spToPx/pxToDp/pxToSp для преобразования пиксельных единицИсправлениеПри повороте экрана в ландшафтный режим подзаголовки могут отображаться неполностьюИсправлениеПри повороте экрана в ландшафтной ориентации часть содержимого страницы может быть скрыта боковой навигациейИсправлениеНеполная закрашенная область фона строки состояния на некоторых страницах в Android 15issue #398ИсправлениеРедактор кода мог записывать файл с недостаточно надёжной кодировкой, приводя к ошибкам декодирования (попытка исправления)УлучшениеУнификация адаптации макета на страницах Приложения и Разработчика, удаление ненужных категорий макетовУлучшениеВ README.md в разделе сборки добавлены несколько способов упрощённого поиска страницы настроек целиissue #404УлучшениеИзменения версий некоторых зависимостей или локальных библиотекCHANGELOG.md
v6.6.3
2025/05/27
НовоеФункция истории релизов: просмотр многоязычных списков изменений и статистикиНовоеМетод timers.keepAlive (теперь глобальный) для поддержания активности скриптаНовоеСлушатели событий, такие как engines.on('start/stop/error', callback), для глобальных событий движкаНовоеМетод images.detectMultiColors для проверки нескольких точек цветаissue #374НовоеМетоды images.matchFeatures/detectAndComputeFeatures: поиск изображений в полном разрешении (см. Auto.js Pro)issue #366НовоеМетод images.compressToBytes для сжатия изображения и получения массива байтовНовоеМетод images.downsample для понижения разрешения и создания нового ImageWrapperНовоеМетод ui.keepScreenOn для удержания экрана включённым, пока UI-страница в фокусеНовоеСвойство ui.root (getter) для получения узла «корневой контейнер содержимого окна» в макете UIНовоеЭлемент webview поддерживает макеты веб-страниц на базе JsBridge (см. Auto.js Pro) [пример: Layout > Interactive HTML / Vue2 + Vant (SFC)]issue #281НовоеАнализ макета поддерживает скрытие элементов (автор TonyJiangWJ)pr #371issue #355ИсправлениеОнлайн-документация на вкладке Docs и в активности Docs могла перекрываться системной навигационной панельюИсправлениеНа некоторых страницах нажатие кнопок Toolbar могло ошибочно вызывать событие клика по заголовкуИсправлениеНа некоторых устройствах пустые строки в редакторе кода отображались квадратами; пробное исправлениеИсправлениеДиалог выбора цвета в настройках темы мог бесконечно накладываться друг на другаИсправлениеКнопка увеличения громкости не останавливала все скрипты при выключенной службе доступностиИсправлениеIME перекрывал ввод при редактировании пользовательского широковещательного сообщения в расписании задачИсправлениеЭлементы управления внутри webview не могли корректно вызвать программную клавиатуруИсправлениеДиалог информации APK мог не получать название приложения и сведения о SDKИсправлениеПример файлового менеджера мог не загружать содержимое подпапок при входе в каталог проектаИсправлениеВ режиме UI на Android 15 верхний контент перекрывался строкой состоянияИсправлениеФон строки состояния на некоторых страницах Android 15 не менялся вместе с цветом темыИсправлениеМодуль dialogs не поддерживал свойство customViewissue #364ИсправлениеПараметр выражения dialogs.input мог не возвращать результат выполненияИсправлениеИспользование JavaAdapter приводило к переполнению стека ClassLoaderissue #376Исправлениеconsole.setContentTextColor сбрасывал цвет текста по умолчаниюissue #346Исправлениеconsole.setContentBackgroundColor не принимал названия цветовissue #384ИсправлениеРеализация images.compress скорректирована: теперь меняет качество кодирования, а не выполняет даунсемплингИсправлениеМетод images.resize работал некорректноИсправлениеengines.all мог вызывать ConcurrentModificationExceptionissue #394ИсправлениеНеверные форматы даты на некоторых языках в README.mdИсправлениеСборка Gradle могла падать из-за неверного размера архивного файла библиотекиissue #389УлучшениеВ меню анализа макета добавлены градиентные разделители для группировки функцийУлучшениеФайл project.json поддерживает опцию permissions для проектов скриптов (автор wirsnow)pr #391issue #362УлучшениеПри упаковке одного файла автоматически читаются и отмечаются заявленные разрешения установленного приложенияissue #362УлучшениеРасширена область применения цвета темы, добавлена поддержка большего числа виджетовУлучшениеШирина выдвижного меню на главной странице адаптируется к альбомному и ультраширокому экрануУлучшениеДобавлены горизонтальный и компактный макеты для страниц «О приложении» и «О разработчике»УлучшениеВ диалогах настроек появилось меню «Использовать значение по умолчанию»УлучшениеПлавающая кнопка файлового менеджера скрывается при нажатии вне её областиУлучшениеФорматтер кода поддерживает операторы??,?.,??=УлучшениеРедактор кода поддерживает чтение и запись файлов в кодировках GB18030 / UTF-16 (LE/BE) / Shift_JIS и другихУлучшениеРедактор кода теперь отображает подробную информацию о файле (путь/кодировка/разделитель строк/общее количество байтов и символов и др.)issue #395УлучшениеДобавлены сообщения об ошибках для действий Intent (редактировать / просмотреть / установить / отправить / воспроизвести и др.)УлучшениеАтрибут url элемента webview поддерживает относительные путиУлучшениеПараметр path в ImageWrapper#saveTo поддерживает относительные путиУлучшениеimages.save поддерживает сжатие PNG при использовании параметра qualityissue #367УлучшениеДобавлена возможность очистки списка игнорируемых обновлений и адресов клиентского режимаУлучшениеИнформация об обновлении версии выводится на текущем языке интерфейсаУлучшениеАсинхронная загрузка повышает плавность прокрутки списка в файловом менеджереУлучшениеУлучшено содержание и формат сообщений об исключениях скриптов в консолиУлучшениеПримеры кода теперь можно сбросить до исходного содержимого папкиУлучшениеУвеличена скорость проверки подписи APKУлучшениеОптимизированы диалоги информации файлов APK/медиа по скорости и логике отображенияУлучшениеСкрипт сборки Gradle лучше адаптируется к новым версиямdiscussion #369УлучшениеИзменения версий некоторых зависимостей или локальных библиотекCHANGELOG.md
Для просмотра полной истории релизов обратитесь к
Компиляция и сборка проекта
Для отладки или разработки проекта AutoJs6 с открытым исходным кодом можно использовать Android Studio (продукт компании Google) или IntelliJ IDEA (продукт компании Jetbrains).
В данном разделе приведён пример методов компиляции и сборки для проекта AutoJs6 с использованием Android Studio. IntelliJ IDEA аналогичен.
Подготовка Android Studio
Скачайте версию Android Studio Panda 2 | 2025.3.2 (выберите одну из них по необходимости):
- android-studio-panda2-windows.exe (1.28 GiB)
- android-studio-panda2-windows.zip (1.29 GiB)
- android-studio-panda2-linux.tar.gz (1.32 GiB)
Примечание: Указанная версия была выпущена 3 March 2026 года. Для загрузки других версий или если указанная ссылка недействительна, посетите страницу архива версий Android Studio.
Установите или распакуйте указанные файлы, запустите программное обеспечение Android Studio (например, "D:\android-studio\bin\studio64.exe").
Подготовка Android SDK
Примечание: Если на компьютере уже установлен Android SDK, раздел может быть пропущен.
Открыть страницу настроек Android SDK (Набор средств разработки для Android) (любыми из следующих способов):
Help (Справка) | Find action (Найти действие) # Ввод "Android SDK"
[ или ]
File (Файл) | Settings (Настройки) # Поиск "Android SDK"
[ или ]
File (Файл) | Settings (Настройки) | Language & Frameworks (Языки и Фреймворки) | Android SDK (Набор инструментов для разработки Android)
[ или ]
File (Файл) | Settings (Настройки) | Appearance & Behavior (Внешний вид и Поведение) | System Settings (Системные настройки) | Android SDK (Набор инструментов для разработки Android)
Если поле Местоположение Android SDK (место расположения пакета SDK для Android) пустое, нажмите кнопку Редактировать (Edit) справа и несколько раз нажимайте Далее (Next) в появившемся окне.
Примечание: В процессе может потребоваться согласие с одним или несколькими соответствующими соглашениями для продолжения.
После завершения загрузки и установки соответствующих ресурсов нажмите кнопку Завершить (Finish).
Местоположение Android SDK (место расположения пакета SDK для Android) будет заполнено автоматически, что завершит подготовку SDK.
Подготовка инструментов Android SDK
Для работы AutoJs6 требуются некоторые инструменты SDK (например, NDK и CMake).
Примечание: Если на компьютере уже установлены все необходимые инструменты Android SDK для AutoJs6, раздел может быть пропущен.
Открыть страницу настроек SDK Tools (Инструменты SDK) (любыми из следующих способов):
Help (Справка) | Find action (Найти действие) # Ввод "SDK Tools"
[ или ]
File (Файл) | Settings (Настройки) # Поиск "SDK Tools"
[ или ]
File (Файл) | Settings (Настройки) | Language & Frameworks (Языки и Фреймворки) | Android SDK (Набор инструментов для разработки Android) | SDK Tools (SDK Инструменты) (находится в правом окне)
[ или ]
File (Файл) | Settings (Настройки) | Appearance & Behavior (Внешний вид и Поведение) | System Settings (Системные настройки) | Android SDK (Набор инструментов для разработки Android) | SDK Tools (SDK Инструменты) (находится в правом окне)
Отметьте Show Package Details (Показать детали пакета), затем последовательно выберите NDK и CMake, убедитесь, что соответствующие версии инструментов отмечены, Информация о версиях инструментов SDK находится в файле version.properties в корневом каталоге проекта AutoJs6.
Подготовка JDK
Для проекта AutoJs6 требуется версия JDK (Java Development Kit) не ниже 17, но рекомендуется не ниже 21.
По состоянию на 14 March 2026 года AutoJs6 поддерживает JDK максимальной версии 25.
Примечание: Если на компьютере уже установлен JDK и версия соответствует указанным требованиям, этот раздел можно пропустить.
JDK можно скачать непосредственно через IDE или на сайте Oracle.
Открыть страницу настроек Gradle JDK (любыми из следующих способов):
Help (Справка) | Find action (Найти действие) # Ввод "Gradle JDK"
[ или ]
File (Файл) | Settings (Настройки) # Поиск "Gradle"
[ или ]
File (Файл) | Settings (Настройки) | Build, Execution, Deployment (Сборка, Исполнение, Развёртывание) | Build Tools (Инструменты сборки) | Gradle
В разделе Gradle JDK можно выбрать или добавить разные версии JDK.
Если в списке уже существует подходящая версия JDK (>= 17), выберите её напрямую.
Либо можно выбрать Download JDK для загрузки соответствующего JDK, нажмите кнопку Download и дождитесь завершения загрузки.
Вы также можете выбрать Add JDK и добавить уже установленный JDK, указав его путь, для завершения добавления JDK.
Клонирование ресурсов AutoJs6
На главной странице Android Studio нажмите кнопку Get from VCS.
В поле URL введите https://github.com/SuperMonster003/AutoJs6.git,
В поле Directory можно указать нужный путь.
Нажмите кнопку Clone, и дождитесь, пока ресурсы проекта AutoJs6 склонируются на вашем устройстве.
Примечание: В процессе может потребоваться установка Git (система управления версиями).
Сборка проекта AutoJs6
После завершения клонирования Android Studio откроет окно проекта AutoJs6 и автоматически загрузит начальные зависимости Dependencies и выполнит сборку Gradle.
Примечание: Процесс может занять много времени. При плохом состоянии сети возможно потребуется несколько попыток (нажмите кнопку Retry).
Если сборка не может быть выполнена автоматически или вам нужно пересобрать проект, выполните следующие шаги:
- В меню
Run/Debug Configurationsна панели инструментов выберитеapp, это основное приложение AutoJs6 - Нажмите кнопку
Build Project(иконка молотка) слева, чтобы начать сборку проекта. Стандартное сочетание клавиш — CTRL + F9 - Дождитесь завершения сборки. Во вкладке
Builder Outputпоявится сообщение вроде "BUILD SUCCESSFUL in 1h 17m 34s"
Если сборка не удалась, вы можете сообщить об ошибке на странице Issues проекта AutoJs6.
Примечание: Для получения дополнительной информации о том, как собрать и запустить приложение, смотрите Android Docs
Развертывание проекта AutoJs6 (Запуск приложения)
После успешной сборки проекта его можно развернуть как приложение (App) на физическом устройстве (например, телефон/планшет) или на виртуальном устройстве (например, Android-эмулятор).
- На панели инструментов выберите
appв менюRun/Debug Configurations, это основное приложение AutoJs6 - В выпадающем списке
Available Devicesсправа выберите устройство, на котором должно запускаться приложение проекта (физическое или виртуальное) - Нажмите кнопку
Run(иконка треугольника) справа, чтобы запустить приложение. Стандартное сочетание клавиш —F10 - Дождитесь завершения развертывания; выбранное устройство автоматически установит и запустит приложение проекта
Развертывание проекта AutoJs6 (Создание APK)
Упакуйте проект и создайте APK-файл, который можно установить на устройства Android:
- Отладочная версия (Debug Version)
Build (Сборка)|Build Bundle(s) / APK(s)|Build APK(s)- Создание APK файла с отладочной подписью
- Пример пути:
"D:\AutoJs6\app\build\outputs\apk\debug\"
- Релизная версия (Release Version)
Build (Сборка)|Generate Signed Bundle / APK- Выберите опцию
APK - Подготовьте файл подписи (создайте или выберите), создайте подписанный релизный APK файл
- Пример пути:
"D:\AutoJs6\app\release\"
Примечание: Для получения дополнительной информации о том, как собрать приложение для выпуска, смотрите Android Docs
Предопределенные задачи сборки Gradle для AutoJs6
Помимо сборки приложения проекта, AutoJs6 поддерживает несколько предопределенных задач сборки Gradle, которые помогают разработчикам выполнять удобные операции, связанные с проектом.
В меню Run/Debug Configurations на панели инструментов вы можете увидеть различные предопределенные задачи Gradle, каждая из которых имеет значок слона слева.
- AutoJs6 [inrt:assemble]
Соберите вариант сборки "inrt", который в первую очередь предназначен для функции упаковки скриптов AutoJs6.
Проект AutoJs6 имеет различные варианты сборки. Вариант "inrt" используется для упаковки скриптов, создавая шаблонный файл "template.apk", необходимый для упаковки.
При использовании функции упаковки может возникнуть следующая ошибка:
java.io.FileNotFoundException: template.apk
Это указывает на то, что шаблонный файл отсутствует. Вы должны вручную запустить задачу inrt:assemble, чтобы создать шаблонный файл, а затем пересобрать и повторно развернуть приложение.
Примечание: Если изменяется код основного проекта и необходимо синхронизировать эти изменения с упакованным приложением, требуется повторно запустить задачу
inrt:assembleдля генерации шаблонных файлов и повторного развёртывания приложения
- AutoJs6 [app:bundle]
Упакуйте артефакты сборки в режиме отладки, в первую очередь для проекта определений AutoJs6.
После выполнения задачи генерируется последний JAR-файл проекта AutoJs6. С помощью инструмента Android d.ts Generator (от NativeScript) вы можете создать файлы определений типов (в формате d.ts) для основного приложения AutoJs6.
- AutoJs6 [app:digest]
Добавьте сводную информацию в APK, созданный релизной сборкой, что в первую очередь помогает определить финальное название файла перед публикацией последней версии AutoJs6 на GitHub.
Ниже приведено сравнение имен файлов до и после добавления сводной информации:
До:
autojs6-v6.6.2-arm64-v8a.apk
После:
autojs6-v6.6.2-arm64-v8a-0f2a9d74.apk
смотрите: Android Docs
Помощь в разработке скриптов
Для разработки скриптов, работающих в AutoJs6, используйте соответствующую среду разработки:
Для написания и отладки скриптов на ПК, плагин VSCode может обеспечить связь между ПК и телефоном:
- AutoJs6-VSCode-Extension - Отладчик AutoJs6 (плагин для платформы VSCode)
При написании кода в среде разработки функция автодополнения кода может значительно облегчить процесс разработки:
- AutoJs6-TypeScript-Declarations - Файлы объявлений AutoJs6 (автодополнение кода)
При написании кода вы можете в любой момент обращаться к документации по API и способам использования AutoJs6:
- AutoJs6-Documentation - Документация приложения AutoJs6
Существующие проекты по разработке скриптов могут служить источником вдохновения для вашего собственного проекта:
- Ant-Forest - Скрипт для автоматической работы с энергией в Ант Форест от TonyJiangWJ
- Ant-Forest - Скрипт для автоматической работы с энергией в Ант Форест от SuperMonster003
- autojs - Утилиты для Auto.js от e1399579
- autojsDemo - Демонстрационные примеры Auto.js от snailuncle
- Связанные репозитории autojs - Все репозитории на GitHub с темой autojs
Вклад участников
Благодарим всех участников проекта AutoJs6 за их вклад.
| Участники | Количество коммитов | Последние коммиты |
|---|---|---|
| Willie169 | 1 | 2026/03/03 |
LYS86 (Lin) |
4 | 2025/12/26 |
| wirsnow | 1 | 2025/05/19 |
| TonyJiangWJ | 4 | 2025/04/24 |
| luckyloogn | 3 | 2024/12/31 |
| kvii | 1 | 2024/10/16 |
chenguangming (Tom) |
2 | 2024/05/14 |
LZX284 (AI) |
7 | 2023/11/15 |
kojoe‑code (抠脚本人) |
12 | 2023/07/12 |
| aiselp | 6 | 2023/06/14 |
| Данные обновлены на 4 March 2026 года. |
Данные отсортированы по последним отправкам в порядке убывания.
Новые необработанные Pull Request будут учтены в статистике после объединения.
Некоторые участники не отображаются на GitHub Contributors, их записи пусты, но их вклад можно посмотреть через Pull Request.
