57 KiB
Herramienta de automatización JavaScript que soporta servicios de accesibilidad en la plataforma Android
Idiomas
El archivo actual README.md admite los siguientes idiomas:
- 简体中文 [zh-Hans]
- 繁體中文 (香港) [zh-Hant-HK]
- 繁體中文 (台灣) [zh-Hant-TW]
- English [en]
- Français [fr]
- Español [es] # actualmente
- 日本語 [ja]
- 한국어 [ko]
- Русский [ru]
- العربية [ar]
Introducción
Auto.js es una herramienta de automatización para la plataforma Android que admite servicios de accesibilidad.
Auto.js fue lanzado por hyb1996 el 27/01/2017 y dejó de ser mantenido el 13/03/2020, con su versión final denominada 4.1.1 Alpha2 y número de construcción 461.
AutoJs6 se desarrolló sobre el proyecto final de Auto.js el 01/12/2021 y continúa siendo gratuito y de código abierto.
La siguiente tabla enumera algunos proyectos relacionados con Auto.js (ordenados por fecha de desarrollo):
| Proyecto | Nombre de la app | Desarrollador | Fecha de inicio del desarrollo | Fecha de finalización del desarrollo |
|---|---|---|---|---|
| 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 |
- |
Las fechas en la tabla son estimadas y pueden no coincidir con las reales.
En la tabla, Auto.js Pro 7/8/9 son versiones pagas, mientras que las demás son versiones gratuitas y de código abierto.
Funciones
- Puede utilizarse como IDE de JavaScript (autocompletado/renombrado de variables/formateo de código)
- Soporte para operaciones automatizadas basadas en el servicio de accesibilidad
- Soporte para acciones rápidas con botón flotante (grabación y ejecución de scripts/visualización del nombre del paquete y actividad/análisis de diseño)
- Soporte para la API de selectores proporcionando recorridos y acciones de control sobre los elementos (similar a UiAutomator)
- Soporte para análisis de interfaz de diseño (similar al LayoutInspector de Android Studio)
- Soporte para grabación y reproducción de grabaciones
- Soporte para captura de pantalla/guardar capturas/búsqueda de color en imágenes/matching de imágenes
- Soporte para escribir interfaces usando E4X (ECMAScript para XML)
- Soporte para empaquetar archivos o proyectos de scripts en archivos APK
- Soporte para funcionalidades extendidas utilizando permisos Root (clic y deslizamiento de pantalla/grabar/Shell)
- Soporte para su uso como un complemento de Tasker
- Soporte para la integración con VSCode para desarrollo de escritorio (requiere el AutoJs6-VSCode-Extension)
Entorno
Manual
- Documentación de la aplicación
- Manual del usuario (Por escribir)
- Solución de problemas
- Compilación y construcción del proyecto
- Asistencia en el desarrollo de scripts
Principales cambios
En comparación con la versión final de Auto.js 4.1.1 Alpha2, AutoJs6 ha realizado las siguientes actualizaciones o cambios principales:
- Soporte para obtener privilegios ADB usando Shizuku y usar las API del sistema
- Soporte para construir instancias de WebSocket para realizar solicitudes de red basadas en el protocolo WebSocket
- Nuevos módulos [ base64 / crypto / sqlite / i18n / notice / ocr / opencc / qrcode / shizuku / ... ]
- Soporte multilingüe [Español / Francés / Ruso / Árabe / Japonés / Coreano / Inglés / Chino Simplificado / Chino Tradicional / ...]
- Adaptation des couleurs du thème [ Groupement / Localisation / Recherche / Historique / Adaptation automatique de la luminosité et du contraste / ... ]
- Soporte para modo nocturno en varias páginas [ página de configuración / página de documentación / página de análisis de diseño / ventana flotante / ... ]
- El complemento de VSCode soporta conexiones cliente (LAN) y servidor (LAN/ADB)
- El motor Rhino se ha actualizado de v1.7.7.2 a v1.8.1-SNAPSHOT
- Soporte para secuencias de escape de puntos de código Unicode plano suplementario
'\u{1D160}'; /* significa "𝅘𝅥𝅮", método tradicional: '\uD834\uDD60'. */ - Soporte para Object.values()
Object.values({name: 'Max', age: 4}); // ['max', 4] - Soporte para Array.prototype.includes()
[10, 20, NaN].includes(20); // true - Soporte para BigInt
typeof 567n === 'bigint'; // true - Soporte para plantillas de cadena
`Lucky number: ${(Math.random() * 100).toFixed(0)}` - Consulta más características nuevas del motor Rhino
- Consulta la lista de compatibilidad del motor Rhino
- Soporte para secuencias de escape de puntos de código Unicode plano suplementario
Historial de versiones
v6.6.2
2025/04/16
NuevoMétodos como ui.statusBarAppearanceLight, statusBarAppearanceLightBy y navigationBarColor, etc.NuevoAtributo ui.statusBarHeight (getter), utilizado para obtener la altura de la barra de estadoissue #357NuevoMétodo images.flip para voltear imágenesissue #349NuevoSe añadió la opción 'extensión de archivo' en la página de configuraciónNuevoLa página de configuración del color del tema añade soporte para nuevos diseños (agrupación, posicionamiento, búsqueda, historial, mejora del selector de color, etc.)CorrecciónProblema en el que el color de fondo de la barra de estado de Android 15 no coincide con el color del temaCorrecciónProblema en el que el método plugins.load no carga correctamente los pluginsissue #290CorrecciónProblema en el que la biblioteca dx no funciona correctamente en Android 7.xissue #293CorrecciónProblema en el que ScriptRuntime puede presentar un estado de sincronización anómalo al utilizar require para importar módulos integrados (solución tentativa)issue #298CorrecciónProblema en el que el módulo notice carece de métodos de extensión como getBuilderissue #301CorrecciónProblema en el que los métodos shizuku/shell no aceptan parámetros de tipo cadenaissue #310CorrecciónProblema en el que el método colors.pixel no acepta parámetros con imágenes de un solo canalissue #350CorrecciónProblema en el que los métodos engines.execScript / execScriptFile asignan de forma anómala el directorio de trabajo predeterminado al ejecutar scriptsissue #358issue #340issue #339CorrecciónProblema en el que floaty.window / floaty.rawWindow no puede ejecutarse en subprocesosCorrecciónProblema en el que floaty.getClip puede no obtener correctamente el contenido del portapapelesissue #341CorrecciónProblema en el que el retorno de ui.inflate pierde métodos de prototipo como attr, on y clickCorrecciónProblema en el que se produce un enlace incorrecto del contexto de ámbito al utilizar la sintaxis XML para usar una expresión JavaScript como valor de atributoissue #319CorrecciónProblema en el que algunas llamadas a métodos, al producir excepciones, no son capturadas por bloques try..catchissue #345CorrecciónProblema en el que la generación de código en la página de análisis de layouts puede provocar que la aplicación se bloqueeissue #288CorrecciónProblema en el que las aplicaciones empaquetadas no pueden utilizar correctamente el módulo shizukuissue #227issue #231issue #284issue #287issue #304CorrecciónProblema en el que el editor de código, al saltar al final de una línea, puede mover el cursor al inicio de la siguiente líneaCorrecciónProblema en el que pulsaciones rápidas consecutivas en elementos tipo diálogo de la página de configuración pueden provocar que la aplicación se bloqueeMejoraOptimización del tamaño del archivo APK en la plantilla de aplicaciones empaquetadasMejoraLa aplicación (y las aplicaciones empaquetadas) ahora soportan más permisosissue #338MejoraLa página de empaquetado añade la opción para la biblioteca PinyinMejoraOptimización del fondo de la barra de estado y del color del texto en la página principal de la aplicación empaquetadaMejoraLa página de configuración de la aplicación empaquetada añade interruptores para permisos especiales (acceso a todos los archivos y envío de notificaciones)issue #354MejoraLos textos e iconos de los controles cambian automáticamente a un color adecuado en función de la luminosidad del temaMejoraMejora en la experiencia visual cuando el contraste entre el color del tema de un control y su fondo es bajoMejoraMejora en la compatibilidad del control de entrada HEX en la paleta de colores al pegar valores desde el portapapelesMejoraLa barra de navegación de la aplicación se configura para ser transparente o semi-transparente y así mejorar la experiencia visualMejoraEl modo UI por defecto de la barra de estado y de la barra de navegación se establece en el colormd_grey_50en modo claroMejoraEl interruptor del servicio de accesibilidad en el cajón de la página principal ahora se sincroniza con el código del scriptMejoraLa página de documentación de la página principal ahora soporta botones de búsqueda bidireccionalesMejoraLa pestaña 'Archivos' de la página principal permite cambiar la visibilidad del botón flotante mediante pulsación prolongadaMejoraEl título del editor de código ahora soporta el ajuste automático del tamaño de la fuenteMejoraLa visibilidad del botón flotante en la página de registros se vincula a las acciones de desplazamiento de la listaMejoraEl archivo de configuración project.json del proyecto de script ahora soporta más opciones de empaquetadoissue #305issue #306MejoraEl archivo project.json ahora admite coincidencia flexible de nombres de opción y compatibilidad con aliasMejoraEl diálogo de información de tipo de archivo APK ahora incluye el tamaño del archivo y la información del esquema de firmaMejoraEl diálogo de información de tipo de archivo APK ahora admite escuchas de clic para copiar texto y navegar a los detalles de la aplicaciónMejoraIntento de restaurar los paquetes con prefijo com.stardust para mejorar la compatibilidad del códigoissue #290MejoraLos métodos floaty.window / floaty.rawWindow ahora soportan la ejecución tanto en el hilo principal como en hilos secundariosMejoraEl método global getClip ahora utiliza floaty.getClip según sea necesario para mejorar la compatibilidadMejoraMejora en la compatibilidad de files.path y métodos relacionados al recibir rutas nulasMejoraSincronización con la última versión oficial del motor Rhino y adaptación necesaria del códigoMejoraMejoras en el README.md para documentar la construcción y ejecución del proyectoissue #344MejoraAjustes en algunas dependencias o versiones de bibliotecas localesCHANGELOG.md
v6.6.1
2025/01/01
NuevoMódulo Pinyin para la conversión de pinyin en chino (Consulte la documentación del proyecto > Pinyin chino)NuevoMódulo Pinyin4j para la conversión de pinyin en chino (Consulte la documentación del proyecto > Pinyin chino)NuevoMétodos UiObject#isSimilar y UiObjectCollection#isSimilar para determinar si un control o una colección de controles son similaresNuevoMétodo global "currentComponent", utilizado para obtener el nombre del componente activo actualCorrecciónProblema donde no se podía compilar correctamente el proyecto en determinados entornos debido a una reversión a una versión anteriorCorrecciónExcepción de "valor no primitivo" que puede ocurrir al llamar a métodos inexistentesCorrecciónProblema donde los accesos directos de scripts no se podían agregar correctamente en algunos dispositivos (arreglo tentativa)issue #221CorrecciónRestricción de tipo de parámetro incorrecta en los métodos automator.click/longClickissue #275CorrecciónProblema donde los selectores no admitían parámetros del tipo ConsStringissue #277CorrecciónProblema donde las instancias de UiObjectCollection carecían de métodos y propiedades propiosMejoraLa página de empaquetado admite configuración de firma, gestión de almacenes de claves y configuración de permisos (por luckyloogn)pr #286MejoraMejorada la precisión en la identificación del nombre del paquete y de la actividad actual de la ventana flotante (Prioridad: Shizuku > Root > A11Y)MejoraMejorada la precisión en la identificación de currentPackage y currentActivity (Prioridad: Shizuku > Root > A11Y)MejoraRestaurar la capacidad de seleccionar el contenido del texto de entradas individuales en la ventana de actividad del registro mediante doble clic o pulsación largaissue #280MejoraRecuperar la mayor cantidad de información crítica posible para proyectos de scripts cuando el archivo project.json está dañadoMejoraConvertir automáticamente chino simplificado a Pinyin (incluyendo caracteres con múltiples tonos) para los sufijos de nombres de paquetes generados al empaquetar archivos individualesMejoraSoporte para argumentos negativos en los métodos UiSelector#findOnce y UiSelector#findMejoraSe mejoró la adaptabilidad de los métodos app.startActivity/startDualActivityMejoraMayor soporte para formas abreviadas de prefijos de nombres de paquetes en selectores relacionados con elementos UI y className (por ejemplo, RecyclerView, Snackbar, etc.)MejoraSincronizar el código más reciente del upstream del motor Rhino y adaptarlo al proyecto existenteMejoraAjustes en algunas dependencias o versiones de bibliotecas localesCHANGELOG.md
v6.6.0
2024/12/02 - Reescritura de módulos integrados, actualización con precaución
SugerenciaLos módulos integrados se reescriben en Kotlin para mejorar la eficiencia de ejecución del script, pero se necesitan mejoras iterativas.SugerenciaEl archivo init.js integrado está vacío por defecto, lo que permite a los desarrolladores ampliar los módulos integrados o montar módulos externos.NuevoMódulo Axios / Módulo Cheerio (Ref a AutoX)NuevoMódulo SQLite para operaciones simples en bases de datos SQLite (Ref a Auto.js Pro) (Consulte la documentación del proyecto > SQLite)NuevoMódulo MIME para procesamiento y análisis de cadenas de tipos MIME (Consulte la documentación del proyecto > MIME)NuevoMódulo Nanoid para generación de ID de cadenas (Ref a ai/nanoid)NuevoMódulo Sysprops para obtener datos de configuración del entorno de ejecución (Consulte la documentación del proyecto > Propiedades del sistema)NuevoEl módulo OCR admite el motor Rapid OCRNuevoEl análisis de diseño admite el cambio de ventanas (Ref a Auto.js Pro)NuevoEl método auto.clearCache admite la limpieza de cachés de control (Ref a Auto.js Pro)NuevoEl método threads.pool admite la aplicación simple de grupos de hilos (Ref a Auto.js Pro)NuevoEl método images.matchTemplate agrega el parámetro de opción useTransparentMask para soportar la búsqueda de imágenes transparentes (Ref a Auto.js Pro)NuevoEl método images.requestScreenCaptureAsync se usa para solicitar permisos de captura de pantalla de manera asíncrona en el modo UI (Ref a Auto.js Pro)NuevoEl método images.requestScreenCapture agrega el parámetro de opción isAsync para soportar la captura de pantalla de manera asíncrona (Ref a Auto.js Pro)Nuevoimages.on('screen_capture', callback) y otros métodos de escucha de eventos admiten la escucha de eventos de disponibilidad de captura de pantalla (Ref a Auto.js Pro)NuevoEl método images.stopScreenCapture soporta la liberación activa de recursos relacionados con la aplicación de captura de pantalla (Ref a Auto.js Pro)NuevoLos métodos Images.psnr/mse/ssim/mssim/hist/ncc y images.getSimilarity se utilizan para obtener métricas de similitud de imágenesNuevoEl método images.isGrayscale se utiliza para determinar si una imagen es en escala de grisesNuevoEl método images.invert se utiliza para la conversión de imagen en negativoNuevoLos métodos s13n.point/time se utilizan para estandarizar objetos de punto y objetos de duración (Consulte la documentación del proyecto > Normalización)NuevoLos métodos gravity, touchThrough, backgroundTint del módulo console (Consulte la documentación del proyecto > Consola)NuevoLos métodos Mathx.randomInt/Mathx.randomFloat se utilizan para devolver enteros aleatorios o números de coma flotante aleatorios dentro de un rango especificadoNuevoLos métodos app.launchDual/startDualActivity se utilizan para manejar el lanzamiento dual de aplicaciones (Requiere permisos de Shizuku o Root) (Experimental)NuevoEl método app.kill se utiliza para detener forzosamente una aplicación (Requiere permisos de Shizuku o Root)NuevoEl método floaty.getClip se utiliza para obtener indirectamente el contenido del portapapeles mediante una ventana flotanteCorrecciónFuga de memoria en el View Binding de subclases de Fragment (por ejemplo, DrawerFragment / ExplorerFragment)CorrecciónFuga de memoria de instancia en clases como ScreenCapture / ThemeColorPreferenceCorrecciónProblema que causa que la aplicación se bloquee al solicitar permisos de captura de pantalla en Android 14 (por chenguangming)pr #242CorrecciónProblema que causa que la aplicación se bloquee al iniciar el servicio en primer plano en Android 14CorrecciónProblema con el botón de ejecución en el editor de código que no se enciende correctamente en Android 14CorrecciónLa aplicación puede no funcionar correctamente después de empaquetar debido a la falta de archivos de biblioteca necesariosissue #202issue #223pr #264CorrecciónBloqueo de la aplicación cuando se edita el proyecto debido a recursos de icono especificados que faltanissue #203CorrecciónIncapacidad para usar parámetros adecuadamente para obtener recursos de captura de pantalla de orientación de pantalla especificada al solicitar permisos de captura de pantallaCorrecciónProblema con algunos dispositivos que no pueden agregar accesos directos de script correctamente (Reparación de prueba)issue #221CorrecciónProblema de retraso acumulativo en el envío de solicitudes con métodos relacionados con el envío de solicitudes en el módulo httpissue #192CorrecciónEl servicio Shizuku puede no funcionar correctamente antes de que AutoJs6 entre en la página de actividad principal (Reparación de prueba)issue #255CorrecciónEl método random(min, max) puede tener resultados fuera de límitesCorrecciónProblema donde el tipo de parámetro de resultado de los métodos pickup no puede pasar adecuadamente matrices vacíasCorrecciónProblema donde el rectángulo de control obtenido por UiObject#bounds() puede ser modificado inadvertidamente, rompiendo su inmutabilidadCorrecciónProblema con elementos de texto/botón/entrada donde el texto que contiene comillas dobles de ancho medio no puede ser analizado correctamenteCorrecciónProblema con elementos de text/textswitcher donde la funcionalidad del atributo autoLink fallaCorrecciónProblema con diferentes scripts que comparten erróneamente el mismo objeto ScriptRuntimeCorrecciónProblema con variables globales HEIGHT y WIDTH perdiendo propiedades Getter generadas dinámicamenteCorrecciónProblema con un alto tiempo de inicio potencial causado por la carga de RootShell al iniciar un scriptCorrecciónProblema con la configuración del color de fondo de la ventana flotante de la consola que conduce a la pérdida del estilo de redondeo rectangularCorrecciónEl inicio automático del servicio de accesibilidad puede encontrar problemas de servicio anormales (Reparación de prueba)CorrecciónProblema con el desencadenante de ViewPager al deslizar el control WebView a la izquierda o derecha en la página de documentos de la página principalCorrecciónProblema donde el administrador de archivos no puede reconocer extensiones de archivo que contienen letras mayúsculasCorrecciónEl administrador de archivos puede no reconocer automáticamente el proyecto al ingresar por primera vez al directorio del proyectoCorrecciónProblema donde la página del administrador de archivos no puede refrescarse automáticamente después de eliminar la carpetaCorrecciónProblema con la clasificación de archivos y carpetas en el administrador de archivos donde los nombres de letra inicial ASCII se colocan detrásCorrecciónExcepción 'FAILED ASSERTION' en la función de depuración del editor de códigoCorrecciónProblema con la imposibilidad de volver a depurar adecuadamente después de cerrar el editor durante el proceso de depuración del editor de códigoCorrecciónProblema de omisión potencial de caracteres finales al saltar al final de la línea en el editor de códigoCorrecciónProblema con la pantalla parpadeante al iniciar la página de actividad de registro en la página de actividad principalCorrecciónProblema con la aplicación empaquetada que no puede utilizar adecuadamente el módulo openccMejoraExperiencia de aviso de clic para el control 'ABI no disponible' en la página de paqueteMejoraAdmite el uso de Shizuku para controlar el interruptor de visualización 'Ubicación del puntero'MejoraAdmite el uso de Shizuku para controlar los interruptores de permisos 'Medios de proyección' y 'Modificar configuraciones seguras'MejoraAutomator.gestureAsync/gesturesAsync admite parámetros de función de devolución de llamadaMejoraEl módulo tasks utiliza una forma síncrona para las operaciones de base de datos para evitar inconsistencias potenciales de acceso a datosMejoraEl modo de ejecución de script admite parámetros de separación de modo con símbolo de tubería (por ejemplo, comenzando con"ui|auto";)MejoraEl modo de ejecución de script admite comillas simples y comillas invertidas y permite omitir puntos y comas (por ejemplo, comenzando con'ui';o'ui')MejoraEl modo de ejecución de script admite la importación rápida de módulos de extensión integrados como axios, cheerio y dayjs (por ejemplo, comenzando con"axios";)MejoraEl modo de ejecución de script admite parámetros de modo x o jsox para habilitar rápidamente los módulos de extensión de objetos integrados de JavaScript (por ejemplo, comenzando con"x";)MejoraLos atributos src y path del elemento img admiten rutas relativas locales (por ejemplo,<img src="a.png"/>)MejoraEl editor de código admite la determinación inteligente de la ubicación de inserción al importar clases Java y nombres de paquetesMejoraEl módulo images admite el uso de rutas directamente como parámetros de imagenMejoraimportPackage admite parámetros de cadenaMejoraLa dirección IP del modo servidor admite la importación del portapapeles con reconocimiento inteligente y conversión inteligente con la tecla de espacioMejoraEl administrador de archivos admite la selección de prefijos predeterminados al crear nuevos archivos y genera automáticamente el sufijo numérico apropiadoMejoraEl administrador de archivos informa específicamente sobre el mensaje de excepción al ejecutar el proyectoissue #268MejoraEl administrador de archivos admite más tipos y muestra símbolos de icono correspondientes (admite más de 800 tipos de archivos)MejoraLos tipos de archivos editables (jpg/doc/pdf, etc.) en el administrador de archivos han añadido botones de ediciónMejoraLos archivos APK en el administrador de archivos admiten la visualización de información básica, información de Manifesto y lista de permisosMejoraLos archivos de medios de audio/video en el administrador de archivos admiten la visualización de información básica e información de MediaInfoMejoraEl paquete de archivo único admite el autocompletado de nombre de paquete estandarizado apropiado y el aviso de filtro de caracteres no válidosMejoraEl paquete de archivo único admite la configuración automática del ícono y el incremento automático del número de versión y del nombre de versión basado en la misma aplicación de nombre de paquete instaladaMejoraEl archivo de configuración del paquete admite la opción abis/libs para especificar la arquitectura ABI incluidos por defecto y las bibliotecasMejoraAdmite avisos de mensajes relevantes cuando las opciones abis/libs del archivo de configuración del paquete son inválidas o no están disponiblesMejoraLeakCanary se excluye de la versión oficial para evitar un crecimiento innecesarioMejoraTodos los comentarios en inglés en el código fuente del proyecto vienen acompañados de traducciones al chino simplificado para mejorar la legibilidadMejoraREADME y CHANGELOG admiten varios idiomas (Generado automáticamente por el script)MejoraMejorar la adaptabilidad de la versión del script de construcción de GradleMejoraAjustes en algunas dependencias o versiones de bibliotecas localesCHANGELOG.md
Para más historial de versiones, consulte
Compilación y construcción del proyecto
Para depurar o desarrollar el proyecto de código abierto AutoJs6, puedes usar Android Studio (producto de Google) o IntelliJ IDEA (producto de JetBrains).
Esta sección toma como ejemplo Android Studio para presentar los métodos de compilación y construcción del proyecto de código abierto AutoJs6; IntelliJ IDEA es similar.
Preparación de Android Studio
Descarga la versión Android Studio Meerkat | 2024.3.1 Patch 1 (elige una según tus necesidades):
- android-studio-2024.3.1.14-windows.exe (1.22 GB)
- android-studio-2024.3.1.14-windows.zip (1.23 GB)
Nota: La fecha de lanzamiento de la versión anterior es el 24 de March de 2025. Para descargar otras versiones, o si los enlaces anteriores ya no funcionan, puedes visitar la página del Archivo de versiones de Android Studio.
Instala o descomprime los archivos mencionados anteriormente y ejecuta el software Android Studio (por ejemplo, "D:\android-studio\bin\studio64.exe").
Preparación del SDK de Android
Nota: Si el sistema ya tiene instalado el SDK de Android (Kit de Desarrollo de Software de Android), puedes omitir esta sección.
En el software Android Studio, abre la página de configuración con el atajo de teclado CTRL + ALT + S:
Appearance & Behavior (Apariencia y comportamiento) ->
System Settings (Configuración del sistema) ->
Android SDK (Kit de Desarrollo de Software de Android)
Si Android SDK Location (Ubicación del SDK de Android) está en blanco, haz clic en el botón Edit (Editar) a la derecha y continúa haciendo clic en Next (Siguiente) en la ventana emergente.
Nota: Puede ser necesario aceptar uno o varios acuerdos durante el proceso para continuar.
Una vez que los recursos relacionados se hayan descargado e instalado, haz clic en el botón Finish (Finalizar).
La ruta se completará automáticamente en Android SDK Location (Ubicación del SDK de Android), completando así la preparación del SDK.
Preparación de herramientas del SDK de Android
AutoJs6 requiere usar algunas herramientas del SDK (como NDK y CMake).
Nota: Si el sistema ya tiene instaladas todas las herramientas necesarias del SDK de Android para AutoJs6, puedes omitir esta sección.
En el software Android Studio, abre la página de configuración con el atajo de teclado CTRL + ALT + S:
Appearance & Behavior (Apariencia y comportamiento) ->
System Settings (Configuración del sistema) ->
Android SDK (Kit de Desarrollo de Software de Android) ->
SDK Tools (Herramientas del SDK) (situado en la ventana de la derecha)
Marca Show Package Details (Mostrar detalles del paquete), haz clic en NDK y CMake para asegurarte de que las versiones requeridas están seleccionadas, La información de la versión de las herramientas del SDK se encuentra en el archivo version.properties en el directorio raíz del proyecto AutoJs6.
Preparación del JDK
La versión mínima requerida del JDK (Kit de Desarrollo de Java) para el proyecto AutoJs6 es 17, pero se recomienda usar una versión no inferior a 19.
Hasta el 19 de April de 2025, AutoJs6 soporta hasta la versión 24 de JDK.
Nota: Si el sistema ya tiene instalado JDK y cumple con los requisitos anteriores, puedes omitir esta sección.
Puedes descargar el JDK directamente desde la IDE, o desde el sitio web de Oracle.
En el software Android Studio, abre la página de configuración con el atajo de teclado CTRL + ALT + S:
Build, Execution, Deployment (Compilación, ejecución, despliegue) ->
Build Tools (Herramientas de compilación) ->
Gradle
En Gradle JDK, puedes seleccionar o agregar diferentes versiones de JDK.
Si ya existe una versión adecuada de JDK (>= 17) en la lista, simplemente selecciónala.
De lo contrario, puedes seleccionar Download JDK (Descargar JDK) para descargar el JDK adecuado, haz clic en el botón Download (Descargar) y espera a que se complete la descarga.
También puedes seleccionar Add JDK (Añadir JDK) para agregar un JDK local existente, ubica su directorio y completa la adición del JDK.
Clonación de recursos de AutoJs6
En la página principal de Android Studio, haz clic en el botón Get from VCS (Obtener desde VCS).
En URL (dirección URL), ingresa https://github.com/SuperMonster003/AutoJs6.git,
En Directory (directorio), puedes cambiarlo a una ruta específica según sea necesario.
Haz clic en el botón Clone (clonar) y espera a que los recursos del proyecto AutoJs6 se clonen localmente en el dispositivo.
Nota: Este proceso puede requerir la instalación de Git (sistema de control de versiones distribuido).
Construcción del proyecto AutoJs6
Una vez completada la clonación, Android Studio abrirá la ventana del proyecto AutoJs6 y completará automáticamente la descarga inicial de Dependencies (dependencias) y el trabajo de construcción de Gradle.
Nota: Este proceso puede ser muy largo. Si las condiciones de la red no son buenas, puede ser necesario reintentar varias veces (haga clic en el botón Retry).
If the build couldn't proceed automatically or you need to rebuild the project, follow these steps:
- From the
Run/Debug Configurationsmenu in the Toolbar, selectapp, which is the main AutoJs6 application. - Click the
Build Project(hammer icon) button on the left to start building the project. The default shortcut is CTRL + F9. - Wait for the build to complete. The
Builder Outputtab will display a message such as "BUILD SUCCESSFUL in 1h 17m 34s".
If the build fails, you can report the error message to the AutoJs6 project's Issues page..
Nota: For more details on building and running the app, please refer to Android Docs.
AutoJs6 Project Deployment (Run App)
Once the project is built successfully, it can be deployed as an application (App) to a physical device (e.g., phone/tablet) or a virtual device (e.g., Android emulator)..
- In the Toolbar, select
appfrom theRun/Debug Configurationsmenu, which is the main AutoJs6 application. - In the
Available Devicesdropdown on the right, choose the device on which the project app should run (physical or virtual). - Click the
Run(triangle icon) button on the right to launch the app. The default shortcut isF10. - Wait for the deployment to finish; the chosen device will automatically install and run the project app.
AutoJs6 Project Deployment (Generate APK)
Package the project and generate an APK file that can be installed on Android devices.:
- Versión de depuración (Debug Version)
Build (Compilar)->Build Bundle(s) / APK(s)->Build APK(s)- Generar un paquete de instalación de versión de depuración
- Ruta de ejemplo:
"D:\AutoJs6\app\build\outputs\apk\debug\"
- Versión de lanzamiento (Release Version)
Build (Compilar)->Generate Signed Bundle / APK- Selecciona la opción
APK - Prepara el archivo de firma (crear o seleccionar uno nuevo) para generar un paquete de instalación de versión de lanzamiento firmado
- Ruta de ejemplo:
"D:\AutoJs6\app\release\"
Nota: For more information on building an app for user release, please refer to Android Docs.
Predefined Gradle Build Tasks for AutoJs6
Besides building the project App, AutoJs6 supports several predefined Gradle build tasks that help developers perform convenient project-related operations..
Under the Run/Debug Configurations menu in the Toolbar, you can find various predefined Gradle tasks, each indicated by an elephant icon on the left..
- AutoJs6 [inrt:assemble]
Assemble the "inrt" build variant, which primarily serves the AutoJs6 script packaging feature..
The AutoJs6 project has various build variants. The "inrt" variant is used for packaging scripts, generating the template file "template.apk" required for packaging..
When using the packaging feature, you might encounter the following error message:
java.io.FileNotFoundException: template.apk
This indicates that the template file does not exist. You need to manually run the inrt:assemble task to generate the template file, then rebuild and redeploy the app..
Nota: Si el código del proyecto principal cambia y se desea sincronizar dichos cambios con la aplicación empaquetada, es necesario volver a ejecutar la tarea
inrt:assemblepara generar los archivos de plantilla y redeplegar la aplicación
- AutoJs6 [app:bundle]
Package the outputs of the debug build process, primarily for the AutoJs6 TypeScript definitions project..
After running the task, it produces the latest JAR file for the AutoJs6 project. Using the Android d.ts Generator (by NativeScript), you can generate the type definitions (d.ts format) for the main AutoJs6 app..
- AutoJs6 [app:digest]
Append digest information to the APK produced by the release build, mainly to finalize the filename before publishing the latest version of AutoJs6 to GitHub..
Below is the comparison of filenames before and after appending the digest information:
Before:
autojs6-v6.6.2-arm64-v8a.apk
After:
autojs6-v6.6.2-arm64-v8a-0f2a9d74.apk
Consultar: Android Docs
Asistencia en el desarrollo de scripts
Para desarrollar scripts ejecutables en AutoJs6, utiliza las herramientas de desarrollo adecuadas:
Para escribir y depurar scripts en PC, el complemento de VSCode puede conectar el PC y el teléfono:
- AutoJs6-VSCode-Extension - Depurador de AutoJs6 (extensión para la plataforma VSCode)
Al escribir código con herramientas de desarrollo, la función de autocompletado puede ayudar al desarrollador a completar el código:
- AutoJs6-TypeScript-Declarations - Archivos de declaración de AutoJs6 (autocompletado del código)
Al escribir el código, puedes consultar la documentación sobre la API y el uso de AutoJs6 en cualquier momento:
- AutoJs6-Documentation - Documentación de la aplicación AutoJs6
Los proyectos de desarrollo de scripts existentes pueden servir como referencia e inspiración para tus propios proyectos de scripts:
- Ant-Forest - Script de recolección automática de energía de Ant Forest por TonyJiangWJ
- Ant-Forest - Script de recolección automática de energía de Ant Forest por SuperMonster003
- autojs - Scripts útiles de Auto.js por e1399579
- autojsDemo - Ejemplo de demostración de Auto.js por snailuncle
- Repositorios relacionados con autojs - Todos los repositorios relacionados con el tema autojs en GitHub
Contribución
Agradecemos a todos los que han contribuido al desarrollo del proyecto AutoJs6.
| Contribuyentes | Número de commits | Últimas presentaciones |
|---|---|---|
| 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 |
Datos actualizados el 1 de January de 2025.
Las entradas de datos están ordenadas en orden descendente por últimas presentaciones.
Las nuevas Pull Requests pendientes de procesamiento se añadirán a las estadísticas de datos una vez procesadas.
Algunos contribuyentes no aparecen en GitHub Contributors con sus registros de contribución vacíos, pero aún puedes verificar sus registros de contribución a través de Pull Request.
