autojs6-banner_800×224

Herramienta de automatización JavaScript que soporta servicios de accesibilidad en la plataforma Android

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

****** ### Idiomas ****** El archivo actual `README.md` admite los siguientes idiomas: - [简体中文 [zh-Hans]](http://project.autojs6.com/blob/master/.readme/README-zh-Hans.md) - [繁體中文 (香港) [zh-Hant-HK]](http://project.autojs6.com/blob/master/.readme/README-zh-Hant-HK.md) - [繁體中文 (台灣) [zh-Hant-TW]](http://project.autojs6.com/blob/master/.readme/README-zh-Hant-TW.md) - [English [en]](http://project.autojs6.com/blob/master/.readme/README-en.md) - [Français [fr]](http://project.autojs6.com/blob/master/.readme/README-fr.md) - Español [es] # actualmente - [日本語 [ja]](http://project.autojs6.com/blob/master/.readme/README-ja.md) - [한국어 [ko]](http://project.autojs6.com/blob/master/.readme/README-ko.md) - [Русский [ru]](http://project.autojs6.com/blob/master/.readme/README-ru.md) - [العربية [ar]](http://project.autojs6.com/blob/master/.readme/README-ar.md) ****** ### Introducción ****** [Auto.js](https://github.com/hyb1996/Auto.js) es una herramienta de automatización para la plataforma Android que admite [servicios de accesibilidad](https://developer.android.com/guide/topics/ui/accessibility/service?hl=zh-cn). Auto.js fue lanzado por [hyb1996](https://github.com/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 | Desarrolladores Principales | Fecha de inicio del desarrollo | Fecha de finalización del desarrollo | Mantenimiento activo (año) | |:------:|:------:|:------:|:------:|:------:|:------:| | [Auto.js](https://github.com/hyb1996/Auto.js) | [Auto.js](https://github.com/TonyJiangWJ/Auto.js/commit/268ec8895bbfa28fc7715154eb15b1c1eaaefd14#diff-5e01f7d37a66e4ca03deefc205d8e7008661cdd0284a05aaba1858e6b7bf9103R2) | [hyb1996](https://github.com/hyb1996) | `2017/01/27` | `2020/03/13` | 3.13 | | Auto.js Pro 7 | Auto.js | [hyb1996](https://github.com/hyb1996) | `2019/03/13` | `2019/07/08` | 0.32 | | Auto.js Pro 8 | AutoJsPro | [hyb1996](https://github.com/hyb1996) | `2019/10/13` | `2021/07/24` | 1.78 | | [Auto.js](https://github.com/TonyJiangWJ/Auto.js) | [Auto.js M](https://github.com/TonyJiangWJ/Auto.js/commit/268ec8895bbfa28fc7715154eb15b1c1eaaefd14#diff-5e01f7d37a66e4ca03deefc205d8e7008661cdd0284a05aaba1858e6b7bf9103R2) | [TonyJiangWJ](https://github.com/TonyJiangWJ) | `2019/11/21` | - | < 6.32 > | | [AutoX](https://github.com/kkevsekk1/AutoX) | [Autox.js](https://github.com/kkevsekk1/AutoX/commit/8143e4ed893d4af05d22aa791b83a962f9959873#diff-5e01f7d37a66e4ca03deefc205d8e7008661cdd0284a05aaba1858e6b7bf9103R2) | [kkevsekk1](https://github.com/kkevsekk1) | `2020/07/24` | [ `2025/01/07` ] | 4.46 | | [Auto.js Pro 9](https://pro.autojs.org/) | AutoJsPro | [hyb1996](https://github.com/hyb1996) | `2021/03/28` | `2023/02/09` | 1.87 | | [AutoJs6](https://github.com/SuperMonster003/AutoJs6) | [AutoJs6](https://github.com/SuperMonster003/AutoJs6/commit/a8ce1b9acb541e9736c33134be3194c3148a15a3#diff-833a46a97033e77558372a2dce103fd6fee29aaaa899f610022a7aece592ee7bR27) | [SuperMonster003](https://github.com/SuperMonster003) | `2021/12/01` | - | < 4.28 > | | [autojs4](https://github.com/blackcd318/autojs4) | Auto.js | [blackcd318](https://github.com/blackcd318) | `2021/12/15` | `2023/07/31` | 1.62 | | [AutoX](https://github.com/kkevsekk1/AutoX) | [Autox.js v6](https://github.com/kkevsekk1/AutoX/commit/8b6776cff8b0fca4be4a52719b7d7d07c0a058f3#diff-51a0b488f963eb0be6c6599bf5df497313877cf5bdff3950807373912ac1cdc9R130) | [wilinz](https://github.com/wilinz) / [aiselp](https://github.com/aiselp) | `2022/05/26` | [ `2025/01/07` ] | 2.62 | | [openautojs](https://github.com/openautojs/openautojs) | [OpenAuto.js](https://github.com/openautojs/openautojs/commit/a11feaad025154de9b453ba70b49e94a6ca8b48a#diff-7d757295fcec3b37c258337e048644c258233d79259152e77baa6d36bb0ec418R2) | [openautojs](https://github.com/openautojs) | `2023/02/17` | `2023/04/16` | 0.16 | | [AutoJs4](https://github.com/SuperMonster003/AutoJs4) | [AutoJs4](https://github.com/SuperMonster003/AutoJs4/commit/8de11699b608be1c1f49f0f10e2e2826f8c77978) | [SuperMonster003](https://github.com/SuperMonster003) | `2023/04/11` | - | < 2.93 > | | [AutoX](https://github.com/aiselp/AutoX) | [Autox.js v7](https://github.com/aiselp/AutoX/commit/484491fd5fe12b8203d0b09c181eb0f471c0ea9f#diff-8cff73265af19c059547b76aca8882cbaa3209291406f52df1dafbbc78e80c46R120) | [aiselp](https://github.com/aiselp) | `2024/04/21` | - | < 1.90 > | | [Autoxjs_v6_ozobi](https://github.com/ozobiozobi/Autoxjs_v6_ozobi) | [Autox.js v6_ozobi](https://github.com/ozobiozobi/Autoxjs_v6_ozobi/blob/a651d02246e09cfbbfa87e6eaccf900fab/app/build.gradle.kts#L143) | [ozobiozobi](https://github.com/ozobiozobi) | `2024/10/01` | - | < 1.45 > | | [AutoX](https://github.com/autox-community/AutoX) | [Autox.js v6](https://github.com/autox-community/AutoX/commit/8b6776cff8b0fca4be4a52719b7d7d07c0a058f3#diff-51a0b488f963eb0be6c6599bf5df497313877cf5bdff3950807373912ac1cdc9R130) | [autox-community](https://github.com/autox-community) | `2025/03/30` | - | < 0.96 > | 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. En la tabla, los datos de la columna `Fecha de finalización del desarrollo` que contienen corchetes (`[]`) indican que el proyecto de código abierto no está temporalmente accesible. En la tabla, los datos de la columna `Mantenimiento activo` que contienen paréntesis angulares (`<>`) se han calculado hasta 14 de March de 2026. ****** ### 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](https://developer.android.com/reference/android/accessibilityservice/AccessibilityService) * 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](https://developer.android.com/training/testing/ui-automator)) * 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](https://zh.wikipedia.org/wiki/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](http://vscext-project.autojs6.com)) ****** ### Entorno ****** - Sistema operativo Android - [API](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) [24](https://developer.android.com/reference/android/os/Build.VERSION_CODES#N) ([7.0](https://zh.wikipedia.org/wiki/Android_Nougat)) [[N](https://developer.android.com/reference/android/os/Build.VERSION_CODES#N)] o superior ****** ### Manual ****** * [Documentación de la aplicación](https://docs.autojs6.com) * [Manual del usuario (Por escribir)](https://docs.autojs6.com/#/manual) * [Solución de problemas](https://docs.autojs6.com/#/qa) * [Compilación y construcción del proyecto](#project-compilation-and-build) * [Asistencia en el desarrollo de scripts](#script-development-assistance) ****** ### 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](https://shizuku.rikka.app/introduction/) y usar las API del sistema * Soporte para construir instancias de [WebSocket](https://docs.autojs6.com/#/webSocketType) para realizar solicitudes de red basadas en el [protocolo WebSocket](https://zh.wikipedia.org/wiki/WebSocket) * Nuevos módulos [ [base64](https://docs.autojs6.com/#/base64) / [crypto](https://docs.autojs6.com/#/crypto) / [sqlite](https://docs.autojs6.com/#/sqlite) / [i18n](https://docs.autojs6.com/#/i18n) / [notice](https://docs.autojs6.com/#/notice) / [ocr](https://docs.autojs6.com/#/ocr) / [opencc](https://docs.autojs6.com/#/opencc) / [qrcode](https://docs.autojs6.com/#/qrcode) / [shizuku](https://docs.autojs6.com/#/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](http://vscext-project.autojs6.com) soporta conexiones cliente (LAN) y servidor (LAN/ADB) * El motor [Rhino](https://github.com/mozilla/rhino/) se ha actualizado de [v1.7.7.2](https://github.com/mozilla/rhino/releases/tag/Rhino1_7_7_2_Release) a [v2.0.0-SNAPSHOT](http://rhino.autojs6.com/blob/master/gradle.properties#L3) (actualizado el 25 de December de 2025) * Soporte para secuencias de escape de [puntos de código](https://developer.mozilla.org/zh-CN/docs/Glossary/Code_point) Unicode [ plano suplementario](https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%B9%B3%E9%9D%A2%E6%98%A0%E5%B0%84#%E7%AC%AC%E4%B8%80%E8%BC%94%E5%8A%A9%E5%B9%B3%E9%9D%A2) ```js '\u{1D160}'; /* significa "𝅘𝅥𝅮", método tradicional: '\uD834\uDD60'. */ ``` * Soporte para [Object.values()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/values) ```js Object.values({name: 'Max', age: 4}); // ['max', 4] ``` * Soporte para [Array.prototype.includes()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) ```js [10, 20, NaN].includes(20); // true ``` * Soporte para [BigInt](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt) ```ts typeof 567n === 'bigint'; // true ``` * Soporte para [plantillas de cadena](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals) ```js `Lucky number: ${(Math.random() * 100).toFixed(0)}` ``` * Consulta [más características nuevas](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/RHINO.md) del motor Rhino * Consulta la [lista de compatibilidad](https://mozilla.github.io/rhino/compat/engines.html) del motor Rhino ****** ### Historial de Versiones ****** # v6.7.0 ###### 2026/03/14 * `Nuevo` Funcion Centro de plugins, compatible con operaciones como instalar/desinstalar/actualizar plugins (entrada: boton del cajon de inicio/pestana de inicio) * `Nuevo` Funcion Historial de versiones, compatible con ver/restaurar versiones historicas de archivos editables (entrada: boton del cajon de inicio/menu del administrador de archivos/menu del editor de codigo) * `Nuevo` Funcion Papelera, compatible con ver/restaurar archivos/carpetas eliminados (entrada: boton del cajon de inicio) * `Nuevo` Plugin Paddle OCR (PP-OCRv5), para reconocimiento optico de caracteres * `Nuevo` Modulo cvt, para conversion de unidades de datos (consulte Documentacion del proyecto > [Conversion de unidades](https://docs.autojs6.com/#/cvt)) * `Nuevo` Modulo fmt, para formateo de datos (consulte Documentacion del proyecto > [Formateo](https://docs.autojs6.com/#/fmt)) * `Nuevo` Modulo zip, para operaciones de compresion y descompresion de archivos (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) (consulte Documentacion del proyecto > [Zip](https://docs.autojs6.com/#/zip)) * `Nuevo` Modulo mediainfo, para ver informacion detallada de archivos multimedia (consulte Documentacion del proyecto > [Informacion multimedia](https://docs.autojs6.com/#/mediainfo)) * `Nuevo` Metodo cvt.bytes, para conversion de unidades de datos de bytes (consulte Documentacion del proyecto > [Conversion de unidades](https://docs.autojs6.com/#/cvt)) * `Nuevo` Metodo fmt.bytes, para formateo de datos de bytes (consulte Documentacion del proyecto > [Formateo](https://docs.autojs6.com/#/fmt)) * `Nuevo` Metodo s13n.bytes, para estandarizar datos de bytes (consulte Documentacion del proyecto > [Estandarizacion](https://docs.autojs6.com/#/s13n)) * `Nuevo` Metodo app.isDualInstalled, para detectar si una aplicacion dual esta instalada (requiere permisos de Shizuku o Root) _[`issue #450`](http://issues.autojs6.com/450)_ * `Nuevo` Metodo device.getSharedDeviceId, para obtener un ID de dispositivo compartido y unificado entre aplicaciones _[`issue #455`](http://issues.autojs6.com/455)_ * `Nuevo` Metodo device.setPointerLocation y otros metodos de la serie Toggleable, para establecer u obtener la opcion del sistema de ubicacion del puntero _[`issue #381`](http://issues.autojs6.com/381)_ * `Nuevo` El metodo dialogs.build admite parametros de opcion textAllCaps/(positive/negative/neutral)TextAllCaps, para controlar si el texto de los botones se muestra completamente en mayusculas * `Nuevo` Metodo images.loadAsync, para obtener recursos de imagen de red de forma asincrona _[`issue #327`](http://issues.autojs6.com/327)_ * `Nuevo` Metodo ui.getNavigationBarHeight/propiedad navigationBarHeight (getter), para obtener la altura de la barra de navegacion _[`issue #456`](http://issues.autojs6.com/456)_ * `Nuevo` Metodo ui.getVisible(Status/Navigation)BarHeight/propiedad visible(Status/Navigation)BarHeight (getter), para obtener rapidamente la altura visible de la barra de estado o de navegacion _[`issue #456`](http://issues.autojs6.com/456)_ * `Nuevo` Metodos http.put/del(ete)/head, para enviar solicitudes de red usando distintos metodos HTTP * `Nuevo` Metodos como http.getAsync/postAsync/requestAsync, para enviar solicitudes de red de forma asincrona _[`issue #423`](http://issues.autojs6.com/423)_ * `Nuevo` El objeto body obtenido por los metodos relacionados con solicitudes del modulo http agrega metodos como stream/saveToFile/close _[`issue #452`](http://issues.autojs6.com/452)_ * `Nuevo` Los metodos relacionados con solicitudes del modulo http admiten parametros de opcion de control de cache (cacheBody/bodyCacheThresholdBytes) * `Nuevo` Los metodos relacionados con solicitudes del modulo http admiten parametros de opcion inseguros (isInsecure/insecure), para ignorar excepciones relacionadas con certificados _[`issue #417`](http://issues.autojs6.com/417)_ * `Nuevo` Los metodos relacionados con solicitudes del modulo http admiten la opcion options.client, para configurar OkHttpClient.Builder (como followRedirects, etc.) _[`issue #454`](http://issues.autojs6.com/454)_ * `Nuevo` Propiedad auto.state (getter) y propiedad shizuku.state (getter), para obtener el estado del servicio de accesibilidad y del servicio Shizuku * `Nuevo` Metodos runtime.(set/is)JavaPrimitiveWrap, para establecer u obtener la estrategia de envoltura de tipos primitivos de Java _[`issue #435`](http://issues.autojs6.com/435)_ * `Nuevo` Metodos autojs.(restart/exit), para reiniciar o salir de la aplicacion AutoJs6, y compatibles con ejecutar automaticamente un script especificado al reiniciar la aplicacion _[`issue #460`](http://issues.autojs6.com/460)_ * `Nuevo` Metodo UiObject#isShifted, para detectar cambios de posicion de controles _[`issue #469`](http://issues.autojs6.com/469)_ * `Nuevo` Metodo UiObject#snapshot, para capturar el estado actual de un control _[`issue #469`](http://issues.autojs6.com/469)_ * `Nuevo` Metodo engines.myEngine().getStartTime(), para obtener la marca de tiempo de inicio del motor de scripts _[`issue #449`](http://issues.autojs6.com/449)_ * `Nuevo` Metodo global crash, para probar la pagina de informe de fallos * `Nuevo` Metodo global structuredClone, para copia profunda de objetos JavaScript (consulte [MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/Window/structuredClone)) * `Nuevo` Los selectores de la serie equivalente (UiSelector#id/text/...) y de la serie contiene (UiSelector#xxxContains) admiten parametros de expresion regular * `Nuevo` Los parametros de expresion regular de los selectores admiten banderas (i, m, s, u) * `Nuevo` Las expresiones regulares admiten sintaxis de lookbehind _[`issue #464`](http://issues.autojs6.com/464)_ * `Nuevo` El administrador de archivos agrega elementos de menu "Mover a" y "Copiar a", con soporte para abortar operaciones y mostrar estado de progreso * `Nuevo` El editor de codigo agrega el elemento de menu "Teclado multifuncion" - "Configuracion de simbolos", con soporte para editar simbolos y crear/importar/exportar simbolos por nivel de perfil * `Nuevo` El cajon de inicio agrega la herramienta "Ubicacion del puntero" * `Nuevo` El cajon de inicio agrega el interruptor "Acceso a todos los archivos" * `Nuevo` El cajon de inicio agrega el interruptor "Mostrar interfaz desde segundo plano" (para dispositivos [Xiaomi/Vivo]) * `Nuevo` La pagina de configuracion agrega la opcion "Envoltura de tipos primitivos de Java" _[`issue #435`](http://issues.autojs6.com/435)_ * `Nuevo` La pagina de configuracion agrega la opcion "Motor de programacion de tareas", con soporte para AlarmManager/WorkManager/JobScheduler _[`issue #457`](http://issues.autojs6.com/457)_ _[`issue #434`](http://issues.autojs6.com/434)_ _[`issue #449`](http://issues.autojs6.com/449)_ _[`issue #388`](http://issues.autojs6.com/388)_ _[`issue #378`](http://issues.autojs6.com/378)_ _[`issue #163`](http://issues.autojs6.com/163)_ _[`issue #53`](http://issues.autojs6.com/53)_ _[`issue #21`](http://issues.autojs6.com/21)_ * `Nuevo` La pagina de configuracion agrega la opcion "Icono del lanzador de aplicaciones", con soporte para iconos adaptativos/iconos con fondo transparente _[`issue #405`](http://issues.autojs6.com/405)_ * `Nuevo` La pagina de configuracion agrega la opcion "Estrategia de reinicio", para configurar si el boton de reinicio del cajon de inicio usa la estrategia de reinicio rapido * `Nuevo` La pagina de configuracion agrega la opcion "Retraso en la solicitud de permiso de captura de pantalla", para evitar que la ventana de solicitud de permiso bloquee la pantalla * `Nuevo` Los accesos directos del lanzador en la pagina de configuracion agregan la opcion "Plugins", para saltar a la pagina del Centro de plugins mediante un acceso directo * `Nuevo` Las aplicaciones empaquetadas admiten inicio automatico al arrancar y agregan un interruptor en la pagina de configuracion * `Nuevo` Las aplicaciones empaquetadas admiten accesos directos de aplicacion (pagina de registros/pagina de configuracion) * `Nuevo` La pagina de configuracion de empaquetado agrega botones de deshacer/rehacer/guardar * `Nuevo` La pagina de configuracion de empaquetado agrega un mecanismo de perfiles, con soporte para crear/modificar/eliminar/importar/exportar perfiles _[`issue #483`](http://issues.autojs6.com/483)_ * `Nuevo` Herramienta Scrapers (run-scrapers.mjs), para actualizar automaticamente datos estructurados de scripts de compilacion Gradle/datos comunes del README/datos de plantilla README, etc. * `Nuevo` Herramienta Gradle Wrapper switcher (gradle-wrapper-switcher), para cambiar la version principal local de Gradle (como Gradle 8.x y Gradle 9.x) * `Corrección` Error en la restriccion de cantidad y tipos de parametros del metodo notice _[`issue #462`](http://issues.autojs6.com/462)_ * `Corrección` Problema por el que la propiedad ui.R (getter) no podia usarse correctamente * `Corrección` Problema por el que las excepciones generadas en parametros de callback del metodo ui.post podian fallar en silencio * `Corrección` Problema por el que metodos globales como isJavaClass/isJavaPackage eran invalidos * `Corrección` Problema por el que el parametro timeout del metodo timers.keepAlive no funcionaba * `Corrección` Problema por el que los metodos floaty.window/rawWindow no podian aceptar parametros de tipo cadena _[`issue #467`](http://issues.autojs6.com/467)_ * `Corrección` Problema por el que floaty.rawWindow mostraba algunos controles de forma anomala debido a que se pasaba un contexto incorrecto * `Corrección` Problema por el que el metodo util.isString no era valido * `Corrección` Problema por el que util.class[Name]/getClass[Name] podia devolver resultados incorrectos * `Corrección` Problema por el que util.java.array no podia usar correctamente parametros de tipo como Boolean * `Corrección` Problema por el que el objeto devuelto por threads.disposable() podia ser encapsulado inesperadamente al acceder a datos _[`issue #435`](http://issues.autojs6.com/435)_ * `Corrección` Problema por el que, al llamar varias veces al metodo console.build, las opciones de estilo de la ventana flotante de registros no se restablecian correctamente * `Corrección` Problema por el que las opciones (title/content)BackgroundColor del metodo console.build sobrescribian opciones de transparencia o tintado _[`issue #458`](http://issues.autojs6.com/458)_ * `Corrección` Problema por el que metodos como console/toast podian perder ceros finales al mostrar Java Double * `Corrección` Problema por el que no era posible usar metodos como console/toast para mostrar el tipo de datos BigInt * `Corrección` Problema por el que el metodo toast podia provocar fugas de memoria al mantener una referencia fuerte a la instancia Toast * `Corrección` Problema por el que algunos objetos globales podian perder propiedades y metodos del prototipo de JavaScript * `Corrección` Problema por el que el objeto this podia apuntar incorrectamente al usar expresiones JavaScript como valores de atributos en sintaxis XML * `Corrección` Problema por el que el parametro de opcion linkify del metodo dialogs.build no funcionaba * `Corrección` Problema por el que el metodo dialogs.build podia dañar los datos originales del parametro objeto * `Corrección` Calculo incorrecto de la tasa de fotogramas interna del metodo setMaxFps del control de elemento canvas * `Corrección` Calculo incorrecto del ancho al concatenar verticalmente con el metodo images.concat * `Corrección` Problema por el que cancelar la autorizacion del metodo images.requestScreenCapture podia provocar un fallo de la aplicacion * `Corrección` Problema por el que las capturas obtenidas por el metodo images.captureScreen podian tener orientacion incorrecta o relleno de bordes negros _[`issue #337`](http://issues.autojs6.com/337)_ * `Corrección` Problema por el que el valor 1 se interpretaba erroneamente como porcentaje al usar parametros de region en algunos metodos de images * `Corrección` Problema por el que la funcion de la marca oneShot fallaba cuando ocurrian excepciones en algunos metodos relacionados con images _[`issue #372`](http://issues.autojs6.com/372)_ * `Corrección` Problema por el que algunos metodos relacionados con images podian provocar fugas de memoria _[`issue #372`](http://issues.autojs6.com/372)_ * `Corrección` Problema por el que images.save y el metodo ImageWrapper#saveTo no podian escribir correctamente archivos cuando la ruta proporcionada no existia * `Corrección` Problema por el que el metodo ImageWrapper#recycle no reciclaba correctamente recursos de imagen * `Corrección` Problema por el que algunos metodos sobrecargados de ocr podian no funcionar correctamente * `Corrección` Problema por el que los resultados obtenidos por el metodo ocr.detect podian no coincidir con ocr.mode _[`issue #468`](http://issues.autojs6.com/468)_ * `Corrección` Problema por el que los eventos del servicio de accesibilidad registrados con auto.registerEvent podian ser eliminados por error por otros scripts _[`issue #466`](http://issues.autojs6.com/466)_ _[`issue #343`](http://issues.autojs6.com/343#issuecomment-3263953918)_ * `Corrección` Problema por el que el metodo UiObject#child podia lanzar ArrayIndexOutOfBoundsException en Android 10 _[`issue #416`](http://issues.autojs6.com/416)_ * `Corrección` Problema por el que al llamar metodos de modulos integrados podia haber inconsistencia en el contexto Rhino * `Corrección` Problema por el que, tras crear muchas ventanas flotantes en un script, podian quedar ventanas residuales al salir del script * `Corrección` Problema por el que los parametros de configuracion de project.json no se analizaban correctamente al ejecutar un proyecto * `Corrección` Problema por el que el parametro excludedDirs de project.json podia hacer fallar el analisis del archivo de configuracion al empaquetar un proyecto _[`issue #428`](http://issues.autojs6.com/428)_ * `Corrección` Problema por el que la funcion de empaquetado podia no funcionar correctamente en Android 7.x * `Corrección` Problema por el que los nombres originales de las claves podian modificarse al guardar el archivo de configuracion de un proyecto de script * `Corrección` Problema por el que numeros grandes en version de compilacion o tiempo de compilacion dentro del archivo de configuracion del proyecto de script podian provocar un fallo de la aplicacion * `Corrección` Problema por el que obtener o reconstruir ImageReader con frecuencia podia provocar un fallo de la aplicacion al no haber fotogramas disponibles temporalmente en el buffer * `Corrección` Problema por el que el observador de eventos de entrada InputEventObserver podia causar una ralentizacion evidente al iniciar la aplicacion * `Corrección` Problema por el que el proceso de servicio de usuario Shizuku no terminaba correctamente y se acumulaban procesos _[`issue #474`](http://issues.autojs6.com/474)_ * `Corrección` Problema por el que las aplicaciones empaquetadas no podian usar correctamente las funciones Paddle OCR y Rapid OCR * `Corrección` Problema por el que el valor de la clave key en el archivo de configuracion project.json de aplicaciones empaquetadas podia modificarse inesperadamente * `Corrección` Problema por el que al desplazarse por la lista de "Permisos requeridos" en la pagina de configuracion de empaquetado podia parpadear el icono de las casillas * `Corrección` Problema por el que, en la pagina de historial de versiones, algunos sistemas mostraban datos estadisticos incompletos debido a diferencias de fuente * `Corrección` Problema por el que MLKit Google OCR no podia inicializarse correctamente en algunos dispositivos (correccion tentativa) _[`issue #8`](http://issues.autojs6.com/8#issuecomment-3117061768)_ * `Corrección` Problema por el que, en algunos dispositivos, los botones funcionales del administrador de archivos no activaban correctamente los eventos de clic (correccion tentativa) _[`issue #465`](http://issues.autojs6.com/465)_ * `Corrección` Problema por el que las lineas en blanco del editor de codigo mostraban caracteres de cuadro en algunos dispositivos (correccion tentativa) * `Corrección` Problema por el que el teclado virtual podia tapar el contenido de texto en el editor de codigo * `Corrección` Problema por el que el editor de codigo seguia permitiendo editar contenido en modo de solo lectura * `Corrección` Problema por el que tocar el area del titulo o algunos elementos del menu en modo de solo lectura hacia fallar la aplicacion en el editor de codigo * `Corrección` Problema por el que cargar archivos grandes en el editor de codigo podia provocar un fallo de la aplicacion (correccion tentativa) * `Corrección` Inicializacion anomala del estado de los botones funcionales cuando el editor de codigo abria automaticamente un archivo nuevo * `Corrección` Problema por el que poner la aplicacion en segundo plano mientras se editaba un archivo en el editor de codigo podia provocar un fallo * `Corrección` Problema por el que, en Android 15+, al pulsar el boton fx en el editor de codigo no se mostraba el panel rapido de funciones de modulo (correccion tentativa) * `Corrección` Problema por el que ErrorDialogActivity podia no iniciarse correctamente o desaparecer automaticamente en poco tiempo _[`issue #479`](http://issues.autojs6.com/479)_ _[`issue #471`](http://issues.autojs6.com/471)_ _[`issue #414`](http://issues.autojs6.com/414)_ _[`issue #340`](http://issues.autojs6.com/340#issuecomment-2973485826)_ * `Corrección` Tipos de parametros aceptados incorrectos en el constructor Canvas _[`issue #402`](http://issues.autojs6.com/402)_ * `Corrección` Problema por el que la funcion de copiar informacion detallada no funcionaba en la pagina de informe de fallos * `Corrección` Problema por el que la logica personalizada de retroceso dejaba de funcionar en Android 16+, causando un comportamiento anomalo del boton atras * `Corrección` Problema por el que la aplicacion podia fallar al pulsar el boton atras o cambiar de pestana despues de mostrar resultados de busqueda del administrador de archivos * `Corrección` Problema por el que la interfaz no se actualizaba automaticamente tras eliminar carpetas de proyecto en el administrador de archivos * `Corrección` Problema por el que la aplicacion podia fallar cuando los elementos de la lista del panel de tareas cambiaban con frecuencia * `Corrección` Problema por el que el color del primer plano de la barra de navegacion podia comportarse de forma anomala con el modo nocturno al usar navegacion gestual de "tres botones" * `Corrección` Problema por el que el cuadro de dialogo de informacion de tipo de archivo APK podia no obtener el nombre de la aplicacion ni la informacion del SDK * `Corrección` Problema por el que, en modo cliente, al desconectar y volver a conectar en poco tiempo tras una conexion, aparecia un tiempo de espera de handshake y resultaba dificil reconectar * `Corrección` Problema por el que, en modo cliente, operaciones como rotar la pantalla o cambiar el idioma, que recreaban la Activity, hacian que AutoJs6 reconstruyera siempre la conexion * `Corrección` Problema por el que, en modo servidor, operaciones como rotar la pantalla o cambiar el idioma, que recreaban la Activity, hacian que la consola de VSCode dejara de mostrar registros _[`issue #385`](http://issues.autojs6.com/385)_ * `Corrección` Problema por el que, al conectarse al plugin de VSCode de varias formas al mismo tiempo, la cantidad de registros impresos podia multiplicarse * `Corrección` Problema por el que la generacion de codigo en la pagina de analisis de diseño podia fallar con controles de coleccion (correccion tentativa) _[`issue #328`](http://issues.autojs6.com/328)_ * `Corrección` Problema por el que el interruptor "Usar la tecla 'Bajar volumen' para controlar la grabacion" no funcionaba en la pagina de configuracion _[`issue #480`](http://issues.autojs6.com/480)_ * `Corrección` Problema por el que los valores de coordenadas en archivos de codigo generados por la grabacion de scripts podian no coincidir con los pixeles reales de la pantalla _[`issue #480`](http://issues.autojs6.com/480)_ * `Corrección` Problema por el que la primera accion en los archivos de codigo generados por grabacion de scripts (como tocar o deslizar) siempre era ignorada * `Corrección` Problema por el que operar archivos en segundo plano desde el dialogo flotante "Ejecutar script" podia provocar un fallo de la aplicacion * `Corrección` Problema por el que el estado del boton flotante podia restablecerse al volver a entrar en la pagina principal tras finalizar el ciclo de vida de la Activity principal * `Corrección` Problema por el que el interruptor "Mostrar sobre otras aplicaciones" en dispositivos Xiaomi podia abrir una pagina de configuracion incorrecta * `Corrección` Problema por el que, despues de cancelar el proceso de descarga de actualizaciones, los paquetes de red seguian descargandose en segundo plano (correccion tentativa) * `Corrección` Problema por el que la tarea Rebuild Project no podia completarse correctamente cuando se habilitaba la opcion isCleanup[Paddle/Rapid]Ocr en las herramientas de compilacion * `Mejora` Funciones relacionadas con Paddle OCR (PP-OCRv3) modularizado _[`issue #334`](http://issues.autojs6.com/334)_ _[`issue #331`](http://issues.autojs6.com/331)_ _[`issue #325`](http://issues.autojs6.com/325)_ * `Mejora` Mejora de compatibilidad del metodo runtime.loadJar (by [LYS86](https://github.com/LYS86)) _[`pr #475`](http://pr.autojs6.com/475)_ * `Mejora` Mejora de cierta compatibilidad del metodo ui.getStatusBarHeight/propiedad statusBarHeight (getter) * `Mejora` Metodos como console.log admiten mostrar informacion detallada al imprimir objetos globales (images, app, ocr, etc.) * `Mejora` El metodo dialogs.build admite parametros de opcion nativos de MaterialDialog.Builder * `Mejora` El metodo dialogs.build admite coincidencia flexible de cadenas para los parametros de opcion animation/linkify * `Mejora` Mejora de estabilidad y coherencia al obtener orientacion de pantalla y datos de ancho/alto mediante device.rotation/rotation/width/height * `Mejora` Mejora de eficiencia de ejecucion y compatibilidad de metodos como app.launchDual/startDualActivity * `Mejora` android.graphics.Paint#setColor admite analizar correctamente parametros de color como ColorInt/ColorHex/ColorName * `Mejora` Los mensajes de excepcion de tipos de argumentos en metodos relacionados con modulos integrados agregan informacion resumida de tipos * `Mejora` Los modulos integrados (dayjs/cheerio/dayjs/i18n) dejan de usar modo de ejecucion de script y adoptan carga diferida global * `Mejora` Al imprimir datos enormes con metodos relacionados con la consola, se omite adecuadamente parte del contenido segun limites superiores para reducir el tiempo de impresion * `Mejora` El valor inicial de la cuenta regresiva de la ventana flotante de consola aumenta de 6 a 9 segundos * `Mejora` La implementacion interna de la ventana flotante de consola adopta procesamiento sin bloqueos y en cola para mejorar la eficiencia y la tasa de exito al establecer parametros * `Mejora` Las API relacionadas con el color de fondo de la ventana flotante de consola (transparencia/tinte/color base) se ajustan mejor a las normas de diseño de Android _[`issue #458`](http://issues.autojs6.com/458)_ * `Mejora` Se optimiza el momento de cierre del menu al tocar elementos tras expandir el boton flotante del administrador de archivos * `Mejora` El administrador de archivos/panel de tareas admite mostrar informacion estadistica de cantidad de archivos/tareas * `Mejora` Cuando falla el guardado en el editor de codigo, se guarda automaticamente como borrador y admite guardar como archivo nuevo * `Mejora` Mejora de cierta fluidez al cargar archivos grandes en el editor de codigo * `Mejora` La funcion "Buscar/Reemplazar" del editor de codigo admite persistencia de estado y visualizacion en tiempo real del recuento de resultados * `Mejora` Cuando el editor de codigo solicita guardar, se asegura de guardar correctamente antes de salir para reducir la tasa de fallos de guardado * `Mejora` El estado del boton Guardar del editor de codigo coincide mejor con la logica subjetiva del usuario * `Mejora` El editor de codigo admite pulsacion larga en teclas como "-", "=", "(", "[", "{", "<" * `Mejora` El cuadro de dialogo del proceso de empaquetado agrega un boton "Abortar" * `Mejora` Se mejora la forma de visualizacion del cuadro de dialogo del proceso de empaquetado y se agregan estadisticas de tiempo consumido * `Mejora` Al instalar aplicaciones empaquetadas con una nueva configuracion, se sobrescriben las configuraciones relacionadas de la aplicacion antigua * `Mejora` La pagina de configuracion de empaquetado marca por defecto los permisos necesarios (WAKE_LOCK/INTERNET/WRITE_EXTERNAL_STORAGE/...) _[`issue #397`](http://issues.autojs6.com/397)_ * `Mejora` La pagina de configuracion de empaquetado admite lectura y configuracion de mas opciones (mostrar registros al iniciar/mostrar pantalla de inicio al iniciar/texto del lema de la pantalla de inicio/...) * `Mejora` La pagina de configuracion de aplicaciones empaquetadas agrega un interruptor de servicio en primer plano _[`issue #406`](http://issues.autojs6.com/406)_ * `Mejora` Al guardar el archivo de configuracion del proyecto de script se agrega deteccion de conflictos de nombres de claves para evitar ambigüedad * `Mejora` La pagina de informe de fallos admite pellizcar con dos dedos para ajustar el tamaño de fuente y agrega botones de funciones comunes * `Mejora` Los iconos del lanzador de aplicaciones admiten caracteristicas de iconos adaptativos _[`issue #405`](http://issues.autojs6.com/405)_ * `Mejora` Cuando el motor Rhino falla al analizar firmas genericas, retrocede a tipos reflejados sin procesar para mejorar la disponibilidad de metodos reflectivos en versiones bajas de Android * `Mejora` Los elementos de tipo interruptor en el cajon de inicio agregan separadores, admiten tocar el area del titulo para mostrar un cuadro de dialogo de detalles y, cuando corresponde, acceso rapido a ajustes del sistema * `Mejora` Al iniciar o reiniciar AutoJs6, se puede tocar el area del titulo de "Modo cliente" en el cajon de inicio para abortar un intento de conexion en curso * `Mejora` El modo cliente admite establecer conexion usando direcciones IPv6 y nombres de dominio * `Mejora` El modo cliente admite avisos de deteccion para direcciones IPv4 de uso especial (loopback/broadcast/multicast/reservada/...) * `Mejora` El modo cliente admite mostrar y gestionar el estado de la conexion (corregir direccion/abortar conexion) * `Mejora` El modo servidor admite mostrar la cantidad de clientes conectados * `Mejora` La lectura del permiso de notificaciones admite un mecanismo de reconexion automatica ([requestRebind](https://developer.android.com/reference/android/service/notification/NotificationListenerService#requestRebind(android.content.ComponentName))) para mejorar la estabilidad de funciones relacionadas con escucha de notificaciones * `Mejora` El boton flotante mejora la seguridad al iniciar Activity desde segundo plano para evitar fallos de la aplicacion * `Mejora` El cuadro de dialogo "Mas" del boton flotante usa carga asincrona de datos para mejorar la fluidez de visualizacion * `Mejora` El cuadro de dialogo "Ejecutar script" del boton flotante agrega el elemento de menu "Inicio" * `Mejora` El cuadro de dialogo "Ejecutar script" del boton flotante admite minimizacion y restauracion de estado, y hace el mayor esfuerzo por mantener la ventana residente o restaurarla automaticamente * `Mejora` Se admite usar permisos de Shizuku para grabar scripts y reproducir grabaciones (la fluidez de reproduccion puede verse algo afectada) _[`issue #320`](http://issues.autojs6.com/320)_ * `Mejora` La pagina de configuracion de color de tema usa un metodo de posicionamiento rapido para localizar colores de tema y mejorar la eficiencia * `Mejora` Se reemplaza [LocalBroadcastManager](https://developer.android.com/jetpack/androidx/releases/localbroadcastmanager), ya obsoleto, por [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) y [SharedFlow](https://developer.android.com/kotlin/flow/stateflow-and-sharedflow) * `Mejora` Los scripts de compilacion Gradle mejoran la eficiencia de extraccion de archivos en formato 7z * `Mejora` Los scripts de compilacion Gradle admiten obtener la version detallada del IDE Android Studio (por ejemplo, "2025.1.4.7") * `Mejora` Los scripts de compilacion Gradle admiten generar automaticamente los datos requeridos por la clase VersionCodesList para reducir la latencia de inicio de scripts * `Mejora` Uso de [Version Catalogs](https://developer.android.com/build/migrate-to-catalogs) para gestionar centralizadamente versiones de dependencias y plugins de Gradle * `Mejora` Scripts de compilacion Gradle modularizados, migrando la logica compartida a build-logic y abstraida como plugins de convencion * `Mejora` Uso de plugins de convencion de Gradle para simplificar la logica de carga de bibliotecas AAR locales * `Mejora` Se elimina la opcion de Gradle "android.enableJetifier=true" para adaptarse a Gradle 9 * `Mejora` Uso de [Toolchain](https://docs.gradle.org/current/userguide/toolchains.html) en lugar de sourceCompatibility/targetCompatibility para reducir diferencias del entorno de compilacion * `Mejora` Ajustes en algunas dependencias o versiones de bibliotecas locales _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG.md#v670)_ # v6.6.4 ###### 2025/05/31 * `Sugerencia` Cambio de API: ui.(status/navigation)BarAppearanceLight[By] -> ui.(status/navigation)BarIconLight[By] * `Nuevo` Métodos util.dpToPx/spToPx/pxToDp/pxToSp para conversión de unidades de píxeles * `Corrección` Subtítulos que pueden mostrarse incompletos al rotar la pantalla a orientación horizontal * `Corrección` Parte del contenido de algunas páginas oculto por la barra de navegación lateral al rotar la pantalla a horizontal * `Corrección` Área de coloreado de fondo de la barra de estado incompleta en algunas páginas bajo Android 15 _[`issue #398`](http://issues.autojs6.com/398)_ * `Corrección` El editor de código podría escribir archivos con una codificación de confianza insuficiente causando errores de decodificación (arreglo tentativa) * `Mejora` Mejorada la adaptabilidad de diseño en las páginas de Aplicación y Desarrollador y eliminadas categorías de diseño innecesarias * `Mejora` En README.md, sección de compilación, añadidas varias formas para facilitar la localización de la página de configuración del objetivo _[`issue #404`](http://issues.autojs6.com/404)_ * `Mejora` Ajustes en algunas dependencias o versiones de bibliotecas locales _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG.md#v664)_ # v6.6.3 ###### 2025/05/27 * `Nuevo` Función de historial de versiones: ver registros de cambios multilingües y estadísticas * `Nuevo` Método timers.keepAlive (ahora global) para mantener activo el script * `Nuevo` Métodos de escucha de eventos como engines.on('start/stop/error', callback) para eventos globales del motor * `Nuevo` Método images.detectMultiColors para verificación de colores multipunto _[`issue #374`](http://issues.autojs6.com/374)_ * `Nuevo` Métodos images.matchFeatures/detectAndComputeFeatures: búsqueda de imágenes a resolución completa (Ref a [Auto.js Pro](https://g.pro.autojs.org/)) _[`issue #366`](http://issues.autojs6.com/366)_ * `Nuevo` Método images.compressToBytes para comprimir una imagen y generar un arreglo de bytes * `Nuevo` Método images.downsample para submuestreo de píxeles y creación de un nuevo ImageWrapper * `Nuevo` Método ui.keepScreenOn para mantener la pantalla encendida cuando la página UI está en foco * `Nuevo` Propiedad ui.root (getter) para obtener el nodo "contenedor raíz del contenido de la ventana" del layout UI * `Nuevo` El elemento webview admite diseños de páginas web basados en JsBridge (Ref a [Auto.js Pro](https://g.pro.autojs.org/)) [ver Código de ejemplo > Diseño > HTML interactivo / Vue2 + Vant (SFC)] _[`issue #281`](http://issues.autojs6.com/281)_ * `Nuevo` El inspector de diseño permite ocultar controles (por [TonyJiangWJ](https://github.com/TonyJiangWJ)) _[`pr #371`](http://pr.autojs6.com/371)_ _[`issue #355`](http://issues.autojs6.com/355)_ * `Corrección` El contenido de la documentación en línea en la pestaña Documentos y la actividad Documentos podía quedar cubierto por la barra de navegación del sistema * `Corrección` En algunas páginas, al pulsar botones de la Toolbar se podía activar por error el evento de clic en el título * `Corrección` En algunos dispositivos, las líneas en blanco del editor de código mostraban cuadros; corrección provisional * `Corrección` El cuadro de diálogo del selector de colores en los ajustes de color de tema podía apilarse infinitamente * `Corrección` La tecla de subir volumen no detenía todos los scripts cuando el servicio de accesibilidad estaba desactivado * `Corrección` Superposición del teclado IME al editar contenido de difusión personalizado en la página de tareas programadas * `Corrección` Los controles dentro de elementos webview no podían activar correctamente el teclado en pantalla * `Corrección` El diálogo de información de APK podía no obtener el nombre de la app ni la información del SDK * `Corrección` El ejemplo del administrador de archivos podía no cargar automáticamente el contenido de subcarpetas al acceder a un directorio de proyecto * `Corrección` El contenido superior en modo UI de Android 15 quedaba cubierto por la barra de estado * `Corrección` El color de fondo de la barra de estado en algunas páginas de Android 15 no seguía el color de tema de forma dinámica * `Corrección` El módulo dialogs no podía usar la propiedad customView _[`issue #364`](http://issues.autojs6.com/364)_ * `Corrección` El parámetro de expresión de dialogs.input podía no devolver el resultado de ejecución * `Corrección` El uso de JavaAdapter provocaba desbordamiento de pila de ClassLoader _[`issue #376`](http://issues.autojs6.com/376)_ * `Corrección` console.setContentTextColor hacía perder el color de texto por defecto _[`issue #346`](http://issues.autojs6.com/346)_ * `Corrección` console.setContentBackgroundColor no aceptaba nombres de color _[`issue #384`](http://issues.autojs6.com/384)_ * `Corrección` images.compress ahora ajusta la calidad de codificación en lugar de reducir píxeles * `Corrección` El método images.resize no funcionaba correctamente * `Corrección` engines.all podía lanzar ConcurrentModificationException _[`issue #394`](http://issues.autojs6.com/394)_ * `Corrección` Formato de fecha incorrecto en algunos idiomas de README.md * `Corrección` La compilación Gradle podía fallar por longitud inválida de archivo de biblioteca _[`issue #389`](http://issues.autojs6.com/389)_ * `Mejora` Añadidos separadores degradados en el menú del inspector de diseño para agrupar funciones * `Mejora` project.json admite la opción permissions para proyectos de scripts (por [wirsnow](https://github.com/wirsnow)) _[`pr #391`](http://pr.autojs6.com/391)_ _[`issue #362`](http://issues.autojs6.com/362)_ * `Mejora` Al empaquetar un solo archivo se leen y seleccionan automáticamente los permisos declarados por la app instalada _[`issue #362`](http://issues.autojs6.com/362)_ * `Mejora` Ampliado el soporte de adaptación del color de tema y más tipos de controles * `Mejora` Adaptabilidad de la anchura del cajón en la pantalla principal para modo horizontal o pantallas ultra-anchas * `Mejora` Nuevos diseños horizontal y de pantalla pequeña para las páginas Acerca de la app y Desarrollador * `Mejora` Las páginas de ajustes ofrecen la opción "Usar valor predeterminado" en los diálogos * `Mejora` El botón flotante del administrador de archivos se oculta automáticamente al pulsar fuera * `Mejora` El formateador de código admite operadores `??`, `?.`, `??=` * `Mejora` El editor de código admite la lectura y escritura de archivos con codificaciones GB18030 / UTF-16 (LE/BE) / Shift_JIS, etc * `Mejora` El editor de código ahora muestra información detallada del archivo (ruta/codificación/salto de línea/total de bytes y caracteres, etc.) _[`issue #395`](http://issues.autojs6.com/395)_ * `Mejora` Se añaden mensajes de error para acciones de intent (editar / ver / instalar / enviar / reproducir, etc.) * `Mejora` El atributo url de webview admite rutas relativas * `Mejora` El parámetro ruta de ImageWrapper#saveTo admite rutas relativas * `Mejora` images.save permite comprimir archivos PNG al usar el parámetro quality _[`issue #367`](http://issues.autojs6.com/367)_ * `Mejora` Se permite limpiar registros de actualizaciones ignoradas y direcciones de conexión en modo cliente * `Mejora` La información de actualización de versión se muestra en varios idiomas según el idioma actual * `Mejora` La carga asíncrona mejora la fluidez de la lista en el administrador de archivos * `Mejora` Mejorado el contenido y formato de los mensajes de excepción de scripts en la consola * `Mejora` El código de ejemplo puede restablecer carpetas a su contenido inicial * `Mejora` Mayor eficiencia al comprobar la firma de APK * `Mejora` Optimizada la eficiencia y presentación de diálogos de información de archivos APK y multimedia * `Mejora` El script de compilación Gradle mejora su capacidad de adaptación de versiones _[`discussion #369`](http://discussions.autojs6.com/369)_ * `Mejora` Ajustes en algunas dependencias o versiones de bibliotecas locales _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG.md#v663)_ ##### Para obtener más información sobre el historial de versiones, consulte * [CHANGELOG.md](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG-es.md) ****** ### Compilación y construcción del proyecto ****** Para depurar o desarrollar el proyecto de código abierto AutoJs6, puedes usar [Android Studio](https://pro.autojs.org/) (producto de [Google](https://www.google.com/)) o [IntelliJ IDEA](https://www.jetbrains.com/idea/) (producto de [JetBrains](https://www.jetbrains.com/)). 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 Panda 2 | 2025.3.2` (elige una según tus necesidades): - [android-studio-panda2-windows.exe](https://edgedl.me.gvt1.com/android/studio/install/2025.3.2.6/android-studio-panda2-windows.exe) (1.28 GiB) - [android-studio-panda2-windows.zip](https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.2.6/android-studio-panda2-windows.zip) (1.29 GiB) - [android-studio-panda2-linux.tar.gz](https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.2.6/android-studio-panda2-linux.tar.gz) (1.32 GiB) > Nota: La fecha de lanzamiento de la versión anterior es el 3 de March de 2026. Para descargar otras versiones, o si los enlaces anteriores ya no funcionan, puedes visitar la página del [Archivo de versiones de Android Studio](https://developer.android.com/studio/archive?hl=en). 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. Abrir la página de configuración de `Android SDK (Kit de desarrollo de software para Android)` (cualquiera de las siguientes formas): ```text Help (Ayuda) | Find action (Buscar acción) # Introducir "Android SDK" [ o ] File (Archivo) | Settings (Configuración) # Buscar "Android SDK" [ o ] File (Archivo) | Settings (Configuración) | Language & Frameworks (Lenguajes y Frameworks) | Android SDK (Kit de Desarrollo de Software de Android) [ o ] File (Archivo) | Settings (Configuración) | 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. Abrir la página de configuración de `SDK Tools (Herramientas del SDK)` (cualquiera de las siguientes formas): ```text Help (Ayuda) | Find action (Buscar acción) # Introducir "SDK Tools" [ o ] File (Archivo) | Settings (Configuración) # Buscar "SDK Tools" [ o ] File (Archivo) | Settings (Configuración) | Language & Frameworks (Lenguajes y Frameworks) | Android SDK (Kit de Desarrollo de Software de Android) | SDK Tools (Herramientas del SDK) (situado en la ventana de la derecha) [ o ] File (Archivo) | Settings (Configuración) | 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 `21`. Hasta el 14 de March de 2026, AutoJs6 soporta hasta la versión `25` 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](https://www.oracle.com/java/technologies/downloads/). Abrir la página de configuración de `Gradle JDK` (cualquiera de las siguientes formas): ```text Help (Ayuda) | Find action (Buscar acción) # Introducir "Gradle JDK" [ o ] File (Archivo) | Settings (Configuración) # Buscar "Gradle" [ o ] File (Archivo) | Settings (Configuración) | Build, Execution, Deployment (Compilación, Ejecución y 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)](https://git-scm.com/download). #### 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 Configurations` menu in the Toolbar, select `app`, 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 Output` tab 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](http://issues.autojs6.com) page.. > Nota: For more details on building and running the app, please refer to [Android Docs](https://developer.android.com/studio/run?hl=en). #### 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 `app` from the `Run/Debug Configurations` menu, which is the main AutoJs6 application. - In the `Available Devices` dropdown 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 is `F10`. - 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](https://developer.android.com/build/build-for-release?hl=en). #### 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:assemble` para 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](http://dts-project.autojs6.com) project.. After running the task, it produces the latest JAR file for the AutoJs6 project. Using the [Android d.ts Generator](https://github.com/NativeScript/android-dts-generator) (by [NativeScript](https://github.com/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: ```text Before: autojs6-v6.6.2-arm64-v8a.apk After: autojs6-v6.6.2-arm64-v8a-0f2a9d74.apk ``` > Consultar: [Android Docs](https://developer.android.com/studio/run?hl=zh-cn) ****** ### Asistencia en el desarrollo de scripts ****** Para desarrollar scripts ejecutables en AutoJs6, utiliza las herramientas de desarrollo adecuadas: - [VSCode](https://code.visualstudio.com/download) / [WebStorm](https://www.jetbrains.com/webstorm/download/) / [HBuilderX](https://www.dcloud.io/hbuilderx.html) ... Para escribir y depurar scripts en PC, el complemento de VSCode puede conectar el PC y el teléfono: - [AutoJs6-VSCode-Extension](http://vscext-project.autojs6.com) - 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](http://dts-project.autojs6.com) - 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](http://docs-project.autojs6.com) - 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](https://github.com/TonyJiangWJ/Ant-Forest) - Script de recolección automática de energía de Ant Forest por [TonyJiangWJ](https://github.com/TonyJiangWJ) - [Ant-Forest](https://github.com/SuperMonster003/Ant-Forest) - Script de recolección automática de energía de Ant Forest por [SuperMonster003](https://github.com/SuperMonster003) - [autojs](https://github.com/e1399579/autojs) - Scripts útiles de Auto.js por [e1399579](https://github.com/e1399579) - [autojsDemo](https://github.com/snailuncle/autojsDemo) - Ejemplo de demostración de Auto.js por [snailuncle](https://github.com/snailuncle) - [Repositorios relacionados con autojs](https://github.com/topics/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 | |:------:|:------:|:------:| | [Willie169](https://github.com/Willie169) | [1](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3AWillie169) | `2026/03/03` | | [LYS86](https://github.com/LYS86) `(Lin)` | [4](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3ALYS86) | `2025/12/26` | | [wirsnow](https://github.com/wirsnow) | [1](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Awirsnow) | `2025/05/19` | | [TonyJiangWJ](https://github.com/TonyJiangWJ) | [4](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3ATonyJiangWJ) | `2025/04/24` | | [luckyloogn](https://github.com/luckyloogn) | [3](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Aluckyloogn) | `2024/12/31` | | [kvii](https://github.com/kvii) | [1](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Akvii) | `2024/10/16` | | [chenguangming](https://github.com/chenguangming) `(Tom)` | [2](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Achenguangming) | `2024/05/14` | | [LZX284](https://github.com/LZX284) `(AI)` | [7](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3ALZX284) | `2023/11/15` | | [kojoe‑code](https://github.com/kojoe-code) `(抠脚本人)` | [12](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Akojoe-code) | `2023/07/12` | | [aiselp](https://github.com/aiselp) | [6](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Aaiselp) | `2023/06/14` | Datos actualizados el 4 de March de 2026. 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](https://github.com/SuperMonster003/AutoJs6/graphs/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](https://github.com/SuperMonster003/AutoJs6/pulls). [//]: # ( # --------------------------------------------------------------# # Before committing and pushing to the remote GitHub repository # # --------------------------------------------------------------# - IDE - The summary of the latest changelog for committing to Git [ DO NOT commit or push ] - $projectDir/version.properties - Remove the part like [ alpha / beta / ... ] of VERSION_NAME - $projectDir/.changelog/lang_zh-Hans.json - Update version name and released date - Translate into other languages - Update TypeScript declarations according to section `dependency` if needed - $projectDir/.readme/template_readme.md - Update Rhino badge - Update Android Studio and IntelliJ IDEA badges [ link: aj6mdgen ] - Update contribution section: [ h3_contribution ] [ link: aj6scrapers ] - $projectDir/.readme/common.json - Update android studio download links and version names [ link: aj6scrapers ] - Update contribution section: var_date_contribution_table_data_updated [ link: aj6scrapers ] - $projectDir/.python/generate_markdown.py - Re-generate markdown by running the python script [ link: aj6mdgen ] - Others - Re-generate documentation by running the python script [ link: aj6docgen ] - Check the two-way versions for AutoJs6 and VSCode ext, then publish the ext to Microsoft if needed - Run Gradle task "app:assembleInrtRelease" [ shortcut: C+A+0#- ] - Build APK to determine the final VERSION_BUILD field [ shortcut: C+A+0#A ] - Run Gradle task "app:appendDigestToReleasedFiles" [ shortcut: C+A+0#= ] - Check VERSION_BUILD in version.properties with released apks - Commit and push to GitHub - Publish the latest release with signed APKs )