76 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 |
| Auto.js Pro 7 | Auto.js | hyb1996 | 2019/03/13 |
2019/07/08 |
| Auto.js Pro 8 | AutoJsPro | hyb1996 | 2019/10/13 |
2021/07/24 |
| Auto.js | Auto.js M | TonyJiangWJ | 2019/11/21 |
- |
| AutoX | Autox.js | kkevsekk1 | 2020/07/24 |
- |
| Auto.js Pro 9 | AutoJsPro | hyb1996 | 2021/03/28 |
2023/02/09 |
| AutoJs6 | AutoJs6 | SuperMonster003 | 2021/12/01 |
- |
| AutoX | Autox.js v6 | wilinz | 2022/05/26 |
- |
| AutoX | Autox.js v7 | aiselp | 2024/04/21 |
- |
Даты в таблице являются оценочными и могут отличаться от фактических.
В таблице Auto.js Pro 7/8/9 указаны как платные версии, остальные являются бесплатными версиями с открытым исходным кодом.
Функции
- Можно использовать в качестве 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 до версии v1.8.1-SNAPSHOT
- Поддержка 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.6.2
2025/04/16
НовоеМетоды, такие как ui.statusBarAppearanceLight, statusBarAppearanceLightBy и navigationBarColor и т.д.НовоеАтрибут ui.statusBarHeight (getter), используемый для получения высоты строки состоянияissue #357НовоеМетод images.flip для переворачивания изображенийissue #349НовоеДобавлена опция «расширение файла» на странице настроекНовоеСтраница настройки темы теперь поддерживает новый макет (группировка, позиционирование, поиск, история, улучшенная цветовая палитра и т.д.)ИсправлениеПроблема, при которой цвет фона строки состояния на Android 15 не соответствует цвету темыИсправлениеПроблема, при которой метод plugins.load не загружает плагины корректноissue #290ИсправлениеПроблема, при которой библиотека dx работает некорректно на Android 7.xissue #293ИсправлениеПроблема, при которой ScriptRuntime может испытывать проблемы синхронизации при использовании require для импорта встроенных модулей (предварительное решение)issue #298ИсправлениеПроблема, при которой в модуле notice отсутствуют методы расширения, такие как getBuilderissue #301ИсправлениеПроблема, при которой методы shizuku/shell не принимают строковые параметрыissue #310ИсправлениеПроблема, при которой метод colors.pixel не принимает параметры с изображением одного каналаissue #350ИсправлениеПроблема, при которой методы engines.execScript/execScriptFile используют некорректный рабочий каталог по умолчанию при выполнении скриптовissue #358issue #340issue #339ИсправлениеПроблема, при которой floaty.window/floaty.rawWindow не могут выполняться в дополнительных потокахИсправлениеПроблема, при которой floaty.getClip может неправильно получать содержимое буфера обменаissue #341ИсправлениеПроблема, при которой результат ui.inflate лишён методов прототипа, таких как attr, on и clickИсправлениеПроблема, при которой некорректно связывается контекст области видимости при использовании XML-синтаксиса для задания выражения JavaScript в качестве значения атрибутаissue #319ИсправлениеПроблема, при которой исключения некоторых методов не перехватываются блоком try..catchissue #345ИсправлениеПроблема, при которой генерация кода на странице анализа макета может приводить к сбою приложенияissue #288ИсправлениеПроблема, при которой упакованные приложения не могут корректно использовать модуль shizukuissue #227issue #231issue #284issue #287issue #304ИсправлениеПроблема, при которой в редакторе кода переход к концу строки может перемещать курсор в начало следующей строкиИсправлениеПроблема, при которой быстрые последовательные нажатия на диалоговые элементы в настройках могут приводить к сбою приложенияУлучшениеОптимизация размера файла APK в шаблоне упакованных приложенийУлучшениеПриложение (и упакованные приложения) теперь поддерживают больше разрешенийissue #338УлучшениеДобавлена опция для библиотеки Pinyin на странице упаковкиУлучшениеОптимизация фона строки состояния и цвета текста на главном экране упакованных приложенийУлучшениеДобавлены переключатели для специальных разрешений (доступ ко всем файлам и отправка уведомлений) на странице настроек упакованных приложенийissue #354УлучшениеЦвета текста и иконок элементов управления автоматически адаптируются в зависимости от яркости темыУлучшениеУлучшение визуального восприятия при низком контрасте между цветом элемента и его фономУлучшениеУлучшена совместимость поля ввода HEX в палитре цветов при вставке значений из буфера обменаУлучшениеПанель навигации приложения теперь может быть прозрачной или полупрозрачной для улучшения визуального восприятияУлучшениеРежим UI по умолчанию для строки состояния и панели навигации установлен на цветmd_grey_50в светлом режимеУлучшениеПереключатель службы доступности в боковом меню главного экрана теперь синхронизируется с кодом скриптаУлучшениеНа странице документации главного экрана добавлены кнопки двунаправленного поискаУлучшениеВкладка «Файлы» на главном экране позволяет изменять видимость плавающей кнопки посредством длительного нажатияУлучшениеЗаголовок редактора кода теперь автоматически настраивает размер шрифтаУлучшениеВидимость плавающей кнопки на странице журналов теперь связана с действиями прокрутки спискаУлучшениеФайл конфигурации project.json для проекта скрипта теперь поддерживает больше опций упаковкиissue #305issue #306УлучшениеФайл project.json теперь поддерживает гибкое сопоставление наименований опций и совместимость с псевдонимамиУлучшениеДиалоговое окно информации о типе файла APK теперь включает информацию о размере файла и схеме подписиУлучшениеДиалоговое окно информации о типе файла APK теперь поддерживает обработчики кликов для копирования текста и перехода к информации о приложенииУлучшениеПопытка восстановить пакеты с префиксом com.stardust для повышения совместимости кодаissue #290УлучшениеМетоды floaty.window/floaty.rawWindow теперь поддерживают выполнение как в основном, так и в дополнительных потокахУлучшениеГлобальный метод getClip теперь использует floaty.getClip при необходимости для повышения совместимостиУлучшениеУлучшена совместимость методов files.path и связанных с ним при передаче значения null для путиУлучшениеСинхронизация с последней официальной версией движка Rhino и необходимые адаптации кодаУлучшениеУлучшение README.md с целью лучшей документации сборки и запуска проектаissue #344УлучшениеИзменения версий некоторых зависимостей или локальных библиотекCHANGELOG.md
v6.6.1
2025/01/01
НовоеМодуль Pinyin для преобразования китайского пиньиня (См. документацию проекта > Китайский Пиньинь)НовоеМодуль Pinyin4j для преобразования китайского пиньиня (См. документацию проекта > Китайский Пиньинь)НовоеМетоды UiObject#isSimilar и UiObjectCollection#isSimilar для определения, схожи ли элементы управления или их коллекцииНовоеГлобальный метод "currentComponent", используемый для получения информации о названии текущего активного компонентаИсправлениеОшибка, из-за которой проект не мог быть корректно скомпилирован в некоторых средах из-за отката на предыдущую версиюИсправлениеИсключение "непримитивное значение", которое могло возникать при вызове несуществующих методовИсправлениеОшибка, из-за которой ярлыки скриптов не могли быть корректно добавлены на некоторых устройствах (промежуточное исправление)issue #221ИсправлениеОшибка ограничения типа параметров для методов automator.click/longClickissue #275ИсправлениеОшибка, из-за которой селекторы не поддерживали параметры типа ConsStringissue #277ИсправлениеОшибка, из-за которой экземпляры UiObjectCollection теряли собственные методы и свойстваУлучшениеСтраница упаковки поддерживает настройку подписи, управление хранилищем ключей и настройку разрешений (автор luckyloogn)pr #286УлучшениеУлучшена точность распознавания текущего имени пакета и имени активности для плавающего окна (приоритет: Shizuku > Root > A11Y)УлучшениеУлучшена точность распознавания currentPackage и currentActivity (приоритет: Shizuku > Root > A11Y)УлучшениеВосстановлена возможность выбора текста в отдельных записях в окне лога двойным щелчком или длительным нажатиемissue #280УлучшениеМаксимальное восстановление ключевой информации для проектов скриптов в случае повреждения файла project.jsonУлучшениеАвтоматическая конвертация упрощенного китайского в пиньинь (включая многозначные символы) для суффиксов пакетов, создаваемых при упаковке отдельных файловУлучшениеПоддержка отрицательных аргументов в методах UiSelector#findOnce и UiSelector#findУлучшениеУлучшена адаптивность методов app.startActivity/startDualActivityУлучшениеПоддержка дополнительных сокращённых форм префиксов имён пакетов в селекторах, связанных с элементами UI и className (например, RecyclerView, Snackbar и т. д.)УлучшениеСинхронизировать последний код из официального репозитория Rhino и адаптировать его к существующему проектуУлучшениеИзменения версий некоторых зависимостей или локальных библиотекCHANGELOG.md
v6.6.0
2024/12/02 - Переписаны встроенные модули, обновляйте осторожно
ПодсказкаВстроенные модули переписываются на Kotlin для повышения эффективности выполнения сценариев, но необходимы итеративные улучшения.ПодсказкаВстроенный файл init.js по умолчанию пуст, что позволяет разработчикам расширять встроенные модули или монтировать внешние модули.НовоеМодуль Axios / Модуль Cheerio (Ссылка на AutoX)НовоеМодуль SQLite для простых операций с базами данных SQLite (Ссылка на Auto.js Pro) (См. документацию проекта > SQLite)НовоеМодуль MIME для обработки и анализа строк MIME-типов (См. документацию проекта > MIME)НовоеМодуль Nanoid для генерации строковых идентификаторов (Ссылка на ai/nanoid)НовоеМодуль Sysprops для получения данных конфигурации среды выполнения (См. документацию проекта > Системные свойства)НовоеМодуль OCR поддерживает движок Rapid OCRНовоеАнализ макета поддерживает изменение окна (Ссылка на Auto.js Pro)НовоеМетод auto.clearCache поддерживает очистку кешей управления (Ссылка на Auto.js Pro)НовоеМетод threads.pool поддерживает простое применение пулов потоков (Ссылка на Auto.js Pro)НовоеМетод images.matchTemplate добавляет параметр опции useTransparentMask для поддержки поиска прозрачного изображения (Ссылка на Auto.js Pro)НовоеМетод images.requestScreenCaptureAsync позволяет запрашивать разрешения на запись экрана асинхронно в режиме интерфейса (Ссылка на Auto.js Pro)НовоеМетод images.requestScreenCapture добавляет параметр опции isAsync для поддержки асинхронного захвата экрана (Ссылка на Auto.js Pro)Новоеimages.on('screen_capture', callback) и другие методы прослушивания событий поддерживают прослушивание событий доступности захвата экрана (Ссылка на Auto.js Pro)НовоеМетод images.stopScreenCapture поддерживает активное освобождение ресурсов, связанных с приложениями захвата экрана (Ссылка на Auto.js Pro)НовоеМетоды Images.psnr/mse/ssim/mssim/hist/ncc и images.getSimilarity для получения метрик сходства изображенийНовоеМетод images.isGrayscale для определения, является ли изображение в градациях серогоНовоеМетод images.invert для преобразования изображения в негативНовоеМетоды s13n.point/time для нормализации объектов точки и времени (См. документацию проекта > Нормализация)НовоеМетоды gravity, touchThrough, backgroundTint модуля console (См. документацию проекта > Консоль)НовоеМетоды Mathx.randomInt/Mathx.randomFloat для возврата случайных целых чисел или чисел с плавающей точкой в указанном диапазонеНовоеМетоды app.launchDual/startDualActivity для управления двойным запуском приложений (Требуются права Shizuku или Root) (Экспериментально)НовоеМетод app.kill для принудительного остановки приложения (Требуются права Shizuku или Root)НовоеМетод floaty.getClip для получения содержимого буфера обмена через плавающее окноИсправлениеУтечка памяти в View Binding подклассов Fragment (например, DrawerFragment / ExplorerFragment)ИсправлениеУтечка экземпляра в таких классах, как ScreenCapture / ThemeColorPreferenceИсправлениеПроблема, вызывающая сбой приложения при запросе разрешений на запись экрана на Android 14 (от chenguangming)pr #242ИсправлениеПроблема, вызывающая сбой приложения при запуске службы на переднем плане на Android 14ИсправлениеПроблема с кнопкой запуска в редакторе кода, которая не загорается правильно на Android 14ИсправлениеПриложение может работать неправильно после упаковки из-за отсутствия необходимых файлов библиотекиissue #202issue #223pr #264ИсправлениеСбой приложения при редактировании проекта из-за отсутствия указанных ресурсов значковissue #203ИсправлениеНевозможность правильно использовать параметры для получения ресурсов захвата экрана указанной ориентации при запросе разрешений на запись экранаИсправлениеПроблема с некоторыми устройствами, неспособностью правильно добавлять ярлыки для сценариев (Пробная поправка)issue #221ИсправлениеПроблема кумулятивной задержки отправки запросов с методами, связанными с отправкой запросов в HTTP модулеissue #192ИсправлениеСервис Shizuku может работать неправильно перед тем, как AutoJs6 войдет в главную страницу активности (Пробная поправка)issue #255ИсправлениеМетод random(min, max) может иметь выходящие за пределы результатыИсправлениеПроблема, при которой параметр типа результата методов pickup не может корректно пройти пустые массивыИсправлениеПроблема, при которой прямоугольник управления, полученный методом UiObject#bounds(), может быть случайно изменен, нарушая его неизменяемостьИсправлениеПроблема с текстовыми/кнопочными/вводными элементами, где текст, содержащий узкие двойные кавычки, не может быть правильно проанализированИсправлениеПроблема с элементами text/textswitcher, где функция автоссылки атрибута не работаетИсправлениеПроблема, при которой различные скрипты по ошибке делят один и тот же объект ScriptRuntimeИсправлениеПроблема, при которой глобальные переменные HEIGHT и WIDTH теряют создаваемые динамически свойства GetterИсправлениеПроблема с потенциально высоким временем запуска, вызванным загрузкой RootShell при запуске скриптаИсправлениеПроблема с настройкой цвета фона плавающего окна консоли, приводящая к потере стиля закругленного прямоугольникаИсправлениеАвтозапуск службы доступа может сталкиваться с аномальной проблемой службы (Пробная поправка)ИсправлениеПроблема с триггером изменения ViewPager при проведении по контролю WebView влево или вправо на странице документа домашней страницыИсправлениеПроблема с файловым менеджером, который не может распознать расширения файлов, содержащих заглавные буквыИсправлениеФайловый менеджер может не распознавать проект автоматически при первом входе в каталог проектаИсправлениеПроблема с тем, что страница файлового менеджера не может автоматически обновляться после удаления папкиИсправлениеПроблема с сортировкой файлов и папок в файловом менеджере, где символы с начальной буквой ASCII размещены в концеИсправлениеИсключение 'FAILED ASSERTION' в функции отладки редактора кодаИсправлениеПроблема возможности неподдерживанием корректной отладки после закрытия редактора во время процесса отладки редактора кодаИсправлениеПроблема с потенциальным пропуском символов при переходе в конец строки в редакторе кодаИсправлениеПроблема с мерцанием экрана при запуске страницы активности журнала на главной странице активностиИсправлениеПроблема с упакованным приложением, не способным корректно использовать модуль openccУлучшениеИндикация клика для контроля "ABI недоступно" на странице пакетаУлучшениеПоддержка использования Shizuku для управления переключателем отображения "Местоположение указателя"УлучшениеПоддержка использования Shizuku для управления переключателями разрешения "Медиа проекции" и "Изменение безопасных настроек"УлучшениеAutomator.gestureAsync/gesturesAsync поддерживает параметры функции обратного вызоваУлучшениеМодуль tasks использует синхронный метод для операций с базой данных, чтобы избежать потенциальных несоответствий при доступе к даннымУлучшениеСценарий выполнения поддерживает настройку режима разделения символами пайплайна (например, начиная с"ui|auto";)УлучшениеСценарий выполнения поддерживает одиночные и обратные кавычки и позволяет опускать точки с запятой (например, начиная с'ui';или'ui')УлучшениеСценарий выполнения поддерживает быструю импорт встроенных модулей расширения, таких как axios, cheerio и dayjs (например, начиная с"axios";)УлучшениеСценарий выполнения поддерживает параметры x или jsox для быстрого включения встроенных расширений объектов JavaScript (например, начиная с"x";)УлучшениеАтрибуты src и path элемента img поддерживают локальные относительные пути (например,<img src="a.png" />)УлучшениеРедактор кода поддерживает интеллектуальное определение места вставки при импорте Java классов и пакетов именУлучшениеМодуль images поддерживает использование путей напрямую в качестве параметров изображенийУлучшениеimportPackage поддерживает строковые параметрыУлучшениеIP-адрес в режиме сервера поддерживает импорт из буфера обмена с интеллектуальным определением и конверсией с пробеломУлучшениеФайловый менеджер поддерживает выбор префиксов по умолчанию при создании новых файлов и автоматически генерирует подходящее числовое расширениеУлучшениеФайловый менеджер четко уведомляет об ошибке при выполнении проектаissue #268УлучшениеФайловый менеджер поддерживает больше типов и отображает соответствующие значки (поддерживает более 800 типов файлов)УлучшениеРедактируемые типы файлов (jpg/doc/pdf и т.д.) в файловом менеджере добавлены кнопки для редактированияУлучшениеAPK-файлы в файловом менеджере поддерживают просмотр базовой информации, информации о манифесте и списке разрешенийУлучшениеМультимедийные аудио/видео файлы в файловом менеджере поддерживают просмотр базовой информации и MediaInfoУлучшениеУпаковка файлов в одном пакете поддерживает автоматическое заполнение стандартизированного имени пакета и индикацию фильтра недопустимого символаУлучшениеУпаковка файлов в одном пакете поддерживает автоматическую настройку значка и автоинкремент номера и имени версии на основе приложений с тем же установленным именем пакетаУлучшениеНастройка конфигурации пакета поддерживает опции abis/libs для указания включенной по умолчанию библиотеки и архитектуры ABIУлучшениеПредоставляет предупреждения о релевантных сообщениях, когда настройки abis/libs конфигурационного файла пакета недействительны или недоступныУлучшениеLeakCanary исключен из официального релиза для предотвращения ненужного увеличенияУлучшениеВсе английские комментарии в исходном коде проекта сопровождаются переводами на упрощенный китайский для улучшения читаемостиУлучшениеREADME и CHANGELOG поддерживают несколько языков (автоматически генерируются скриптом)УлучшениеУлучшить адаптируемость версии скрипта сборки GradleУлучшениеИзменения версий некоторых зависимостей или локальных библиотекCHANGELOG.md
Для получения более подробной информации о версиях см. раздел
Компиляция и сборка проекта
Для отладки или разработки проекта AutoJs6 с открытым исходным кодом можно использовать Android Studio (продукт компании Google) или IntelliJ IDEA (продукт компании Jetbrains).
В данном разделе приведён пример методов компиляции и сборки для проекта AutoJs6 с использованием Android Studio. IntelliJ IDEA аналогичен.
Подготовка Android Studio
Скачайте версию Android Studio Meerkat | 2024.3.1 Patch 1 (выберите одну из них по необходимости):
- android-studio-2024.3.1.14-windows.exe (1.22 GB)
- android-studio-2024.3.1.14-windows.zip (1.23 GB)
Примечание: Указанная версия была выпущена 24 March 2025 года. Для загрузки других версий или если указанная ссылка недействительна, посетите страницу архива версий Android Studio.
Установите или распакуйте указанные файлы, запустите программное обеспечение Android Studio (например, "D:\android-studio\bin\studio64.exe").
Подготовка Android SDK
Примечание: Если на компьютере уже установлен Android SDK, раздел может быть пропущен.
Используйте сочетание клавиш CTRL + ALT + S для открытия страницы настроек в Android Studio:
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, раздел может быть пропущен.
Используйте сочетание клавиш CTRL + ALT + S для открытия страницы настроек в Android Studio:
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, но рекомендуется не ниже 19.
По состоянию на 2 May 2025 года AutoJs6 поддерживает JDK максимальной версии 24.
Примечание: Если на компьютере уже установлен JDK и версия соответствует указанным требованиям, этот раздел можно пропустить.
JDK можно скачать непосредственно через IDE или на сайте Oracle.
В программном обеспечении Android Studio используйте сочетание клавиш CTRL + ALT + S для открытия страницы настроек:
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 за их вклад.
| Участники | Количество коммитов | Последние коммиты |
|---|---|---|
| luckyloogn | 3 | 2025/01/01 |
| kvii | 1 | 2024/10/16 |
chenguangming (Tom) |
2 | 2024/05/14 |
LZX284 (AI) |
17 | 2023/11/19 |
| TonyJiangWJ | 4 | 2023/10/31 |
little‑alei (抠脚本人) |
12 | 2023/07/12 |
| aiselp | 6 | 2023/06/14 |
LYS86 (Lin) |
2 | 2023/06/03 |
Данные обновлены на 1 January 2025 года.
Данные отсортированы по последним отправкам в порядке убывания.
Новые необработанные Pull Request будут учтены в статистике после объединения.
Некоторые участники не отображаются на GitHub Contributors, их записи пусты, но их вклад можно посмотреть через Pull Request.
