Files
AutoJs6/.readme/README-ru.md

76 KiB
Raw Blame History

autojs6-banner_800×224

Инструмент автоматизации на языке JavaScript для платформы Android с поддержкой службы доступности

GitHub release (latest by date) GitHub closed issues Created
Rhino Android Studio
CodeFactor Grade JetBrains supporter GitHub License


Языки


Текущий файл README.md поддерживает следующие языки:


Введение


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)

Окружение


  • Операционная система Android
  • API 24 (7.0) [N] и выше

Руководство



Основные изменения


По сравнению с окончательной версией с открытым исходным кодом 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

История версий


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.x issue #293
  • Исправление Проблема, при которой ScriptRuntime может испытывать проблемы синхронизации при использовании require для импорта встроенных модулей (предварительное решение) issue #298
  • Исправление Проблема, при которой в модуле notice отсутствуют методы расширения, такие как getBuilder issue #301
  • Исправление Проблема, при которой методы shizuku/shell не принимают строковые параметры issue #310
  • Исправление Проблема, при которой метод colors.pixel не принимает параметры с изображением одного канала issue #350
  • Исправление Проблема, при которой методы engines.execScript/execScriptFile используют некорректный рабочий каталог по умолчанию при выполнении скриптов issue #358 issue #340 issue #339
  • Исправление Проблема, при которой floaty.window/floaty.rawWindow не могут выполняться в дополнительных потоках
  • Исправление Проблема, при которой floaty.getClip может неправильно получать содержимое буфера обмена issue #341
  • Исправление Проблема, при которой результат ui.inflate лишён методов прототипа, таких как attr, on и click
  • Исправление Проблема, при которой некорректно связывается контекст области видимости при использовании XML-синтаксиса для задания выражения JavaScript в качестве значения атрибута issue #319
  • Исправление Проблема, при которой исключения некоторых методов не перехватываются блоком try..catch issue #345
  • Исправление Проблема, при которой генерация кода на странице анализа макета может приводить к сбою приложения issue #288
  • Исправление Проблема, при которой упакованные приложения не могут корректно использовать модуль shizuku issue #227 issue #231 issue #284 issue #287 issue #304
  • Исправление Проблема, при которой в редакторе кода переход к концу строки может перемещать курсор в начало следующей строки
  • Исправление Проблема, при которой быстрые последовательные нажатия на диалоговые элементы в настройках могут приводить к сбою приложения
  • Улучшение Оптимизация размера файла APK в шаблоне упакованных приложений
  • Улучшение Приложение (и упакованные приложения) теперь поддерживают больше разрешений issue #338
  • Улучшение Добавлена опция для библиотеки Pinyin на странице упаковки
  • Улучшение Оптимизация фона строки состояния и цвета текста на главном экране упакованных приложений
  • Улучшение Добавлены переключатели для специальных разрешений (доступ ко всем файлам и отправка уведомлений) на странице настроек упакованных приложений issue #354
  • Улучшение Цвета текста и иконок элементов управления автоматически адаптируются в зависимости от яркости темы
  • Улучшение Улучшение визуального восприятия при низком контрасте между цветом элемента и его фоном
  • Улучшение Улучшена совместимость поля ввода HEX в палитре цветов при вставке значений из буфера обмена
  • Улучшение Панель навигации приложения теперь может быть прозрачной или полупрозрачной для улучшения визуального восприятия
  • Улучшение Режим UI по умолчанию для строки состояния и панели навигации установлен на цвет md_grey_50 в светлом режиме
  • Улучшение Переключатель службы доступности в боковом меню главного экрана теперь синхронизируется с кодом скрипта
  • Улучшение На странице документации главного экрана добавлены кнопки двунаправленного поиска
  • Улучшение Вкладка «Файлы» на главном экране позволяет изменять видимость плавающей кнопки посредством длительного нажатия
  • Улучшение Заголовок редактора кода теперь автоматически настраивает размер шрифта
  • Улучшение Видимость плавающей кнопки на странице журналов теперь связана с действиями прокрутки списка
  • Улучшение Файл конфигурации project.json для проекта скрипта теперь поддерживает больше опций упаковки issue #305 issue #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/longClick issue #275
  • Исправление Ошибка, из-за которой селекторы не поддерживали параметры типа ConsString issue #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 #202 issue #223 pr #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 (выберите одну из них по необходимости):

Примечание: Указанная версия была выпущена 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.

По состоянию на 19 April 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 может обеспечить связь между ПК и телефоном:

При написании кода в среде разработки функция автодополнения кода может значительно облегчить процесс разработки:

При написании кода вы можете в любой момент обращаться к документации по API и способам использования AutoJs6:

Существующие проекты по разработке скриптов могут служить источником вдохновения для вашего собственного проекта:


Вклад участников


Благодарим всех участников проекта 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
littlealei (抠脚本人) 12 2023/07/12
aiselp 6 2023/06/14
LYS86 (Lin) 2 2023/06/03

Данные обновлены на 1 January 2025 г..

Данные отсортированы по последним отправкам в порядке убывания.

Новые необработанные Pull Request будут учтены в статистике после объединения.

Некоторые участники не отображаются на GitHub Contributors, их записи пусты, но их вклад можно посмотреть через Pull Request.